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
  • Loading branch information
lhearachel authored Nov 6, 2023
2 parents 9d26c9f + 7024567 commit f24d87f
Show file tree
Hide file tree
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
Expand Up @@ -164,7 +164,7 @@ struct BattleContext {

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

int scriptNarc;
int scriptFile;
Expand Down
35 changes: 35 additions & 0 deletions include/battle/battle_controller.h
Original file line number Diff line number Diff line change
Expand Up @@ -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.
*
Expand Down
2 changes: 1 addition & 1 deletion include/battle/common.h
Original file line number Diff line number Diff line change
Expand Up @@ -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,

Expand Down
1 change: 0 additions & 1 deletion include/constants/battle.h
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
25 changes: 25 additions & 0 deletions include/constants/battle/condition.h
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand All @@ -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
Expand Down
4 changes: 3 additions & 1 deletion include/constants/battle/system_control.h
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion include/constants/items.h
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
Loading

0 comments on commit f24d87f

Please sign in to comment.