mirror of
https://github.com/pret/pokeplatinum.git
synced 2026-04-25 15:49:02 -05:00
Use generated sub_seq.naix header in C sources
This commit is contained in:
parent
fefa621f09
commit
1bc1c14772
|
|
@ -14,7 +14,6 @@ gen_asm_consts_root = gen_consts_root / 'asm'
|
|||
gen_py_consts_root = gen_consts_root / 'py'
|
||||
|
||||
generated_consts_c = custom_target('generated_consts_c',
|
||||
build_by_default: true,
|
||||
capture: true,
|
||||
output: 'generated_consts_c',
|
||||
input: consts_manifests,
|
||||
|
|
@ -27,7 +26,6 @@ generated_consts_c = custom_target('generated_consts_c',
|
|||
)
|
||||
|
||||
generated_consts_asm = custom_target('generated_consts_asm',
|
||||
build_by_default: true,
|
||||
capture: true,
|
||||
output: 'generated_consts_asm',
|
||||
input: consts_manifests,
|
||||
|
|
@ -40,7 +38,6 @@ generated_consts_asm = custom_target('generated_consts_asm',
|
|||
)
|
||||
|
||||
generated_consts_py = custom_target('generated_consts_py',
|
||||
build_by_default: true,
|
||||
capture: true,
|
||||
output: 'generated_consts_py',
|
||||
input: consts_manifests,
|
||||
|
|
|
|||
|
|
@ -208,6 +208,7 @@ c_commands = [
|
|||
f'-iquote{homedir}',
|
||||
f'-iquote{homedir}/include',
|
||||
f'-iquote{homedir}/build', # Meson includes this implicitly
|
||||
f'-iquote{homedir}/build/res', # knarc-generated NAIX headers
|
||||
f'-iquote{homedir}/build/res/text', # GMM-generated headers
|
||||
f'-include{homedir}/include/pch/global_pch.h',
|
||||
'-mthumb',
|
||||
|
|
|
|||
|
|
@ -1,152 +1,152 @@
|
|||
#include "constants/battle/side_effects.h"
|
||||
|
||||
#include "battle/scripts/sub_seq.naix"
|
||||
#include "consts/generated/c/battle.h"
|
||||
#include "consts/generated/c/battle_subscripts.h"
|
||||
|
||||
static const int sSideEffectSubscripts[] = {
|
||||
[MOVE_SUBSCRIPT_PTR_NONE] = NULL,
|
||||
[MOVE_SUBSCRIPT_PTR_SLEEP] = BATTLE_SUBSCRIPT_FALL_ASLEEP,
|
||||
[MOVE_SUBSCRIPT_PTR_POISON] = BATTLE_SUBSCRIPT_POISON,
|
||||
[MOVE_SUBSCRIPT_PTR_BURN] = BATTLE_SUBSCRIPT_BURN,
|
||||
[MOVE_SUBSCRIPT_PTR_FREEZE] = BATTLE_SUBSCRIPT_FREEZE,
|
||||
[MOVE_SUBSCRIPT_PTR_PARALYZE] = BATTLE_SUBSCRIPT_PARALYZE,
|
||||
[MOVE_SUBSCRIPT_PTR_BADLY_POISON] = BATTLE_SUBSCRIPT_BADLY_POISON,
|
||||
[MOVE_SUBSCRIPT_PTR_CONFUSE] = BATTLE_SUBSCRIPT_CONFUSE,
|
||||
[MOVE_SUBSCRIPT_PTR_FLINCH] = BATTLE_SUBSCRIPT_FLINCH_MON,
|
||||
[MOVE_SUBSCRIPT_PTR_REST] = BATTLE_SUBSCRIPT_REST,
|
||||
[MOVE_SUBSCRIPT_PTR_UPROAR] = BATTLE_SUBSCRIPT_UPROAR,
|
||||
[MOVE_SUBSCRIPT_PTR_PAY_DAY] = BATTLE_SUBSCRIPT_PAY_DAY,
|
||||
[MOVE_SUBSCRIPT_PTR_VANISH_CHARGE_TURN] = BATTLE_SUBSCRIPT_VANISH_ON_CHARGE_TURN,
|
||||
[MOVE_SUBSCRIPT_PTR_BIND_TARGET] = BATTLE_SUBSCRIPT_BIND_START,
|
||||
[MOVE_SUBSCRIPT_PTR_QUARTER_RECOIL] = BATTLE_SUBSCRIPT_RECOIL_1_4,
|
||||
[MOVE_SUBSCRIPT_PTR_ATTACK_UP_1_STAGE] = BATTLE_SUBSCRIPT_UPDATE_STAT_STAGE,
|
||||
[MOVE_SUBSCRIPT_PTR_DEFENSE_UP_1_STAGE] = BATTLE_SUBSCRIPT_UPDATE_STAT_STAGE,
|
||||
[MOVE_SUBSCRIPT_PTR_SPEED_UP_1_STAGE] = BATTLE_SUBSCRIPT_UPDATE_STAT_STAGE,
|
||||
[MOVE_SUBSCRIPT_PTR_SP_ATTACK_UP_1_STAGE] = BATTLE_SUBSCRIPT_UPDATE_STAT_STAGE,
|
||||
[MOVE_SUBSCRIPT_PTR_SP_DEFENSE_UP_1_STAGE] = BATTLE_SUBSCRIPT_UPDATE_STAT_STAGE,
|
||||
[MOVE_SUBSCRIPT_PTR_ACCURACY_UP_1_STAGE] = BATTLE_SUBSCRIPT_UPDATE_STAT_STAGE,
|
||||
[MOVE_SUBSCRIPT_PTR_EVASION_UP_1_STAGE] = BATTLE_SUBSCRIPT_UPDATE_STAT_STAGE,
|
||||
[MOVE_SUBSCRIPT_PTR_ATTACK_DOWN_1_STAGE] = BATTLE_SUBSCRIPT_UPDATE_STAT_STAGE,
|
||||
[MOVE_SUBSCRIPT_PTR_DEFENSE_DOWN_1_STAGE] = BATTLE_SUBSCRIPT_UPDATE_STAT_STAGE,
|
||||
[MOVE_SUBSCRIPT_PTR_SPEED_DOWN_1_STAGE] = BATTLE_SUBSCRIPT_UPDATE_STAT_STAGE,
|
||||
[MOVE_SUBSCRIPT_PTR_SP_ATTACK_DOWN_1_STAGE] = BATTLE_SUBSCRIPT_UPDATE_STAT_STAGE,
|
||||
[MOVE_SUBSCRIPT_PTR_SP_DEFENSE_DOWN_1_STAGE] = BATTLE_SUBSCRIPT_UPDATE_STAT_STAGE,
|
||||
[MOVE_SUBSCRIPT_PTR_ACCURACY_DOWN_1_STAGE] = BATTLE_SUBSCRIPT_UPDATE_STAT_STAGE,
|
||||
[MOVE_SUBSCRIPT_PTR_EVASION_DOWN_1_STAGE] = BATTLE_SUBSCRIPT_UPDATE_STAT_STAGE,
|
||||
[MOVE_SUBSCRIPT_PTR_RECHARGE_TURN] = BATTLE_SUBSCRIPT_RECHARGE_TURN,
|
||||
[MOVE_SUBSCRIPT_PTR_SET_RAGE_FLAG] = BATTLE_SUBSCRIPT_SET_RAGE_FLAG,
|
||||
[MOVE_SUBSCRIPT_PTR_STEAL_ITEM] = BATTLE_SUBSCRIPT_STEAL_ITEM,
|
||||
[MOVE_SUBSCRIPT_PTR_MEAN_LOOK] = BATTLE_SUBSCRIPT_MEAN_LOOK,
|
||||
[MOVE_SUBSCRIPT_PTR_NIGHTMARE_START] = BATTLE_SUBSCRIPT_NIGHTMARE_START,
|
||||
[MOVE_SUBSCRIPT_PTR_BOOST_ALL_STATS] = BATTLE_SUBSCRIPT_BOOST_ALL_STATS,
|
||||
[MOVE_SUBSCRIPT_PTR_RAPID_SPIN] = BATTLE_SUBSCRIPT_RAPID_SPIN,
|
||||
[MOVE_SUBSCRIPT_PTR_HEAL_TARGET_PARALYSIS] = BATTLE_SUBSCRIPT_HEAL_TARGET_PARALYSIS,
|
||||
[MOVE_SUBSCRIPT_PTR_USER_ATK_AND_DEF_DOWN_1_STAGE] = BATTLE_SUBSCRIPT_USER_ATK_AND_DEF_DOWN_1_STAGE,
|
||||
[MOVE_SUBSCRIPT_PTR_RECOIL_1_3] = BATTLE_SUBSCRIPT_RECOIL_1_3,
|
||||
[MOVE_SUBSCRIPT_PTR_ATTACK_UP_2_STAGES] = BATTLE_SUBSCRIPT_UPDATE_STAT_STAGE,
|
||||
[MOVE_SUBSCRIPT_PTR_DEFENSE_UP_2_STAGES] = BATTLE_SUBSCRIPT_UPDATE_STAT_STAGE,
|
||||
[MOVE_SUBSCRIPT_PTR_SPEED_UP_2_STAGES] = BATTLE_SUBSCRIPT_UPDATE_STAT_STAGE,
|
||||
[MOVE_SUBSCRIPT_PTR_SP_ATTACK_UP_2_STAGES] = BATTLE_SUBSCRIPT_UPDATE_STAT_STAGE,
|
||||
[MOVE_SUBSCRIPT_PTR_SP_DEFENSE_UP_2_STAGES] = BATTLE_SUBSCRIPT_UPDATE_STAT_STAGE,
|
||||
[MOVE_SUBSCRIPT_PTR_ACCURACY_UP_2_STAGES] = BATTLE_SUBSCRIPT_UPDATE_STAT_STAGE,
|
||||
[MOVE_SUBSCRIPT_PTR_EVASION_UP_2_STAGES] = BATTLE_SUBSCRIPT_UPDATE_STAT_STAGE,
|
||||
[MOVE_SUBSCRIPT_PTR_ATTACK_DOWN_2_STAGES] = BATTLE_SUBSCRIPT_UPDATE_STAT_STAGE,
|
||||
[MOVE_SUBSCRIPT_PTR_DEFENSE_DOWN_2_STAGES] = BATTLE_SUBSCRIPT_UPDATE_STAT_STAGE,
|
||||
[MOVE_SUBSCRIPT_PTR_SPEED_DOWN_2_STAGES] = BATTLE_SUBSCRIPT_UPDATE_STAT_STAGE,
|
||||
[MOVE_SUBSCRIPT_PTR_SP_ATTACK_DOWN_2_STAGES] = BATTLE_SUBSCRIPT_UPDATE_STAT_STAGE,
|
||||
[MOVE_SUBSCRIPT_PTR_SP_DEFENSE_DOWN_2_STAGES] = BATTLE_SUBSCRIPT_UPDATE_STAT_STAGE,
|
||||
[MOVE_SUBSCRIPT_PTR_ACCURACY_DOWN_2_STAGES] = BATTLE_SUBSCRIPT_UPDATE_STAT_STAGE,
|
||||
[MOVE_SUBSCRIPT_PTR_EVASION_DOWN_2_STAGES] = BATTLE_SUBSCRIPT_UPDATE_STAT_STAGE,
|
||||
[MOVE_SUBSCRIPT_PTR_THRASH] = BATTLE_SUBSCRIPT_THRASH,
|
||||
[MOVE_SUBSCRIPT_PTR_KNOCK_OFF] = BATTLE_SUBSCRIPT_KNOCK_OFF,
|
||||
[MOVE_SUBSCRIPT_PTR_USER_DEF_AND_SPDEF_UP_1_STAGE] = BATTLE_SUBSCRIPT_USER_DEF_AND_SPDEF_UP_1_STAGE,
|
||||
[MOVE_SUBSCRIPT_PTR_USER_ATK_AND_DEF_UP_1_STAGE] = BATTLE_SUBSCRIPT_USER_ATK_AND_DEF_UP_1_STAGE,
|
||||
[MOVE_SUBSCRIPT_PTR_TARGET_ATK_AND_DEF_DOWN_1_STAGE] = BATTLE_SUBSCRIPT_TARGET_ATK_AND_DEF_DOWN_1_STAGE,
|
||||
[MOVE_SUBSCRIPT_PTR_USER_SPATK_AND_SPDEF_UP_1_STAGE] = BATTLE_SUBSCRIPT_USER_SPATK_AND_SPDEF_UP_1_STAGE,
|
||||
[MOVE_SUBSCRIPT_PTR_USER_ATK_AND_SPEED_UP_1_STAGE] = BATTLE_SUBSCRIPT_USER_ATK_AND_SPEED_UP_1_STAGE,
|
||||
[MOVE_SUBSCRIPT_PTR_DRAIN_HALF_DAMAGE_DEALT] = BATTLE_SUBSCRIPT_DRAIN_HALF_DAMAGE_DEALT,
|
||||
[MOVE_SUBSCRIPT_PTR_DREAM_EATER] = BATTLE_SUBSCRIPT_DREAM_EATER,
|
||||
[MOVE_SUBSCRIPT_PTR_RESET_ALL_STAT_STAGES] = BATTLE_SUBSCRIPT_RESET_ALL_STAT_STAGES,
|
||||
[MOVE_SUBSCRIPT_PTR_BIDE_START] = BATTLE_SUBSCRIPT_BIDE_START,
|
||||
[MOVE_SUBSCRIPT_PTR_STRUGGLE] = BATTLE_SUBSCRIPT_STRUGGLE,
|
||||
[MOVE_SUBSCRIPT_PTR_CONVERSION] = BATTLE_SUBSCRIPT_CONVERSION,
|
||||
[MOVE_SUBSCRIPT_PTR_RECOVER_HALF_MAX_HP] = BATTLE_SUBSCRIPT_RECOVER_HALF_MAX_HP,
|
||||
[MOVE_SUBSCRIPT_PTR_LIGHT_SCREEN] = BATTLE_SUBSCRIPT_LIGHT_SCREEN,
|
||||
[MOVE_SUBSCRIPT_PTR_REFLECT] = BATTLE_SUBSCRIPT_REFLECT,
|
||||
[MOVE_SUBSCRIPT_PTR_MIST] = BATTLE_SUBSCRIPT_MIST,
|
||||
[MOVE_SUBSCRIPT_PTR_FOCUS_ENERGY] = BATTLE_SUBSCRIPT_FOCUS_ENERGY,
|
||||
[MOVE_SUBSCRIPT_PTR_MIMIC] = BATTLE_SUBSCRIPT_MIMIC,
|
||||
[MOVE_SUBSCRIPT_PTR_LEECH_SEED_START] = BATTLE_SUBSCRIPT_LEECH_SEED_START,
|
||||
[MOVE_SUBSCRIPT_PTR_DISABLE_START] = BATTLE_SUBSCRIPT_DISABLE_START,
|
||||
[MOVE_SUBSCRIPT_PTR_ENCORE_START] = BATTLE_SUBSCRIPT_ENCORE_START,
|
||||
[MOVE_SUBSCRIPT_PTR_PAIN_SPLIT] = BATTLE_SUBSCRIPT_PAIN_SPLIT,
|
||||
[MOVE_SUBSCRIPT_PTR_CONVERSION_2] = BATTLE_SUBSCRIPT_CONVERSION_2,
|
||||
[MOVE_SUBSCRIPT_PTR_LOCK_ON] = BATTLE_SUBSCRIPT_LOCK_ON,
|
||||
[MOVE_SUBSCRIPT_PTR_SKETCH] = BATTLE_SUBSCRIPT_SKETCH,
|
||||
[MOVE_SUBSCRIPT_PTR_FEINT] = BATTLE_SUBSCRIPT_FEINT,
|
||||
[MOVE_SUBSCRIPT_PTR_DESTINY_BOND] = BATTLE_SUBSCRIPT_DESTINY_BOND,
|
||||
[MOVE_SUBSCRIPT_PTR_REDUCE_TARGET_PP] = BATTLE_SUBSCRIPT_REDUCE_TARGET_PP,
|
||||
[MOVE_SUBSCRIPT_PTR_PROTECT] = BATTLE_SUBSCRIPT_PROTECT,
|
||||
[MOVE_SUBSCRIPT_PTR_HEAL_BELL] = BATTLE_SUBSCRIPT_HEAL_BELL,
|
||||
[MOVE_SUBSCRIPT_PTR_TRY_SUBSTITUTE] = BATTLE_SUBSCRIPT_TRY_SUBSTITUTE,
|
||||
[MOVE_SUBSCRIPT_PTR_FORCE_TARGET_TO_SWITCH_OR_FLEE] = BATTLE_SUBSCRIPT_FORCE_TARGET_TO_SWITCH_OR_FLEE,
|
||||
[MOVE_SUBSCRIPT_PTR_TRANSFORM_INTO_TARGET] = BATTLE_SUBSCRIPT_TRANSFORM_INTO_TARGET,
|
||||
[MOVE_SUBSCRIPT_PTR_MINIMIZE] = BATTLE_SUBSCRIPT_MINIMIZE,
|
||||
[MOVE_SUBSCRIPT_PTR_CURSE_NORMAL] = BATTLE_SUBSCRIPT_CURSE_NORMAL,
|
||||
[MOVE_SUBSCRIPT_PTR_CURSE_GHOST] = BATTLE_SUBSCRIPT_CURSE_GHOST,
|
||||
[MOVE_SUBSCRIPT_PTR_PRINT_MESSAGE_AND_PLAY_ANIMATION] = BATTLE_SUBSCRIPT_PRINT_MESSAGE_AND_PLAY_ANIMATION,
|
||||
[MOVE_SUBSCRIPT_PTR_FORESIGHT] = BATTLE_SUBSCRIPT_FORESIGHT,
|
||||
[MOVE_SUBSCRIPT_PTR_PERISH_SONG_START] = BATTLE_SUBSCRIPT_PERISH_SONG_START,
|
||||
[MOVE_SUBSCRIPT_PTR_WEATHER_START] = BATTLE_SUBSCRIPT_WEATHER_START,
|
||||
[MOVE_SUBSCRIPT_PTR_SWAGGER] = BATTLE_SUBSCRIPT_SWAGGER,
|
||||
[MOVE_SUBSCRIPT_PTR_INFATUATE] = BATTLE_SUBSCRIPT_INFATUATE,
|
||||
[MOVE_SUBSCRIPT_PTR_SAFEGUARD_START] = BATTLE_SUBSCRIPT_SAFEGUARD_START,
|
||||
[MOVE_SUBSCRIPT_PTR_PRESENT_HEAL] = BATTLE_SUBSCRIPT_PRESENT_HEAL,
|
||||
[MOVE_SUBSCRIPT_PTR_MAGNITUDE] = BATTLE_SUBSCRIPT_MAGNITUDE,
|
||||
[MOVE_SUBSCRIPT_PTR_BATON_PASS] = BATTLE_SUBSCRIPT_BATON_PASS,
|
||||
[MOVE_SUBSCRIPT_PTR_BELLY_DRUM] = BATTLE_SUBSCRIPT_BELLY_DRUM,
|
||||
[MOVE_SUBSCRIPT_PTR_TELEPORT] = BATTLE_SUBSCRIPT_TELEPORT,
|
||||
[MOVE_SUBSCRIPT_PTR_FUTURE_SIGHT_START] = BATTLE_SUBSCRIPT_FUTURE_SIGHT_START,
|
||||
[MOVE_SUBSCRIPT_PTR_STOCKPILE] = BATTLE_SUBSCRIPT_STOCKPILE,
|
||||
[MOVE_SUBSCRIPT_PTR_SWALLOW] = BATTLE_SUBSCRIPT_SWALLOW,
|
||||
[MOVE_SUBSCRIPT_PTR_TORMENT_START] = BATTLE_SUBSCRIPT_TORMENT_START,
|
||||
[MOVE_SUBSCRIPT_PTR_FLATTER] = BATTLE_SUBSCRIPT_FLATTER,
|
||||
[MOVE_SUBSCRIPT_PTR_MEMENTO] = BATTLE_SUBSCRIPT_MEMENTO,
|
||||
[MOVE_SUBSCRIPT_PTR_CHARGE] = BATTLE_SUBSCRIPT_CHARGE,
|
||||
[MOVE_SUBSCRIPT_PTR_TAUNT_START] = BATTLE_SUBSCRIPT_TAUNT_START,
|
||||
[MOVE_SUBSCRIPT_PTR_EXCHANGE_ITEMS] = BATTLE_SUBSCRIPT_EXCHANGE_ITEMS,
|
||||
[MOVE_SUBSCRIPT_PTR_COPY_ABILITY] = BATTLE_SUBSCRIPT_COPY_ABILITY,
|
||||
[MOVE_SUBSCRIPT_PTR_BREAK_SCREENS] = BATTLE_SUBSCRIPT_BREAK_SCREENS,
|
||||
[MOVE_SUBSCRIPT_PTR_YAWN] = BATTLE_SUBSCRIPT_YAWN,
|
||||
[MOVE_SUBSCRIPT_PTR_EXCHANGE_ABILITIES] = BATTLE_SUBSCRIPT_EXCHANGE_ABILITIES,
|
||||
[MOVE_SUBSCRIPT_PTR_RECOVER_PSN_PRZ_BRN] = BATTLE_SUBSCRIPT_RECOVER_PSN_PRZ_BRN,
|
||||
[MOVE_SUBSCRIPT_PTR_ROOST] = BATTLE_SUBSCRIPT_ROOST,
|
||||
[MOVE_SUBSCRIPT_PTR_HEAL_TARGET_SLEEP] = BATTLE_SUBSCRIPT_HEAL_TARGET_SLEEP,
|
||||
[MOVE_SUBSCRIPT_PTR_GRAVITY_START] = BATTLE_SUBSCRIPT_GRAVITY_START,
|
||||
[MOVE_SUBSCRIPT_PTR_MIRACLE_EYE] = BATTLE_SUBSCRIPT_MIRACLE_EYE,
|
||||
[MOVE_SUBSCRIPT_PTR_HEALING_WISH] = BATTLE_SUBSCRIPT_HEALING_WISH,
|
||||
[MOVE_SUBSCRIPT_PTR_TAILWIND_START] = BATTLE_SUBSCRIPT_TAILWIND_START,
|
||||
[MOVE_SUBSCRIPT_PTR_USER_DEF_AND_SPDEF_DOWN_1_STAGE] = BATTLE_SUBSCRIPT_USER_DEF_AND_SPDEF_DOWN_1_STAGE,
|
||||
[MOVE_SUBSCRIPT_PTR_USER_SWAP_ATK_AND_DEF] = BATTLE_SUBSCRIPT_USER_SWAP_ATK_AND_DEF,
|
||||
[MOVE_SUBSCRIPT_PTR_SUPPRESS_TARGET_ABILITY] = BATTLE_SUBSCRIPT_SUPPRESS_TARGET_ABILITY,
|
||||
[MOVE_SUBSCRIPT_PTR_LUCKY_CHANT_START] = BATTLE_SUBSCRIPT_LUCKY_CHANT_START,
|
||||
[MOVE_SUBSCRIPT_PTR_EXCHANGE_ATK_AND_SPATK_STAGES] = BATTLE_SUBSCRIPT_EXCHANGE_ATK_AND_SPATK_STAGES,
|
||||
[MOVE_SUBSCRIPT_PTR_EXCHANGE_DEF_AND_SPDEF_STAGES] = BATTLE_SUBSCRIPT_EXCHANGE_DEF_AND_SPDEF_STAGES,
|
||||
[MOVE_SUBSCRIPT_PTR_GIVE_TARGET_INSOMNIA] = BATTLE_SUBSCRIPT_GIVE_TARGET_INSOMNIA,
|
||||
[MOVE_SUBSCRIPT_PTR_EXCHANGE_ALL_STAT_STAGES] = BATTLE_SUBSCRIPT_EXCHANGE_ALL_STAT_STAGES,
|
||||
[MOVE_SUBSCRIPT_PTR_RECOIL_1_3_CHANCE_TO_BURN] = BATTLE_SUBSCRIPT_RECOIL_1_3_CHANCE_TO_BURN,
|
||||
[MOVE_SUBSCRIPT_PTR_DEFOG] = BATTLE_SUBSCRIPT_DEFOG,
|
||||
[MOVE_SUBSCRIPT_PTR_HEAL_BLOCK_START] = BATTLE_SUBSCRIPT_HEAL_BLOCK_START,
|
||||
[MOVE_SUBSCRIPT_PTR_ATTACK_THEN_SWITCH_OUT] = BATTLE_SUBSCRIPT_ATTACK_THEN_SWITCH_OUT,
|
||||
[MOVE_SUBSCRIPT_PTR_EMBARGO_START] = BATTLE_SUBSCRIPT_EMBARGO_START,
|
||||
[MOVE_SUBSCRIPT_PTR_PLUCK] = BATTLE_SUBSCRIPT_PLUCK,
|
||||
[MOVE_SUBSCRIPT_PTR_FLING] = BATTLE_SUBSCRIPT_FLING,
|
||||
[MOVE_SUBSCRIPT_PTR_RECOIL_1_3_CHANCE_TO_PARALYZE] = BATTLE_SUBSCRIPT_RECOIL_1_3_CHANCE_TO_PARALYZE,
|
||||
[MOVE_SUBSCRIPT_PTR_RECOIL_1_2] = BATTLE_SUBSCRIPT_RECOIL_1_2,
|
||||
[MOVE_SUBSCRIPT_PTR_BURN_OR_FLINCH] = BATTLE_SUBSCRIPT_BURN_OR_FLINCH,
|
||||
[MOVE_SUBSCRIPT_PTR_FREEZE_OR_FLINCH] = BATTLE_SUBSCRIPT_FREEZE_OR_FLINCH,
|
||||
[MOVE_SUBSCRIPT_PTR_PARALYZE_OR_FLINCH] = BATTLE_SUBSCRIPT_PARALYZE_OR_FLINCH,
|
||||
[MOVE_SUBSCRIPT_PTR_CHATTER] = BATTLE_SUBSCRIPT_CHATTER,
|
||||
[MOVE_SUBSCRIPT_PTR_LUNAR_DANCE] = BATTLE_SUBSCRIPT_LUNAR_DANCE,
|
||||
[MOVE_SUBSCRIPT_PTR_GIVE_TARGET_OWN_STATUS] = BATTLE_SUBSCRIPT_GIVE_TARGET_OWN_STATUS,
|
||||
[MOVE_SUBSCRIPT_PTR_SLEEP] = subscript_fall_asleep,
|
||||
[MOVE_SUBSCRIPT_PTR_POISON] = subscript_poison,
|
||||
[MOVE_SUBSCRIPT_PTR_BURN] = subscript_burn,
|
||||
[MOVE_SUBSCRIPT_PTR_FREEZE] = subscript_freeze,
|
||||
[MOVE_SUBSCRIPT_PTR_PARALYZE] = subscript_paralyze,
|
||||
[MOVE_SUBSCRIPT_PTR_BADLY_POISON] = subscript_badly_poison,
|
||||
[MOVE_SUBSCRIPT_PTR_CONFUSE] = subscript_confuse,
|
||||
[MOVE_SUBSCRIPT_PTR_FLINCH] = subscript_flinch_mon,
|
||||
[MOVE_SUBSCRIPT_PTR_REST] = subscript_rest,
|
||||
[MOVE_SUBSCRIPT_PTR_UPROAR] = subscript_uproar,
|
||||
[MOVE_SUBSCRIPT_PTR_PAY_DAY] = subscript_pay_day,
|
||||
[MOVE_SUBSCRIPT_PTR_VANISH_CHARGE_TURN] = subscript_vanish_on_charge_turn,
|
||||
[MOVE_SUBSCRIPT_PTR_BIND_TARGET] = subscript_bind_start,
|
||||
[MOVE_SUBSCRIPT_PTR_QUARTER_RECOIL] = subscript_recoil_1_4,
|
||||
[MOVE_SUBSCRIPT_PTR_ATTACK_UP_1_STAGE] = subscript_update_stat_stage,
|
||||
[MOVE_SUBSCRIPT_PTR_DEFENSE_UP_1_STAGE] = subscript_update_stat_stage,
|
||||
[MOVE_SUBSCRIPT_PTR_SPEED_UP_1_STAGE] = subscript_update_stat_stage,
|
||||
[MOVE_SUBSCRIPT_PTR_SP_ATTACK_UP_1_STAGE] = subscript_update_stat_stage,
|
||||
[MOVE_SUBSCRIPT_PTR_SP_DEFENSE_UP_1_STAGE] = subscript_update_stat_stage,
|
||||
[MOVE_SUBSCRIPT_PTR_ACCURACY_UP_1_STAGE] = subscript_update_stat_stage,
|
||||
[MOVE_SUBSCRIPT_PTR_EVASION_UP_1_STAGE] = subscript_update_stat_stage,
|
||||
[MOVE_SUBSCRIPT_PTR_ATTACK_DOWN_1_STAGE] = subscript_update_stat_stage,
|
||||
[MOVE_SUBSCRIPT_PTR_DEFENSE_DOWN_1_STAGE] = subscript_update_stat_stage,
|
||||
[MOVE_SUBSCRIPT_PTR_SPEED_DOWN_1_STAGE] = subscript_update_stat_stage,
|
||||
[MOVE_SUBSCRIPT_PTR_SP_ATTACK_DOWN_1_STAGE] = subscript_update_stat_stage,
|
||||
[MOVE_SUBSCRIPT_PTR_SP_DEFENSE_DOWN_1_STAGE] = subscript_update_stat_stage,
|
||||
[MOVE_SUBSCRIPT_PTR_ACCURACY_DOWN_1_STAGE] = subscript_update_stat_stage,
|
||||
[MOVE_SUBSCRIPT_PTR_EVASION_DOWN_1_STAGE] = subscript_update_stat_stage,
|
||||
[MOVE_SUBSCRIPT_PTR_RECHARGE_TURN] = subscript_recharge_turn,
|
||||
[MOVE_SUBSCRIPT_PTR_SET_RAGE_FLAG] = subscript_set_rage_flag,
|
||||
[MOVE_SUBSCRIPT_PTR_STEAL_ITEM] = subscript_steal_item,
|
||||
[MOVE_SUBSCRIPT_PTR_MEAN_LOOK] = subscript_mean_look,
|
||||
[MOVE_SUBSCRIPT_PTR_NIGHTMARE_START] = subscript_nightmare_start,
|
||||
[MOVE_SUBSCRIPT_PTR_BOOST_ALL_STATS] = subscript_boost_all_stats,
|
||||
[MOVE_SUBSCRIPT_PTR_RAPID_SPIN] = subscript_rapid_spin,
|
||||
[MOVE_SUBSCRIPT_PTR_HEAL_TARGET_PARALYSIS] = subscript_heal_target_paralysis,
|
||||
[MOVE_SUBSCRIPT_PTR_USER_ATK_AND_DEF_DOWN_1_STAGE] = subscript_user_atk_and_def_down_1_stage,
|
||||
[MOVE_SUBSCRIPT_PTR_RECOIL_1_3] = subscript_recoil_1_3,
|
||||
[MOVE_SUBSCRIPT_PTR_ATTACK_UP_2_STAGES] = subscript_update_stat_stage,
|
||||
[MOVE_SUBSCRIPT_PTR_DEFENSE_UP_2_STAGES] = subscript_update_stat_stage,
|
||||
[MOVE_SUBSCRIPT_PTR_SPEED_UP_2_STAGES] = subscript_update_stat_stage,
|
||||
[MOVE_SUBSCRIPT_PTR_SP_ATTACK_UP_2_STAGES] = subscript_update_stat_stage,
|
||||
[MOVE_SUBSCRIPT_PTR_SP_DEFENSE_UP_2_STAGES] = subscript_update_stat_stage,
|
||||
[MOVE_SUBSCRIPT_PTR_ACCURACY_UP_2_STAGES] = subscript_update_stat_stage,
|
||||
[MOVE_SUBSCRIPT_PTR_EVASION_UP_2_STAGES] = subscript_update_stat_stage,
|
||||
[MOVE_SUBSCRIPT_PTR_ATTACK_DOWN_2_STAGES] = subscript_update_stat_stage,
|
||||
[MOVE_SUBSCRIPT_PTR_DEFENSE_DOWN_2_STAGES] = subscript_update_stat_stage,
|
||||
[MOVE_SUBSCRIPT_PTR_SPEED_DOWN_2_STAGES] = subscript_update_stat_stage,
|
||||
[MOVE_SUBSCRIPT_PTR_SP_ATTACK_DOWN_2_STAGES] = subscript_update_stat_stage,
|
||||
[MOVE_SUBSCRIPT_PTR_SP_DEFENSE_DOWN_2_STAGES] = subscript_update_stat_stage,
|
||||
[MOVE_SUBSCRIPT_PTR_ACCURACY_DOWN_2_STAGES] = subscript_update_stat_stage,
|
||||
[MOVE_SUBSCRIPT_PTR_EVASION_DOWN_2_STAGES] = subscript_update_stat_stage,
|
||||
[MOVE_SUBSCRIPT_PTR_THRASH] = subscript_thrash,
|
||||
[MOVE_SUBSCRIPT_PTR_KNOCK_OFF] = subscript_knock_off,
|
||||
[MOVE_SUBSCRIPT_PTR_USER_DEF_AND_SPDEF_UP_1_STAGE] = subscript_user_def_and_spdef_up_1_stage,
|
||||
[MOVE_SUBSCRIPT_PTR_USER_ATK_AND_DEF_UP_1_STAGE] = subscript_user_atk_and_def_up_1_stage,
|
||||
[MOVE_SUBSCRIPT_PTR_TARGET_ATK_AND_DEF_DOWN_1_STAGE] = subscript_target_atk_and_def_down_1_stage,
|
||||
[MOVE_SUBSCRIPT_PTR_USER_SPATK_AND_SPDEF_UP_1_STAGE] = subscript_user_spatk_and_spdef_up_1_stage,
|
||||
[MOVE_SUBSCRIPT_PTR_USER_ATK_AND_SPEED_UP_1_STAGE] = subscript_user_atk_and_speed_up_1_stage,
|
||||
[MOVE_SUBSCRIPT_PTR_DRAIN_HALF_DAMAGE_DEALT] = subscript_drain_half_damage_dealt,
|
||||
[MOVE_SUBSCRIPT_PTR_DREAM_EATER] = subscript_dream_eater,
|
||||
[MOVE_SUBSCRIPT_PTR_RESET_ALL_STAT_STAGES] = subscript_reset_all_stat_stages,
|
||||
[MOVE_SUBSCRIPT_PTR_BIDE_START] = subscript_bide_start,
|
||||
[MOVE_SUBSCRIPT_PTR_STRUGGLE] = subscript_struggle,
|
||||
[MOVE_SUBSCRIPT_PTR_CONVERSION] = subscript_conversion,
|
||||
[MOVE_SUBSCRIPT_PTR_RECOVER_HALF_MAX_HP] = subscript_recover_half_max_hp,
|
||||
[MOVE_SUBSCRIPT_PTR_LIGHT_SCREEN] = subscript_light_screen,
|
||||
[MOVE_SUBSCRIPT_PTR_REFLECT] = subscript_reflect,
|
||||
[MOVE_SUBSCRIPT_PTR_MIST] = subscript_mist,
|
||||
[MOVE_SUBSCRIPT_PTR_FOCUS_ENERGY] = subscript_focus_energy,
|
||||
[MOVE_SUBSCRIPT_PTR_MIMIC] = subscript_mimic,
|
||||
[MOVE_SUBSCRIPT_PTR_LEECH_SEED_START] = subscript_leech_seed_start,
|
||||
[MOVE_SUBSCRIPT_PTR_DISABLE_START] = subscript_disable_start,
|
||||
[MOVE_SUBSCRIPT_PTR_ENCORE_START] = subscript_encore_start,
|
||||
[MOVE_SUBSCRIPT_PTR_PAIN_SPLIT] = subscript_pain_split,
|
||||
[MOVE_SUBSCRIPT_PTR_CONVERSION_2] = subscript_conversion_2,
|
||||
[MOVE_SUBSCRIPT_PTR_LOCK_ON] = subscript_lock_on,
|
||||
[MOVE_SUBSCRIPT_PTR_SKETCH] = subscript_sketch,
|
||||
[MOVE_SUBSCRIPT_PTR_FEINT] = subscript_feint,
|
||||
[MOVE_SUBSCRIPT_PTR_DESTINY_BOND] = subscript_destiny_bond,
|
||||
[MOVE_SUBSCRIPT_PTR_REDUCE_TARGET_PP] = subscript_reduce_target_pp,
|
||||
[MOVE_SUBSCRIPT_PTR_PROTECT] = subscript_protect,
|
||||
[MOVE_SUBSCRIPT_PTR_HEAL_BELL] = subscript_heal_bell,
|
||||
[MOVE_SUBSCRIPT_PTR_TRY_SUBSTITUTE] = subscript_try_substitute,
|
||||
[MOVE_SUBSCRIPT_PTR_FORCE_TARGET_TO_SWITCH_OR_FLEE] = subscript_force_target_to_switch_or_flee,
|
||||
[MOVE_SUBSCRIPT_PTR_TRANSFORM_INTO_TARGET] = subscript_transform_into_target,
|
||||
[MOVE_SUBSCRIPT_PTR_MINIMIZE] = subscript_minimize,
|
||||
[MOVE_SUBSCRIPT_PTR_CURSE_NORMAL] = subscript_curse_normal,
|
||||
[MOVE_SUBSCRIPT_PTR_CURSE_GHOST] = subscript_curse_ghost,
|
||||
[MOVE_SUBSCRIPT_PTR_PRINT_MESSAGE_AND_PLAY_ANIMATION] = subscript_print_message_and_play_animation,
|
||||
[MOVE_SUBSCRIPT_PTR_FORESIGHT] = subscript_foresight,
|
||||
[MOVE_SUBSCRIPT_PTR_PERISH_SONG_START] = subscript_perish_song_start,
|
||||
[MOVE_SUBSCRIPT_PTR_WEATHER_START] = subscript_weather_start,
|
||||
[MOVE_SUBSCRIPT_PTR_SWAGGER] = subscript_swagger,
|
||||
[MOVE_SUBSCRIPT_PTR_INFATUATE] = subscript_infatuate,
|
||||
[MOVE_SUBSCRIPT_PTR_SAFEGUARD_START] = subscript_safeguard_start,
|
||||
[MOVE_SUBSCRIPT_PTR_PRESENT_HEAL] = subscript_present_heal,
|
||||
[MOVE_SUBSCRIPT_PTR_MAGNITUDE] = subscript_magnitude,
|
||||
[MOVE_SUBSCRIPT_PTR_BATON_PASS] = subscript_baton_pass,
|
||||
[MOVE_SUBSCRIPT_PTR_BELLY_DRUM] = subscript_belly_drum,
|
||||
[MOVE_SUBSCRIPT_PTR_TELEPORT] = subscript_teleport,
|
||||
[MOVE_SUBSCRIPT_PTR_FUTURE_SIGHT_START] = subscript_future_sight_start,
|
||||
[MOVE_SUBSCRIPT_PTR_STOCKPILE] = subscript_stockpile,
|
||||
[MOVE_SUBSCRIPT_PTR_SWALLOW] = subscript_swallow,
|
||||
[MOVE_SUBSCRIPT_PTR_TORMENT_START] = subscript_torment_start,
|
||||
[MOVE_SUBSCRIPT_PTR_FLATTER] = subscript_flatter,
|
||||
[MOVE_SUBSCRIPT_PTR_MEMENTO] = subscript_memento,
|
||||
[MOVE_SUBSCRIPT_PTR_CHARGE] = subscript_charge,
|
||||
[MOVE_SUBSCRIPT_PTR_TAUNT_START] = subscript_taunt_start,
|
||||
[MOVE_SUBSCRIPT_PTR_EXCHANGE_ITEMS] = subscript_exchange_items,
|
||||
[MOVE_SUBSCRIPT_PTR_COPY_ABILITY] = subscript_copy_ability,
|
||||
[MOVE_SUBSCRIPT_PTR_BREAK_SCREENS] = subscript_break_screens,
|
||||
[MOVE_SUBSCRIPT_PTR_YAWN] = subscript_yawn,
|
||||
[MOVE_SUBSCRIPT_PTR_EXCHANGE_ABILITIES] = subscript_exchange_abilities,
|
||||
[MOVE_SUBSCRIPT_PTR_RECOVER_PSN_PRZ_BRN] = subscript_recover_psn_prz_brn,
|
||||
[MOVE_SUBSCRIPT_PTR_ROOST] = subscript_roost,
|
||||
[MOVE_SUBSCRIPT_PTR_HEAL_TARGET_SLEEP] = subscript_heal_target_sleep,
|
||||
[MOVE_SUBSCRIPT_PTR_GRAVITY_START] = subscript_gravity_start,
|
||||
[MOVE_SUBSCRIPT_PTR_MIRACLE_EYE] = subscript_miracle_eye,
|
||||
[MOVE_SUBSCRIPT_PTR_HEALING_WISH] = subscript_healing_wish,
|
||||
[MOVE_SUBSCRIPT_PTR_TAILWIND_START] = subscript_tailwind_start,
|
||||
[MOVE_SUBSCRIPT_PTR_USER_DEF_AND_SPDEF_DOWN_1_STAGE] = subscript_user_def_and_spdef_down_1_stage,
|
||||
[MOVE_SUBSCRIPT_PTR_USER_SWAP_ATK_AND_DEF] = subscript_user_swap_atk_and_def,
|
||||
[MOVE_SUBSCRIPT_PTR_SUPPRESS_TARGET_ABILITY] = subscript_suppress_target_ability,
|
||||
[MOVE_SUBSCRIPT_PTR_LUCKY_CHANT_START] = subscript_lucky_chant_start,
|
||||
[MOVE_SUBSCRIPT_PTR_EXCHANGE_ATK_AND_SPATK_STAGES] = subscript_exchange_atk_and_spatk_stages,
|
||||
[MOVE_SUBSCRIPT_PTR_EXCHANGE_DEF_AND_SPDEF_STAGES] = subscript_exchange_def_and_spdef_stages,
|
||||
[MOVE_SUBSCRIPT_PTR_GIVE_TARGET_INSOMNIA] = subscript_give_target_insomnia,
|
||||
[MOVE_SUBSCRIPT_PTR_EXCHANGE_ALL_STAT_STAGES] = subscript_exchange_all_stat_stages,
|
||||
[MOVE_SUBSCRIPT_PTR_RECOIL_1_3_CHANCE_TO_BURN] = subscript_recoil_1_3_chance_to_burn,
|
||||
[MOVE_SUBSCRIPT_PTR_DEFOG] = subscript_defog,
|
||||
[MOVE_SUBSCRIPT_PTR_HEAL_BLOCK_START] = subscript_heal_block_start,
|
||||
[MOVE_SUBSCRIPT_PTR_ATTACK_THEN_SWITCH_OUT] = subscript_attack_then_switch_out,
|
||||
[MOVE_SUBSCRIPT_PTR_EMBARGO_START] = subscript_embargo_start,
|
||||
[MOVE_SUBSCRIPT_PTR_PLUCK] = subscript_pluck,
|
||||
[MOVE_SUBSCRIPT_PTR_FLING] = subscript_fling,
|
||||
[MOVE_SUBSCRIPT_PTR_RECOIL_1_3_CHANCE_TO_PARALYZE] = subscript_recoil_1_3_chance_to_paralyze,
|
||||
[MOVE_SUBSCRIPT_PTR_RECOIL_1_2] = subscript_recoil_1_2,
|
||||
[MOVE_SUBSCRIPT_PTR_BURN_OR_FLINCH] = subscript_burn_or_flinch,
|
||||
[MOVE_SUBSCRIPT_PTR_FREEZE_OR_FLINCH] = subscript_freeze_or_flinch,
|
||||
[MOVE_SUBSCRIPT_PTR_PARALYZE_OR_FLINCH] = subscript_paralyze_or_flinch,
|
||||
[MOVE_SUBSCRIPT_PTR_CHATTER] = subscript_chatter,
|
||||
[MOVE_SUBSCRIPT_PTR_LUNAR_DANCE] = subscript_lunar_dance,
|
||||
[MOVE_SUBSCRIPT_PTR_GIVE_TARGET_OWN_STATUS] = subscript_give_target_own_status,
|
||||
};
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ fs = import('fs')
|
|||
############################################################
|
||||
### INCLUDE PATHS ###
|
||||
############################################################
|
||||
public_includes = include_directories('include', 'asm')
|
||||
public_includes = include_directories('include', 'asm', 'res')
|
||||
|
||||
|
||||
############################################################
|
||||
|
|
@ -142,7 +142,9 @@ subdir('asm')
|
|||
main = executable('main',
|
||||
sources: [
|
||||
pokeplatinum_c,
|
||||
pokeplatinum_asm
|
||||
pokeplatinum_asm,
|
||||
generated_consts_c,
|
||||
naix_headers,
|
||||
],
|
||||
c_args: [
|
||||
pokeplatinum_args,
|
||||
|
|
@ -154,7 +156,7 @@ main = executable('main',
|
|||
public_includes,
|
||||
libgds_public_includes,
|
||||
libspl_public_includes,
|
||||
gmm_header_includes
|
||||
gmm_header_includes,
|
||||
],
|
||||
dependencies: [
|
||||
nitrosdk_dep,
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@ s_to_bin_gen = generator(make_script_bin_sh,
|
|||
'-i', relative_source_root / 'include',
|
||||
'-i', relative_source_root / 'asm',
|
||||
'-i', '.' / 'res' / 'text',
|
||||
'-i', '.' / 'res',
|
||||
'-i', '.',
|
||||
'--assembler', mwrap_exe.full_path(),
|
||||
'--objcopy', arm_none_eabi_objcopy_exe.full_path(),
|
||||
|
|
@ -18,17 +19,23 @@ s_to_bin_gen = generator(make_script_bin_sh,
|
|||
'@INPUT@',
|
||||
],
|
||||
depends: [
|
||||
pl_msg_narc # for GMM headers
|
||||
pl_msg_narc, # for GMM headers
|
||||
generated_consts_asm, # for ASM headers
|
||||
generated_consts_c, # for C headers
|
||||
],
|
||||
output: '@BASENAME@'
|
||||
)
|
||||
|
||||
sub_seq_basename = 'sub_seq'
|
||||
|
||||
be_seq_target_name = 'be_seq.narc'
|
||||
sub_seq_target_name = 'sub_seq.narc'
|
||||
waza_seq_target_name = 'waza_seq.narc'
|
||||
|
||||
sub_seq_narc_name = sub_seq_basename + '.narc'
|
||||
sub_seq_naix_name = sub_seq_basename + '.naix'
|
||||
|
||||
be_seq_private_dir = relative_build_dir / be_seq_target_name + '.p'
|
||||
sub_seq_private_dir = relative_build_dir / sub_seq_target_name + '.p'
|
||||
sub_seq_private_dir = relative_build_dir / sub_seq_narc_name + '.p'
|
||||
waza_seq_private_dir = relative_build_dir / waza_seq_target_name + '.p'
|
||||
|
||||
be_seq_narc = custom_target(be_seq_target_name,
|
||||
|
|
@ -44,8 +51,11 @@ be_seq_narc = custom_target(be_seq_target_name,
|
|||
]
|
||||
)
|
||||
|
||||
sub_seq_narc = custom_target(sub_seq_target_name,
|
||||
output: sub_seq_target_name,
|
||||
sub_seq_narc = custom_target(sub_seq_narc_name,
|
||||
output: [
|
||||
sub_seq_narc_name,
|
||||
sub_seq_naix_name,
|
||||
],
|
||||
input: s_to_bin_gen.process(
|
||||
subscript_files,
|
||||
extra_args: ['--out-dir', sub_seq_private_dir]
|
||||
|
|
@ -53,7 +63,7 @@ sub_seq_narc = custom_target(sub_seq_target_name,
|
|||
command: [
|
||||
knarc_exe,
|
||||
'-d', '@PRIVATE_DIR@',
|
||||
'-p', '@OUTPUT@',
|
||||
'-p', '@OUTPUT0@',
|
||||
'-o', sub_seq_narc_order,
|
||||
'-n'
|
||||
]
|
||||
|
|
@ -73,5 +83,7 @@ waza_seq_narc = custom_target(waza_seq_target_name,
|
|||
)
|
||||
|
||||
nitrofs_files += be_seq_narc
|
||||
nitrofs_files += sub_seq_narc
|
||||
nitrofs_files += sub_seq_narc[0]
|
||||
nitrofs_files += waza_seq_narc
|
||||
|
||||
naix_headers += sub_seq_narc[1]
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
nitrofs_files = []
|
||||
naix_headers = []
|
||||
|
||||
# Prebuilt files
|
||||
subdir('prebuilt')
|
||||
|
|
|
|||
|
|
@ -3,7 +3,6 @@
|
|||
|
||||
#include "consts/generated/c/abilities.h"
|
||||
#include "consts/generated/c/battle_controller_params.h"
|
||||
#include "consts/generated/c/battle_subscripts.h"
|
||||
|
||||
#include "constants/battle.h"
|
||||
#include "constants/heap.h"
|
||||
|
|
@ -26,6 +25,7 @@
|
|||
#include "battle/battle_controller.h"
|
||||
#include "battle/battle_message.h"
|
||||
#include "battle/battle_script.h"
|
||||
#include "battle/scripts/sub_seq.naix"
|
||||
|
||||
#include "battle/struct_ov16_0225BFFC_decl.h"
|
||||
#include "battle/struct_ov16_0224DDA8.h"
|
||||
|
|
@ -235,7 +235,7 @@ static void BattleController_InitBattleMons(BattleSystem *battleSys, BattleConte
|
|||
|
||||
static void BattleController_StartEncounter(BattleSystem *battleSys, BattleContext *battleCtx)
|
||||
{
|
||||
LOAD_SUBSEQ(BATTLE_SUBSCRIPT_START_ENCOUNTER);
|
||||
LOAD_SUBSEQ(subscript_start_encounter);
|
||||
battleCtx->command = BATTLE_CONTROL_EXEC_SCRIPT;
|
||||
battleCtx->commandNext = BATTLE_CONTROL_TRAINER_MESSAGE;
|
||||
}
|
||||
|
|
@ -243,7 +243,7 @@ static void BattleController_StartEncounter(BattleSystem *battleSys, BattleConte
|
|||
static void BattleController_TrainerMessage(BattleSystem *battleSys, BattleContext *battleCtx)
|
||||
{
|
||||
if (BattleSystem_CheckTrainerMessage(battleSys, battleCtx)) {
|
||||
LOAD_SUBSEQ(BATTLE_SUBSCRIPT_TRAINER_MESSAGE);
|
||||
LOAD_SUBSEQ(subscript_trainer_message);
|
||||
battleCtx->command = BATTLE_CONTROL_EXEC_SCRIPT;
|
||||
battleCtx->commandNext = BATTLE_CONTROL_SHOW_BATTLE_MON;
|
||||
} else {
|
||||
|
|
@ -828,7 +828,7 @@ static void BattleController_CheckPreMoveActions(BattleSystem *battleSys, Battle
|
|||
BattleIO_ClearMessageBox(battleSys);
|
||||
battleCtx->msgBattlerTemp = battler;
|
||||
|
||||
LOAD_SUBSEQ(BATTLE_SUBSCRIPT_TIGHTEN_FOCUS);
|
||||
LOAD_SUBSEQ(subscript_tighten_focus);
|
||||
battleCtx->commandNext = battleCtx->command;
|
||||
battleCtx->command = BATTLE_CONTROL_EXEC_SCRIPT;
|
||||
|
||||
|
|
@ -954,7 +954,7 @@ static void BattleController_CheckFieldConditions(BattleSystem *battleSys, Battl
|
|||
battleCtx->sideConditionsMask[side] &= ~SIDE_CONDITION_REFLECT;
|
||||
battleCtx->msgMoveTemp = MOVE_REFLECT;
|
||||
|
||||
PrepareSubroutineSequence(battleCtx, BATTLE_SUBSCRIPT_MOVE_EFFECT_END);
|
||||
PrepareSubroutineSequence(battleCtx, subscript_move_effect_end);
|
||||
battleCtx->msgBattlerTemp = BattleSystem_SideToBattler(battleSys, battleCtx, side);
|
||||
state = STATE_BREAK_OUT;
|
||||
}
|
||||
|
|
@ -977,7 +977,7 @@ static void BattleController_CheckFieldConditions(BattleSystem *battleSys, Battl
|
|||
battleCtx->sideConditionsMask[side] &= ~SIDE_CONDITION_LIGHT_SCREEN;
|
||||
battleCtx->msgMoveTemp = MOVE_LIGHT_SCREEN;
|
||||
|
||||
PrepareSubroutineSequence(battleCtx, BATTLE_SUBSCRIPT_MOVE_EFFECT_END);
|
||||
PrepareSubroutineSequence(battleCtx, subscript_move_effect_end);
|
||||
battleCtx->msgBattlerTemp = BattleSystem_SideToBattler(battleSys, battleCtx, side);
|
||||
state = STATE_BREAK_OUT;
|
||||
}
|
||||
|
|
@ -1000,7 +1000,7 @@ static void BattleController_CheckFieldConditions(BattleSystem *battleSys, Battl
|
|||
battleCtx->sideConditionsMask[side] &= ~SIDE_CONDITION_MIST;
|
||||
battleCtx->msgMoveTemp = MOVE_MIST;
|
||||
|
||||
PrepareSubroutineSequence(battleCtx, BATTLE_SUBSCRIPT_MOVE_EFFECT_END);
|
||||
PrepareSubroutineSequence(battleCtx, subscript_move_effect_end);
|
||||
battleCtx->msgBattlerTemp = BattleSystem_SideToBattler(battleSys, battleCtx, side);
|
||||
state = STATE_BREAK_OUT;
|
||||
}
|
||||
|
|
@ -1023,7 +1023,7 @@ static void BattleController_CheckFieldConditions(BattleSystem *battleSys, Battl
|
|||
battleCtx->sideConditionsMask[side] &= ~SIDE_CONDITION_SAFEGUARD;
|
||||
battleCtx->msgBattlerTemp = battleCtx->sideConditions[side].safeguardUser;
|
||||
|
||||
PrepareSubroutineSequence(battleCtx, BATTLE_SUBSCRIPT_SAFEGUARD_END);
|
||||
PrepareSubroutineSequence(battleCtx, subscript_safeguard_end);
|
||||
battleCtx->msgBattlerTemp = BattleSystem_SideToBattler(battleSys, battleCtx, side);
|
||||
state = STATE_BREAK_OUT;
|
||||
}
|
||||
|
|
@ -1045,7 +1045,7 @@ static void BattleController_CheckFieldConditions(BattleSystem *battleSys, Battl
|
|||
battleCtx->sideConditionsMask[side] -= SIDE_CONDITION_TAILWIND_SHIFT;
|
||||
|
||||
if ((battleCtx->sideConditionsMask[side] & SIDE_CONDITION_TAILWIND) == FALSE) {
|
||||
PrepareSubroutineSequence(battleCtx, BATTLE_SUBSCRIPT_TAILWIND_END);
|
||||
PrepareSubroutineSequence(battleCtx, subscript_tailwind_end);
|
||||
battleCtx->msgBattlerTemp = BattleSystem_SideToBattler(battleSys, battleCtx, side);
|
||||
state = STATE_BREAK_OUT;
|
||||
}
|
||||
|
|
@ -1068,7 +1068,7 @@ static void BattleController_CheckFieldConditions(BattleSystem *battleSys, Battl
|
|||
battleCtx->sideConditionsMask[side] -= SIDE_CONDITION_LUCKY_CHANT_SHIFT;
|
||||
|
||||
if ((battleCtx->sideConditionsMask[side] & SIDE_CONDITION_LUCKY_CHANT) == FALSE) {
|
||||
PrepareSubroutineSequence(battleCtx, BATTLE_SUBSCRIPT_LUCKY_CHANT_END);
|
||||
PrepareSubroutineSequence(battleCtx, subscript_lucky_chant_end);
|
||||
battleCtx->msgBattlerTemp = BattleSystem_SideToBattler(battleSys, battleCtx, side);
|
||||
state = STATE_BREAK_OUT;
|
||||
}
|
||||
|
|
@ -1098,7 +1098,7 @@ static void BattleController_CheckFieldConditions(BattleSystem *battleSys, Battl
|
|||
|
||||
battleCtx->hpCalcTemp = BattleSystem_Divide(battleCtx->battleMons[side].maxHP, 2);
|
||||
|
||||
PrepareSubroutineSequence(battleCtx, BATTLE_SUBSCRIPT_WISH_HEAL);
|
||||
PrepareSubroutineSequence(battleCtx, subscript_wish_heal);
|
||||
state = STATE_BREAK_OUT;
|
||||
}
|
||||
|
||||
|
|
@ -1117,15 +1117,15 @@ static void BattleController_CheckFieldConditions(BattleSystem *battleSys, Battl
|
|||
battleCtx->msgBuffer.id = 801; // "Rain continues to fall."
|
||||
battleCtx->msgBuffer.tags = TAG_NONE;
|
||||
|
||||
PrepareSubroutineSequence(battleCtx, BATTLE_SUBSCRIPT_WEATHER_CONTINUES);
|
||||
PrepareSubroutineSequence(battleCtx, subscript_weather_continues);
|
||||
} else {
|
||||
if (--battleCtx->fieldConditions.weatherTurns == 0) {
|
||||
PrepareSubroutineSequence(battleCtx, BATTLE_SUBSCRIPT_RAINING_END);
|
||||
PrepareSubroutineSequence(battleCtx, subscript_raining_end);
|
||||
} else {
|
||||
battleCtx->msgBuffer.id = 801; // "Rain continues to fall."
|
||||
battleCtx->msgBuffer.tags = TAG_NONE;
|
||||
|
||||
PrepareSubroutineSequence(battleCtx, BATTLE_SUBSCRIPT_WEATHER_CONTINUES);
|
||||
PrepareSubroutineSequence(battleCtx, subscript_weather_continues);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1142,15 +1142,15 @@ static void BattleController_CheckFieldConditions(BattleSystem *battleSys, Battl
|
|||
battleCtx->msgBuffer.id = 805; // "The sandstorm rages."
|
||||
battleCtx->msgBuffer.tags = TAG_NONE;
|
||||
|
||||
PrepareSubroutineSequence(battleCtx, BATTLE_SUBSCRIPT_WEATHER_CONTINUES);
|
||||
PrepareSubroutineSequence(battleCtx, subscript_weather_continues);
|
||||
} else {
|
||||
if (--battleCtx->fieldConditions.weatherTurns == 0) {
|
||||
PrepareSubroutineSequence(battleCtx, BATTLE_SUBSCRIPT_SANDSTORM_END);
|
||||
PrepareSubroutineSequence(battleCtx, subscript_sandstorm_end);
|
||||
} else {
|
||||
battleCtx->msgBuffer.id = 805; // "The sandstorm rages."
|
||||
battleCtx->msgBuffer.tags = TAG_NONE;
|
||||
|
||||
PrepareSubroutineSequence(battleCtx, BATTLE_SUBSCRIPT_WEATHER_CONTINUES);
|
||||
PrepareSubroutineSequence(battleCtx, subscript_weather_continues);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1167,15 +1167,15 @@ static void BattleController_CheckFieldConditions(BattleSystem *battleSys, Battl
|
|||
battleCtx->msgBuffer.id = 808; // "The sunlight is strong."
|
||||
battleCtx->msgBuffer.tags = TAG_NONE;
|
||||
|
||||
PrepareSubroutineSequence(battleCtx, BATTLE_SUBSCRIPT_WEATHER_CONTINUES);
|
||||
PrepareSubroutineSequence(battleCtx, subscript_weather_continues);
|
||||
} else {
|
||||
if (--battleCtx->fieldConditions.weatherTurns == 0) {
|
||||
PrepareSubroutineSequence(battleCtx, BATTLE_SUBSCRIPT_SUNNY_END);
|
||||
PrepareSubroutineSequence(battleCtx, subscript_sunny_end);
|
||||
} else {
|
||||
battleCtx->msgBuffer.id = 808; // "The sunlight is strong."
|
||||
battleCtx->msgBuffer.tags = TAG_NONE;
|
||||
|
||||
PrepareSubroutineSequence(battleCtx, BATTLE_SUBSCRIPT_WEATHER_CONTINUES);
|
||||
PrepareSubroutineSequence(battleCtx, subscript_weather_continues);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1192,15 +1192,15 @@ static void BattleController_CheckFieldConditions(BattleSystem *battleSys, Battl
|
|||
battleCtx->msgBuffer.id = 811; // "Hail continues to fall."
|
||||
battleCtx->msgBuffer.tags = TAG_NONE;
|
||||
|
||||
PrepareSubroutineSequence(battleCtx, BATTLE_SUBSCRIPT_WEATHER_CONTINUES);
|
||||
PrepareSubroutineSequence(battleCtx, subscript_weather_continues);
|
||||
} else {
|
||||
if (--battleCtx->fieldConditions.weatherTurns == 0) {
|
||||
PrepareSubroutineSequence(battleCtx, BATTLE_SUBSCRIPT_HAILING_END);
|
||||
PrepareSubroutineSequence(battleCtx, subscript_hailing_end);
|
||||
} else {
|
||||
battleCtx->msgBuffer.id = 811; // "Hail continues to fall."
|
||||
battleCtx->msgBuffer.tags = TAG_NONE;
|
||||
|
||||
PrepareSubroutineSequence(battleCtx, BATTLE_SUBSCRIPT_WEATHER_CONTINUES);
|
||||
PrepareSubroutineSequence(battleCtx, subscript_weather_continues);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1216,7 +1216,7 @@ static void BattleController_CheckFieldConditions(BattleSystem *battleSys, Battl
|
|||
battleCtx->msgBuffer.id = 813; // "The fog is deep..."
|
||||
battleCtx->msgBuffer.tags = TAG_NONE;
|
||||
|
||||
PrepareSubroutineSequence(battleCtx, BATTLE_SUBSCRIPT_WEATHER_CONTINUES);
|
||||
PrepareSubroutineSequence(battleCtx, subscript_weather_continues);
|
||||
|
||||
battleCtx->scriptTemp = BATTLE_ANIMATION_WEATHER_FOG;
|
||||
state = STATE_BREAK_OUT;
|
||||
|
|
@ -1230,7 +1230,7 @@ static void BattleController_CheckFieldConditions(BattleSystem *battleSys, Battl
|
|||
battleCtx->fieldConditionsMask -= (1 << FIELD_CONDITION_GRAVITY_SHIFT);
|
||||
|
||||
if ((battleCtx->fieldConditionsMask & FIELD_CONDITION_GRAVITY) == 0) {
|
||||
PrepareSubroutineSequence(battleCtx, BATTLE_SUBSCRIPT_GRAVITY_END);
|
||||
PrepareSubroutineSequence(battleCtx, subscript_gravity_end);
|
||||
state = STATE_BREAK_OUT;
|
||||
}
|
||||
}
|
||||
|
|
@ -1315,10 +1315,10 @@ static void BattleController_CheckMonConditions(BattleSystem *battleSys, BattleC
|
|||
&& battleCtx->battleMons[battler].curHP) {
|
||||
if (battleCtx->battleMons[battler].moveEffectsData.healBlockTurns) {
|
||||
battleCtx->msgBattlerTemp = battler;
|
||||
LOAD_SUBSEQ(BATTLE_SUBSCRIPT_CANNOT_HEAL);
|
||||
LOAD_SUBSEQ(subscript_cannot_heal);
|
||||
} else {
|
||||
battleCtx->msgBattlerTemp = battler;
|
||||
LOAD_SUBSEQ(BATTLE_SUBSCRIPT_INGRAIN_HEAL);
|
||||
LOAD_SUBSEQ(subscript_ingrain_heal);
|
||||
}
|
||||
|
||||
battleCtx->commandNext = battleCtx->command;
|
||||
|
|
@ -1336,12 +1336,12 @@ static void BattleController_CheckMonConditions(BattleSystem *battleSys, BattleC
|
|||
&& battleCtx->battleMons[battler].curHP) {
|
||||
if (battleCtx->battleMons[battler].moveEffectsData.healBlockTurns) {
|
||||
battleCtx->msgBattlerTemp = battler;
|
||||
LOAD_SUBSEQ(BATTLE_SUBSCRIPT_CANNOT_HEAL);
|
||||
LOAD_SUBSEQ(subscript_cannot_heal);
|
||||
} else {
|
||||
battleCtx->msgBattlerTemp = battler;
|
||||
battleCtx->msgMoveTemp = MOVE_AQUA_RING;
|
||||
battleCtx->hpCalcTemp = BattleSystem_Divide(battleCtx->battleMons[battler].maxHP, 16);
|
||||
LOAD_SUBSEQ(BATTLE_SUBSCRIPT_AQUA_RING_HEAL);
|
||||
LOAD_SUBSEQ(subscript_aqua_ring_heal);
|
||||
}
|
||||
|
||||
battleCtx->commandNext = battleCtx->command;
|
||||
|
|
@ -1384,7 +1384,7 @@ static void BattleController_CheckMonConditions(BattleSystem *battleSys, BattleC
|
|||
battleCtx->msgAttacker = battleCtx->battleMons[battler].moveEffectsMask & MOVE_EFFECT_LEECH_SEED_RECIPIENT;
|
||||
battleCtx->msgDefender = battler;
|
||||
|
||||
PrepareSubroutineSequence(battleCtx, BATTLE_SUBSCRIPT_LEECH_SEED_EFFECT);
|
||||
PrepareSubroutineSequence(battleCtx, subscript_leech_seed_effect);
|
||||
state = STATE_BREAK_OUT;
|
||||
}
|
||||
|
||||
|
|
@ -1396,7 +1396,7 @@ static void BattleController_CheckMonConditions(BattleSystem *battleSys, BattleC
|
|||
battleCtx->msgBattlerTemp = battler;
|
||||
battleCtx->hpCalcTemp = BattleSystem_Divide(battleCtx->battleMons[battler].maxHP * -1, 8);
|
||||
|
||||
PrepareSubroutineSequence(battleCtx, BATTLE_SUBSCRIPT_POISON_DAMAGE);
|
||||
PrepareSubroutineSequence(battleCtx, subscript_poison_damage);
|
||||
state = STATE_BREAK_OUT;
|
||||
}
|
||||
|
||||
|
|
@ -1416,7 +1416,7 @@ static void BattleController_CheckMonConditions(BattleSystem *battleSys, BattleC
|
|||
battleCtx->hpCalcTemp *= ((battleCtx->battleMons[battler].status & MON_CONDITION_TOXIC_COUNTER) >> 8);
|
||||
battleCtx->hpCalcTemp *= -1;
|
||||
|
||||
PrepareSubroutineSequence(battleCtx, BATTLE_SUBSCRIPT_POISON_DAMAGE);
|
||||
PrepareSubroutineSequence(battleCtx, subscript_poison_damage);
|
||||
state = STATE_BREAK_OUT;
|
||||
}
|
||||
|
||||
|
|
@ -1427,7 +1427,7 @@ static void BattleController_CheckMonConditions(BattleSystem *battleSys, BattleC
|
|||
if ((battleCtx->battleMons[battler].status & MON_CONDITION_BURN) && battleCtx->battleMons[battler].curHP) {
|
||||
battleCtx->msgBattlerTemp = battler;
|
||||
|
||||
PrepareSubroutineSequence(battleCtx, BATTLE_SUBSCRIPT_BURN_DAMAGE);
|
||||
PrepareSubroutineSequence(battleCtx, subscript_burn_damage);
|
||||
state = STATE_BREAK_OUT;
|
||||
}
|
||||
|
||||
|
|
@ -1439,7 +1439,7 @@ static void BattleController_CheckMonConditions(BattleSystem *battleSys, BattleC
|
|||
if (battleCtx->battleMons[battler].status & MON_CONDITION_SLEEP) {
|
||||
battleCtx->msgBattlerTemp = battler;
|
||||
|
||||
PrepareSubroutineSequence(battleCtx, BATTLE_SUBSCRIPT_NIGHTMARE_EFFECT);
|
||||
PrepareSubroutineSequence(battleCtx, subscript_nightmare_effect);
|
||||
state = STATE_BREAK_OUT;
|
||||
} else {
|
||||
battleCtx->battleMons[battler].statusVolatile &= ~VOLATILE_CONDITION_NIGHTMARE;
|
||||
|
|
@ -1453,7 +1453,7 @@ static void BattleController_CheckMonConditions(BattleSystem *battleSys, BattleC
|
|||
if ((battleCtx->battleMons[battler].statusVolatile & VOLATILE_CONDITION_CURSE) && battleCtx->battleMons[battler].curHP) {
|
||||
battleCtx->msgBattlerTemp = battler;
|
||||
|
||||
PrepareSubroutineSequence(battleCtx, BATTLE_SUBSCRIPT_CURSE_DAMAGE);
|
||||
PrepareSubroutineSequence(battleCtx, subscript_curse_damage);
|
||||
state = STATE_BREAK_OUT;
|
||||
}
|
||||
|
||||
|
|
@ -1466,9 +1466,9 @@ static void BattleController_CheckMonConditions(BattleSystem *battleSys, BattleC
|
|||
|
||||
if (battleCtx->battleMons[battler].statusVolatile & VOLATILE_CONDITION_BIND) {
|
||||
battleCtx->hpCalcTemp = BattleSystem_Divide(battleCtx->battleMons[battler].maxHP * -1, 16);
|
||||
LOAD_SUBSEQ(BATTLE_SUBSCRIPT_BIND_EFFECT);
|
||||
LOAD_SUBSEQ(subscript_bind_effect);
|
||||
} else {
|
||||
LOAD_SUBSEQ(BATTLE_SUBSCRIPT_BIND_END);
|
||||
LOAD_SUBSEQ(subscript_bind_end);
|
||||
}
|
||||
|
||||
battleCtx->msgMoveTemp = battleCtx->battleMons[battler].moveEffectsData.bindingMove;
|
||||
|
|
@ -1491,7 +1491,7 @@ static void BattleController_CheckMonConditions(BattleSystem *battleSys, BattleC
|
|||
&& battleCtx->scriptTemp) {
|
||||
battleCtx->hpCalcTemp = BattleSystem_Divide(battleCtx->battleMons[battler].maxHP * -1, 8);
|
||||
|
||||
LOAD_SUBSEQ(BATTLE_SUBSCRIPT_BAD_DREAMS);
|
||||
LOAD_SUBSEQ(subscript_bad_dreams);
|
||||
battleCtx->battleStatusMask |= SYSCTL_SKIP_SPRITE_BLINK;
|
||||
battleCtx->msgBattlerTemp = battler;
|
||||
battleCtx->commandNext = battleCtx->command;
|
||||
|
|
@ -1511,7 +1511,7 @@ static void BattleController_CheckMonConditions(BattleSystem *battleSys, BattleC
|
|||
&& battleCtx->battleMons[j].curHP
|
||||
&& Battler_Ability(battleCtx, j) != ABILITY_SOUNDPROOF) {
|
||||
battleCtx->msgBattlerTemp = j;
|
||||
PrepareSubroutineSequence(battleCtx, BATTLE_SUBSCRIPT_WAKE_UP);
|
||||
PrepareSubroutineSequence(battleCtx, subscript_wake_up);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
@ -1524,13 +1524,13 @@ static void BattleController_CheckMonConditions(BattleSystem *battleSys, BattleC
|
|||
battleCtx->battleMons[battler].statusVolatile -= (1 << VOLATILE_CONDITION_UPROAR_SHIFT);
|
||||
|
||||
if (BattleContext_MoveFailed(battleCtx, battler)) {
|
||||
i = BATTLE_SUBSCRIPT_UPROAR_END;
|
||||
i = subscript_uproar_end;
|
||||
battleCtx->battleMons[battler].statusVolatile &= ~VOLATILE_CONDITION_UPROAR;
|
||||
battleCtx->fieldConditionsMask &= ((FlagIndex(battler) << FIELD_CONDITION_UPROAR_SHIFT) ^ 0xFFFFFFFF);
|
||||
} else if (battleCtx->battleMons[battler].statusVolatile & VOLATILE_CONDITION_UPROAR) {
|
||||
i = BATTLE_SUBSCRIPT_UPROAR_CONTINUES;
|
||||
i = subscript_uproar_continues;
|
||||
} else {
|
||||
i = BATTLE_SUBSCRIPT_UPROAR_END;
|
||||
i = subscript_uproar_end;
|
||||
battleCtx->battleMons[battler].statusVolatile &= ~VOLATILE_CONDITION_UPROAR;
|
||||
battleCtx->fieldConditionsMask &= ((FlagIndex(battler) << FIELD_CONDITION_UPROAR_SHIFT) ^ 0xFFFFFFFF);
|
||||
}
|
||||
|
|
@ -1555,7 +1555,7 @@ static void BattleController_CheckMonConditions(BattleSystem *battleSys, BattleC
|
|||
&& (battleCtx->battleMons[battler].statusVolatile & VOLATILE_CONDITION_CONFUSION) == FALSE) {
|
||||
battleCtx->sideEffectMon = battler;
|
||||
|
||||
PrepareSubroutineSequence(battleCtx, BATTLE_SUBSCRIPT_THRASH_END);
|
||||
PrepareSubroutineSequence(battleCtx, subscript_thrash_end);
|
||||
state = STATE_BREAK_OUT;
|
||||
}
|
||||
}
|
||||
|
|
@ -1581,7 +1581,7 @@ static void BattleController_CheckMonConditions(BattleSystem *battleSys, BattleC
|
|||
battleCtx->battleMons[battler].moveEffectsData.disabledMove = 0;
|
||||
battleCtx->msgBattlerTemp = battler;
|
||||
|
||||
PrepareSubroutineSequence(battleCtx, BATTLE_SUBSCRIPT_DISABLE_END);
|
||||
PrepareSubroutineSequence(battleCtx, subscript_disable_end);
|
||||
state = STATE_BREAK_OUT;
|
||||
}
|
||||
}
|
||||
|
|
@ -1608,7 +1608,7 @@ static void BattleController_CheckMonConditions(BattleSystem *battleSys, BattleC
|
|||
battleCtx->battleMons[battler].moveEffectsData.encoredMove = 0;
|
||||
battleCtx->msgBattlerTemp = battler;
|
||||
|
||||
PrepareSubroutineSequence(battleCtx, BATTLE_SUBSCRIPT_ENCORE_END);
|
||||
PrepareSubroutineSequence(battleCtx, subscript_encore_end);
|
||||
state = STATE_BREAK_OUT;
|
||||
}
|
||||
}
|
||||
|
|
@ -1638,7 +1638,7 @@ static void BattleController_CheckMonConditions(BattleSystem *battleSys, BattleC
|
|||
&& --battleCtx->battleMons[battler].moveEffectsData.tauntedTurns == 0) {
|
||||
battleCtx->msgBattlerTemp = battler;
|
||||
|
||||
PrepareSubroutineSequence(battleCtx, BATTLE_SUBSCRIPT_TAUNT_END);
|
||||
PrepareSubroutineSequence(battleCtx, subscript_taunt_end);
|
||||
state = STATE_BREAK_OUT;
|
||||
}
|
||||
|
||||
|
|
@ -1650,7 +1650,7 @@ static void BattleController_CheckMonConditions(BattleSystem *battleSys, BattleC
|
|||
&& --battleCtx->battleMons[battler].moveEffectsData.magnetRiseTurns == 0) {
|
||||
battleCtx->msgBattlerTemp = battler;
|
||||
|
||||
PrepareSubroutineSequence(battleCtx, BATTLE_SUBSCRIPT_MAGNET_RISE_END);
|
||||
PrepareSubroutineSequence(battleCtx, subscript_magnet_rise_end);
|
||||
state = STATE_BREAK_OUT;
|
||||
}
|
||||
|
||||
|
|
@ -1662,7 +1662,7 @@ static void BattleController_CheckMonConditions(BattleSystem *battleSys, BattleC
|
|||
&& --battleCtx->battleMons[battler].moveEffectsData.healBlockTurns == 0) {
|
||||
battleCtx->msgBattlerTemp = battler;
|
||||
|
||||
PrepareSubroutineSequence(battleCtx, BATTLE_SUBSCRIPT_HEAL_BLOCK_END);
|
||||
PrepareSubroutineSequence(battleCtx, subscript_heal_block_end);
|
||||
state = STATE_BREAK_OUT;
|
||||
}
|
||||
|
||||
|
|
@ -1674,7 +1674,7 @@ static void BattleController_CheckMonConditions(BattleSystem *battleSys, BattleC
|
|||
&& --battleCtx->battleMons[battler].moveEffectsData.embargoTurns == 0) {
|
||||
battleCtx->msgBattlerTemp = battler;
|
||||
|
||||
PrepareSubroutineSequence(battleCtx, BATTLE_SUBSCRIPT_EMBARGO_END);
|
||||
PrepareSubroutineSequence(battleCtx, subscript_embargo_end);
|
||||
state = STATE_BREAK_OUT;
|
||||
}
|
||||
|
||||
|
|
@ -1689,7 +1689,7 @@ static void BattleController_CheckMonConditions(BattleSystem *battleSys, BattleC
|
|||
battleCtx->sideEffectMon = battler;
|
||||
battleCtx->sideEffectType = SIDE_EFFECT_TYPE_MOVE_EFFECT;
|
||||
|
||||
PrepareSubroutineSequence(battleCtx, BATTLE_SUBSCRIPT_FALL_ASLEEP);
|
||||
PrepareSubroutineSequence(battleCtx, subscript_fall_asleep);
|
||||
state = STATE_BREAK_OUT;
|
||||
}
|
||||
}
|
||||
|
|
@ -1780,7 +1780,7 @@ static void BattleController_CheckSideConditions(BattleSystem *battleSys, Battle
|
|||
battleCtx->msgMoveTemp = battleCtx->fieldConditions.futureSightMove[battler];
|
||||
battleCtx->hpCalcTemp = battleCtx->fieldConditions.futureSightDamage[battler];
|
||||
|
||||
PrepareSubroutineSequence(battleCtx, BATTLE_SUBSCRIPT_FUTURE_SIGHT_DAMAGE);
|
||||
PrepareSubroutineSequence(battleCtx, subscript_future_sight_damage);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
|
@ -1811,7 +1811,7 @@ static void BattleController_CheckSideConditions(BattleSystem *battleSys, Battle
|
|||
}
|
||||
|
||||
battleCtx->msgBattlerTemp = battler;
|
||||
PrepareSubroutineSequence(battleCtx, BATTLE_SUBSCRIPT_CONTINUE_PERISH_SONG);
|
||||
PrepareSubroutineSequence(battleCtx, subscript_continue_perish_song);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
|
@ -1824,7 +1824,7 @@ static void BattleController_CheckSideConditions(BattleSystem *battleSys, Battle
|
|||
if (battleCtx->fieldConditionsMask & FIELD_CONDITION_TRICK_ROOM) {
|
||||
battleCtx->fieldConditionsMask -= (1 << FIELD_CONDITION_TRICK_ROOM_SHIFT);
|
||||
if ((battleCtx->fieldConditionsMask & FIELD_CONDITION_TRICK_ROOM) == FALSE) {
|
||||
PrepareSubroutineSequence(battleCtx, BATTLE_SUBSCRIPT_TRICK_ROOM_END);
|
||||
PrepareSubroutineSequence(battleCtx, subscript_trick_room_end);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
|
@ -1913,11 +1913,11 @@ static void BattleController_ItemCommand(BattleSystem *battleSys, BattleContext
|
|||
if (Battler_Side(battleSys, battleCtx->attacker)) {
|
||||
switch (battleCtx->aiContext.usedItemType[battleCtx->attacker >> 1]) {
|
||||
case ITEM_TYPE_FULL_RESTORE:
|
||||
nextSeq = BATTLE_SUBSCRIPT_USE_FULL_RESTORE;
|
||||
nextSeq = subscript_use_full_restore;
|
||||
break;
|
||||
|
||||
case ITEM_TYPE_RECOVER_HP:
|
||||
nextSeq = BATTLE_SUBSCRIPT_USE_POTION;
|
||||
nextSeq = subscript_use_potion;
|
||||
break;
|
||||
|
||||
case ITEM_TYPE_RECOVER_STATUS:
|
||||
|
|
@ -1928,16 +1928,16 @@ static void BattleController_ItemCommand(BattleSystem *battleSys, BattleContext
|
|||
battleCtx->msgTemp = LowestBit(battleCtx->aiContext.usedItemCondition[battleCtx->attacker >> 1]);
|
||||
}
|
||||
|
||||
nextSeq = BATTLE_SUBSCRIPT_USE_STATUS_RECOVERY;
|
||||
nextSeq = subscript_use_status_recovery;
|
||||
break;
|
||||
|
||||
case ITEM_TYPE_STAT_BOOSTER:
|
||||
battleCtx->msgTemp = battleCtx->aiContext.usedItemCondition[battleCtx->attacker >> 1];
|
||||
nextSeq = BATTLE_SUBSCRIPT_USE_STAT_BOOSTER;
|
||||
nextSeq = subscript_use_stat_booster;
|
||||
break;
|
||||
|
||||
case ITEM_TYPE_GUARD_SPEC:
|
||||
nextSeq = BATTLE_SUBSCRIPT_USE_GUARD_SPEC;
|
||||
nextSeq = subscript_use_guard_spec;
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
@ -1948,15 +1948,15 @@ static void BattleController_ItemCommand(BattleSystem *battleSys, BattleContext
|
|||
case BATTLE_POCKET_RECOVER_HP:
|
||||
case BATTLE_POCKET_BATTLE_ITEMS:
|
||||
if (used->item == ITEM_POKE_DOLL || used->item == ITEM_FLUFFY_TAIL) {
|
||||
nextSeq = BATTLE_SUBSCRIPT_ESCAPE_ITEM;
|
||||
nextSeq = subscript_escape_item;
|
||||
} else {
|
||||
nextSeq = BATTLE_SUBSCRIPT_BATTLE_ITEM;
|
||||
nextSeq = subscript_battle_item;
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case BATTLE_POCKET_POKE_BALLS:
|
||||
nextSeq = BATTLE_SUBSCRIPT_THROW_POKEBALL;
|
||||
nextSeq = subscript_throw_pokeball;
|
||||
if ((BattleSystem_BattleType(battleSys) & BATTLE_TYPE_TRAINER) == FALSE
|
||||
&& (BattleSystem_BattleType(battleSys) & BATTLE_TYPE_CATCH_TUTORIAL) == FALSE) {
|
||||
Bag_SubtractItem(BattleSystem_Bag(battleSys), used->item, 1, HEAP_ID_BATTLE);
|
||||
|
|
@ -1977,7 +1977,7 @@ static void BattleController_ItemCommand(BattleSystem *battleSys, BattleContext
|
|||
|
||||
static void BattleController_SwitchCommand(BattleSystem *battleSys, BattleContext *battleCtx)
|
||||
{
|
||||
LOAD_SUBSEQ(BATTLE_SUBSCRIPT_SWITCH_POKEMON);
|
||||
LOAD_SUBSEQ(subscript_switch_pokemon);
|
||||
|
||||
battleCtx->attacker = battleCtx->battlerActionOrder[battleCtx->turnOrderCounter];
|
||||
battleCtx->switchedMon = battleCtx->attacker;
|
||||
|
|
@ -1994,24 +1994,24 @@ static void BattleController_FleeCommand(BattleSystem *battleSys, BattleContext
|
|||
if (Battler_Side(battleSys, battleCtx->attacker)
|
||||
&& (BattleSystem_BattleType(battleSys) & BATTLE_TYPE_LINK) == FALSE) {
|
||||
if (ATTACKING_MON.statusVolatile & (VOLATILE_CONDITION_BIND | VOLATILE_CONDITION_MEAN_LOOK)) {
|
||||
LOAD_SUBSEQ(BATTLE_SUBSCRIPT_ENEMY_ESCAPE_FAILED);
|
||||
LOAD_SUBSEQ(subscript_enemy_escape_failed);
|
||||
battleCtx->scriptCursor = 0;
|
||||
battleCtx->command = BATTLE_CONTROL_EXEC_SCRIPT;
|
||||
battleCtx->commandNext = BATTLE_CONTROL_MOVE_END;
|
||||
} else {
|
||||
LOAD_SUBSEQ(BATTLE_SUBSCRIPT_ENEMY_ESCAPE);
|
||||
LOAD_SUBSEQ(subscript_enemy_escape);
|
||||
battleCtx->scriptCursor = 0;
|
||||
battleCtx->command = BATTLE_CONTROL_EXEC_SCRIPT;
|
||||
battleCtx->commandNext = BATTLE_CONTROL_FIGHT_END;
|
||||
}
|
||||
} else {
|
||||
if (Battler_CanEscape(battleSys, battleCtx, battleCtx->attacker)) {
|
||||
LOAD_SUBSEQ(BATTLE_SUBSCRIPT_ESCAPE);
|
||||
LOAD_SUBSEQ(subscript_escape);
|
||||
battleCtx->scriptCursor = 0;
|
||||
battleCtx->command = BATTLE_CONTROL_EXEC_SCRIPT;
|
||||
battleCtx->commandNext = BATTLE_CONTROL_FIGHT_END;
|
||||
} else {
|
||||
LOAD_SUBSEQ(BATTLE_SUBSCRIPT_ESCAPE_FAILED);
|
||||
LOAD_SUBSEQ(subscript_escape_failed);
|
||||
battleCtx->scriptCursor = 0;
|
||||
battleCtx->command = BATTLE_CONTROL_EXEC_SCRIPT;
|
||||
battleCtx->commandNext = BATTLE_CONTROL_MOVE_END;
|
||||
|
|
@ -2021,7 +2021,7 @@ static void BattleController_FleeCommand(BattleSystem *battleSys, BattleContext
|
|||
|
||||
static void BattleController_SafariBallCommand(BattleSystem *battleSys, BattleContext *battleCtx)
|
||||
{
|
||||
LOAD_SUBSEQ(BATTLE_SUBSCRIPT_THROW_SAFARI_BALL);
|
||||
LOAD_SUBSEQ(subscript_throw_safari_ball);
|
||||
|
||||
battleCtx->attacker = BATTLER_US;
|
||||
battleCtx->defender = BATTLER_THEM;
|
||||
|
|
@ -2036,7 +2036,7 @@ static void BattleController_SafariBallCommand(BattleSystem *battleSys, BattleCo
|
|||
|
||||
static void BattleController_SafariBaitCommand(BattleSystem *battleSys, BattleContext *battleCtx)
|
||||
{
|
||||
LOAD_SUBSEQ(BATTLE_SUBSCRIPT_SAFARI_THROW_BAIT);
|
||||
LOAD_SUBSEQ(subscript_safari_throw_bait);
|
||||
|
||||
battleCtx->attacker = BATTLER_US;
|
||||
battleCtx->defender = BATTLER_THEM;
|
||||
|
|
@ -2058,7 +2058,7 @@ static void BattleController_SafariBaitCommand(BattleSystem *battleSys, BattleCo
|
|||
|
||||
static void BattleController_SafariRockCommand(BattleSystem *battleSys, BattleContext *battleCtx)
|
||||
{
|
||||
LOAD_SUBSEQ(BATTLE_SUBSCRIPT_SAFARI_THROW_ROCK);
|
||||
LOAD_SUBSEQ(subscript_safari_throw_rock);
|
||||
|
||||
battleCtx->attacker = BATTLER_US;
|
||||
battleCtx->defender = BATTLER_THEM;
|
||||
|
|
@ -2081,7 +2081,7 @@ static void BattleController_SafariRockCommand(BattleSystem *battleSys, BattleCo
|
|||
|
||||
static void BattleController_SafariFleeCommand(BattleSystem *battleSys, BattleContext *battleCtx)
|
||||
{
|
||||
LOAD_SUBSEQ(BATTLE_SUBSCRIPT_SAFARI_ESCAPE);
|
||||
LOAD_SUBSEQ(subscript_safari_escape);
|
||||
|
||||
battleCtx->attacker = BATTLER_US;
|
||||
battleCtx->defender = BATTLER_THEM;
|
||||
|
|
@ -2165,7 +2165,7 @@ static int BattleController_CheckObedience(BattleSystem *battleSys, BattleContex
|
|||
|
||||
if ((ATTACKING_MON.status & MON_CONDITION_SLEEP)
|
||||
&& (battleCtx->moveCur == MOVE_SNORE || battleCtx->moveCur == MOVE_SLEEP_TALK)) {
|
||||
*nextSeq = BATTLE_SUBSCRIPT_DISOBEY_WHILE_ASLEEP;
|
||||
*nextSeq = subscript_disobey_while_asleep;
|
||||
return OBEY_CHECK_DO_NOTHING;
|
||||
}
|
||||
|
||||
|
|
@ -2174,7 +2174,7 @@ static int BattleController_CheckObedience(BattleSystem *battleSys, BattleContex
|
|||
rand1 = BattleSystem_CheckInvalidMoves(battleSys, battleCtx, battleCtx->attacker, FlagIndex(ATTACKER_MOVE_SLOT), CHECK_INVALID_ALL);
|
||||
|
||||
if (rand1 == STRUGGLING_ALL) {
|
||||
*nextSeq = BATTLE_SUBSCRIPT_DISOBEY_DO_NOTHING;
|
||||
*nextSeq = subscript_disobey_do_nothing;
|
||||
return OBEY_CHECK_DO_NOTHING;
|
||||
}
|
||||
|
||||
|
|
@ -2193,7 +2193,7 @@ static int BattleController_CheckObedience(BattleSystem *battleSys, BattleContex
|
|||
ATTACKER_ACTION[BATTLE_ACTION_CHOOSE_TARGET] = battleCtx->defender;
|
||||
}
|
||||
|
||||
*nextSeq = BATTLE_SUBSCRIPT_DISOBEY_ORDERS;
|
||||
*nextSeq = subscript_disobey_orders;
|
||||
battleCtx->multiHitCheckFlags |= SYSCTL_SKIP_OBEDIENCE_CHECK;
|
||||
return OBEY_CHECK_DIFFERENT_MOVE;
|
||||
}
|
||||
|
|
@ -2204,7 +2204,7 @@ static int BattleController_CheckObedience(BattleSystem *battleSys, BattleContex
|
|||
&& Battler_Ability(battleCtx, battleCtx->attacker) != ABILITY_VITAL_SPIRIT
|
||||
&& Battler_Ability(battleCtx, battleCtx->attacker) != ABILITY_INSOMNIA
|
||||
&& (battleCtx->fieldConditionsMask & FIELD_CONDITION_UPROAR) == FALSE) {
|
||||
*nextSeq = BATTLE_SUBSCRIPT_DISOBEY_SLEEP;
|
||||
*nextSeq = subscript_disobey_sleep;
|
||||
return OBEY_CHECK_DO_NOTHING;
|
||||
}
|
||||
|
||||
|
|
@ -2217,12 +2217,12 @@ static int BattleController_CheckObedience(BattleSystem *battleSys, BattleContex
|
|||
battleCtx->hpCalcTemp = BattleSystem_CalcDamageVariance(battleSys, battleCtx, battleCtx->hpCalcTemp);
|
||||
battleCtx->hpCalcTemp *= -1;
|
||||
|
||||
*nextSeq = BATTLE_SUBSCRIPT_DISOBEY_HIT_SELF;
|
||||
*nextSeq = subscript_disobey_hit_self;
|
||||
battleCtx->battleStatusMask |= SYSCTL_CHECK_LOOP_ONLY_ONCE;
|
||||
return OBEY_CHECK_HIT_SELF;
|
||||
}
|
||||
|
||||
*nextSeq = BATTLE_SUBSCRIPT_DISOBEY_DO_NOTHING;
|
||||
*nextSeq = subscript_disobey_do_nothing;
|
||||
return OBEY_CHECK_DO_NOTHING;
|
||||
}
|
||||
|
||||
|
|
@ -2311,7 +2311,7 @@ static BOOL BattleController_HasNoTarget(BattleSystem *battleSys, BattleContext
|
|||
BOOL solarMove = FALSE;
|
||||
|
||||
if (NO_TARGET) {
|
||||
LOAD_SUBSEQ(BATTLE_SUBSCRIPT_NO_TARGET);
|
||||
LOAD_SUBSEQ(subscript_no_target);
|
||||
battleCtx->commandNext = BATTLE_CONTROL_UPDATE_MOVE_BUFFERS;
|
||||
battleCtx->command = BATTLE_CONTROL_EXEC_SCRIPT;
|
||||
|
||||
|
|
@ -2435,7 +2435,7 @@ static BOOL BattleController_CheckStatusDisruption(BattleSystem *battleSys, Batt
|
|||
&& Battler_Ability(battleCtx, battleCtx->attacker) != ABILITY_SOUNDPROOF) {
|
||||
battleCtx->msgBattlerTemp = battleCtx->attacker;
|
||||
|
||||
LOAD_SUBSEQ(BATTLE_SUBSCRIPT_WAKE_UP);
|
||||
LOAD_SUBSEQ(subscript_wake_up);
|
||||
battleCtx->commandNext = battleCtx->command;
|
||||
battleCtx->command = BATTLE_CONTROL_EXEC_SCRIPT;
|
||||
result = CHECK_STATUS_GO_TO_SCRIPT;
|
||||
|
|
@ -2455,7 +2455,7 @@ static BOOL BattleController_CheckStatusDisruption(BattleSystem *battleSys, Batt
|
|||
|
||||
if (ATTACKING_MON.status & MON_CONDITION_SLEEP) {
|
||||
if (battleCtx->moveCur != MOVE_SNORE && battleCtx->moveTemp != MOVE_SLEEP_TALK) {
|
||||
LOAD_SUBSEQ(BATTLE_SUBSCRIPT_SLEEPING);
|
||||
LOAD_SUBSEQ(subscript_sleeping);
|
||||
|
||||
battleCtx->command = BATTLE_CONTROL_EXEC_SCRIPT;
|
||||
battleCtx->commandNext = BATTLE_CONTROL_UPDATE_MOVE_BUFFERS;
|
||||
|
|
@ -2465,7 +2465,7 @@ static BOOL BattleController_CheckStatusDisruption(BattleSystem *battleSys, Batt
|
|||
} else {
|
||||
battleCtx->msgBattlerTemp = battleCtx->attacker;
|
||||
|
||||
LOAD_SUBSEQ(BATTLE_SUBSCRIPT_WAKE_UP);
|
||||
LOAD_SUBSEQ(subscript_wake_up);
|
||||
battleCtx->commandNext = battleCtx->command;
|
||||
battleCtx->command = BATTLE_CONTROL_EXEC_SCRIPT;
|
||||
|
||||
|
|
@ -2482,7 +2482,7 @@ static BOOL BattleController_CheckStatusDisruption(BattleSystem *battleSys, Batt
|
|||
if (BattleSystem_RandNext(battleSys) % 5 != 0) {
|
||||
if (moveEffect != BATTLE_EFFECT_THAW_AND_BURN_HIT
|
||||
&& moveEffect != BATTLE_EFFECT_RECOIL_BURN_HIT) {
|
||||
LOAD_SUBSEQ(BATTLE_SUBSCRIPT_FROZEN);
|
||||
LOAD_SUBSEQ(subscript_frozen);
|
||||
battleCtx->command = BATTLE_CONTROL_EXEC_SCRIPT;
|
||||
battleCtx->commandNext = BATTLE_CONTROL_UPDATE_MOVE_BUFFERS;
|
||||
|
||||
|
|
@ -2491,7 +2491,7 @@ static BOOL BattleController_CheckStatusDisruption(BattleSystem *battleSys, Batt
|
|||
} else {
|
||||
battleCtx->msgBattlerTemp = battleCtx->attacker;
|
||||
|
||||
LOAD_SUBSEQ(BATTLE_SUBSCRIPT_THAW_OUT);
|
||||
LOAD_SUBSEQ(subscript_thaw_out);
|
||||
battleCtx->commandNext = battleCtx->command;
|
||||
battleCtx->command = BATTLE_CONTROL_EXEC_SCRIPT;
|
||||
result = CHECK_STATUS_GO_TO_SCRIPT;
|
||||
|
|
@ -2503,7 +2503,7 @@ static BOOL BattleController_CheckStatusDisruption(BattleSystem *battleSys, Batt
|
|||
|
||||
case CHECK_STATUS_STATE_TRUANT:
|
||||
if (Battler_CheckTruant(battleCtx, battleCtx->attacker) == TRUE) {
|
||||
LOAD_SUBSEQ(BATTLE_SUBSCRIPT_LOAFING_AROUND);
|
||||
LOAD_SUBSEQ(subscript_loafing_around);
|
||||
battleCtx->command = BATTLE_CONTROL_EXEC_SCRIPT;
|
||||
battleCtx->commandNext = BATTLE_CONTROL_UPDATE_MOVE_BUFFERS;
|
||||
|
||||
|
|
@ -2517,7 +2517,7 @@ static BOOL BattleController_CheckStatusDisruption(BattleSystem *battleSys, Batt
|
|||
if (ATTACKING_MON.statusVolatile & VOLATILE_CONDITION_RECHARGING) {
|
||||
ATTACKING_MON.statusVolatile &= ~VOLATILE_CONDITION_RECHARGING;
|
||||
|
||||
LOAD_SUBSEQ(BATTLE_SUBSCRIPT_RECHARGING);
|
||||
LOAD_SUBSEQ(subscript_recharging);
|
||||
battleCtx->command = BATTLE_CONTROL_EXEC_SCRIPT;
|
||||
battleCtx->commandNext = BATTLE_CONTROL_UPDATE_MOVE_BUFFERS;
|
||||
|
||||
|
|
@ -2532,7 +2532,7 @@ static BOOL BattleController_CheckStatusDisruption(BattleSystem *battleSys, Batt
|
|||
ATTACKING_MON.statusVolatile &= ~VOLATILE_CONDITION_FLINCH;
|
||||
battleCtx->moveFailFlags[battleCtx->attacker].flinched = TRUE;
|
||||
|
||||
LOAD_SUBSEQ(BATTLE_SUBSCRIPT_FLINCHED);
|
||||
LOAD_SUBSEQ(subscript_flinched);
|
||||
battleCtx->command = BATTLE_CONTROL_EXEC_SCRIPT;
|
||||
battleCtx->commandNext = BATTLE_CONTROL_UPDATE_MOVE_BUFFERS;
|
||||
|
||||
|
|
@ -2546,7 +2546,7 @@ static BOOL BattleController_CheckStatusDisruption(BattleSystem *battleSys, Batt
|
|||
if (ATTACKING_MON.moveEffectsData.disabledMove == battleCtx->moveTemp) {
|
||||
battleCtx->moveFailFlags[battleCtx->attacker].disabled = TRUE;
|
||||
|
||||
LOAD_SUBSEQ(BATTLE_SUBSCRIPT_MOVE_IS_DISABLED);
|
||||
LOAD_SUBSEQ(subscript_move_is_disabled);
|
||||
battleCtx->command = BATTLE_CONTROL_EXEC_SCRIPT;
|
||||
battleCtx->commandNext = BATTLE_CONTROL_UPDATE_MOVE_BUFFERS;
|
||||
|
||||
|
|
@ -2561,7 +2561,7 @@ static BOOL BattleController_CheckStatusDisruption(BattleSystem *battleSys, Batt
|
|||
&& battleCtx->aiContext.moveTable[battleCtx->moveCur].power == 0) {
|
||||
battleCtx->moveFailFlags[battleCtx->attacker].taunted = TRUE;
|
||||
|
||||
LOAD_SUBSEQ(BATTLE_SUBSCRIPT_MOVE_FAIL_TAUNTED);
|
||||
LOAD_SUBSEQ(subscript_move_fail_taunted);
|
||||
battleCtx->command = BATTLE_CONTROL_EXEC_SCRIPT;
|
||||
battleCtx->commandNext = BATTLE_CONTROL_UPDATE_MOVE_BUFFERS;
|
||||
|
||||
|
|
@ -2575,7 +2575,7 @@ static BOOL BattleController_CheckStatusDisruption(BattleSystem *battleSys, Batt
|
|||
if (Move_Imprisoned(battleSys, battleCtx, battleCtx->attacker, battleCtx->moveCur)) {
|
||||
battleCtx->moveFailFlags[battleCtx->attacker].imprisoned = TRUE;
|
||||
|
||||
LOAD_SUBSEQ(BATTLE_SUBSCRIPT_MOVE_IS_IMPRISONED);
|
||||
LOAD_SUBSEQ(subscript_move_is_imprisoned);
|
||||
battleCtx->command = BATTLE_CONTROL_EXEC_SCRIPT;
|
||||
battleCtx->commandNext = BATTLE_CONTROL_UPDATE_MOVE_BUFFERS;
|
||||
|
||||
|
|
@ -2589,7 +2589,7 @@ static BOOL BattleController_CheckStatusDisruption(BattleSystem *battleSys, Batt
|
|||
if (Move_FailsInHighGravity(battleSys, battleCtx, battleCtx->attacker, battleCtx->moveCur)) {
|
||||
battleCtx->moveFailFlags[battleCtx->attacker].gravity = TRUE;
|
||||
|
||||
LOAD_SUBSEQ(BATTLE_SUBSCRIPT_MOVE_FAIL_GRAVITY);
|
||||
LOAD_SUBSEQ(subscript_move_fail_gravity);
|
||||
battleCtx->command = BATTLE_CONTROL_EXEC_SCRIPT;
|
||||
battleCtx->commandNext = BATTLE_CONTROL_UPDATE_MOVE_BUFFERS;
|
||||
|
||||
|
|
@ -2603,7 +2603,7 @@ static BOOL BattleController_CheckStatusDisruption(BattleSystem *battleSys, Batt
|
|||
if (Move_HealBlocked(battleSys, battleCtx, battleCtx->attacker, battleCtx->moveCur)) {
|
||||
battleCtx->moveFailFlags[battleCtx->attacker].healBlocked = TRUE;
|
||||
|
||||
LOAD_SUBSEQ(BATTLE_SUBSCRIPT_MOVE_IS_HEAL_BLOCKED);
|
||||
LOAD_SUBSEQ(subscript_move_is_heal_blocked);
|
||||
battleCtx->command = BATTLE_CONTROL_EXEC_SCRIPT;
|
||||
battleCtx->commandNext = BATTLE_CONTROL_UPDATE_MOVE_BUFFERS;
|
||||
|
||||
|
|
@ -2621,7 +2621,7 @@ static BOOL BattleController_CheckStatusDisruption(BattleSystem *battleSys, Batt
|
|||
|
||||
if (ATTACKING_MON.statusVolatile & VOLATILE_CONDITION_CONFUSION) {
|
||||
if (BattleSystem_RandNext(battleSys) & 1) {
|
||||
LOAD_SUBSEQ(BATTLE_SUBSCRIPT_CONFUSED);
|
||||
LOAD_SUBSEQ(subscript_confused);
|
||||
battleCtx->commandNext = battleCtx->command;
|
||||
battleCtx->command = BATTLE_CONTROL_EXEC_SCRIPT;
|
||||
|
||||
|
|
@ -2635,14 +2635,14 @@ static BOOL BattleController_CheckStatusDisruption(BattleSystem *battleSys, Batt
|
|||
battleCtx->hpCalcTemp = BattleSystem_CalcDamageVariance(battleSys, battleCtx, battleCtx->hpCalcTemp);
|
||||
battleCtx->hpCalcTemp *= -1;
|
||||
|
||||
LOAD_SUBSEQ(BATTLE_SUBSCRIPT_HURT_SELF_IN_CONFUSION);
|
||||
LOAD_SUBSEQ(subscript_hurt_self_in_confusion);
|
||||
battleCtx->command = BATTLE_CONTROL_EXEC_SCRIPT;
|
||||
battleCtx->commandNext = BATTLE_CONTROL_LOOP_FAINTED;
|
||||
|
||||
result = CHECK_STATUS_DISRUPT_MOVE;
|
||||
}
|
||||
} else {
|
||||
LOAD_SUBSEQ(BATTLE_SUBSCRIPT_SNAP_OUT_OF_CONFUSION);
|
||||
LOAD_SUBSEQ(subscript_snap_out_of_confusion);
|
||||
battleCtx->commandNext = battleCtx->command;
|
||||
battleCtx->command = BATTLE_CONTROL_EXEC_SCRIPT;
|
||||
|
||||
|
|
@ -2657,7 +2657,7 @@ static BOOL BattleController_CheckStatusDisruption(BattleSystem *battleSys, Batt
|
|||
if (BattleSystem_RandNext(battleSys) % 4 == 0) {
|
||||
battleCtx->moveFailFlags[battleCtx->attacker].paralyzed = TRUE;
|
||||
|
||||
LOAD_SUBSEQ(BATTLE_SUBSCRIPT_FULLY_PARALYZED);
|
||||
LOAD_SUBSEQ(subscript_fully_paralyzed);
|
||||
battleCtx->command = BATTLE_CONTROL_EXEC_SCRIPT;
|
||||
battleCtx->commandNext = BATTLE_CONTROL_UPDATE_MOVE_BUFFERS;
|
||||
|
||||
|
|
@ -2675,7 +2675,7 @@ static BOOL BattleController_CheckStatusDisruption(BattleSystem *battleSys, Batt
|
|||
);
|
||||
|
||||
if (BattleSystem_RandNext(battleSys) & 1) {
|
||||
LOAD_SUBSEQ(BATTLE_SUBSCRIPT_INFATUATED);
|
||||
LOAD_SUBSEQ(subscript_infatuated);
|
||||
battleCtx->commandNext = battleCtx->command;
|
||||
battleCtx->command = BATTLE_CONTROL_EXEC_SCRIPT;
|
||||
|
||||
|
|
@ -2683,7 +2683,7 @@ static BOOL BattleController_CheckStatusDisruption(BattleSystem *battleSys, Batt
|
|||
} else {
|
||||
battleCtx->moveFailFlags[battleCtx->attacker].infatuated = TRUE;
|
||||
|
||||
LOAD_SUBSEQ(BATTLE_SUBSCRIPT_IMMOBILIZED_BY_LOVE);
|
||||
LOAD_SUBSEQ(subscript_immobilized_by_love);
|
||||
battleCtx->command = BATTLE_CONTROL_EXEC_SCRIPT;
|
||||
battleCtx->commandNext = BATTLE_CONTROL_UPDATE_MOVE_BUFFERS;
|
||||
|
||||
|
|
@ -2710,7 +2710,7 @@ static BOOL BattleController_CheckStatusDisruption(BattleSystem *battleSys, Batt
|
|||
battleCtx->defender = BattleSystem_RandomOpponent(battleSys, battleCtx, battleCtx->attacker);
|
||||
|
||||
if (DEFENDING_MON.curHP == 0) {
|
||||
LOAD_SUBSEQ(BATTLE_SUBSCRIPT_BIDE_NO_TARGET);
|
||||
LOAD_SUBSEQ(subscript_bide_no_target);
|
||||
battleCtx->commandNext = BATTLE_CONTROL_UPDATE_MOVE_BUFFERS;
|
||||
battleCtx->command = BATTLE_CONTROL_EXEC_SCRIPT;
|
||||
|
||||
|
|
@ -2720,7 +2720,7 @@ static BOOL BattleController_CheckStatusDisruption(BattleSystem *battleSys, Batt
|
|||
}
|
||||
}
|
||||
|
||||
LOAD_SUBSEQ(BATTLE_SUBSCRIPT_BIDE_END);
|
||||
LOAD_SUBSEQ(subscript_bide_end);
|
||||
battleCtx->commandNext = battleCtx->command;
|
||||
battleCtx->command = BATTLE_CONTROL_EXEC_SCRIPT;
|
||||
|
||||
|
|
@ -2731,7 +2731,7 @@ static BOOL BattleController_CheckStatusDisruption(BattleSystem *battleSys, Batt
|
|||
case CHECK_STATUS_STATE_SELF_THAW:
|
||||
if ((ATTACKING_MON.status & MON_CONDITION_FREEZE)
|
||||
&& (moveEffect == BATTLE_EFFECT_THAW_AND_BURN_HIT || moveEffect == BATTLE_EFFECT_RECOIL_BURN_HIT)) {
|
||||
LOAD_SUBSEQ(BATTLE_SUBSCRIPT_DEFROSTED_BY_MOVE);
|
||||
LOAD_SUBSEQ(subscript_defrosted_by_move);
|
||||
battleCtx->commandNext = battleCtx->command;
|
||||
battleCtx->command = BATTLE_CONTROL_EXEC_SCRIPT;
|
||||
|
||||
|
|
@ -2792,7 +2792,7 @@ static BOOL BattleController_TriggerImmunityAbilities(BattleSystem *battleSys, B
|
|||
int nextSeq = BattleSystem_TriggerImmunityAbility(battleCtx, battleCtx->attacker, battleCtx->defender);
|
||||
|
||||
if ((nextSeq && (battleCtx->moveStatusFlags & MOVE_STATUS_DID_NOT_HIT) == FALSE)
|
||||
|| nextSeq == BATTLE_SUBSCRIPT_BLOCKED_BY_SOUNDPROOF) {
|
||||
|| nextSeq == subscript_blocked_by_soundproof) {
|
||||
LOAD_SUBSEQ(nextSeq);
|
||||
battleCtx->commandNext = battleCtx->command;
|
||||
battleCtx->command = BATTLE_CONTROL_EXEC_SCRIPT;
|
||||
|
|
@ -2825,7 +2825,7 @@ static BOOL BattleController_TriggerImmunityAbilities(BattleSystem *battleSys, B
|
|||
*/
|
||||
static BOOL BattleController_LoadQuickClawCheck(BattleSystem *battleSys, BattleContext *battleCtx)
|
||||
{
|
||||
LOAD_SUBSEQ(BATTLE_SUBSCRIPT_CHECK_QUICK_CLAW);
|
||||
LOAD_SUBSEQ(subscript_check_quick_claw);
|
||||
|
||||
battleCtx->commandNext = battleCtx->command;
|
||||
battleCtx->command = BATTLE_CONTROL_EXEC_SCRIPT;
|
||||
|
|
@ -3079,7 +3079,7 @@ static BOOL BattleController_MoveStolen(BattleSystem *battleSys, BattleContext *
|
|||
|
||||
battleCtx->battleStatusMask |= SYSCTL_REUSE_LAST_MOVE;
|
||||
|
||||
LOAD_SUBSEQ(BATTLE_SUBSCRIPT_MAGIC_COAT);
|
||||
LOAD_SUBSEQ(subscript_magic_coat);
|
||||
battleCtx->commandNext = battleCtx->command;
|
||||
battleCtx->command = BATTLE_CONTROL_EXEC_SCRIPT;
|
||||
|
||||
|
|
@ -3103,7 +3103,7 @@ static BOOL BattleController_MoveStolen(BattleSystem *battleSys, BattleContext *
|
|||
battleCtx->battleStatusMask |= SYSCTL_REUSE_LAST_MOVE;
|
||||
}
|
||||
|
||||
LOAD_SUBSEQ(BATTLE_SUBSCRIPT_SNATCH);
|
||||
LOAD_SUBSEQ(subscript_snatch);
|
||||
battleCtx->commandNext = battleCtx->command;
|
||||
battleCtx->command = BATTLE_CONTROL_EXEC_SCRIPT;
|
||||
|
||||
|
|
@ -3317,7 +3317,7 @@ static void BattleController_CheckMoveFailure(BattleSystem *battleSys, BattleCon
|
|||
if (battleCtx->moveStatusFlags & MOVE_STATUS_NO_MORE_WORK) {
|
||||
battleCtx->command = BATTLE_CONTROL_LOOP_SPREAD_MOVES;
|
||||
} else if (battleCtx->moveStatusFlags & MOVE_STATUS_NO_PP) {
|
||||
LOAD_SUBSEQ(BATTLE_SUBSCRIPT_NO_PP);
|
||||
LOAD_SUBSEQ(subscript_no_pp);
|
||||
battleCtx->command = BATTLE_CONTROL_EXEC_SCRIPT;
|
||||
battleCtx->commandNext = BATTLE_CONTROL_UPDATE_MOVE_BUFFERS;
|
||||
} else if (battleCtx->multiHitLoop && (battleCtx->moveStatusFlags & MOVE_STATUS_MISSED)) {
|
||||
|
|
@ -3326,7 +3326,7 @@ static void BattleController_CheckMoveFailure(BattleSystem *battleSys, BattleCon
|
|||
battleCtx->moveStatusFlags |= MOVE_STATUS_MULTI_HIT_DISRUPTED;
|
||||
battleCtx->command = BATTLE_CONTROL_AFTER_MOVE_MESSAGE;
|
||||
} else if (battleCtx->moveStatusFlags & MOVE_STATUS_DID_NOT_HIT) {
|
||||
LOAD_SUBSEQ(BATTLE_SUBSCRIPT_MISSED);
|
||||
LOAD_SUBSEQ(subscript_missed);
|
||||
battleCtx->command = BATTLE_CONTROL_EXEC_SCRIPT;
|
||||
battleCtx->commandNext = BATTLE_CONTROL_LOOP_FAINTED; // crash damage can kill
|
||||
} else {
|
||||
|
|
@ -3336,7 +3336,7 @@ static void BattleController_CheckMoveFailure(BattleSystem *battleSys, BattleCon
|
|||
|
||||
static void BattleController_UseMove(BattleSystem *battleSys, BattleContext *battleCtx)
|
||||
{
|
||||
LOAD_SUBSEQ(BATTLE_SUBSCRIPT_USE_MOVE);
|
||||
LOAD_SUBSEQ(subscript_use_move);
|
||||
battleCtx->command = BATTLE_CONTROL_EXEC_SCRIPT;
|
||||
battleCtx->commandNext = BATTLE_CONTROL_UPDATE_HP;
|
||||
}
|
||||
|
|
@ -3374,7 +3374,7 @@ static void BattleController_UpdateHP(BattleSystem *battleSys, BattleContext *ba
|
|||
DEFENDER_SELF_TURN_FLAGS.statusFlags |= SELF_TURN_FLAG_SUBSTITUTE_HIT;
|
||||
battleCtx->msgBattlerTemp = battleCtx->defender;
|
||||
|
||||
LOAD_SUBSEQ(BATTLE_SUBSCRIPT_HIT_SUBSTITUTE);
|
||||
LOAD_SUBSEQ(subscript_hit_substitute);
|
||||
battleCtx->command = BATTLE_CONTROL_EXEC_SCRIPT;
|
||||
battleCtx->commandNext = BATTLE_CONTROL_AFTER_MOVE_MESSAGE;
|
||||
|
||||
|
|
@ -3438,7 +3438,7 @@ static void BattleController_UpdateHP(BattleSystem *battleSys, BattleContext *ba
|
|||
battleCtx->msgBattlerTemp = battleCtx->defender;
|
||||
battleCtx->hpCalcTemp = battleCtx->damage;
|
||||
|
||||
LOAD_SUBSEQ(BATTLE_SUBSCRIPT_UPDATE_HP);
|
||||
LOAD_SUBSEQ(subscript_update_hp);
|
||||
battleCtx->command = BATTLE_CONTROL_EXEC_SCRIPT;
|
||||
battleCtx->commandNext = BATTLE_CONTROL_AFTER_MOVE_MESSAGE;
|
||||
battleCtx->battleStatusMask |= SYSCTL_MOVE_HIT;
|
||||
|
|
@ -3501,7 +3501,7 @@ static void BattleController_AfterMoveMessage(BattleSystem *battleSys, BattleCon
|
|||
battleCtx->afterMoveMessageState++;
|
||||
|
||||
// Shaymin changes forms from Sky to Land whenever it is Frozen.
|
||||
LOAD_SUBSEQ(BATTLE_SUBSCRIPT_CHECK_SHAYMIN_FORM);
|
||||
LOAD_SUBSEQ(subscript_check_shaymin_form);
|
||||
battleCtx->commandNext = battleCtx->command;
|
||||
battleCtx->command = BATTLE_CONTROL_EXEC_SCRIPT;
|
||||
|
||||
|
|
@ -3561,7 +3561,7 @@ static void BattleController_AfterMoveMessage(BattleSystem *battleSys, BattleCon
|
|||
battleCtx->afterMoveMessageState++;
|
||||
|
||||
// Shaymin changes forms from Sky to Land whenever it is Frozen.
|
||||
LOAD_SUBSEQ(BATTLE_SUBSCRIPT_CHECK_SHAYMIN_FORM);
|
||||
LOAD_SUBSEQ(subscript_check_shaymin_form);
|
||||
battleCtx->commandNext = battleCtx->command;
|
||||
battleCtx->command = BATTLE_CONTROL_EXEC_SCRIPT;
|
||||
|
||||
|
|
@ -3648,7 +3648,7 @@ static void BattleController_AfterMoveEffects(BattleSystem *battleSys, BattleCon
|
|||
&& (battleCtx->battleMons[battleCtx->afterMoveEffectTemp].moveEffectsTemp & MOVE_EFFECT_SEMI_INVULNERABLE)) {
|
||||
battleCtx->battleMons[battleCtx->afterMoveEffectTemp].moveEffectsTemp &= ~MOVE_EFFECT_SEMI_INVULNERABLE;
|
||||
|
||||
LOAD_SUBSEQ(BATTLE_SUBSCRIPT_VANISH_OFF);
|
||||
LOAD_SUBSEQ(subscript_vanish_off);
|
||||
battleCtx->msgBattlerTemp = battleCtx->afterMoveEffectTemp;
|
||||
battleCtx->commandNext = battleCtx->command;
|
||||
battleCtx->command = BATTLE_CONTROL_EXEC_SCRIPT;
|
||||
|
|
@ -3723,7 +3723,7 @@ static void BattleController_AfterMoveEffects(BattleSystem *battleSys, BattleCon
|
|||
&& moveType == TYPE_FIRE) {
|
||||
battleCtx->msgBattlerTemp = battleCtx->defender;
|
||||
|
||||
LOAD_SUBSEQ(BATTLE_SUBSCRIPT_THAW_OUT);
|
||||
LOAD_SUBSEQ(subscript_thaw_out);
|
||||
battleCtx->commandNext = battleCtx->command;
|
||||
battleCtx->command = BATTLE_CONTROL_EXEC_SCRIPT;
|
||||
|
||||
|
|
@ -3796,7 +3796,7 @@ static void BattleController_LoopMultiHit(BattleSystem *battleSys, BattleContext
|
|||
} else {
|
||||
battleCtx->msgTemp = battleCtx->multiHitNumHits;
|
||||
|
||||
LOAD_SUBSEQ(BATTLE_SUBSCRIPT_HIT_X_TIMES);
|
||||
LOAD_SUBSEQ(subscript_hit_x_times);
|
||||
battleCtx->command = BATTLE_CONTROL_EXEC_SCRIPT;
|
||||
battleCtx->commandNext = BATTLE_CONTROL_LOOP_FAINTED;
|
||||
}
|
||||
|
|
@ -3809,7 +3809,7 @@ static void BattleController_LoopMultiHit(BattleSystem *battleSys, BattleContext
|
|||
battleCtx->msgTemp = battleCtx->multiHitNumHits - battleCtx->multiHitCounter;
|
||||
}
|
||||
|
||||
LOAD_SUBSEQ(BATTLE_SUBSCRIPT_HIT_X_TIMES);
|
||||
LOAD_SUBSEQ(subscript_hit_x_times);
|
||||
battleCtx->command = BATTLE_CONTROL_EXEC_SCRIPT;
|
||||
battleCtx->commandNext = BATTLE_CONTROL_LOOP_FAINTED;
|
||||
}
|
||||
|
|
@ -3895,7 +3895,7 @@ static void BattleController_FaintAfterSelfdestruct(BattleSystem *battleSys, Bat
|
|||
battleCtx->faintedMon = LowestBit((battleCtx->battleStatusMask & SYSCTL_MON_SELFDESTRUCTED) >> SYSCTL_MON_SELFDESTRUCTED_SHIFT);
|
||||
battleCtx->battleStatusMask &= ~SYSCTL_MON_SELFDESTRUCTED;
|
||||
|
||||
LOAD_SUBSEQ(BATTLE_SUBSCRIPT_AFTER_SELFDESTRUCT);
|
||||
LOAD_SUBSEQ(subscript_after_selfdestruct);
|
||||
battleCtx->command = BATTLE_CONTROL_EXEC_SCRIPT;
|
||||
battleCtx->commandNext = BATTLE_CONTROL_TRIGGER_AFTER_HIT_EFFECTS;
|
||||
} else {
|
||||
|
|
@ -4017,11 +4017,11 @@ static void BattleController_HandleResult(BattleSystem *battleSys, BattleContext
|
|||
battleCtx->command = BATTLE_CONTROL_FIGHT_END;
|
||||
} else if (BattleSystem_ResultMask(battleSys) == BATTLE_RESULT_LOSE
|
||||
|| BattleSystem_ResultMask(battleSys) == BATTLE_RESULT_DRAW) {
|
||||
LOAD_SUBSEQ(BATTLE_SUBSCRIPT_BATTLE_LOST);
|
||||
LOAD_SUBSEQ(subscript_battle_lost);
|
||||
battleCtx->command = BATTLE_CONTROL_EXEC_SCRIPT;
|
||||
battleCtx->commandNext = BATTLE_CONTROL_FIGHT_END;
|
||||
} else if (BattleSystem_ResultMask(battleSys) == BATTLE_RESULT_WIN) {
|
||||
LOAD_SUBSEQ(BATTLE_SUBSCRIPT_BATTLE_WON);
|
||||
LOAD_SUBSEQ(subscript_battle_won);
|
||||
battleCtx->command = BATTLE_CONTROL_EXEC_SCRIPT;
|
||||
battleCtx->commandNext = BATTLE_CONTROL_FIGHT_END;
|
||||
} else if (BattleSystem_ResultMask(battleSys) == BATTLE_RESULT_CAPTURED_MON) {
|
||||
|
|
@ -4158,9 +4158,9 @@ static BOOL BattleController_ReplaceFainted(BattleSystem *battleSys, BattleConte
|
|||
battleCtx->scriptTemp = TRUE;
|
||||
}
|
||||
|
||||
LOAD_SUBSEQ(BATTLE_SUBSCRIPT_REPLACE_FAINTED);
|
||||
LOAD_SUBSEQ(subscript_replace_fainted);
|
||||
} else {
|
||||
LOAD_SUBSEQ(BATTLE_SUBSCRIPT_SHOW_PARTY_LIST);
|
||||
LOAD_SUBSEQ(subscript_show_party_list);
|
||||
}
|
||||
|
||||
result = TRUE;
|
||||
|
|
@ -4424,9 +4424,9 @@ static BOOL BattleController_AnyFainted(BattleContext *battleCtx, int nextCmd, i
|
|||
battleCtx->faintedMon = LowestBit(battlerBit >> SYSCTL_MON_FAINTED_SHIFT);
|
||||
|
||||
if (onlyFaint == TRUE) {
|
||||
LOAD_SUBSEQ(BATTLE_SUBSCRIPT_FAINT_MON);
|
||||
LOAD_SUBSEQ(subscript_faint_mon);
|
||||
} else {
|
||||
LOAD_SUBSEQ(BATTLE_SUBSCRIPT_FAINT_CHECK_DESTINY_BOND);
|
||||
LOAD_SUBSEQ(subscript_faint_check_destiny_bond);
|
||||
}
|
||||
|
||||
battleCtx->command = BATTLE_CONTROL_EXEC_SCRIPT;
|
||||
|
|
@ -4460,7 +4460,7 @@ static BOOL BattleController_AnyExpPayout(BattleContext *battleCtx, int nextCmd,
|
|||
battleCtx->battleStatusMask2 &= (battler ^ 0xFFFFFFFF);
|
||||
battleCtx->faintedMon = LowestBit(battler >> SYSCTL_PAYOUT_EXP_SHIFT);
|
||||
|
||||
LOAD_SUBSEQ(BATTLE_SUBSCRIPT_GRANT_EXP);
|
||||
LOAD_SUBSEQ(subscript_grant_exp);
|
||||
battleCtx->command = BATTLE_CONTROL_EXEC_SCRIPT;
|
||||
battleCtx->commandNext = nextCmd;
|
||||
|
||||
|
|
@ -4549,7 +4549,7 @@ static void BattleController_UpdateFlagsWhenHit(BattleSystem *battleSys, BattleC
|
|||
*/
|
||||
static BOOL BattleController_CriticalMessage(BattleSystem *battleSys, BattleContext *battleCtx)
|
||||
{
|
||||
LOAD_SUBSEQ(BATTLE_SUBSCRIPT_CRITICAL_HIT);
|
||||
LOAD_SUBSEQ(subscript_critical_hit);
|
||||
battleCtx->commandNext = battleCtx->command;
|
||||
battleCtx->command = BATTLE_CONTROL_EXEC_SCRIPT;
|
||||
|
||||
|
|
@ -4583,7 +4583,7 @@ static BOOL BattleController_FollowupMessage(BattleSystem *battleSys, BattleCont
|
|||
}
|
||||
|
||||
if (result == TRUE) {
|
||||
LOAD_SUBSEQ(BATTLE_SUBSCRIPT_MOVE_FOLLOWUP_MESSAGE);
|
||||
LOAD_SUBSEQ(subscript_move_followup_message);
|
||||
battleCtx->commandNext = battleCtx->command;
|
||||
battleCtx->command = BATTLE_CONTROL_EXEC_SCRIPT;
|
||||
}
|
||||
|
|
@ -4613,7 +4613,7 @@ static BOOL BattleController_RageBuilding(BattleSystem *battleSys, BattleContext
|
|||
&& DEFENDING_MON.statBoosts[BATTLE_STAT_ATTACK] < 12) {
|
||||
DEFENDING_MON.statBoosts[BATTLE_STAT_ATTACK]++;
|
||||
|
||||
LOAD_SUBSEQ(BATTLE_SUBSCRIPT_RAGE_IS_BUILDING);
|
||||
LOAD_SUBSEQ(subscript_rage_is_building);
|
||||
battleCtx->commandNext = battleCtx->command;
|
||||
battleCtx->command = BATTLE_CONTROL_EXEC_SCRIPT;
|
||||
result = TRUE;
|
||||
|
|
@ -4646,7 +4646,7 @@ static BOOL BattleController_CheckExtraFlinch(BattleSystem *battleSys, BattleCon
|
|||
battleCtx->sideEffectMon = battleCtx->defender;
|
||||
battleCtx->sideEffectType = SIDE_EFFECT_TYPE_INDIRECT;
|
||||
|
||||
LOAD_SUBSEQ(BATTLE_SUBSCRIPT_FLINCH_MON);
|
||||
LOAD_SUBSEQ(subscript_flinch_mon);
|
||||
battleCtx->commandNext = battleCtx->command;
|
||||
battleCtx->command = BATTLE_CONTROL_EXEC_SCRIPT;
|
||||
|
||||
|
|
@ -4672,7 +4672,7 @@ static BOOL BattleController_ToggleSemiInvulnMons(BattleSystem *battleSys, Battl
|
|||
&& (battleCtx->battleMons[battleCtx->vanishedCheckTemp].moveEffectsTemp & MOVE_EFFECT_SEMI_INVULNERABLE)) {
|
||||
battleCtx->battleMons[battleCtx->vanishedCheckTemp].moveEffectsTemp &= ~MOVE_EFFECT_SEMI_INVULNERABLE;
|
||||
|
||||
LOAD_SUBSEQ(BATTLE_SUBSCRIPT_VANISH_OFF);
|
||||
LOAD_SUBSEQ(subscript_vanish_off);
|
||||
battleCtx->msgBattlerTemp = battleCtx->vanishedCheckTemp;
|
||||
battleCtx->commandNext = battleCtx->command;
|
||||
battleCtx->command = BATTLE_CONTROL_EXEC_SCRIPT;
|
||||
|
|
@ -4748,7 +4748,7 @@ static BOOL BattleController_TriggerAfterMoveHitEffects(BattleSystem *battleSys,
|
|||
battleCtx->hpCalcTemp = BattleSystem_Divide(ATTACKER_SELF_TURN_FLAGS.shellBellDamageDealt * -1, itemPower);
|
||||
battleCtx->msgBattlerTemp = battleCtx->attacker;
|
||||
|
||||
LOAD_SUBSEQ(BATTLE_SUBSCRIPT_RESTORE_A_LITTLE_HP);
|
||||
LOAD_SUBSEQ(subscript_restore_a_little_hp);
|
||||
battleCtx->commandNext = battleCtx->command;
|
||||
battleCtx->command = BATTLE_CONTROL_EXEC_SCRIPT;
|
||||
|
||||
|
|
@ -4768,7 +4768,7 @@ static BOOL BattleController_TriggerAfterMoveHitEffects(BattleSystem *battleSys,
|
|||
battleCtx->hpCalcTemp = BattleSystem_Divide(battleCtx->battleMons[battleCtx->attacker].maxHP * -1, 10);
|
||||
battleCtx->msgBattlerTemp = battleCtx->attacker;
|
||||
|
||||
LOAD_SUBSEQ(BATTLE_SUBSCRIPT_LOSE_HP_FROM_ITEM);
|
||||
LOAD_SUBSEQ(subscript_lose_hp_from_item);
|
||||
battleCtx->commandNext = battleCtx->command;
|
||||
battleCtx->command = BATTLE_CONTROL_EXEC_SCRIPT;
|
||||
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -2,7 +2,6 @@
|
|||
#include <string.h>
|
||||
|
||||
#include "consts/generated/c/abilities.h"
|
||||
#include "consts/generated/c/battle_subscripts.h"
|
||||
#include "consts/generated/c/gender.h"
|
||||
|
||||
#include "constants/battle.h"
|
||||
|
|
@ -31,6 +30,7 @@
|
|||
#include "battle/btlcmd.h"
|
||||
#include "battle/common.h"
|
||||
#include "battle/battle_controller.h"
|
||||
#include "battle/scripts/sub_seq.naix"
|
||||
|
||||
#include "constdata/const_020F2DAC.h"
|
||||
|
||||
|
|
@ -1837,7 +1837,7 @@ static BOOL BtlCmd_PlayMoveAnimation(BattleSystem *battleSys, BattleContext *bat
|
|||
}
|
||||
|
||||
if (BattleSystem_AnimationsOn(battleSys) == FALSE) {
|
||||
BattleScript_Call(battleCtx, NARC_INDEX_BATTLE__SKILL__SUB_SEQ, BATTLE_SUBSCRIPT_WAIT_MOVE_ANIMATION);
|
||||
BattleScript_Call(battleCtx, NARC_INDEX_BATTLE__SKILL__SUB_SEQ, subscript_wait_move_animation);
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
|
|
@ -1882,7 +1882,7 @@ static BOOL BtlCmd_PlayMoveAnimationOnMons(BattleSystem *battleSys, BattleContex
|
|||
}
|
||||
|
||||
if (BattleSystem_AnimationsOn(battleSys) == FALSE) {
|
||||
BattleScript_Call(battleCtx, NARC_INDEX_BATTLE__SKILL__SUB_SEQ, BATTLE_SUBSCRIPT_WAIT_MOVE_ANIMATION);
|
||||
BattleScript_Call(battleCtx, NARC_INDEX_BATTLE__SKILL__SUB_SEQ, subscript_wait_move_animation);
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
|
|
@ -2363,7 +2363,7 @@ static BOOL BtlCmd_GoToMoveScript(BattleSystem *battleSys, BattleContext *battle
|
|||
|
||||
if (battleCtx->defender == BATTLER_NONE) {
|
||||
battleCtx->commandNext = BATTLE_CONTROL_UPDATE_MOVE_BUFFERS;
|
||||
BattleScript_Jump(battleCtx, NARC_INDEX_BATTLE__SKILL__SUB_SEQ, BATTLE_SUBSCRIPT_NO_TARGET);
|
||||
BattleScript_Jump(battleCtx, NARC_INDEX_BATTLE__SKILL__SUB_SEQ, subscript_no_target);
|
||||
} else {
|
||||
BattleScript_Jump(battleCtx, NARC_INDEX_BATTLE__SKILL__WAZA_SEQ, battleCtx->moveCur);
|
||||
}
|
||||
|
|
@ -3747,7 +3747,7 @@ static BOOL BtlCmd_SetMirrorMove(BattleSystem *battleSys, BattleContext *battleC
|
|||
|
||||
if (battleCtx->defender == BATTLER_NONE) {
|
||||
battleCtx->commandNext = BATTLE_CONTROL_UPDATE_MOVE_BUFFERS;
|
||||
BattleScript_Jump(battleCtx, NARC_INDEX_BATTLE__SKILL__SUB_SEQ, BATTLE_SUBSCRIPT_NO_TARGET);
|
||||
BattleScript_Jump(battleCtx, NARC_INDEX_BATTLE__SKILL__SUB_SEQ, subscript_no_target);
|
||||
} else {
|
||||
ATTACKER_ACTION[BATTLE_ACTION_CHOOSE_TARGET] = battleCtx->defender;
|
||||
BattleScript_Jump(battleCtx, NARC_INDEX_BATTLE__SKILL__WAZA_SEQ, move);
|
||||
|
|
@ -4875,7 +4875,7 @@ static BOOL BtlCmd_Counter(BattleSystem *battleSys, BattleContext *battleCtx)
|
|||
// CompareVarToValue there are no possible targets, fail
|
||||
if (DEFENDING_MON.curHP == 0) {
|
||||
battleCtx->commandNext = BATTLE_CONTROL_UPDATE_MOVE_BUFFERS;
|
||||
BattleScript_Jump(battleCtx, NARC_INDEX_BATTLE__SKILL__SUB_SEQ, BATTLE_SUBSCRIPT_NO_TARGET);
|
||||
BattleScript_Jump(battleCtx, NARC_INDEX_BATTLE__SKILL__SUB_SEQ, subscript_no_target);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -4928,7 +4928,7 @@ static BOOL BtlCmd_MirrorCoat(BattleSystem *battleSys, BattleContext *battleCtx)
|
|||
// CompareVarToValue there are no possible targets, fail
|
||||
if (DEFENDING_MON.curHP == 0) {
|
||||
battleCtx->commandNext = BATTLE_CONTROL_UPDATE_MOVE_BUFFERS;
|
||||
BattleScript_Jump(battleCtx, NARC_INDEX_BATTLE__SKILL__SUB_SEQ, BATTLE_SUBSCRIPT_NO_TARGET);
|
||||
BattleScript_Jump(battleCtx, NARC_INDEX_BATTLE__SKILL__SUB_SEQ, subscript_no_target);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -6143,7 +6143,7 @@ static BOOL BtlCmd_RapidSpin(BattleSystem *battleSys, BattleContext *battleCtx)
|
|||
ATTACKING_MON.statusVolatile &= ~VOLATILE_CONDITION_BIND;
|
||||
battleCtx->msgBattlerTemp = ATTACKING_MON.moveEffectsData.bindTarget;
|
||||
battleCtx->msgMoveTemp = ATTACKING_MON.moveEffectsData.bindingMove;
|
||||
BattleScript_Call(battleCtx, NARC_INDEX_BATTLE__SKILL__SUB_SEQ, BATTLE_SUBSCRIPT_BREAK_BIND_EFFECT);
|
||||
BattleScript_Call(battleCtx, NARC_INDEX_BATTLE__SKILL__SUB_SEQ, subscript_break_bind_effect);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
|
@ -6152,7 +6152,7 @@ static BOOL BtlCmd_RapidSpin(BattleSystem *battleSys, BattleContext *battleCtx)
|
|||
ATTACKING_MON.moveEffectsMask &= ~MOVE_EFFECT_LEECH_SEED;
|
||||
ATTACKING_MON.moveEffectsMask &= ~MOVE_EFFECT_LEECH_SEED_RECIPIENT;
|
||||
battleCtx->msgMoveTemp = MOVE_LEECH_SEED;
|
||||
BattleScript_Call(battleCtx, NARC_INDEX_BATTLE__SKILL__SUB_SEQ, BATTLE_SUBSCRIPT_BLOW_AWAY_HAZARDS);
|
||||
BattleScript_Call(battleCtx, NARC_INDEX_BATTLE__SKILL__SUB_SEQ, subscript_blow_away_hazards);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
|
@ -6161,7 +6161,7 @@ static BOOL BtlCmd_RapidSpin(BattleSystem *battleSys, BattleContext *battleCtx)
|
|||
battleCtx->sideConditionsMask[side] &= ~SIDE_CONDITION_SPIKES;
|
||||
battleCtx->sideConditions[side].spikesLayers = 0;
|
||||
battleCtx->msgMoveTemp = MOVE_SPIKES;
|
||||
BattleScript_Call(battleCtx, NARC_INDEX_BATTLE__SKILL__SUB_SEQ, BATTLE_SUBSCRIPT_BLOW_AWAY_HAZARDS);
|
||||
BattleScript_Call(battleCtx, NARC_INDEX_BATTLE__SKILL__SUB_SEQ, subscript_blow_away_hazards);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
|
@ -6171,7 +6171,7 @@ static BOOL BtlCmd_RapidSpin(BattleSystem *battleSys, BattleContext *battleCtx)
|
|||
battleCtx->sideConditions[side].toxicSpikesLayers = 0;
|
||||
battleCtx->msgMoveTemp = MOVE_TOXIC_SPIKES;
|
||||
|
||||
BattleScript_Call(battleCtx, NARC_INDEX_BATTLE__SKILL__SUB_SEQ, BATTLE_SUBSCRIPT_BLOW_AWAY_HAZARDS);
|
||||
BattleScript_Call(battleCtx, NARC_INDEX_BATTLE__SKILL__SUB_SEQ, subscript_blow_away_hazards);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
|
@ -6179,7 +6179,7 @@ static BOOL BtlCmd_RapidSpin(BattleSystem *battleSys, BattleContext *battleCtx)
|
|||
if (battleCtx->sideConditionsMask[side] & SIDE_CONDITION_STEALTH_ROCK) {
|
||||
battleCtx->sideConditionsMask[side] &= ~SIDE_CONDITION_STEALTH_ROCK;
|
||||
battleCtx->msgMoveTemp = MOVE_STEALTH_ROCK;
|
||||
BattleScript_Call(battleCtx, NARC_INDEX_BATTLE__SKILL__SUB_SEQ, BATTLE_SUBSCRIPT_BLOW_AWAY_HAZARDS);
|
||||
BattleScript_Call(battleCtx, NARC_INDEX_BATTLE__SKILL__SUB_SEQ, subscript_blow_away_hazards);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
|
@ -7408,7 +7408,7 @@ static BOOL BtlCmd_TryMetalBurst(BattleSystem *battleSys, BattleContext *battleC
|
|||
|
||||
if (DEFENDING_MON.curHP == 0) {
|
||||
battleCtx->commandNext = BATTLE_CONTROL_UPDATE_MOVE_BUFFERS;
|
||||
BattleScript_Jump(battleCtx, NARC_INDEX_BATTLE__SKILL__SUB_SEQ, BATTLE_SUBSCRIPT_NO_TARGET);
|
||||
BattleScript_Jump(battleCtx, NARC_INDEX_BATTLE__SKILL__SUB_SEQ, subscript_no_target);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user