Skip to content

Commit

Permalink
Merge pull request #108 from lhearachel/battle-dev
Browse files Browse the repository at this point in the history
Document Ability and Held Item Triggers, Speed Comparison, and Side Effects to Subscript Mapping
lhearachel authored Nov 6, 2023

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
2 parents 9d26c9f + 7024567 commit f24d87f
Showing 20 changed files with 2,401 additions and 1,902 deletions.
2 changes: 1 addition & 1 deletion include/battle/battle_context.h
Original file line number Diff line number Diff line change
@@ -164,7 +164,7 @@ struct BattleContext {

int gainedExp;
int sharedExp;
u32 monsGainingExp[2];
u32 sideGetExpMask[2];

int scriptNarc;
int scriptFile;
35 changes: 35 additions & 0 deletions include/battle/battle_controller.h
Original file line number Diff line number Diff line change
@@ -55,6 +55,41 @@ enum BattleControlSequence {
BATTLE_CONTROL_END_WAIT,
};

enum {
PLAYER_INPUT_FIGHT = 1,
PLAYER_INPUT_ITEM,
PLAYER_INPUT_PARTY,
PLAYER_INPUT_RUN,

PLAYER_INPUT_SAFARI_BALL = PLAYER_INPUT_FIGHT,
PLAYER_INPUT_SAFARI_BAIT = PLAYER_INPUT_ITEM,
PLAYER_INPUT_SAFARI_ROCK = PLAYER_INPUT_PARTY,
PLAYER_INPUT_SAFARI_RUN = PLAYER_INPUT_RUN,
PLAYER_INPUT_SAFARI_WAIT,

PLAYER_INPUT_PAL_PARK_BALL = PLAYER_INPUT_FIGHT,
PLAYER_INPUT_PAL_PARK_RUN = PLAYER_INPUT_RUN,

PLAYER_INPUT_MOVE_1 = 1,
PLAYER_INPUT_MOVE_2,
PLAYER_INPUT_MOVE_3,
PLAYER_INPUT_MOVE_4,

PLAYER_INPUT_PARTY_SLOT_1 = 1,
PLAYER_INPUT_PARTY_SLOT_2,
PLAYER_INPUT_PARTY_SLOT_3,
PLAYER_INPUT_PARTY_SLOT_4,
PLAYER_INPUT_PARTY_SLOT_5,
PLAYER_INPUT_PARTY_SLOT_6,

PLAYER_INPUT_TARGET_BATTLER_1 = 1,
PLAYER_INPUT_TARGET_BATTLER_2,
PLAYER_INPUT_TARGET_BATTLER_3,
PLAYER_INPUT_TARGET_BATTLER_4,

PLAYER_INPUT_CANCEL = 0xFF,
};

/**
* @brief Create a new BattleContext struct from the given BattleSystem.
*
2 changes: 1 addition & 1 deletion include/battle/common.h
Original file line number Diff line number Diff line change
@@ -78,7 +78,7 @@ enum {
BATTLE_STAT_DEFENSE,
BATTLE_STAT_SPEED,
BATTLE_STAT_SP_ATTACK,
BATTEL_STAT_SP_DEFENSE,
BATTLE_STAT_SP_DEFENSE,
BATTLE_STAT_ACCURACY,
BATTLE_STAT_EVASION,

1 change: 0 additions & 1 deletion include/constants/battle.h
Original file line number Diff line number Diff line change
@@ -43,7 +43,6 @@
#define BATTLE_TYPE_2vs2_TAG (BATTLE_TYPE_2vs2 | BATTLE_TYPE_TAG)
#define BATTLE_TYPE_ALWAYS_CATCH (BATTLE_TYPE_PAL_PARK | BATTLE_TYPE_CATCH_TUTORIAL)
#define BATTLE_TYPE_RESTORE_ITEMS_AFTER (BATTLE_TYPE_LINK | BATTLE_TYPE_FRONTIER)
#define BATTLE_TYPE_2vs2_AI_DOUBLES (BATTLE_TYPE_DOUBLES | BATTLE_TYPE_2vs2 | BATTLE_TYPE_AI)

#define MAX_LINK_BATTLERS 4
#define MAX_BATTLERS 4
25 changes: 25 additions & 0 deletions include/constants/battle/condition.h
Original file line number Diff line number Diff line change
@@ -95,9 +95,34 @@
| FIELD_CONDITION_SANDSTORM \
| FIELD_CONDITION_HAILING \
| FIELD_CONDITION_DEEP_FOG)
#define FIELD_CONDITION_CASTFORM (FIELD_CONDITION_RAINING | FIELD_CONDITION_SUNNY | FIELD_CONDITION_HAILING)

#define FIELD_CONDITION_UPROAR_SHIFT 8
#define FIELD_CONDITION_GRAVITY_SHIFT 12
#define FIELD_CONDITION_TRICK_ROOM_SHIFT 16

enum {
OVERWORLD_WEATHER_CLEAR = 0,
OVERWORLD_WEATHER_CLOUDY,
OVERWORLD_WEATHER_RAINING,
OVERWORLD_WEATHER_HEAVY_RAIN,
OVERWORLD_WEATHER_THUNDERSTORM,
OVERWORLD_WEATHER_SNOWING,
OVERWORLD_WEATHER_HEAVY_SNOW,
OVERWORLD_WEATHER_BLIZZARD,
OVERWORLD_WEATHER_CLEAR_8,
OVERWORLD_WEATHER_SLOW_ASHFALL,
OVERWORLD_WEATHER_SANDSTORM,
OVERWORLD_WEATHER_HAILING,
OVERWORLD_WEATHER_SPIRITS,
OVERWORLD_WEATHER_CLEAR_13,
OVERWORLD_WEATHER_FOG,
OVERWORLD_WEATHER_DEEP_FOG,
OVERWORLD_WEATHER_DARK_FLASH,

// these are only for the Battle Frontier
OVERWORLD_WEATHER_HARSH_SUN = 1001,
OVERWORLD_WEATHER_TRICK_ROOM,
};

#endif // POKEPLATINUM_CONSTANTS_BATTLE_CONDITION_H
211 changes: 169 additions & 42 deletions include/constants/battle/side_effects.h
Original file line number Diff line number Diff line change
@@ -1,40 +1,6 @@
#ifndef POKEPLATINUM_CONSTANTS_BATTLE_SIDE_EFFECTS_H
#define POKEPLATINUM_CONSTANTS_BATTLE_SIDE_EFFECTS_H

#define MOVE_SIDE_EFFECT_SLEEP 0x00000001
#define MOVE_SIDE_EFFECT_FREEZE 0x00000004
#define MOVE_SIDE_EFFECT_PARALYZE 0x00000005
#define MOVE_SIDE_EFFECT_FLINCH 0x00000008
#define MOVE_SIDE_EFFECT_ATTACK_UP_1_STAGE 0x0000000F
#define MOVE_SIDE_EFFECT_DEFENSE_UP_1_STAGE 0x00000010
#define MOVE_SIDE_EFFECT_SPEED_UP_1_STAGE 0x00000011
#define MOVE_SIDE_EFFECT_SP_ATTACK_UP_1_STAGE 0x00000012
#define MOVE_SIDE_EFFECT_SP_DEFENSE_UP_1_STAGE 0x00000013
#define MOVE_SIDE_EFFECT_ACCURACY_UP_1_STAGE 0x00000014
#define MOVE_SIDE_EFFECT_EVASION_UP_1_STAGE 0x00000015
#define MOVE_SIDE_EFFECT_ATTACK_DOWN_1_STAGE 0x00000016
#define MOVE_SIDE_EFFECT_DEFENSE_DOWN_1_STAGE 0x00000017
#define MOVE_SIDE_EFFECT_SPEED_DOWN_1_STAGE 0x00000018
#define MOVE_SIDE_EFFECT_SP_ATTACK_DOWN_1_STAGE 0x00000019
#define MOVE_SIDE_EFFECT_SP_DEFENSE_DOWN_1_STAGE 0x0000001A
#define MOVE_SIDE_EFFECT_ACCURACY_DOWN_1_STAGE 0x0000001B
#define MOVE_SIDE_EFFECT_EVASION_DOWN_1_STAGE 0x0000001C

#define MOVE_SIDE_EFFECT_ATTACK_UP_2_STAGES 0x00000027
#define MOVE_SIDE_EFFECT_DEFENSE_UP_2_STAGES 0x00000028
#define MOVE_SIDE_EFFECT_SPEED_UP_2_STAGES 0x00000029
#define MOVE_SIDE_EFFECT_SP_ATTACK_UP_2_STAGES 0x0000002A
#define MOVE_SIDE_EFFECT_SP_DEFENSE_UP_2_STAGES 0x0000002B
#define MOVE_SIDE_EFFECT_ACCURACY_UP_2_STAGES 0x0000002C
#define MOVE_SIDE_EFFECT_EVASION_UP_2_STAGES 0x0000002D
#define MOVE_SIDE_EFFECT_ATTACK_DOWN_2_STAGES 0x0000002E
#define MOVE_SIDE_EFFECT_DEFENSE_DOWN_2_STAGES 0x0000002F
#define MOVE_SIDE_EFFECT_SPEED_DOWN_2_STAGES 0x00000030
#define MOVE_SIDE_EFFECT_SP_ATTACK_DOWN_2_STAGES 0x00000031
#define MOVE_SIDE_EFFECT_SP_DEFENSE_DOWN_2_STAGES 0x00000032
#define MOVE_SIDE_EFFECT_ACCURACY_DOWN_2_STAGES 0x00000033
#define MOVE_SIDE_EFFECT_EVASION_DOWN_2_STAGES 0x00000034

#define MOVE_SIDE_EFFECT_BREAK_SCREENS (1 << 23)
#define MOVE_SIDE_EFFECT_CHECK_SUBSTITUTE (1 << 24)
#define MOVE_SIDE_EFFECT_CHECK_HP_AND_SUBSTITUTE (1 << 25)
@@ -45,15 +11,176 @@
#define MOVE_SIDE_EFFECT_TO_ATTACKER (1 << 30)
#define MOVE_SIDE_EFFECT_TO_DEFENDER (1 << 31)

#define MOVE_SIDE_EFFECT_FLAGS (MOVE_SIDE_EFFECT_BREAK_SCREENS \
| MOVE_SIDE_EFFECT_CHECK_SUBSTITUTE \
| MOVE_SIDE_EFFECT_CHECK_HP_AND_SUBSTITUTE \
| MOVE_SIDE_EFFECT_PROBABILISTIC \
| MOVE_SIDE_EFFECT_CANNOT_PREVENT \
| MOVE_SIDE_EFFECT_CHECK_HP \
| MOVE_SIDE_EFFECT_ON_HIT \
| MOVE_SIDE_EFFECT_TO_ATTACKER \
| MOVE_SIDE_EFFECT_TO_DEFENDER)
#define MOVE_SIDE_EFFECT_SUBSCRIPT_POINTER (~MOVE_SIDE_EFFECT_FLAGS)

enum {
SIDE_EFFECT_SOURCE_NONE = 0,
SIDE_EFFECT_SOURCE_DIRECT,
SIDE_EFFECT_SOURCE_INDIRECT,
SIDE_EFFECT_SOURCE_ABILITY,
SIDE_EFFECT_SOURCE_MOVE_EFFECT,
SIDE_EFFECT_SOURCE_HELD_ITEM,
SIDE_EFFECT_SOURCE_TOXIC_SPIKES,
SIDE_EFFECT_SOURCE_DISOBEDIENCE,
MOVE_SUBSCRIPT_PTR_NONE = 0,
MOVE_SUBSCRIPT_PTR_SLEEP,
MOVE_SUBSCRIPT_PTR_POISON,
MOVE_SUBSCRIPT_PTR_BURN,
MOVE_SUBSCRIPT_PTR_FREEZE,
MOVE_SUBSCRIPT_PTR_PARALYZE,
MOVE_SUBSCRIPT_PTR_BADLY_POISON,
MOVE_SUBSCRIPT_PTR_CONFUSE,
MOVE_SUBSCRIPT_PTR_FLINCH,
MOVE_SUBSCRIPT_PTR_REST,
MOVE_SUBSCRIPT_PTR_UPROAR,
MOVE_SUBSCRIPT_PTR_PAY_DAY,
MOVE_SUBSCRIPT_PTR_VANISH_CHARGE_TURN,
MOVE_SUBSCRIPT_PTR_BIND_TARGET,
MOVE_SUBSCRIPT_PTR_QUARTER_RECOIL,
MOVE_SUBSCRIPT_PTR_ATTACK_UP_1_STAGE,
MOVE_SUBSCRIPT_PTR_DEFENSE_UP_1_STAGE,
MOVE_SUBSCRIPT_PTR_SPEED_UP_1_STAGE,
MOVE_SUBSCRIPT_PTR_SP_ATTACK_UP_1_STAGE,
MOVE_SUBSCRIPT_PTR_SP_DEFENSE_UP_1_STAGE,
MOVE_SUBSCRIPT_PTR_ACCURACY_UP_1_STAGE,
MOVE_SUBSCRIPT_PTR_EVASION_UP_1_STAGE,
MOVE_SUBSCRIPT_PTR_ATTACK_DOWN_1_STAGE,
MOVE_SUBSCRIPT_PTR_DEFENSE_DOWN_1_STAGE,
MOVE_SUBSCRIPT_PTR_SPEED_DOWN_1_STAGE,
MOVE_SUBSCRIPT_PTR_SP_ATTACK_DOWN_1_STAGE,
MOVE_SUBSCRIPT_PTR_SP_DEFENSE_DOWN_1_STAGE,
MOVE_SUBSCRIPT_PTR_ACCURACY_DOWN_1_STAGE,
MOVE_SUBSCRIPT_PTR_EVASION_DOWN_1_STAGE,
MOVE_SUBSCRIPT_PTR_RECHARGE_TURN,
MOVE_SUBSCRIPT_PTR_SET_RAGE_FLAG,
MOVE_SUBSCRIPT_PTR_STEAL_ITEM,
MOVE_SUBSCRIPT_PTR_MEAN_LOOK,
MOVE_SUBSCRIPT_PTR_NIGHTMARE_START,
MOVE_SUBSCRIPT_PTR_BOOST_ALL_STATS,
MOVE_SUBSCRIPT_PTR_RAPID_SPIN,
MOVE_SUBSCRIPT_PTR_HEAL_TARGET_PARALYSIS,
MOVE_SUBSCRIPT_PTR_USER_ATK_AND_DEF_DOWN_1_STAGE,
MOVE_SUBSCRIPT_PTR_RECOIL_1_3,
MOVE_SUBSCRIPT_PTR_ATTACK_UP_2_STAGES,
MOVE_SUBSCRIPT_PTR_DEFENSE_UP_2_STAGES,
MOVE_SUBSCRIPT_PTR_SPEED_UP_2_STAGES,
MOVE_SUBSCRIPT_PTR_SP_ATTACK_UP_2_STAGES,
MOVE_SUBSCRIPT_PTR_SP_DEFENSE_UP_2_STAGES,
MOVE_SUBSCRIPT_PTR_ACCURACY_UP_2_STAGES,
MOVE_SUBSCRIPT_PTR_EVASION_UP_2_STAGES,
MOVE_SUBSCRIPT_PTR_ATTACK_DOWN_2_STAGES,
MOVE_SUBSCRIPT_PTR_DEFENSE_DOWN_2_STAGES,
MOVE_SUBSCRIPT_PTR_SPEED_DOWN_2_STAGES,
MOVE_SUBSCRIPT_PTR_SP_ATTACK_DOWN_2_STAGES,
MOVE_SUBSCRIPT_PTR_SP_DEFENSE_DOWN_2_STAGES,
MOVE_SUBSCRIPT_PTR_ACCURACY_DOWN_2_STAGES,
MOVE_SUBSCRIPT_PTR_EVASION_DOWN_2_STAGES,
MOVE_SUBSCRIPT_PTR_THRASH,
MOVE_SUBSCRIPT_PTR_KNOCK_OFF,
MOVE_SUBSCRIPT_PTR_USER_DEF_AND_SPDEF_UP_1_STAGE,
MOVE_SUBSCRIPT_PTR_USER_ATK_AND_DEF_UP_1_STAGE,
MOVE_SUBSCRIPT_PTR_TARGET_ATK_AND_DEF_DOWN_1_STAGE,
MOVE_SUBSCRIPT_PTR_USER_SPATK_AND_SPDEF_UP_1_STAGE,
MOVE_SUBSCRIPT_PTR_USER_ATK_AND_SPEED_UP_1_STAGE,
MOVE_SUBSCRIPT_PTR_DRAIN_HALF_DAMAGE_DEALT,
MOVE_SUBSCRIPT_PTR_DREAM_EATER,
MOVE_SUBSCRIPT_PTR_RESET_ALL_STAT_STAGES,
MOVE_SUBSCRIPT_PTR_BIDE_START,
MOVE_SUBSCRIPT_PTR_STRUGGLE,
MOVE_SUBSCRIPT_PTR_CONVERSION,
MOVE_SUBSCRIPT_PTR_RECOVER_HALF_MAX_HP,
MOVE_SUBSCRIPT_PTR_LIGHT_SCREEN,
MOVE_SUBSCRIPT_PTR_REFLECT,
MOVE_SUBSCRIPT_PTR_MIST,
MOVE_SUBSCRIPT_PTR_FOCUS_ENERGY,
MOVE_SUBSCRIPT_PTR_MIMIC,
MOVE_SUBSCRIPT_PTR_LEECH_SEED_START,
MOVE_SUBSCRIPT_PTR_DISABLE_START,
MOVE_SUBSCRIPT_PTR_ENCORE_START,
MOVE_SUBSCRIPT_PTR_PAIN_SPLIT,
MOVE_SUBSCRIPT_PTR_CONVERSION_2,
MOVE_SUBSCRIPT_PTR_LOCK_ON,
MOVE_SUBSCRIPT_PTR_SKETCH,
MOVE_SUBSCRIPT_PTR_FEINT,
MOVE_SUBSCRIPT_PTR_DESTINY_BOND,
MOVE_SUBSCRIPT_PTR_REDUCE_TARGET_PP,
MOVE_SUBSCRIPT_PTR_PROTECT,
MOVE_SUBSCRIPT_PTR_HEAL_BELL,
MOVE_SUBSCRIPT_PTR_TRY_SUBSTITUTE,
MOVE_SUBSCRIPT_PTR_FORCE_TARGET_TO_SWITCH_OR_FLEE,
MOVE_SUBSCRIPT_PTR_TRANSFORM_INTO_TARGET,
MOVE_SUBSCRIPT_PTR_MINIMIZE,
MOVE_SUBSCRIPT_PTR_CURSE_NORMAL,
MOVE_SUBSCRIPT_PTR_CURSE_GHOST,
MOVE_SUBSCRIPT_PTR_PRINT_MESSAGE_AND_PLAY_ANIMATION,
MOVE_SUBSCRIPT_PTR_FORESIGHT,
MOVE_SUBSCRIPT_PTR_PERISH_SONG_START,
MOVE_SUBSCRIPT_PTR_WEATHER_START,
MOVE_SUBSCRIPT_PTR_SWAGGER,
MOVE_SUBSCRIPT_PTR_INFATUATE,
MOVE_SUBSCRIPT_PTR_SAFEGUARD_START,
MOVE_SUBSCRIPT_PTR_PRESENT_HEAL,
MOVE_SUBSCRIPT_PTR_MAGNITUDE,
MOVE_SUBSCRIPT_PTR_BATON_PASS,
MOVE_SUBSCRIPT_PTR_BELLY_DRUM,
MOVE_SUBSCRIPT_PTR_TELEPORT,
MOVE_SUBSCRIPT_PTR_FUTURE_SIGHT_START,
MOVE_SUBSCRIPT_PTR_STOCKPILE,
MOVE_SUBSCRIPT_PTR_SWALLOW,
MOVE_SUBSCRIPT_PTR_TORMENT_START,
MOVE_SUBSCRIPT_PTR_FLATTER,
MOVE_SUBSCRIPT_PTR_MEMENTO,
MOVE_SUBSCRIPT_PTR_CHARGE,
MOVE_SUBSCRIPT_PTR_TAUNT_START,
MOVE_SUBSCRIPT_PTR_EXCHANGE_ITEMS,
MOVE_SUBSCRIPT_PTR_COPY_ABILITY,
MOVE_SUBSCRIPT_PTR_BREAK_SCREENS,
MOVE_SUBSCRIPT_PTR_YAWN,
MOVE_SUBSCRIPT_PTR_EXCHANGE_ABILITIES,
MOVE_SUBSCRIPT_PTR_RECOVER_PSN_PRZ_BRN,
MOVE_SUBSCRIPT_PTR_ROOST,
MOVE_SUBSCRIPT_PTR_HEAL_TARGET_SLEEP,
MOVE_SUBSCRIPT_PTR_GRAVITY_START,
MOVE_SUBSCRIPT_PTR_MIRACLE_EYE,
MOVE_SUBSCRIPT_PTR_HEALING_WISH,
MOVE_SUBSCRIPT_PTR_TAILWIND_START,
MOVE_SUBSCRIPT_PTR_USER_DEF_AND_SPDEF_DOWN_1_STAGE,
MOVE_SUBSCRIPT_PTR_USER_SWAP_ATK_AND_DEF,
MOVE_SUBSCRIPT_PTR_SUPPRESS_TARGET_ABILITY,
MOVE_SUBSCRIPT_PTR_LUCKY_CHANT_START,
MOVE_SUBSCRIPT_PTR_EXCHANGE_ATK_AND_SPATK_STAGES,
MOVE_SUBSCRIPT_PTR_EXCHANGE_DEF_AND_SPDEF_STAGES,
MOVE_SUBSCRIPT_PTR_GIVE_TARGET_INSOMNIA,
MOVE_SUBSCRIPT_PTR_EXCHANGE_ALL_STAT_STAGES,
MOVE_SUBSCRIPT_PTR_RECOIL_1_3_CHANCE_TO_BURN,
MOVE_SUBSCRIPT_PTR_DEFOG,
MOVE_SUBSCRIPT_PTR_HEAL_BLOCK_START,
MOVE_SUBSCRIPT_PTR_ATTACK_THEN_SWITCH_OUT,
MOVE_SUBSCRIPT_PTR_EMBARGO_START,
MOVE_SUBSCRIPT_PTR_PLUCK,
MOVE_SUBSCRIPT_PTR_FLING,
MOVE_SUBSCRIPT_PTR_RECOIL_1_3_CHANCE_TO_PARALYZE,
MOVE_SUBSCRIPT_PTR_RECOIL_1_2,
MOVE_SUBSCRIPT_PTR_BURN_OR_FLINCH,
MOVE_SUBSCRIPT_PTR_FREEZE_OR_FLINCH,
MOVE_SUBSCRIPT_PTR_PARALYZE_OR_FLINCH,
MOVE_SUBSCRIPT_PTR_CHATTER,
MOVE_SUBSCRIPT_PTR_LUNAR_DANCE,
MOVE_SUBSCRIPT_PTR_GIVE_TARGET_OWN_STATUS,

MOVE_SUBSCRIPT_PTR_MAX = MOVE_SIDE_EFFECT_SUBSCRIPT_POINTER,
};

enum SideEffectType {
SIDE_EFFECT_TYPE_NONE = 0, //< No side effect to apply
SIDE_EFFECT_TYPE_DIRECT, //< A direct side effect; used for, e.g., status moves whose only purpose is the effect
SIDE_EFFECT_TYPE_INDIRECT, //< An indirect side effect; used for moves which deal damage and have some secondary effect
SIDE_EFFECT_TYPE_ABILITY, //< An effect applied from an ability, e.g. Effect Spore or Static
SIDE_EFFECT_TYPE_MOVE_EFFECT, //< An effect which comes from another move's effect, e.g. Yawn, where the sleep is delayed
SIDE_EFFECT_TYPE_HELD_ITEM, //< An effect which comes from a held item, e.g. Flame Orb
SIDE_EFFECT_TYPE_TOXIC_SPIKES, //< An effect which comes from specifically Toxic Spikes
SIDE_EFFECT_TYPE_DISOBEDIENCE, //< An effect which comes from a Pokemon disobeying its trainer
};

#endif // POKEPLATINUM_CONSTANTS_BATTLE_SIDE_EFFECTS_H
4 changes: 3 additions & 1 deletion include/constants/battle/system_control.h
Original file line number Diff line number Diff line change
@@ -30,7 +30,9 @@
#define SYSCTL_MAGIC_COAT_REFLECTED (1 << 3)
#define SYSCTL_UTURN_ACTIVE (1 << 4)
#define SYSCTL_MOVE_SUCCEEDED (1 << 6) // this only reflects that the move is executed, not whether it hit or missed
#define SYSCTL_LINK_WAITING ((1 << 24) | (1 << 25) | (1 << 26) | (1 << 27))
#define SYSCTL_FORM_CHANGE (1 << 26)

#define SYSCTL_LINK_WAITING ((1 << 24) | (1 << 25) | SYSCTL_FORM_CHANGE | (1 << 27))
#define SYSCTL_PAYOUT_EXP ((1 << 28) | (1 << 29) | (1 << 30) | (1 << 31))

#define SYSCTL_LINK_WAITING_SHIFT 24
2 changes: 1 addition & 1 deletion include/constants/items.h
Original file line number Diff line number Diff line change
@@ -149,7 +149,7 @@ enum {
#define HOLD_EFFECT_ACCURACY_UP_SLOWER 104
#define HOLD_EFFECT_BOOST_REPEATED 105
#define HOLD_EFFECT_SPEED_DOWN_GROUNDED 106
#define HOLD_EFFECT_SPEED_DOWN 107
#define HOLD_EFFECT_PRIORITY_DOWN 107
#define HOLD_EFFECT_RECIPROCATE_INFAT 108
#define HOLD_EFFECT_HP_RESTORE_PSN_TYPE 109
#define HOLD_EFFECT_EXTEND_HAIL 110
Loading

0 comments on commit f24d87f

Please sign in to comment.