mirror of
https://github.com/pret/pokeplatinum.git
synced 2026-04-24 15:07:47 -05:00
Merge pull request #59 from lhearachel/battle-dev
Document + clean up the pre-move-execution state machine
This commit is contained in:
commit
12af46c19d
|
|
@ -31,8 +31,14 @@ enum BattleControlSequence {
|
|||
|
||||
BATTLE_CONTROL_EXEC_SCRIPT,
|
||||
BATTLE_CONTROL_BEFORE_MOVE,
|
||||
BATTLE_CONTROL_AFTER_MOVE,
|
||||
|
||||
BATTLE_CONTROL_AFTER_MOVE = 39,
|
||||
BATTLE_CONTROL_NO_EFFECTS = 25,
|
||||
|
||||
BATTLE_CONTROL_CHECK_FAINTED = 33,
|
||||
|
||||
BATTLE_CONTROL_UPDATE_MOVE_BUFFERS = 38,
|
||||
BATTLE_CONTROL_MOVE_END,
|
||||
BATTLE_CONTROL_AFTER_SWITCH,
|
||||
BATTLE_CONTROL_RESULT,
|
||||
|
||||
|
|
|
|||
|
|
@ -3,6 +3,13 @@
|
|||
|
||||
#define ATTACKING_MON (battleCtx->battleMons[battleCtx->attacker])
|
||||
#define DEFENDING_MON (battleCtx->battleMons[battleCtx->defender])
|
||||
#define ATTACKING_MOVE (battleCtx->moveSlot[battleCtx->attacker])
|
||||
#define ATTACKER_ACTION (battleCtx->battlerActions[battleCtx->attacker])
|
||||
|
||||
#define ATTACKER_TURN_FLAGS (battleCtx->turnFlags[battleCtx->attacker])
|
||||
#define DEFENDER_TURN_FLAGS (battleCtx->turnFlags[battleCtx->defender])
|
||||
|
||||
#define CURRENT_MOVE_DATA (battleCtx->aiContext.moveTable[battleCtx->moveCur])
|
||||
|
||||
#define LOAD_SUBSEQ(script) (BattleSystem_LoadScript(battleCtx, NARC_INDEX_BATTLE__SKILL__SUB_SEQ, script))
|
||||
|
||||
|
|
@ -10,4 +17,30 @@
|
|||
#define BATTLER_US 0
|
||||
#define BATTLER_THEM 1
|
||||
|
||||
#define CALC_SELF_HIT(move, power) (BattleSystem_CalcMoveDamage(\
|
||||
battleSys,\
|
||||
battleCtx,\
|
||||
move,\
|
||||
0,\
|
||||
0,\
|
||||
power,\
|
||||
0,\
|
||||
battleCtx->attacker,\
|
||||
battleCtx->attacker,\
|
||||
1))
|
||||
|
||||
#define MON_IS_UPROARING(mon) (battleCtx->fieldConditionsMask & (FlagIndex(mon) << FIELD_CONDITION_UPROAR_SHIFT))
|
||||
|
||||
#define NO_TARGET_SINGLE_TURN (battleCtx->defender == BATTLER_NONE && BattleMove_IsMultiTurn(battleCtx, battleCtx->moveCur) == FALSE)
|
||||
#define NO_TARGET_MULTI_TURN (battleCtx->defender == BATTLER_NONE \
|
||||
&& BattleMove_IsMultiTurn(battleCtx, battleCtx->moveCur) == TRUE \
|
||||
&& ( \
|
||||
(ATTACKING_MON.statusVolatile & VOLATILE_CONDITION_CHARGE_TURN) \
|
||||
|| (battleCtx->battleStatusMask & SYSCTL_LAST_OF_MULTI_TURN) \
|
||||
))
|
||||
#define NO_TARGET (NO_TARGET_SINGLE_TURN || NO_TARGET_MULTI_TURN)
|
||||
|
||||
#define NO_CLOUD_NINE (BattleSystem_CountAbility(battleSys, battleCtx, 8, 0, ABILITY_CLOUD_NINE) == FALSE \
|
||||
&& BattleSystem_CountAbility(battleSys, battleCtx, 8, 0, ABILITY_AIR_LOCK) == FALSE)
|
||||
|
||||
#endif // POKEPLATINUM_BATTLE_COMMON_H
|
||||
|
|
@ -23,6 +23,7 @@
|
|||
#define BATTLE_TYPE_NO_ITEMS (BATTLE_TYPE_LINK | BATTLE_TYPE_FRONTIER)
|
||||
#define BATTLE_TYPE_AI_PARTNER (BATTLE_TYPE_DOUBLES | BATTLE_TYPE_2vs2 | BATTLE_TYPE_AI)
|
||||
#define BATTLE_TYPE_SPECIAL_WILD (BATTLE_TYPE_SAFARI | BATTLE_TYPE_ROAMER | BATTLE_TYPE_PAL_PARK | BATTLE_TYPE_CATCH_TUTORIAL)
|
||||
#define BATTLE_TYPE_NO_OBEDIENCE_CHECK (BATTLE_TYPE_LINK | BATTLE_TYPE_FRONTIER)
|
||||
|
||||
#define MAX_LINK_BATTLERS 4
|
||||
#define MAX_BATTLERS 4
|
||||
|
|
@ -64,6 +65,7 @@
|
|||
#define BATTLER_ENEMY_SLOT_1 1
|
||||
#define BATTLER_PLAYER_SLOT_2 2
|
||||
#define BATTLER_ENEMY_SLOT_2 3
|
||||
#define BATTLER_NONE 0xFF
|
||||
|
||||
#define BATTLE_SIDE_PLAYER 0
|
||||
#define BATTLE_SIDE_ENEMY 1
|
||||
|
|
@ -101,8 +103,6 @@
|
|||
#define STRUGGLING_MOVE_4 (1 << 3)
|
||||
#define STRUGGLING_ALL (STRUGGLING_MOVE_1 | STRUGGLING_MOVE_2 | STRUGGLING_MOVE_3 | STRUGGLING_MOVE_4)
|
||||
|
||||
#define SYSTEM_CONTROL_SKIP_DAMAGE_SPRITE_BLINK (1 << 6)
|
||||
|
||||
enum BattleActions {
|
||||
BATTLE_ACTION_PICK_COMMAND = 0,
|
||||
BATTLE_ACTION_CHOOSE_TARGET,
|
||||
|
|
|
|||
284
include/constants/battle/battle_effects.h
Normal file
284
include/constants/battle/battle_effects.h
Normal file
|
|
@ -0,0 +1,284 @@
|
|||
#ifndef POKEPLATINUM_CONSTANTS_BATTLE_EFFECTS_H
|
||||
#define POKEPLATINUM_CONSTANTS_BATTLE_EFFECTS_H
|
||||
|
||||
enum {
|
||||
BATTLE_EFFECT_HIT = 0,
|
||||
BATTLE_EFFECT_STATUS_SLEEP,
|
||||
BATTLE_EFFECT_POISON_HIT,
|
||||
BATTLE_EFFECT_RECOVER_HALF_DAMAGE_DEALT,
|
||||
BATTLE_EFFECT_BURN_HIT,
|
||||
BATTLE_EFFECT_FREEZE_HIT,
|
||||
BATTLE_EFFECT_PARALYZE_HIT,
|
||||
BATTLE_EFFECT_HALVE_DEFENSE,
|
||||
BATTLE_EFFECT_RECOVER_DAMAGE_SLEEP,
|
||||
BATTLE_EFFECT_COPY_MOVE,
|
||||
BATTLE_EFFECT_ATK_UP,
|
||||
BATTLE_EFFECT_DEF_UP,
|
||||
BATTLE_EFFECT_SPEED_UP,
|
||||
BATTLE_EFFECT_SP_ATK_UP,
|
||||
BATTLE_EFFECT_SP_DEF_UP,
|
||||
BATTLE_EFFECT_ACC_UP,
|
||||
BATTLE_EFFECT_EVA_UP,
|
||||
BATTLE_EFFECT_BYPASS_ACCURACY,
|
||||
BATTLE_EFFECT_ATK_DOWN,
|
||||
BATTLE_EFFECT_DEF_DOWN,
|
||||
BATTLE_EFFECT_SPEED_DOWN,
|
||||
BATTLE_EFFECT_SP_ATK_DOWN,
|
||||
BATTLE_EFFECT_SP_DEF_DOWN,
|
||||
BATTLE_EFFECT_ACC_DOWN,
|
||||
BATTLE_EFFECT_EVA_DOWN,
|
||||
BATTLE_EFFECT_RESET_STAT_CHANGES,
|
||||
BATTLE_EFFECT_BIDE,
|
||||
BATTLE_EFFECT_CONTINUE_AND_CONFUSE_SELF,
|
||||
BATTLE_EFFECT_FORCE_SWITCH,
|
||||
BATTLE_EFFECT_MULTI_HIT,
|
||||
BATTLE_EFFECT_CONVERSION,
|
||||
BATTLE_EFFECT_FLINCH_HIT,
|
||||
BATTLE_EFFECT_RESTORE_HALF_HP,
|
||||
BATTLE_EFFECT_STATUS_BADLY_POISON,
|
||||
BATTLE_EFFECT_INCREASE_PRIZE_MONEY,
|
||||
BATTLE_EFFECT_SET_LIGHT_SCREEN,
|
||||
BATTLE_EFFECT_TRI_ATTACK,
|
||||
BATTLE_EFFECT_REST,
|
||||
BATTLE_EFFECT_ONE_HIT_KO,
|
||||
BATTLE_EFFECT_CHARGE_TURN_HIGH_CRIT,
|
||||
BATTLE_EFFECT_HALVE_HP,
|
||||
BATTLE_EFFECT_40_DAMAGE_FLAT,
|
||||
BATTLE_EFFECT_BIND_HIT,
|
||||
BATTLE_EFFECT_HIGH_CRITICAL,
|
||||
BATTLE_EFFECT_HIT_TWICE,
|
||||
BATTLE_EFFECT_CRASH_ON_MISS,
|
||||
BATTLE_EFFECT_PREVENT_STAT_REDUCTION,
|
||||
BATTLE_EFFECT_CRIT_UP_2,
|
||||
BATTLE_EFFECT_RECOIL_QUARTER,
|
||||
BATTLE_EFFECT_STATUS_CONFUSE,
|
||||
BATTLE_EFFECT_ATK_UP_2,
|
||||
BATTLE_EFFECT_DEF_UP_2,
|
||||
BATTLE_EFFECT_SPEED_UP_2,
|
||||
BATTLE_EFFECT_SP_ATK_UP_2,
|
||||
BATTLE_EFFECT_SP_DEF_UP_2,
|
||||
BATTLE_EFFECT_ACC_UP_2,
|
||||
BATTLE_EFFECT_EVA_UP_2,
|
||||
BATTLE_EFFECT_TRANSFORM,
|
||||
BATTLE_EFFECT_ATK_DOWN_2,
|
||||
BATTLE_EFFECT_DEF_DOWN_2,
|
||||
BATTLE_EFFECT_SPEED_DOWN_2,
|
||||
BATTLE_EFFECT_SP_ATK_DOWN_2,
|
||||
BATTLE_EFFECT_SP_DEF_DOWN_2,
|
||||
BATTLE_EFFECT_EVA_DOWN_2,
|
||||
BATTLE_EFFECT_ACC_DOWN_2,
|
||||
BATTLE_EFFECT_SET_REFLECT,
|
||||
BATTLE_EFFECT_STATUS_POISON,
|
||||
BATTLE_EFFECT_STATUS_PARALYZE,
|
||||
BATTLE_EFFECT_LOWER_ATTACK_HIT,
|
||||
BATTLE_EFFECT_LOWER_DEFENSE_HIT,
|
||||
BATTLE_EFFECT_LOWER_SPEED_HIT,
|
||||
BATTLE_EFFECT_LOWER_SP_ATK_HIT,
|
||||
BATTLE_EFFECT_LOWER_SP_DEF_HIT,
|
||||
BATTLE_EFFECT_LOWER_ACCURACY_HIT,
|
||||
BATTLE_EFFECT_LOWER_EVASION_HIT,
|
||||
BATTLE_EFFECT_CHARGE_TURN_HIGH_CRIT_FLINCH,
|
||||
BATTLE_EFFECT_CONFUSE_HIT,
|
||||
BATTLE_EFFECT_POISON_MULTI_HIT,
|
||||
BATTLE_EFFECT_PRIORITY_NEG_1_BYPASS_ACCURACY,
|
||||
BATTLE_EFFECT_SET_SUBSTITUTE,
|
||||
BATTLE_EFFECT_RECHARGE_AFTER,
|
||||
BATTLE_EFFECT_RAISE_ATK_WHEN_HIT,
|
||||
BATTLE_EFFECT_COPY_MOVE_FOR_BATTLE,
|
||||
BATTLE_EFFECT_CALL_RANDOM_MOVE,
|
||||
BATTLE_EFFECT_STATUS_LEECH_SEED,
|
||||
BATTLE_EFFECT_DO_NOTHING,
|
||||
BATTLE_EFFECT_DISABLE,
|
||||
BATTLE_EFFECT_LEVEL_DAMAGE_FLAT,
|
||||
BATTLE_EFFECT_RANDOM_DAMAGE_1_TO_150_LEVEL,
|
||||
BATTLE_EFFECT_COUNTER,
|
||||
BATTLE_EFFECT_ENCORE,
|
||||
BATTLE_EFFECT_AVERAGE_HP,
|
||||
BATTLE_EFFECT_DAMAGE_WHILE_ASLEEP,
|
||||
BATTLE_EFFECT_CONVERSION2,
|
||||
BATTLE_EFFECT_NEXT_ATTACK_ALWAYS_HITS,
|
||||
BATTLE_EFFECT_LEARN_MOVE_PERMANENT,
|
||||
BATTLE_EFFECT_UNUSED_96,
|
||||
BATTLE_EFFECT_USE_RANDOM_LEARNED_MOVE_SLEEP,
|
||||
BATTLE_EFFECT_KO_MON_THAT_DEFEATED_USER,
|
||||
BATTLE_EFFECT_INCREASE_POWER_WITH_LESS_HP,
|
||||
BATTLE_EFFECT_DECREASE_LAST_MOVE_PP,
|
||||
BATTLE_EFFECT_LEAVE_WITH_1_HP,
|
||||
BATTLE_EFFECT_CURE_PARTY_STATUS,
|
||||
BATTLE_EFFECT_PRIORITY_1,
|
||||
BATTLE_EFFECT_HIT_THREE_TIMES,
|
||||
BATTLE_EFFECT_STEAL_HELD_ITEM,
|
||||
BATTLE_EFFECT_PREVENT_ESCAPE,
|
||||
BATTLE_EFFECT_STATUS_NIGHTMARE,
|
||||
BATTLE_EFFECT_EVA_UP_2_MINIMIZE,
|
||||
BATTLE_EFFECT_CURSE,
|
||||
BATTLE_EFFECT_UNUSED_110,
|
||||
BATTLE_EFFECT_PROTECT,
|
||||
BATTLE_EFFECT_SET_SPIKES,
|
||||
BATTLE_EFFECT_IGNORE_EVASION_REMOVE_GHOST_IMMUNE,
|
||||
BATTLE_EFFECT_ALL_FAINT_3_TURNS,
|
||||
BATTLE_EFFECT_WEATHER_SANDSTORM,
|
||||
BATTLE_EFFECT_SURVIVE_WITH_1_HP,
|
||||
BATTLE_EFFECT_DOUBLE_POWER_EACH_TURN_LOCK_INTO,
|
||||
BATTLE_EFFECT_ATK_UP_2_STATUS_CONFUSION,
|
||||
BATTLE_EFFECT_DOUBLE_POWER_EACH_TURN,
|
||||
BATTLE_EFFECT_INFATUATE,
|
||||
BATTLE_EFFECT_POWER_BASED_ON_FRIENDSHIP,
|
||||
BATTLE_EFFECT_RANDOM_POWER_MAYBE_HEAL,
|
||||
BATTLE_EFFECT_POWER_BASED_ON_LOW_FRIENDSHIP,
|
||||
BATTLE_EFFECT_PREVENT_STATUS,
|
||||
BATTLE_EFFECT_THAW_AND_BURN_HIT,
|
||||
BATTLE_EFFECT_RANDOM_POWER_10_CASES,
|
||||
BATTLE_EFFECT_PASS_STATS_AND_STATUS,
|
||||
BATTLE_EFFECT_HIT_BEFORE_SWITCH,
|
||||
BATTLE_EFFECT_REMOVE_HAZARDS_AND_BINDING,
|
||||
BATTLE_EFFECT_10_DAMAGE_FLAT,
|
||||
BATTLE_EFFECT_UNUSED_131,
|
||||
BATTLE_EFFECT_HEAL_HALF_MORE_IN_SUN,
|
||||
BATTLE_EFFECT_UNUSED_133,
|
||||
BATTLE_EFFECT_UNUSED_134,
|
||||
BATTLE_EFFECT_RANDOM_POWER_BASED_ON_IVS,
|
||||
BATTLE_EFFECT_WEATHER_RAIN,
|
||||
BATTLE_EFFECT_WEATHER_SUN,
|
||||
BATTLE_EFFECT_RAISE_DEF_HIT,
|
||||
BATTLE_EFFECT_RAISE_ATTACK_HIT,
|
||||
BATTLE_EFFECT_RAISE_ALL_STATS_HIT,
|
||||
BATTLE_EFFECT_UNUSED_141,
|
||||
BATTLE_EFFECT_MAX_ATK_LOSE_HALF_MAX_HP,
|
||||
BATTLE_EFFECT_COPY_STAT_CHANGES,
|
||||
BATTLE_EFFECT_MIRROR_COAT,
|
||||
BATTLE_EFFECT_CHARGE_TURN_DEF_UP,
|
||||
BATTLE_EFFECT_FLINCH_DOUBLE_DAMAGE_FLY_OR_BOUNCE,
|
||||
BATTLE_EFFECT_DOUBLE_DAMAGE_DIG,
|
||||
BATTLE_EFFECT_HIT_IN_3_TURNS,
|
||||
BATTLE_EFFECT_DOUBLE_DAMAGE_FLY_OR_BOUNCE,
|
||||
BATTLE_EFFECT_FLINCH_MINIMIZE_DOUBLE_HIT,
|
||||
BATTLE_EFFECT_SKIP_CHARGE_TURN_IN_SUN,
|
||||
BATTLE_EFFECT_THUNDER,
|
||||
BATTLE_EFFECT_FLEE_FROM_WILD_BATTLE,
|
||||
BATTLE_EFFECT_BEAT_UP,
|
||||
BATTLE_EFFECT_FLY,
|
||||
BATTLE_EFFECT_DEF_UP_DOUBLE_ROLLOUT_POWER,
|
||||
BATTLE_EFFECT_UNUSED_157,
|
||||
BATTLE_EFFECT_ALWAYS_FLINCH_FIRST_TURN_ONLY,
|
||||
BATTLE_EFFECT_UPROAR,
|
||||
BATTLE_EFFECT_STOCKPILE,
|
||||
BATTLE_EFFECT_SPIT_UP,
|
||||
BATTLE_EFFECT_SWALLOW,
|
||||
BATTLE_EFFECT_UNUSED_163,
|
||||
BATTLE_EFFECT_WEATHER_HAIL,
|
||||
BATTLE_EFFECT_TORMENT,
|
||||
BATTLE_EFFECT_SP_ATK_UP_CAUSE_CONFUSION,
|
||||
BATTLE_EFFECT_STATUS_BURN,
|
||||
BATTLE_EFFECT_FAINT_AND_ATK_SP_ATK_DOWN_2,
|
||||
BATTLE_EFFECT_DOUBLE_POWER_WHEN_STATUSED,
|
||||
BATTLE_EFFECT_HIT_LAST_WHIFF_IF_HIT,
|
||||
BATTLE_EFFECT_DOUBLE_POWER_AND_CURE_PARALYSIS,
|
||||
BATTLE_EFFECT_MAKE_GLOBAL_TARGET,
|
||||
BATTLE_EFFECT_NATURE_POWER,
|
||||
BATTLE_EFFECT_SP_DEF_UP_DOUBLE_ELECTRIC_POWER,
|
||||
BATTLE_EFFECT_TAUNT,
|
||||
BATTLE_EFFECT_BOOST_ALLY_POWER_BY_50_PERCENT,
|
||||
BATTLE_EFFECT_SWITCH_HELD_ITEMS,
|
||||
BATTLE_EFFECT_COPY_ABILITY,
|
||||
BATTLE_EFFECT_HEAL_IN_3_TURNS,
|
||||
BATTLE_EFFECT_USE_RANDOM_ALLY_MOVE,
|
||||
BATTLE_EFFECT_GROUND_TRAP_USER_CONTINUOUS_HEAL,
|
||||
BATTLE_EFFECT_LOWER_OWN_ATK_AND_DEF,
|
||||
BATTLE_EFFECT_APPLY_MAGIC_COAT,
|
||||
BATTLE_EFFECT_RECYCLE,
|
||||
BATTLE_EFFECT_DOUBLE_POWER_IF_HIT,
|
||||
BATTLE_EFFECT_REMOVE_SCREENS,
|
||||
BATTLE_EFFECT_STATUS_SLEEP_NEXT_TURN,
|
||||
BATTLE_EFFECT_REMOVE_HELD_ITEM,
|
||||
BATTLE_EFFECT_SET_HP_EQUAL_TO_USER,
|
||||
BATTLE_EFFECT_DECREASE_POWER_WITH_LESS_USER_HP,
|
||||
BATTLE_EFFECT_SWITCH_ABILITIES,
|
||||
BATTLE_EFFECT_MAKE_SHARED_MOVES_UNUSEABLE,
|
||||
BATTLE_EFFECT_HEAL_STATUS,
|
||||
BATTLE_EFFECT_REMOVE_ALL_PP_ON_DEFEAT,
|
||||
BATTLE_EFFECT_STEAL_STATUS_MOVE,
|
||||
BATTLE_EFFECT_INCREASE_POWER_WITH_WEIGHT,
|
||||
BATTLE_EFFECT_SECRET_POWER,
|
||||
BATTLE_EFFECT_RECOIL_THIRD,
|
||||
BATTLE_EFFECT_CONFUSE_ALL,
|
||||
BATTLE_EFFECT_HIGH_CRITICAL_BURN_HIT,
|
||||
BATTLE_EFFECT_HALVE_ELECTRIC_DAMAGE,
|
||||
BATTLE_EFFECT_BADLY_POISON_HIT,
|
||||
BATTLE_EFFECT_CHANGE_TYPE_WITH_WEATHER,
|
||||
BATTLE_EFFECT_USER_SP_ATK_DOWN_2,
|
||||
BATTLE_EFFECT_ATK_DEF_DOWN,
|
||||
BATTLE_EFFECT_DEF_SPD_UP,
|
||||
BATTLE_EFFECT_HIT_FLY,
|
||||
BATTLE_EFFECT_ATK_DEF_UP,
|
||||
BATTLE_EFFECT_HIGH_CRITICAL_POISON_HIT,
|
||||
BATTLE_EFFECT_HALVE_FIRE_DAMAGE,
|
||||
BATTLE_EFFECT_SP_ATK_SP_DEF_UP,
|
||||
BATTLE_EFFECT_ATK_SPD_UP,
|
||||
BATTLE_EFFECT_CAMOUFLAGE,
|
||||
BATTLE_EFFECT_HEAL_HALF_REMOVE_FLYING_TYPE,
|
||||
BATTLE_EFFECT_GRAVITY,
|
||||
BATTLE_EFFECT_IGNORE_EVATION_REMOVE_DARK_IMMUNE,
|
||||
BATTLE_EFFECT_DOUBLE_POWER_HEAL_SLEEP,
|
||||
BATTLE_EFFECT_SPEED_DOWN_HIT,
|
||||
BATTLE_EFFECT_POWER_BASED_ON_LOW_SPEED,
|
||||
BATTLE_EFFECT_FAINT_AND_FULL_HEAL_NEXT_MON,
|
||||
BATTLE_EFFECT_DOUBLE_POWER_WHEN_BELOW_HALF,
|
||||
BATTLE_EFFECT_NATURAL_GIFT,
|
||||
BATTLE_EFFECT_REMOVE_PROTECT,
|
||||
BATTLE_EFFECT_EAT_BERRY,
|
||||
BATTLE_EFFECT_DOUBLE_SPEED_3_TURNS,
|
||||
BATTLE_EFFECT_RANDOM_STAT_UP_2,
|
||||
BATTLE_EFFECT_METAL_BURST,
|
||||
BATTLE_EFFECT_SWITCH_HIT,
|
||||
BATTLE_EFFECT_DEF_SPD_DOWN_HIT,
|
||||
BATTLE_EFFECT_DOUBLE_POWER_IF_MOVING_SECOND,
|
||||
BATTLE_EFFECT_DOUBLE_POWER_IF_TARGET_HIT,
|
||||
BATTLE_EFFECT_PREVENT_ITEM_USE,
|
||||
BATTLE_EFFECT_FLING,
|
||||
BATTLE_EFFECT_TRANSFER_STATUS,
|
||||
BATTLE_EFFECT_HIGHER_POWER_WHEN_LOW_PP,
|
||||
BATTLE_EFFECT_PREVENT_HEALING,
|
||||
BATTLE_EFFECT_INCREASE_POWER_WITH_MORE_HP,
|
||||
BATTLE_EFFECT_SWAP_ATK_DEF,
|
||||
BATTLE_EFFECT_SUPRESS_ABILITY,
|
||||
BATTLE_EFFECT_PREVENT_CRITS,
|
||||
BATTLE_EFFECT_USE_MOVE_FIRST,
|
||||
BATTLE_EFFECT_USE_LAST_USED_MOVE,
|
||||
BATTLE_EFFECT_SWAP_ATK_SP_ATK_STAT_CHANGES,
|
||||
BATTLE_EFFECT_SWAP_DEF_SP_DEF_STAT_CHANGES,
|
||||
BATTLE_EFFECT_INCREASE_POWER_WITH_MORE_STAT_UP,
|
||||
BATTLE_EFFECT_FAIL_IF_NOT_USED_ALL_OTHER_MOVES,
|
||||
BATTLE_EFFECT_SET_ABILITY_TO_INSOMNIA,
|
||||
BATTLE_EFFECT_HIT_FIRST_IF_TARGET_ATTACKING,
|
||||
BATTLE_EFFECT_TOXIC_SPIKES,
|
||||
BATTLE_EFFECT_SWAP_STAT_CHANGES,
|
||||
BATTLE_EFFECT_RESTORE_HP_EVERY_TURN,
|
||||
BATTLE_EFFECT_GIVE_GROUND_IMMUNITY,
|
||||
BATTLE_EFFECT_RECOIL_BURN_HIT,
|
||||
BATTLE_EFFECT_STRUGGLE,
|
||||
BATTLE_EFFECT_DIVE,
|
||||
BATTLE_EFFECT_DIG,
|
||||
BATTLE_EFFECT_DOUBLE_DAMAGE_DIVE,
|
||||
BATTLE_EFFECT_REMOVE_HAZARDS_SCREENS_EVA_DOWN,
|
||||
BATTLE_EFFECT_TRICK_ROOM,
|
||||
BATTLE_EFFECT_BLIZZARD,
|
||||
BATTLE_EFFECT_WHIRLPOOL,
|
||||
BATTLE_EFFECT_RECOIL_PARALYZE_HIT,
|
||||
BATTLE_EFFECT_BOUNCE,
|
||||
BATTLE_EFFECT_UNUSED_264,
|
||||
BATTLE_EFFECT_SP_ATK_DOWN_2_OPPOSITE_GENDER,
|
||||
BATTLE_EFFECT_STEALTH_ROCK,
|
||||
BATTLE_EFFECT_CHATTER,
|
||||
BATTLE_EFFECT_JUDGEMENT,
|
||||
BATTLE_EFFECT_RECOIL_HALF,
|
||||
BATTLE_EFFECT_FAINT_FULL_RESTORE_NEXT_MON,
|
||||
BATTLE_EFFECT_LOWER_SP_DEF_2_HIT,
|
||||
BATTLE_EFFECT_SHADOW_FORCE,
|
||||
BATTLE_EFFECT_FLINCH_BURN_HIT,
|
||||
BATTLE_EFFECT_FLINCH_FREEZE_HIT,
|
||||
BATTLE_EFFECT_FLINCH_PARALYZE_HIT,
|
||||
BATTLE_EFFECT_RAISE_SP_ATK_HIT,
|
||||
};
|
||||
|
||||
#endif // POKEPLATINUM_CONSTANTS_BATTLE_EFFECTS_H
|
||||
|
|
@ -11,11 +11,11 @@
|
|||
#define MON_CONDITION_TOXIC_COUNTER ((1 << 8) | (1 << 9) | (1 << 10) | (1 << 11)) // counter for increasing Toxic damage
|
||||
#define MON_CONDITION_TOXIC_COUNT_INC ((1 << 8)) // increment value for the Toxic counter
|
||||
|
||||
#define MON_CONDITION_ANY_POISON (CONDITION_POISON | CONDITION_TOXIC | CONDITION_TOXIC_COUNTER)
|
||||
#define MON_CONDITION_ANY (CONDITION_SLEEP | CONDITION_POISON | CONDITION_BURN | CONDITION_FREEZE | CONDITION_PARALYSIS | CONDITION_TOXIC)
|
||||
#define MON_CONDITION_ANY_POISON (MON_CONDITION_POISON | MON_CONDITION_TOXIC | MON_CONDITION_TOXIC_COUNTER)
|
||||
#define MON_CONDITION_ANY (MON_CONDITION_SLEEP | MON_CONDITION_POISON | MON_CONDITION_BURN | MON_CONDITION_FREEZE | MON_CONDITION_PARALYSIS | MON_CONDITION_TOXIC)
|
||||
|
||||
#define MON_CONDITION_CAN_SYNCHRONIZE (CONDITION_POISON | CONDITION_BURN | CONDITION_PARALYSIS)
|
||||
#define MON_CONDITION_FACADE_BOOST (CONDITION_TOXIC | CONDITION_POISON | CONDITION_BURN | CONDITION_PARALYSIS)
|
||||
#define MON_CONDITION_CAN_SYNCHRONIZE (MON_CONDITION_POISON | MON_CONDITION_BURN | MON_CONDITION_PARALYSIS)
|
||||
#define MON_CONDITION_FACADE_BOOST (MON_CONDITION_TOXIC | MON_CONDITION_POISON | MON_CONDITION_BURN | MON_CONDITION_PARALYSIS)
|
||||
|
||||
#define VOLATILE_CONDITION_NONE 0
|
||||
#define VOLATILE_CONDITION_CONFUSION ((1 << 0) | (1 << 1) | (1 << 2)) // counter for the number of confusion turns remaining
|
||||
|
|
@ -46,9 +46,12 @@
|
|||
| VOLATILE_CONDITION_CURSE \
|
||||
| VOLATILE_CONDITION_SUBSTITUTE)
|
||||
|
||||
#define VOLATILE_CONDITION_UPROAR_SHIFT 4
|
||||
#define VOLATILE_CONDITION_THRASH_SHIFT 10
|
||||
#define VOLATILE_CONDITION_BIND_SHIFT 13
|
||||
#define VOLATILE_CONDITION_CONFUSION_SHIFT 0
|
||||
#define VOLATILE_CONDITION_UPROAR_SHIFT 4
|
||||
#define VOLATILE_CONDITION_BIDE_SHIFT 8
|
||||
#define VOLATILE_CONDITION_THRASH_SHIFT 10
|
||||
#define VOLATILE_CONDITION_BIND_SHIFT 13
|
||||
#define VOLATILE_CONDITION_ATTRACT_SHIFT 16
|
||||
|
||||
#define SIDE_CONDITION_REFLECT (1 << 0)
|
||||
#define SIDE_CONDITION_LIGHT_SCREEN (1 << 1)
|
||||
|
|
|
|||
|
|
@ -57,4 +57,43 @@
|
|||
|
||||
#define MOVE_STATUS_NO_MORE_WORK (1 << 31)
|
||||
|
||||
#define MOVE_STATUS_DID_NOT_HIT (MOVE_STATUS_MISSED \
|
||||
| MOVE_STATUS_INEFFECTIVE \
|
||||
| MOVE_STATUS_FAILED \
|
||||
| MOVE_STATUS_LEVITATED \
|
||||
| MOVE_STATUS_ONE_HIT_KO_FAILED \
|
||||
| MOVE_STATUS_THRASH_DISRUPTED \
|
||||
| MOVE_STATUS_PROTECTED \
|
||||
| MOVE_STATUS_SEMI_INVULNERABLE \
|
||||
| MOVE_STATUS_LOST_FOCUS \
|
||||
| MOVE_STATUS_WONDER_GUARD \
|
||||
| MOVE_STATUS_STURDY \
|
||||
| MOVE_STATUS_MAGNET_RISE)
|
||||
|
||||
#define MOVE_STATUS_NO_EFFECTS (MOVE_STATUS_DID_NOT_HIT \
|
||||
| MOVE_STATUS_NO_PP \
|
||||
| MOVE_STATUS_NO_MORE_WORK)
|
||||
|
||||
#define RANGE_SINGLE_TARGET 0
|
||||
#define RANGE_SINGLE_TARGET_SPECIAL (1 << 0)
|
||||
#define RANGE_RANDOM_OPPONENT (1 << 1)
|
||||
#define RANGE_ADJACENT_OPPONENTS (1 << 2)
|
||||
#define RANGE_ALL_ADJACENT (1 << 3)
|
||||
#define RANGE_USER (1 << 4)
|
||||
#define RANGE_USER_SIDE (1 << 5)
|
||||
#define RANGE_FIELD (1 << 6)
|
||||
#define RANGE_OPPONENT_SIDE (1 << 7)
|
||||
#define RANGE_ALLY (1 << 8)
|
||||
#define RANGE_USER_OR_ALLY (1 << 9)
|
||||
#define RANGE_SINGLE_TARGET_ME_FIRST (1 << 10)
|
||||
|
||||
#define MOVE_FLAG_MAKES_CONTACT (1 << 0)
|
||||
#define MOVE_FLAG_CAN_PROTECT (1 << 1)
|
||||
#define MOVE_FLAG_CAN_MAGIC_COAT (1 << 2)
|
||||
#define MOVE_FLAG_CAN_SNATCH (1 << 3)
|
||||
#define MOVE_FLAG_CAN_MIRROR_MOVE (1 << 4)
|
||||
#define MOVE_FLAG_TRIGGERS_KINGS_ROCK (1 << 5)
|
||||
#define MOVE_FLAG_HIDES_HP_GAUGES (1 << 6)
|
||||
#define MOVE_FLAG_HIDES_SHADOWS (1 << 7)
|
||||
|
||||
#endif // POKEPLATINUM_CONSTANTS_BATTLE_MOVES_H
|
||||
16
include/constants/battle/system_control.h
Normal file
16
include/constants/battle/system_control.h
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
#ifndef POKEPLATINUM_CONSTANTS_BATTLE_SYSTEM_CONTROL_H
|
||||
#define POKEPLATINUM_CONSTANTS_BATTLE_SYSTEM_CONTROL_H
|
||||
|
||||
#define SYSCTL_CHECK_LOOP_ONLY_ONCE (1 << 1)
|
||||
#define SYSCTL_SKIP_SPRITE_BLINK (1 << 6)
|
||||
#define SYSCTL_LAST_OF_MULTI_TURN (1 << 9)
|
||||
#define SYSCTL_REUSE_LAST_MOVE (1 << 20)
|
||||
|
||||
#define SYSCTL_MOVE_CONNECTED (1 << 6)
|
||||
|
||||
#define SYSCTL_SKIP_OBEDIENCE_CHECK (1 << 0)
|
||||
#define SYSCTL_SKIP_STATUS_CHECK (1 << 2)
|
||||
#define SYSCTL_SKIP_PP_DECREMENT (1 << 3)
|
||||
#define SYSCTL_SKIP_STOLEN_CHECK (1 << 7)
|
||||
|
||||
#endif // POKEPLATINUM_CONSTANTS_BATTLE_SYSTEM_CONTROL_H
|
||||
|
|
@ -11,14 +11,28 @@ enum NARCFilesBattleSubSeq {
|
|||
|
||||
BATTLE_SUBSEQ_THROW_POKEBALL = 11,
|
||||
|
||||
BATTLE_SUBSEQ_FLINCHED = 15,
|
||||
|
||||
BATTLE_SUBSEQ_FALL_ASLEEP = 18,
|
||||
BATTLE_SUBSEQ_WAKE_UP,
|
||||
BATTLE_SUBSEQ_SLEEPING,
|
||||
|
||||
BATTLE_SUBSEQ_POISON_DAMAGE = 23,
|
||||
|
||||
BATTLE_SUBSEQ_BURN_DAMAGE = 26,
|
||||
|
||||
BATTLE_SUBSEQ_TRAINER_MESSAGE = 41,
|
||||
BATTLE_SUBSEQ_FROZEN = 28,
|
||||
BATTLE_SUBSEQ_THAW_OUT,
|
||||
BATTLE_SUBSEQ_DEFROSTED_BY_MOVE,
|
||||
|
||||
BATTLE_SUBSEQ_FULLY_PARALYZED = 32,
|
||||
|
||||
BATTLE_SUBSEQ_BIDE_END = 36,
|
||||
|
||||
BATTLE_SUBSEQ_CONFUSED = 38,
|
||||
BATTLE_SUBSEQ_HURT_SELF_IN_CONFUSION,
|
||||
BATTLE_SUBSEQ_SNAP_OUT_OF_CONFUSION,
|
||||
BATTLE_SUBSEQ_TRAINER_MESSAGE,
|
||||
|
||||
BATTLE_SUBSEQ_MOVE_EFFECT_END = 50,
|
||||
BATTLE_SUBSEQ_THRASH_END,
|
||||
|
|
@ -26,9 +40,12 @@ enum NARCFilesBattleSubSeq {
|
|||
BATTLE_SUBSEQ_BIND_EFFECT = 59,
|
||||
BATTLE_SUBSEQ_BIND_END,
|
||||
|
||||
BATTLE_SUBSEQ_RECHARGING = 65,
|
||||
|
||||
BATTLE_SUBSEQ_LEECH_SEED_EFFECT = 69,
|
||||
|
||||
BATTLE_SUBSEQ_DISABLE_END = 72,
|
||||
BATTLE_SUBSEQ_MOVE_IS_DISABLED = 71,
|
||||
BATTLE_SUBSEQ_DISABLE_END,
|
||||
|
||||
BATTLE_SUBSEQ_ENCORE_END = 74,
|
||||
|
||||
|
|
@ -40,15 +57,32 @@ enum NARCFilesBattleSubSeq {
|
|||
|
||||
BATTLE_SUBSEQ_WEATHER_CONTINUES = 104,
|
||||
|
||||
BATTLE_SUBSEQ_INFATUATED = 107,
|
||||
BATTLE_SUBSEQ_IMMOBILIZED_BY_LOVE,
|
||||
|
||||
BATTLE_SUBSEQ_SAFEGUARD_END = 110,
|
||||
|
||||
BATTLE_SUBSEQ_FUTURE_SIGHT_DAMAGE = 121,
|
||||
|
||||
BATTLE_SUBSEQ_MOVE_FAIL_TAUNTED = 133,
|
||||
|
||||
BATTLE_SUBSEQ_WISH_HEAL = 136,
|
||||
BATTLE_SUBSEQ_INGRAIN_HEAL,
|
||||
|
||||
BATTLE_SUBSEQ_MAGIC_COAT = 139,
|
||||
|
||||
BATTLE_SUBSEQ_MOVE_IS_IMPRISONED = 144,
|
||||
|
||||
BATTLE_SUBSEQ_SNATCH = 146,
|
||||
|
||||
BATTLE_SUBSEQ_MOVE_FAIL_GRAVITY = 157,
|
||||
|
||||
BATTLE_SUBSEQ_AQUA_RING_HEAL = 169,
|
||||
|
||||
BATTLE_SUBSEQ_MOVE_IS_HEAL_BLOCKED = 174,
|
||||
|
||||
BATTLE_SUBSEQ_LOAFING_AROUND = 191,
|
||||
|
||||
BATTLE_SUBSEQ_ESCAPE_ITEM = 222,
|
||||
BATTLE_SUBSEQ_BATTLE_ITEM,
|
||||
|
||||
|
|
@ -74,6 +108,12 @@ enum NARCFilesBattleSubSeq {
|
|||
BATTLE_SUBSEQ_LUCKY_CHANT_END = 250,
|
||||
BATTLE_SUBSEQ_TRICK_ROOM_END,
|
||||
|
||||
BATTLE_SUBSEQ_DISOBEY_WHILE_ASLEEP = 254,
|
||||
BATTLE_SUBSEQ_DISOBEY_DO_NOTHING,
|
||||
BATTLE_SUBSEQ_DISOBEY_ORDERS,
|
||||
BATTLE_SUBSEQ_DISOBEY_SLEEP,
|
||||
BATTLE_SUBSEQ_DISOBEY_HIT_SELF,
|
||||
|
||||
BATTLE_SUBSEQ_BAD_DREAMS = 263,
|
||||
|
||||
BATTLE_SUBSEQ_USE_POTION = 267,
|
||||
|
|
@ -83,6 +123,11 @@ enum NARCFilesBattleSubSeq {
|
|||
|
||||
BATTLE_SUBSEQ_THROW_SAFARI_BALL = 275,
|
||||
|
||||
BATTLE_SUBSEQ_CHECK_QUICK_CLAW = 278,
|
||||
|
||||
BATTLE_SUBSEQ_NO_TARGET = 281,
|
||||
BATTLE_SUBSEQ_BIDE_NO_TARGET,
|
||||
|
||||
BATTLE_SUBSEQ_ENEMY_ESCAPE_FAILED = 286,
|
||||
|
||||
BATTLE_SUBSEQ_TAUNT_END = 288,
|
||||
|
|
|
|||
|
|
@ -72,7 +72,7 @@ UnkStruct_0200B358 * ov16_0223E0D0(BattleSystem * param0);
|
|||
Strbuf* ov16_0223E0D4(BattleSystem * param0);
|
||||
u16 ov16_0223E0D8(BattleSystem * param0, int param1);
|
||||
TrainerData * ov16_0223E120(BattleSystem * param0, int param1);
|
||||
TrainerInfo * ov16_0223E16C(BattleSystem * param0, int param1);
|
||||
TrainerInfo * BattleSystem_TrainerInfo(BattleSystem * param0, int param1);
|
||||
UnkStruct_0207D3C0 * BattleSystem_Bag(BattleSystem * param0);
|
||||
UnkStruct_0207D99C * BattleSystem_BagCursor(BattleSystem * param0);
|
||||
u32 ov16_0223E1B4(BattleSystem * param0, int param1);
|
||||
|
|
|
|||
|
|
@ -27,9 +27,9 @@ void ov16_022535F0(BattleSystem * param0, BattleContext * param1, int param2);
|
|||
BOOL ov16_0225366C(BattleSystem * param0, BattleContext * param1, int * param2);
|
||||
BOOL ov16_02253710(BattleSystem * param0, BattleContext * param1, int * param2);
|
||||
int BattleSystem_Defender(BattleSystem * param0, BattleContext * param1, int param2, u16 param3, int param4, int param5);
|
||||
void ov16_02253C98(BattleSystem * param0, BattleContext * param1, int param2, u16 param3);
|
||||
void BattleSystem_RedirectTarget(BattleSystem * param0, BattleContext * param1, int param2, u16 param3);
|
||||
BOOL ov16_02253E3C(BattleSystem * param0, BattleContext * param1);
|
||||
void ov16_02253EC0(BattleSystem * param0, BattleContext * param1, int param2);
|
||||
void BattleMon_CopyToParty(BattleSystem * param0, BattleContext * param1, int param2);
|
||||
void ov16_02253EF0(BattleSystem * param0, BattleContext * param1, int param2);
|
||||
void ov16_02253F20(BattleSystem * param0, BattleContext * param1, int param2);
|
||||
int ov16_02253F7C(BattleContext * param0, int param1);
|
||||
|
|
@ -41,7 +41,7 @@ void ov16_02254744(BattleSystem * param0, BattleContext * param1, int param2);
|
|||
void BattleSystem_SetupNextTurn(BattleSystem * param0, BattleContext * param1);
|
||||
int BattleSystem_CheckStruggling(BattleSystem * param0, BattleContext * param1, int param2, int param3, int param4);
|
||||
BOOL BattleSystem_CanUseMove(BattleSystem *battleSys, BattleContext *battleCtx, int battler, int moveSlot, BattleMessage *msgOut);
|
||||
int ov16_02254EE0(BattleMon * param0, u16 param1);
|
||||
int Battler_SlotForMove(BattleMon * param0, u16 param1);
|
||||
int ov16_02254FA8(BattleSystem * param0, BattleContext * param1, int param2, int param3, int param4, int param5, int param6, u32 * param7);
|
||||
void ov16_022552D4(BattleContext * param0, int param1, int param2, int param3, int param4, int param5, int param6, int param7, u32 * param8);
|
||||
BOOL BattleContext_MoveFailed(BattleContext * param0, int param1);
|
||||
|
|
@ -49,7 +49,7 @@ u8 ov16_022554E0(BattleSystem * param0, BattleContext * param1, int param2, int
|
|||
int BattleSystem_NicknameTag(BattleContext *battleSys, int battler);
|
||||
u16 Battler_SelectedMove(BattleContext * param0, int param1);
|
||||
int BattleSystem_CountAbility(BattleSystem * param0, BattleContext * param1, int param2, int param3, int param4);
|
||||
BOOL ov16_0225582C(BattleContext * param0, int param1);
|
||||
BOOL BattleMove_IsMultiTurn(BattleContext * param0, int param1);
|
||||
BOOL ov16_0225588C(BattleSystem * param0, int param1, u8 * param2, u8 * param3, u8 * param4);
|
||||
int ov16_022558CC(u8 param0, u8 param1, u8 param2);
|
||||
BOOL ov16_02255918(u16 param0);
|
||||
|
|
@ -63,13 +63,13 @@ BOOL ov16_02255B10(BattleSystem * param0, BattleContext * param1, int param2);
|
|||
BOOL BattleSystem_Trapped(BattleSystem * param0, BattleContext * param1, int param2, BattleMessage * param3);
|
||||
BOOL BattleSystem_TryEscape(BattleSystem * param0, BattleContext * param1, int param2);
|
||||
BOOL Battler_CheckTruant(BattleContext * param0, int param1);
|
||||
BOOL ov16_02255EF4(BattleSystem * param0, BattleContext * param1, int param2, int param3);
|
||||
BOOL BattleSystem_Imprisoned(BattleSystem * param0, BattleContext * param1, int param2, int param3);
|
||||
BOOL ov16_02255F68(BattleSystem * param0, BattleContext * param1, int param2);
|
||||
void ov16_02255F94(BattleSystem * param0, BattleContext * param1);
|
||||
void BattleSystem_SortMonsBySpeed(BattleSystem * param0, BattleContext * param1);
|
||||
BOOL ov16_02256044(BattleSystem * param0, BattleContext * param1, int param2, int param3);
|
||||
BOOL ov16_02256078(BattleSystem * param0, BattleContext * param1, int param2, int param3);
|
||||
void ov16_022560B0(BattleSystem * param0, BattleContext * param1);
|
||||
BOOL BattleSystem_FailsInHighGravity(BattleSystem * param0, BattleContext * param1, int param2, int param3);
|
||||
BOOL BattleSystem_HealBlocked(BattleSystem * param0, BattleContext * param1, int param2, int param3);
|
||||
void BattleSystem_UpdateLastResort(BattleSystem * param0, BattleContext * param1);
|
||||
int ov16_02256128(BattleSystem * param0, BattleContext * param1, int param2);
|
||||
int ov16_02256148(BattleContext * param0, int param1, int param2);
|
||||
BOOL BattleSystem_TriggerTurnEndAbility(BattleSystem * param0, BattleContext * param1, int param2);
|
||||
|
|
@ -87,7 +87,7 @@ BOOL BattleSystem_TriggerDetrimentalHeldItem(BattleSystem * param0, BattleContex
|
|||
u16 ov16_02258874(BattleContext * param0, int param1);
|
||||
BOOL ov16_022588A4(BattleContext * param0, int param1);
|
||||
BOOL ov16_022588BC(BattleSystem * param0, BattleContext * param1, int * param2);
|
||||
s32 ov16_02258AB8(BattleContext * param0, int param1);
|
||||
s32 Battler_HeldItemEffect(BattleContext * param0, int param1);
|
||||
s32 ov16_02258ACC(BattleContext * param0, int param1, int param2);
|
||||
s32 ov16_02258B18(BattleContext * param0, int param1);
|
||||
s32 ov16_02258B2C(BattleContext * param0, int param1);
|
||||
|
|
@ -97,20 +97,20 @@ s32 ov16_02258B80(BattleContext * param0, int param1);
|
|||
int BattleSystem_CanSwitch(BattleSystem *battleSys, BattleContext *battleCtx, int battler);
|
||||
BOOL ov16_02258CB4(BattleSystem * param0, BattleContext * param1, int param2);
|
||||
BOOL ov16_02259204(BattleSystem * param0, BattleContext * param1, int param2);
|
||||
void ov16_02259868(BattleSystem * param0, BattleContext * param1);
|
||||
void BattleSystem_UpdateMetronomeCount(BattleSystem * param0, BattleContext * param1);
|
||||
void ov16_0225991C(BattleSystem * param0, BattleContext * param1);
|
||||
int ov16_022599D0(BattleContext * param0, int param1, int param2, int param3);
|
||||
BOOL BattleSystem_CanPickCommand(BattleContext *battleSys, int battler);
|
||||
void ov16_02259A5C(BattleSystem * param0, BattleContext * param1, Pokemon * param2);
|
||||
u8 BattleContext_IOBufferVal(BattleContext *battleCtx, int battler);
|
||||
BOOL ov16_02259AC0(BattleContext * param0, int param1);
|
||||
BOOL ov16_02259ADC(BattleSystem * param0, BattleContext * param1);
|
||||
BOOL BattleSystem_TrainerIsOT(BattleSystem * param0, BattleContext * param1);
|
||||
BOOL ov16_02259B38(BattleSystem * param0, Pokemon * param1);
|
||||
BOOL ov16_02259B9C(BattleSystem * param0, BattleContext * param1, int * param2);
|
||||
void ov16_0225A1B0(BattleSystem * param0, BattleContext * param1);
|
||||
void BattleSystem_SwitchSlots(BattleSystem *battleSys, BattleContext *battleCtx, int battler, int partySlot);
|
||||
int ov16_0225A280(BattleSystem * param0, BattleContext * param1, int param2, u32 param3, u32 param4, u16 param5, u8 param6, u8 param7, u8 param8, u8 param9);
|
||||
int ov16_0225AEB8(BattleSystem * param0, BattleContext * param1, int param2);
|
||||
int BattleSystem_CalcMoveDamage(BattleSystem * param0, BattleContext * param1, int param2, u32 param3, u32 param4, u16 param5, u8 param6, u8 param7, u8 param8, u8 param9);
|
||||
int BattleSystem_CalcDamageVariance(BattleSystem * param0, BattleContext * param1, int param2);
|
||||
int ov16_0225AEE4(BattleSystem * param0, BattleContext * param1, int param2, int param3, int param4, u32 param5);
|
||||
BOOL ov16_0225AFF4(u16 param0);
|
||||
BOOL ov16_0225B02C(BattleSystem * param0, BattleContext * param1, int param2, u16 param3);
|
||||
|
|
@ -121,7 +121,7 @@ int BattleSystem_SideToBattler(BattleSystem * param0, BattleContext * param1, in
|
|||
void ov16_0225B148(BattleSystem * param0, BattleContext * param1);
|
||||
BOOL ov16_0225B1DC(BattleContext * param0, int param1, int param2);
|
||||
BOOL ov16_0225B228(BattleSystem * param0, BattleContext * param1, int * param2);
|
||||
void ov16_0225B408(BattleContext * param0, int param1, int param2);
|
||||
void BattleSystem_DecPPForPressure(BattleContext * param0, int param1, int param2);
|
||||
BOOL BattleSystem_RecordingStopped(BattleSystem * param0, BattleContext * param1);
|
||||
int ov16_0225B45C(BattleSystem * param0, BattleContext * param1, int param2, int param3);
|
||||
void ov16_0225B540(BattleSystem * param0, BattleContext * param1, int param2, int param3, int param4);
|
||||
|
|
|
|||
|
|
@ -3267,7 +3267,7 @@ static s32 ov14_02222E84 (BattleSystem * param0, BattleContext * param1, u16 par
|
|||
}
|
||||
|
||||
if (v5 == 0) {
|
||||
v5 = ov16_0225A280(param0, param1, param2, param1->sideConditionsMask[v0], param1->fieldConditionsMask, v1, v2, param5, param1->aiContext.defender, 1);
|
||||
v5 = BattleSystem_CalcMoveDamage(param0, param1, param2, param1->sideConditionsMask[v0], param1->fieldConditionsMask, v1, v2, param5, param1->aiContext.defender, 1);
|
||||
} else {
|
||||
param1->battleStatusMask |= 0x800;
|
||||
}
|
||||
|
|
@ -3293,7 +3293,7 @@ static int ov14_0222327C (BattleSystem * param0, BattleContext * param1, int par
|
|||
v0 = ov16_02258B2C(param1, param2);
|
||||
break;
|
||||
case 449:
|
||||
switch (ov16_02258AB8(param1, param2)) {
|
||||
switch (Battler_HeldItemEffect(param1, param2)) {
|
||||
case 131:
|
||||
v0 = 1;
|
||||
break;
|
||||
|
|
@ -3431,7 +3431,7 @@ static BOOL ov14_0222342C (BattleSystem * param0, BattleContext * param1, int pa
|
|||
|
||||
if (v2) {
|
||||
v4 = 0;
|
||||
ov16_022552D4(param1, v2, v3, Pokemon_GetValue(v5, MON_DATA_ABILITY, NULL), Battler_Ability(param1, param2 ^ 1), ov16_02258AB8(param1, param2 ^ 1), ov16_02252060(param1, param2 ^ 1, 27, NULL), ov16_02252060(param1, param2 ^ 1, 28, NULL), &v4);
|
||||
ov16_022552D4(param1, v2, v3, Pokemon_GetValue(v5, MON_DATA_ABILITY, NULL), Battler_Ability(param1, param2 ^ 1), Battler_HeldItemEffect(param1, param2 ^ 1), ov16_02252060(param1, param2 ^ 1, 27, NULL), ov16_02252060(param1, param2 ^ 1, 28, NULL), &v4);
|
||||
|
||||
if (v4 & 0x2) {
|
||||
if ((BattleSystem_RandNext(param0) % 3) < 2) {
|
||||
|
|
@ -3525,7 +3525,7 @@ static BOOL ov14_022235F0 (BattleSystem * param0, BattleContext * param1, int pa
|
|||
v8 = 0;
|
||||
|
||||
if (param1->battleMons[v2].curHP) {
|
||||
ov16_022552D4(param1, v6, v7, Pokemon_GetValue(v12, MON_DATA_ABILITY, NULL), Battler_Ability(param1, v2), ov16_02258AB8(param1, v2), ov16_02252060(param1, v2, 27, NULL), ov16_02252060(param1, v2, 28, NULL), &v8);
|
||||
ov16_022552D4(param1, v6, v7, Pokemon_GetValue(v12, MON_DATA_ABILITY, NULL), Battler_Ability(param1, v2), Battler_HeldItemEffect(param1, v2), ov16_02252060(param1, v2, 27, NULL), ov16_02252060(param1, v2, 28, NULL), &v8);
|
||||
}
|
||||
|
||||
if (v8 & 0x2) {
|
||||
|
|
@ -3538,7 +3538,7 @@ static BOOL ov14_022235F0 (BattleSystem * param0, BattleContext * param1, int pa
|
|||
v8 = 0;
|
||||
|
||||
if (param1->battleMons[v3].curHP) {
|
||||
ov16_022552D4(param1, v6, v7, Pokemon_GetValue(v12, MON_DATA_ABILITY, NULL), Battler_Ability(param1, v3), ov16_02258AB8(param1, v3), ov16_02252060(param1, v3, 27, NULL), ov16_02252060(param1, v3, 28, NULL), &v8);
|
||||
ov16_022552D4(param1, v6, v7, Pokemon_GetValue(v12, MON_DATA_ABILITY, NULL), Battler_Ability(param1, v3), Battler_HeldItemEffect(param1, v3), ov16_02252060(param1, v3, 27, NULL), ov16_02252060(param1, v3, 28, NULL), &v8);
|
||||
}
|
||||
|
||||
if (v8 & 0x2) {
|
||||
|
|
@ -3564,7 +3564,7 @@ static BOOL ov14_022235F0 (BattleSystem * param0, BattleContext * param1, int pa
|
|||
v8 = 0;
|
||||
|
||||
if (param1->battleMons[v2].curHP) {
|
||||
ov16_022552D4(param1, v6, v7, Pokemon_GetValue(v12, MON_DATA_ABILITY, NULL), Battler_Ability(param1, v2), ov16_02258AB8(param1, v2), ov16_02252060(param1, v2, 27, NULL), ov16_02252060(param1, v2, 28, NULL), &v8);
|
||||
ov16_022552D4(param1, v6, v7, Pokemon_GetValue(v12, MON_DATA_ABILITY, NULL), Battler_Ability(param1, v2), Battler_HeldItemEffect(param1, v2), ov16_02252060(param1, v2, 27, NULL), ov16_02252060(param1, v2, 28, NULL), &v8);
|
||||
}
|
||||
|
||||
if (v8 == 0) {
|
||||
|
|
@ -3577,7 +3577,7 @@ static BOOL ov14_022235F0 (BattleSystem * param0, BattleContext * param1, int pa
|
|||
v8 = 0;
|
||||
|
||||
if (param1->battleMons[v3].curHP) {
|
||||
ov16_022552D4(param1, v6, v7, Pokemon_GetValue(v12, MON_DATA_ABILITY, NULL), Battler_Ability(param1, v3), ov16_02258AB8(param1, v3), ov16_02252060(param1, v3, 27, NULL), ov16_02252060(param1, v3, 28, NULL), &v8);
|
||||
ov16_022552D4(param1, v6, v7, Pokemon_GetValue(v12, MON_DATA_ABILITY, NULL), Battler_Ability(param1, v3), Battler_HeldItemEffect(param1, v3), ov16_02252060(param1, v3, 27, NULL), ov16_02252060(param1, v3, 28, NULL), &v8);
|
||||
}
|
||||
|
||||
if (v8 == 0) {
|
||||
|
|
@ -3769,7 +3769,7 @@ static BOOL ov14_02223E10 (BattleSystem * param0, BattleContext * param1, int pa
|
|||
|
||||
if (v4) {
|
||||
v6 = 0;
|
||||
ov16_022552D4(param1, v4, v5, Pokemon_GetValue(v9, MON_DATA_ABILITY, NULL), Battler_Ability(param1, param1->moveHitBattler[param2]), ov16_02258AB8(param1, param1->moveHitBattler[param2]), ov16_02252060(param1, param1->moveHitBattler[param2], 27, NULL), ov16_02252060(param1, param1->moveHitBattler[param2], 28, NULL), &v6);
|
||||
ov16_022552D4(param1, v4, v5, Pokemon_GetValue(v9, MON_DATA_ABILITY, NULL), Battler_Ability(param1, param1->moveHitBattler[param2]), Battler_HeldItemEffect(param1, param1->moveHitBattler[param2]), ov16_02252060(param1, param1->moveHitBattler[param2], 27, NULL), ov16_02252060(param1, param1->moveHitBattler[param2], 28, NULL), &v6);
|
||||
|
||||
if (v6 & 0x2) {
|
||||
if ((BattleSystem_RandNext(param0) % param4) == 0) {
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -110,7 +110,7 @@ UnkStruct_0200B358 * ov16_0223E0D0(BattleSystem * param0);
|
|||
Strbuf* ov16_0223E0D4(BattleSystem * param0);
|
||||
u16 ov16_0223E0D8(BattleSystem * param0, int param1);
|
||||
TrainerData * ov16_0223E120(BattleSystem * param0, int param1);
|
||||
TrainerInfo * ov16_0223E16C(BattleSystem * param0, int param1);
|
||||
TrainerInfo * BattleSystem_TrainerInfo(BattleSystem * param0, int param1);
|
||||
UnkStruct_0207D3C0 * BattleSystem_Bag(BattleSystem * param0);
|
||||
UnkStruct_0207D99C * BattleSystem_BagCursor(BattleSystem * param0);
|
||||
u32 ov16_0223E1B4(BattleSystem * param0, int param1);
|
||||
|
|
@ -440,7 +440,7 @@ TrainerData * ov16_0223E120 (BattleSystem * param0, int param1)
|
|||
}
|
||||
}
|
||||
|
||||
TrainerInfo * ov16_0223E16C (BattleSystem * param0, int param1)
|
||||
TrainerInfo * BattleSystem_TrainerInfo (BattleSystem * param0, int param1)
|
||||
{
|
||||
if ((param0->battleType & 0x8) || ((param0->battleType & 0x10) && (BattleSystem_BattlerSlot(param0, param1) & 0x1))) {
|
||||
return param0->unk_48[param1];
|
||||
|
|
|
|||
|
|
@ -1353,14 +1353,14 @@ static void ov16_02241374 (BattleSystem * param0, BattleContext * param1)
|
|||
v0 = param1->aiContext.moveTable[param1->moveCur].type;
|
||||
}
|
||||
|
||||
param1->damage = ov16_0225A280(param0, param1, param1->moveCur, param1->sideConditionsMask[Battler_Side(param0, param1->defender)], param1->fieldConditionsMask, param1->movePower, v0, param1->attacker, param1->defender, param1->criticalMul);
|
||||
param1->damage = BattleSystem_CalcMoveDamage(param0, param1, param1->moveCur, param1->sideConditionsMask[Battler_Side(param0, param1->defender)], param1->fieldConditionsMask, param1->movePower, v0, param1->attacker, param1->defender, param1->criticalMul);
|
||||
param1->damage *= param1->criticalMul;
|
||||
|
||||
if (ov16_02258AB8(param1, param1->attacker) == 98) {
|
||||
if (Battler_HeldItemEffect(param1, param1->attacker) == 98) {
|
||||
param1->damage = param1->damage * (100 + ov16_02258ACC(param1, param1->attacker, 0)) / 100;
|
||||
}
|
||||
|
||||
if (ov16_02258AB8(param1, param1->attacker) == 105) {
|
||||
if (Battler_HeldItemEffect(param1, param1->attacker) == 105) {
|
||||
param1->damage = param1->damage * (10 + param1->battleMons[param1->attacker].moveEffectsData.metronomeTurns) / 10;
|
||||
}
|
||||
|
||||
|
|
@ -1382,7 +1382,7 @@ static BOOL ov16_022414E0 (BattleSystem * param0, BattleContext * param1)
|
|||
ov16_02248AF0(param1, 1);
|
||||
ov16_02241374(param0, param1);
|
||||
|
||||
param1->damage = ov16_0225AEB8(param0, param1, param1->damage);
|
||||
param1->damage = BattleSystem_CalcDamageVariance(param0, param1, param1->damage);
|
||||
param1->damage *= -1;
|
||||
|
||||
return 0;
|
||||
|
|
@ -1587,7 +1587,7 @@ static BOOL ov16_022417F4 (BattleSystem * param0, BattleContext * param1)
|
|||
param1->battleMons[v1].curHP = param1->battleMons[v1].maxHP;
|
||||
}
|
||||
|
||||
ov16_02253EC0(param0, param1, v1);
|
||||
BattleMon_CopyToParty(param0, param1, v1);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -1866,7 +1866,7 @@ static BOOL ov16_02241C28 (BattleSystem * param0, BattleContext * param1)
|
|||
|
||||
if (v0 == 0) {
|
||||
param1->defender = BattleSystem_Defender(param0, param1, param1->attacker, param1->msgMoveTemp, 1, 0);
|
||||
ov16_02253C98(param0, param1, param1->attacker, param1->msgMoveTemp);
|
||||
BattleSystem_RedirectTarget(param0, param1, param1->attacker, param1->msgMoveTemp);
|
||||
param1->battlerActions[param1->attacker][1] = param1->defender;
|
||||
}
|
||||
|
||||
|
|
@ -2543,7 +2543,7 @@ static BOOL ov16_02242A14 (BattleSystem * param0, BattleContext * param1)
|
|||
}
|
||||
|
||||
ov16_022523E8(param1, v4, v2, (u8 *)&v5);
|
||||
ov16_02253EC0(param0, param1, v4);
|
||||
BattleMon_CopyToParty(param0, param1, v4);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -2807,7 +2807,7 @@ static BOOL ov16_02242DBC (BattleSystem * param0, BattleContext * param1)
|
|||
}
|
||||
|
||||
ov16_022523E8(param1, v4, v2, (u8 *)&v5);
|
||||
ov16_02253EC0(param0, param1, v4);
|
||||
BattleMon_CopyToParty(param0, param1, v4);
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
|
@ -3162,10 +3162,10 @@ static BOOL ov16_022432B4 (BattleSystem * param0, BattleContext * param1)
|
|||
v0 += ov16_022431BC(param0, param1, 3);
|
||||
}
|
||||
|
||||
TrainerInfo_GiveMoney(ov16_0223E16C(param0, 0), v0);
|
||||
TrainerInfo_GiveMoney(BattleSystem_TrainerInfo(param0, 0), v0);
|
||||
} else {
|
||||
v0 = ov16_0223F904(param0->parties[0], param0->unk_48[0]);
|
||||
TrainerInfo_TakeMoney(ov16_0223E16C(param0, 0), v0);
|
||||
TrainerInfo_TakeMoney(BattleSystem_TrainerInfo(param0, 0), v0);
|
||||
}
|
||||
|
||||
if (v0) {
|
||||
|
|
@ -3534,7 +3534,7 @@ static BOOL ov16_022438A8 (BattleSystem * param0, BattleContext * param1)
|
|||
param1->msgTemp = 0xffff;
|
||||
}
|
||||
|
||||
TrainerInfo_GiveMoney(ov16_0223E16C(param0, 0), param1->msgTemp);
|
||||
TrainerInfo_GiveMoney(BattleSystem_TrainerInfo(param0, 0), param1->msgTemp);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -3557,7 +3557,7 @@ static BOOL ov16_022438F8 (BattleSystem * param0, BattleContext * param1)
|
|||
param1->sideConditions[v1].lightScreenTurns = 5;
|
||||
param1->sideConditions[v1].lightScreenUser = param1->attacker;
|
||||
|
||||
if (ov16_02258AB8(param1, param1->attacker) == 97) {
|
||||
if (Battler_HeldItemEffect(param1, param1->attacker) == 97) {
|
||||
param1->sideConditions[v1].lightScreenTurns += ov16_02258ACC(param1, param1->attacker, 0);
|
||||
}
|
||||
|
||||
|
|
@ -3593,7 +3593,7 @@ static BOOL ov16_022439D8 (BattleSystem * param0, BattleContext * param1)
|
|||
param1->sideConditions[v1].reflectTurns = 5;
|
||||
param1->sideConditions[v1].reflectUser = param1->attacker;
|
||||
|
||||
if (ov16_02258AB8(param1, param1->attacker) == 97) {
|
||||
if (Battler_HeldItemEffect(param1, param1->attacker) == 97) {
|
||||
param1->sideConditions[v1].reflectTurns += ov16_02258ACC(param1, param1->attacker, 0);
|
||||
}
|
||||
|
||||
|
|
@ -3817,7 +3817,7 @@ static BOOL ov16_02243F54 (BattleSystem * param0, BattleContext * param1)
|
|||
ov16_02248AF0(param1, 1);
|
||||
|
||||
v0 = ov16_02248AD0(param1);
|
||||
v1 = ov16_02254EE0(¶m1->battleMons[param1->defender], param1->movePrevByBattler[param1->defender]);
|
||||
v1 = Battler_SlotForMove(¶m1->battleMons[param1->defender], param1->movePrevByBattler[param1->defender]);
|
||||
|
||||
if ((param1->battleMons[param1->defender].moveEffectsData.disabledMove == 0) && (v1 != 4) && (param1->battleMons[param1->defender].ppCur[v1]) && (param1->movePrevByBattler[param1->defender])) {
|
||||
param1->msgMoveTemp = param1->movePrevByBattler[param1->defender];
|
||||
|
|
@ -3859,7 +3859,7 @@ static BOOL ov16_02244010 (BattleSystem * param0, BattleContext * param1)
|
|||
}
|
||||
}
|
||||
|
||||
ov16_0225B408(param1, param1->attacker, param1->defender);
|
||||
BattleSystem_DecPPForPressure(param1, param1->attacker, param1->defender);
|
||||
} else {
|
||||
param1->selfTurnFlags[param1->attacker].skipPressureCheck = 1;
|
||||
param1->moveStatusFlags |= 0x40;
|
||||
|
|
@ -3897,7 +3897,7 @@ static BOOL ov16_0224410C (BattleSystem * param0, BattleContext * param1)
|
|||
}
|
||||
}
|
||||
|
||||
ov16_0225B408(param1, param1->attacker, param1->defender);
|
||||
BattleSystem_DecPPForPressure(param1, param1->attacker, param1->defender);
|
||||
} else {
|
||||
param1->selfTurnFlags[param1->attacker].skipPressureCheck = 1;
|
||||
param1->moveStatusFlags |= 0x40;
|
||||
|
|
@ -3914,7 +3914,7 @@ static BOOL ov16_02244208 (BattleSystem * param0, BattleContext * param1)
|
|||
ov16_02248AF0(param1, 1);
|
||||
|
||||
v0 = ov16_02248AD0(param1);
|
||||
v1 = ov16_02254EE0(¶m1->battleMons[param1->defender], param1->movePrevByBattler[param1->defender]);
|
||||
v1 = Battler_SlotForMove(¶m1->battleMons[param1->defender], param1->movePrevByBattler[param1->defender]);
|
||||
|
||||
if (ov16_0225B084(param1, param1->movePrevByBattler[param1->defender]) == 0) {
|
||||
v1 = 4;
|
||||
|
|
@ -3950,7 +3950,7 @@ static BOOL ov16_022442F0 (BattleSystem * param0, BattleContext * param1)
|
|||
}
|
||||
|
||||
if ((param1->conversion2Move[param1->attacker]) && (param1->conversion2Battler[param1->attacker] != 0xff)) {
|
||||
if ((ov16_0225582C(param1, param1->conversion2Move[param1->attacker])) && (param1->battleMons[param1->conversion2Battler[param1->attacker]].statusVolatile & 0x1000)) {
|
||||
if ((BattleMove_IsMultiTurn(param1, param1->conversion2Move[param1->attacker])) && (param1->battleMons[param1->conversion2Battler[param1->attacker]].statusVolatile & 0x1000)) {
|
||||
ov16_02248AF0(param1, v2);
|
||||
return 0;
|
||||
} else {
|
||||
|
|
@ -4043,7 +4043,7 @@ static BOOL ov16_022445D4 (BattleSystem * param0, BattleContext * param1)
|
|||
v1 = 0;
|
||||
|
||||
for (v0 = 0; v0 < 4; v0++) {
|
||||
if ((ov16_02255918(param1->battleMons[param1->attacker].moves[v0])) || (param1->battleMons[param1->attacker].moves[v0] == 264) || (param1->battleMons[param1->attacker].moves[v0] == 253) || (param1->battleMons[param1->attacker].moves[v0] == 448) || (ov16_0225582C(param1, param1->battleMons[param1->attacker].moves[v0]))) {
|
||||
if ((ov16_02255918(param1->battleMons[param1->attacker].moves[v0])) || (param1->battleMons[param1->attacker].moves[v0] == 264) || (param1->battleMons[param1->attacker].moves[v0] == 253) || (param1->battleMons[param1->attacker].moves[v0] == 448) || (BattleMove_IsMultiTurn(param1, param1->battleMons[param1->attacker].moves[v0]))) {
|
||||
v1 |= FlagIndex(v0);
|
||||
}
|
||||
}
|
||||
|
|
@ -4101,7 +4101,7 @@ static BOOL ov16_022446F4 (BattleSystem * param0, BattleContext * param1)
|
|||
v0 = ov16_02248AD0(param1);
|
||||
|
||||
if (param1->movePrevByBattler[param1->defender]) {
|
||||
v1 = ov16_02254EE0(¶m1->battleMons[param1->defender], param1->movePrevByBattler[param1->defender]);
|
||||
v1 = Battler_SlotForMove(¶m1->battleMons[param1->defender], param1->movePrevByBattler[param1->defender]);
|
||||
|
||||
if ((v1 == 4) || (param1->battleMons[param1->defender].ppCur[v1] == 0)) {
|
||||
ov16_02248AF0(param1, v0);
|
||||
|
|
@ -4116,7 +4116,7 @@ static BOOL ov16_022446F4 (BattleSystem * param0, BattleContext * param1)
|
|||
param1->msgTemp = v2;
|
||||
param1->battleMons[param1->defender].ppCur[v1] -= v2;
|
||||
|
||||
ov16_02253EC0(param0, param1, param1->defender);
|
||||
BattleMon_CopyToParty(param0, param1, param1->defender);
|
||||
}
|
||||
} else {
|
||||
ov16_02248AF0(param1, v0);
|
||||
|
|
@ -4900,8 +4900,8 @@ static BOOL ov16_02245BC8 (BattleSystem * param0, BattleContext * param1)
|
|||
param1->fieldConditions.futureSightTurns[param1->defender] = 3;
|
||||
param1->fieldConditions.futureSightMove[param1->defender] = param1->moveCur;
|
||||
param1->fieldConditions.futureSightAttacker[param1->defender] = param1->attacker;
|
||||
v2 = ov16_0225A280(param0, param1, param1->moveCur, param1->sideConditionsMask[v1], param1->fieldConditionsMask, 0, 0, param1->attacker, param1->defender, 1) * -1;
|
||||
param1->fieldConditions.futureSightDamage[param1->defender] = ov16_0225AEB8(param0, param1, v2);
|
||||
v2 = BattleSystem_CalcMoveDamage(param0, param1, param1->moveCur, param1->sideConditionsMask[v1], param1->fieldConditionsMask, 0, 0, param1->attacker, param1->defender, 1) * -1;
|
||||
param1->fieldConditions.futureSightDamage[param1->defender] = BattleSystem_CalcDamageVariance(param0, param1, v2);
|
||||
|
||||
if (param1->turnFlags[param1->attacker].helpingHand) {
|
||||
param1->fieldConditions.futureSightDamage[param1->defender] = param1->fieldConditions.futureSightDamage[param1->defender] * 15 / 10;
|
||||
|
|
@ -5003,7 +5003,7 @@ static BOOL ov16_02245D68 (BattleSystem * param0, BattleContext * param1)
|
|||
param1->damage = param1->damage * 15 / 10;
|
||||
}
|
||||
|
||||
param1->damage = ov16_0225AEB8(param0, param1, param1->damage);
|
||||
param1->damage = BattleSystem_CalcDamageVariance(param0, param1, param1->damage);
|
||||
param1->damage *= -1;
|
||||
param1->msgBuffer.id = 481;
|
||||
param1->msgBuffer.tags = 2;
|
||||
|
|
@ -5394,7 +5394,7 @@ static BOOL ov16_022467A0 (BattleSystem * param0, BattleContext * param1)
|
|||
param1->battleMons[param1->attacker].ppCur[v2] = 0;
|
||||
param1->msgMoveTemp = param1->battleMons[param1->attacker].moves[v2];
|
||||
|
||||
ov16_02253EC0(param0, param1, param1->attacker);
|
||||
BattleMon_CopyToParty(param0, param1, param1->attacker);
|
||||
} else {
|
||||
ov16_02248AF0(param1, v0);
|
||||
}
|
||||
|
|
@ -5517,7 +5517,7 @@ static BOOL ov16_022469C4 (BattleSystem * param0, BattleContext * param1)
|
|||
}
|
||||
|
||||
if (v3) {
|
||||
v4 = ov16_02254EE0(¶m1->battleMons[v1], v3);
|
||||
v4 = Battler_SlotForMove(¶m1->battleMons[v1], v3);
|
||||
|
||||
if ((param1->aiContext.moveTable[v3].effect == 128) && (param1->battleMons[v1].ppCur[v4])) {
|
||||
param1->battleMons[v1].ppCur[v4]--;
|
||||
|
|
@ -5533,7 +5533,7 @@ static BOOL ov16_022469C4 (BattleSystem * param0, BattleContext * param1)
|
|||
param1->moveCur = v3;
|
||||
param1->movePrevByBattler[v1] = v3;
|
||||
param1->battlerActions[v1][0] = 39;
|
||||
ov16_02253EC0(param0, param1, v1);
|
||||
BattleMon_CopyToParty(param0, param1, v1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
@ -5547,7 +5547,7 @@ static BOOL ov16_022469C4 (BattleSystem * param0, BattleContext * param1)
|
|||
int v5;
|
||||
int v6;
|
||||
|
||||
v5 = ov16_02258AB8(param1, param1->attacker);
|
||||
v5 = Battler_HeldItemEffect(param1, param1->attacker);
|
||||
v6 = ov16_02258ACC(param1, param1->attacker, 0);
|
||||
|
||||
if ((v5 == 55) || (v5 == 115) || (v5 == 125)) {
|
||||
|
|
@ -5714,7 +5714,7 @@ static BOOL ov16_02246DF0 (BattleSystem * param0, BattleContext * param1)
|
|||
}
|
||||
}
|
||||
|
||||
ov16_0225B408(param1, param1->attacker, param1->defender);
|
||||
BattleSystem_DecPPForPressure(param1, param1->attacker, param1->defender);
|
||||
} else {
|
||||
ov16_02248AF0(param1, v0);
|
||||
}
|
||||
|
|
@ -6292,11 +6292,11 @@ static BOOL ov16_022478E4 (BattleSystem * param0, BattleContext * param1)
|
|||
v0 = ov16_0224A984(param0, param1, v2);
|
||||
|
||||
if (v1 == 0) {
|
||||
if (ov16_02258AB8(param1, v0) == v5) {
|
||||
if (Battler_HeldItemEffect(param1, v0) == v5) {
|
||||
ov16_02248AF0(param1, v3);
|
||||
}
|
||||
} else {
|
||||
if (ov16_02258AB8(param1, v0) != v5) {
|
||||
if (Battler_HeldItemEffect(param1, v0) != v5) {
|
||||
ov16_02248AF0(param1, v3);
|
||||
}
|
||||
}
|
||||
|
|
@ -7127,7 +7127,7 @@ static BOOL ov16_02248550 (BattleSystem * param0, BattleContext * param1)
|
|||
param1->recycleItem[v1] = param1->battleMons[v1].heldItem;
|
||||
param1->battleMons[v1].heldItem = 0;
|
||||
|
||||
ov16_02253EC0(param0, param1, v1);
|
||||
BattleMon_CopyToParty(param0, param1, v1);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -7201,7 +7201,7 @@ static BOOL ov16_02248660 (BattleSystem * param0, BattleContext * param1)
|
|||
|
||||
v0 = ov16_02248AD0(param1);
|
||||
v1 = ov16_0224A984(param0, param1, v0);
|
||||
v2 = ov16_02258AB8(param1, v1);
|
||||
v2 = Battler_HeldItemEffect(param1, v1);
|
||||
v3 = ov16_02258ACC(param1, v1, 0);
|
||||
|
||||
if ((v2 == 65) && ((BattleSystem_RandNext(param0) % 100) < v3)) {
|
||||
|
|
|
|||
|
|
@ -67,9 +67,9 @@ void ov16_022535F0(BattleSystem * param0, BattleContext * param1, int param2);
|
|||
BOOL ov16_0225366C(BattleSystem * param0, BattleContext * param1, int * param2);
|
||||
BOOL ov16_02253710(BattleSystem * param0, BattleContext * param1, int * param2);
|
||||
int BattleSystem_Defender(BattleSystem * param0, BattleContext * param1, int param2, u16 param3, int param4, int param5);
|
||||
void ov16_02253C98(BattleSystem * param0, BattleContext * param1, int param2, u16 param3);
|
||||
void BattleSystem_RedirectTarget(BattleSystem * param0, BattleContext * param1, int param2, u16 param3);
|
||||
BOOL ov16_02253E3C(BattleSystem * param0, BattleContext * param1);
|
||||
void ov16_02253EC0(BattleSystem * param0, BattleContext * param1, int param2);
|
||||
void BattleMon_CopyToParty(BattleSystem * param0, BattleContext * param1, int param2);
|
||||
void ov16_02253EF0(BattleSystem * param0, BattleContext * param1, int param2);
|
||||
void ov16_02253F20(BattleSystem * param0, BattleContext * param1, int param2);
|
||||
int ov16_02253F7C(BattleContext * param0, int param1);
|
||||
|
|
@ -81,7 +81,7 @@ void ov16_02254744(BattleSystem * param0, BattleContext * param1, int param2);
|
|||
void BattleSystem_SetupNextTurn(BattleSystem * param0, BattleContext * param1);
|
||||
int BattleSystem_CheckStruggling(BattleSystem * param0, BattleContext * param1, int param2, int param3, int param4);
|
||||
BOOL BattleSystem_CanUseMove(BattleSystem *battleSys, BattleContext *battleCtx, int battler, int moveSlot, BattleMessage *msgOut);
|
||||
int ov16_02254EE0(BattleMon * param0, u16 param1);
|
||||
int Battler_SlotForMove(BattleMon * param0, u16 param1);
|
||||
int ov16_02254FA8(BattleSystem * param0, BattleContext * param1, int param2, int param3, int param4, int param5, int param6, u32 * param7);
|
||||
void ov16_022552D4(BattleContext * param0, int param1, int param2, int param3, int param4, int param5, int param6, int param7, u32 * param8);
|
||||
BOOL BattleContext_MoveFailed(BattleContext * param0, int param1);
|
||||
|
|
@ -89,7 +89,7 @@ u8 ov16_022554E0(BattleSystem * param0, BattleContext * param1, int param2, int
|
|||
int BattleSystem_NicknameTag(BattleContext *battleSys, int battler);
|
||||
u16 Battler_SelectedMove(BattleContext * param0, int param1);
|
||||
int BattleSystem_CountAbility(BattleSystem * param0, BattleContext * param1, int param2, int param3, int param4);
|
||||
BOOL ov16_0225582C(BattleContext * param0, int param1);
|
||||
BOOL BattleMove_IsMultiTurn(BattleContext * param0, int param1);
|
||||
BOOL ov16_0225588C(BattleSystem * param0, int param1, u8 * param2, u8 * param3, u8 * param4);
|
||||
int ov16_022558CC(u8 param0, u8 param1, u8 param2);
|
||||
BOOL ov16_02255918(u16 param0);
|
||||
|
|
@ -103,13 +103,13 @@ BOOL ov16_02255B10(BattleSystem * param0, BattleContext * param1, int param2);
|
|||
BOOL BattleSystem_Trapped(BattleSystem * param0, BattleContext * param1, int param2, BattleMessage * param3);
|
||||
BOOL BattleSystem_TryEscape(BattleSystem * param0, BattleContext * param1, int param2);
|
||||
BOOL Battler_CheckTruant(BattleContext * param0, int param1);
|
||||
BOOL ov16_02255EF4(BattleSystem * param0, BattleContext * param1, int param2, int param3);
|
||||
BOOL BattleSystem_Imprisoned(BattleSystem * param0, BattleContext * param1, int param2, int param3);
|
||||
BOOL ov16_02255F68(BattleSystem * param0, BattleContext * param1, int param2);
|
||||
void ov16_02255F94(BattleSystem * param0, BattleContext * param1);
|
||||
void BattleSystem_SortMonsBySpeed(BattleSystem * param0, BattleContext * param1);
|
||||
BOOL ov16_02256044(BattleSystem * param0, BattleContext * param1, int param2, int param3);
|
||||
BOOL ov16_02256078(BattleSystem * param0, BattleContext * param1, int param2, int param3);
|
||||
void ov16_022560B0(BattleSystem * param0, BattleContext * param1);
|
||||
BOOL BattleSystem_FailsInHighGravity(BattleSystem * param0, BattleContext * param1, int param2, int param3);
|
||||
BOOL BattleSystem_HealBlocked(BattleSystem * param0, BattleContext * param1, int param2, int param3);
|
||||
void BattleSystem_UpdateLastResort(BattleSystem * param0, BattleContext * param1);
|
||||
int ov16_02256128(BattleSystem * param0, BattleContext * param1, int param2);
|
||||
int ov16_02256148(BattleContext * param0, int param1, int param2);
|
||||
BOOL BattleSystem_TriggerTurnEndAbility(BattleSystem * param0, BattleContext * param1, int param2);
|
||||
|
|
@ -127,7 +127,7 @@ BOOL BattleSystem_TriggerDetrimentalHeldItem(BattleSystem * param0, BattleContex
|
|||
u16 ov16_02258874(BattleContext * param0, int param1);
|
||||
BOOL ov16_022588A4(BattleContext * param0, int param1);
|
||||
BOOL ov16_022588BC(BattleSystem * param0, BattleContext * param1, int * param2);
|
||||
s32 ov16_02258AB8(BattleContext * param0, int param1);
|
||||
s32 Battler_HeldItemEffect(BattleContext * param0, int param1);
|
||||
s32 ov16_02258ACC(BattleContext * param0, int param1, int param2);
|
||||
s32 ov16_02258B18(BattleContext * param0, int param1);
|
||||
s32 ov16_02258B2C(BattleContext * param0, int param1);
|
||||
|
|
@ -137,20 +137,20 @@ s32 ov16_02258B80(BattleContext * param0, int param1);
|
|||
int BattleSystem_CanSwitch(BattleSystem *battleSys, BattleContext *battleCtx, int battler);
|
||||
BOOL ov16_02258CB4(BattleSystem * param0, BattleContext * param1, int param2);
|
||||
BOOL ov16_02259204(BattleSystem * param0, BattleContext * param1, int param2);
|
||||
void ov16_02259868(BattleSystem * param0, BattleContext * param1);
|
||||
void BattleSystem_UpdateMetronomeCount(BattleSystem * param0, BattleContext * param1);
|
||||
void ov16_0225991C(BattleSystem * param0, BattleContext * param1);
|
||||
int ov16_022599D0(BattleContext * param0, int param1, int param2, int param3);
|
||||
BOOL BattleSystem_CanPickCommand(BattleContext *battleSys, int battler);
|
||||
void ov16_02259A5C(BattleSystem * param0, BattleContext * param1, Pokemon * param2);
|
||||
u8 BattleContext_IOBufferVal(BattleContext *battleCtx, int battler);
|
||||
BOOL ov16_02259AC0(BattleContext * param0, int param1);
|
||||
BOOL ov16_02259ADC(BattleSystem * param0, BattleContext * param1);
|
||||
BOOL BattleSystem_TrainerIsOT(BattleSystem * param0, BattleContext * param1);
|
||||
BOOL ov16_02259B38(BattleSystem * param0, Pokemon * param1);
|
||||
BOOL ov16_02259B9C(BattleSystem * param0, BattleContext * param1, int * param2);
|
||||
void ov16_0225A1B0(BattleSystem * param0, BattleContext * param1);
|
||||
void BattleSystem_SwitchSlots(BattleSystem *battleSys, BattleContext *battleCtx, int battler, int partySlot);
|
||||
int ov16_0225A280(BattleSystem * param0, BattleContext * param1, int param2, u32 param3, u32 param4, u16 param5, u8 param6, u8 param7, u8 param8, u8 param9);
|
||||
int ov16_0225AEB8(BattleSystem * param0, BattleContext * param1, int param2);
|
||||
int BattleSystem_CalcMoveDamage(BattleSystem * param0, BattleContext * param1, int param2, u32 param3, u32 param4, u16 param5, u8 param6, u8 param7, u8 param8, u8 param9);
|
||||
int BattleSystem_CalcDamageVariance(BattleSystem * param0, BattleContext * param1, int param2);
|
||||
int ov16_0225AEE4(BattleSystem * param0, BattleContext * param1, int param2, int param3, int param4, u32 param5);
|
||||
BOOL ov16_0225AFF4(u16 param0);
|
||||
BOOL ov16_0225B02C(BattleSystem * param0, BattleContext * param1, int param2, u16 param3);
|
||||
|
|
@ -161,7 +161,7 @@ int BattleSystem_SideToBattler(BattleSystem * param0, BattleContext * param1, in
|
|||
void ov16_0225B148(BattleSystem * param0, BattleContext * param1);
|
||||
BOOL ov16_0225B1DC(BattleContext * param0, int param1, int param2);
|
||||
BOOL ov16_0225B228(BattleSystem * param0, BattleContext * param1, int * param2);
|
||||
void ov16_0225B408(BattleContext * param0, int param1, int param2);
|
||||
void BattleSystem_DecPPForPressure(BattleContext * param0, int param1, int param2);
|
||||
BOOL BattleSystem_RecordingStopped(BattleSystem * param0, BattleContext * param1);
|
||||
int ov16_0225B45C(BattleSystem * param0, BattleContext * param1, int param2, int param3);
|
||||
void ov16_0225B540(BattleSystem * param0, BattleContext * param1, int param2, int param3, int param4);
|
||||
|
|
@ -177,7 +177,7 @@ static void ov16_0225B824(BattleContext * param0, u8 param1);
|
|||
static void ov16_0225B830(BattleContext * param0, u8 param1);
|
||||
static int ov16_0225B840(BattleSystem * param0, BattleContext * param1, int param2, int param3);
|
||||
static BOOL ov16_0225B8E4(BattleContext * param0, int param1);
|
||||
static int ov16_0225B910(BattleSystem * param0, BattleContext * param1, int param2, int param3);
|
||||
static int BattleMove_Type(BattleSystem * param0, BattleContext * param1, int param2, int param3);
|
||||
int ov16_0225BA88(BattleSystem * param0, int param1);
|
||||
int ov16_0225BE28(BattleSystem * param0, int param1);
|
||||
int ov16_0225BE3C(BattleSystem * param0, BattleContext * param1, Pokemon * param2, int param3);
|
||||
|
|
@ -1229,9 +1229,9 @@ u8 BattleSystem_CompareBattlerSpeed (BattleSystem * param0, BattleContext * para
|
|||
|
||||
v19 = Battler_Ability(param1, param2);
|
||||
v20 = Battler_Ability(param1, param3);
|
||||
v5 = ov16_02258AB8(param1, param2);
|
||||
v5 = Battler_HeldItemEffect(param1, param2);
|
||||
v6 = ov16_02258ACC(param1, param2, 0);
|
||||
v7 = ov16_02258AB8(param1, param3);
|
||||
v7 = Battler_HeldItemEffect(param1, param3);
|
||||
v8 = ov16_02258ACC(param1, param3, 0);
|
||||
v21 = param1->battleMons[param2].statBoosts[0x3];
|
||||
v22 = param1->battleMons[param3].statBoosts[0x3];
|
||||
|
|
@ -1782,7 +1782,7 @@ int BattleSystem_Defender (BattleSystem * param0, BattleContext * param1, int pa
|
|||
return v0;
|
||||
}
|
||||
|
||||
void ov16_02253C98 (BattleSystem * param0, BattleContext * param1, int param2, u16 param3)
|
||||
void BattleSystem_RedirectTarget (BattleSystem * param0, BattleContext * param1, int param2, u16 param3)
|
||||
{
|
||||
int v0;
|
||||
int v1;
|
||||
|
|
@ -1804,7 +1804,7 @@ void ov16_02253C98 (BattleSystem * param0, BattleContext * param1, int param2, u
|
|||
return;
|
||||
}
|
||||
|
||||
v3 = ov16_0225B910(param0, param1, param2, param3);
|
||||
v3 = BattleMove_Type(param0, param1, param2, param3);
|
||||
|
||||
if (v3 == 0) {
|
||||
v3 = param1->aiContext.moveTable[param3].type;
|
||||
|
|
@ -1864,7 +1864,7 @@ BOOL ov16_02253E3C (BattleSystem * param0, BattleContext * param1)
|
|||
return v0;
|
||||
}
|
||||
|
||||
void ov16_02253EC0 (BattleSystem * param0, BattleContext * param1, int param2)
|
||||
void BattleMon_CopyToParty (BattleSystem * param0, BattleContext * param1, int param2)
|
||||
{
|
||||
if (param1->battleMons[param2].heldItem == 0) {
|
||||
ov16_0225B830(param1, param2);
|
||||
|
|
@ -2312,7 +2312,7 @@ int BattleSystem_CheckStruggling (BattleSystem *battleSys, BattleContext *battle
|
|||
int v0;
|
||||
int v1;
|
||||
|
||||
v1 = ov16_02258AB8(battleCtx, battler);
|
||||
v1 = Battler_HeldItemEffect(battleCtx, battler);
|
||||
|
||||
for (v0 = 0; v0 < 4; v0++) {
|
||||
if ((battleCtx->battleMons[battler].moves[v0] == 0) && (struggleChecksMask & 0x1)) {
|
||||
|
|
@ -2335,15 +2335,15 @@ int BattleSystem_CheckStruggling (BattleSystem *battleSys, BattleContext *battle
|
|||
moveFlags |= FlagIndex(v0);
|
||||
}
|
||||
|
||||
if ((ov16_02255EF4(battleSys, battleCtx, battler, battleCtx->battleMons[battler].moves[v0])) && (struggleChecksMask & 0x20)) {
|
||||
if ((BattleSystem_Imprisoned(battleSys, battleCtx, battler, battleCtx->battleMons[battler].moves[v0])) && (struggleChecksMask & 0x20)) {
|
||||
moveFlags |= FlagIndex(v0);
|
||||
}
|
||||
|
||||
if ((ov16_02256044(battleSys, battleCtx, battler, battleCtx->battleMons[battler].moves[v0])) && (struggleChecksMask & 0x40)) {
|
||||
if ((BattleSystem_FailsInHighGravity(battleSys, battleCtx, battler, battleCtx->battleMons[battler].moves[v0])) && (struggleChecksMask & 0x40)) {
|
||||
moveFlags |= FlagIndex(v0);
|
||||
}
|
||||
|
||||
if ((ov16_02256078(battleSys, battleCtx, battler, battleCtx->battleMons[battler].moves[v0])) && (struggleChecksMask & 0x80)) {
|
||||
if ((BattleSystem_HealBlocked(battleSys, battleCtx, battler, battleCtx->battleMons[battler].moves[v0])) && (struggleChecksMask & 0x80)) {
|
||||
moveFlags |= FlagIndex(v0);
|
||||
}
|
||||
|
||||
|
|
@ -2352,7 +2352,7 @@ int BattleSystem_CheckStruggling (BattleSystem *battleSys, BattleContext *battle
|
|||
}
|
||||
|
||||
if (((v1 == 55) || (v1 == 115) || (v1 == 125)) && (struggleChecksMask & 0x200)) {
|
||||
if (ov16_02254EE0(&battleCtx->battleMons[battler], battleCtx->battleMons[battler].moveEffectsData.choiceLockedMove) == 4) {
|
||||
if (Battler_SlotForMove(&battleCtx->battleMons[battler], battleCtx->battleMons[battler].moveEffectsData.choiceLockedMove) == 4) {
|
||||
battleCtx->battleMons[battler].moveEffectsData.choiceLockedMove = 0;
|
||||
} else {
|
||||
if ((battleCtx->battleMons[battler].moveEffectsData.choiceLockedMove) && (battleCtx->battleMons[battler].moveEffectsData.choiceLockedMove != battleCtx->battleMons[battler].moves[v0])) {
|
||||
|
|
@ -2420,7 +2420,7 @@ BOOL BattleSystem_CanUseMove (BattleSystem *battleSys, BattleContext *battleCtx,
|
|||
return result;
|
||||
}
|
||||
|
||||
int ov16_02254EE0 (BattleMon * param0, u16 param1)
|
||||
int Battler_SlotForMove (BattleMon * param0, u16 param1)
|
||||
{
|
||||
int v0;
|
||||
|
||||
|
|
@ -2553,7 +2553,7 @@ static BOOL ov16_02254EF4 (BattleContext * param0, int param1, int param2, int p
|
|||
BOOL v0;
|
||||
int v1;
|
||||
|
||||
v1 = ov16_02258AB8(param0, param2);
|
||||
v1 = Battler_HeldItemEffect(param0, param2);
|
||||
v0 = 1;
|
||||
|
||||
if ((v1 == 106) || (param0->battleMons[param2].moveEffectsMask & 0x400)) {
|
||||
|
|
@ -2600,9 +2600,9 @@ int ov16_02254FA8 (BattleSystem * param0, BattleContext * param1, int param2, in
|
|||
return param6;
|
||||
}
|
||||
|
||||
v4 = ov16_02258AB8(param1, param4);
|
||||
v4 = Battler_HeldItemEffect(param1, param4);
|
||||
v6 = ov16_02258ACC(param1, param4, 0);
|
||||
v5 = ov16_02258AB8(param1, param5);
|
||||
v5 = Battler_HeldItemEffect(param1, param5);
|
||||
v7 = ov16_02258ACC(param1, param5, 0);
|
||||
|
||||
if (Battler_Ability(param1, param4) == 96) {
|
||||
|
|
@ -2941,7 +2941,7 @@ int BattleSystem_CountAbility (BattleSystem * param0, BattleContext * param1, in
|
|||
return v0;
|
||||
}
|
||||
|
||||
BOOL ov16_0225582C (BattleContext * param0, int param1)
|
||||
BOOL BattleMove_IsMultiTurn (BattleContext * param0, int param1)
|
||||
{
|
||||
switch (param0->aiContext.moveTable[param1].effect) {
|
||||
case 26:
|
||||
|
|
@ -3156,7 +3156,7 @@ BOOL BattleSystem_Trapped (BattleSystem * param0, BattleContext * param1, int pa
|
|||
u32 v4;
|
||||
|
||||
v4 = BattleSystem_BattleType(param0);
|
||||
v3 = ov16_02258AB8(param1, param2);
|
||||
v3 = Battler_HeldItemEffect(param1, param2);
|
||||
|
||||
if ((v3 == 63) || (v4 & (0x4 | 0x20 | 0x200 | 0x80)) || (Battler_Ability(param1, param2) == 50)) {
|
||||
return 0;
|
||||
|
|
@ -3237,7 +3237,7 @@ BOOL BattleSystem_TryEscape (BattleSystem * param0, BattleContext * param1, int
|
|||
u32 v4;
|
||||
|
||||
v4 = BattleSystem_BattleType(param0);
|
||||
v2 = ov16_02258AB8(param1, param2);
|
||||
v2 = Battler_HeldItemEffect(param1, param2);
|
||||
v0 = 0;
|
||||
|
||||
if (v2 == 63) {
|
||||
|
|
@ -3284,7 +3284,7 @@ BOOL Battler_CheckTruant (BattleContext * param0, int param1)
|
|||
return v0;
|
||||
}
|
||||
|
||||
BOOL ov16_02255EF4 (BattleSystem * param0, BattleContext * param1, int param2, int param3)
|
||||
BOOL BattleSystem_Imprisoned (BattleSystem * param0, BattleContext * param1, int param2, int param3)
|
||||
{
|
||||
int v0;
|
||||
int v1;
|
||||
|
|
@ -3374,7 +3374,7 @@ static const u16 Unk_ov16_0226EBD4[] = {
|
|||
0x189
|
||||
};
|
||||
|
||||
BOOL ov16_02256044 (BattleSystem * param0, BattleContext * param1, int param2, int param3)
|
||||
BOOL BattleSystem_FailsInHighGravity (BattleSystem * param0, BattleContext * param1, int param2, int param3)
|
||||
{
|
||||
int v0;
|
||||
BOOL v1;
|
||||
|
|
@ -3410,7 +3410,7 @@ static const u16 Unk_ov16_0226EBFA[] = {
|
|||
0x111
|
||||
};
|
||||
|
||||
BOOL ov16_02256078 (BattleSystem * param0, BattleContext * param1, int param2, int param3)
|
||||
BOOL BattleSystem_HealBlocked (BattleSystem * param0, BattleContext * param1, int param2, int param3)
|
||||
{
|
||||
int v0;
|
||||
BOOL v1;
|
||||
|
|
@ -3429,7 +3429,7 @@ BOOL ov16_02256078 (BattleSystem * param0, BattleContext * param1, int param2, i
|
|||
return v1;
|
||||
}
|
||||
|
||||
void ov16_022560B0 (BattleSystem * param0, BattleContext * param1)
|
||||
void BattleSystem_UpdateLastResort (BattleSystem * param0, BattleContext * param1)
|
||||
{
|
||||
int v0;
|
||||
|
||||
|
|
@ -4390,11 +4390,11 @@ BOOL ov16_02257808 (BattleSystem * param0, BattleContext * param1, int param2)
|
|||
return v0;
|
||||
}
|
||||
|
||||
if ((param1->defender != 0xff) && (ov16_02258AB8(param1, param1->defender) == 108) && (param1->defender == param1->sideEffectMon) && (param1->selfTurnFlags[param1->defender].statusFlags & 0x4)) {
|
||||
if ((param1->defender != 0xff) && (Battler_HeldItemEffect(param1, param1->defender) == 108) && (param1->defender == param1->sideEffectMon) && (param1->selfTurnFlags[param1->defender].statusFlags & 0x4)) {
|
||||
param1->msgBattlerTemp = param1->defender;
|
||||
param1->sideEffectMon = param1->attacker;
|
||||
v0 = 1;
|
||||
} else if ((ov16_02258AB8(param1, param1->attacker) == 108) && (param1->attacker == param1->sideEffectMon) && (param1->selfTurnFlags[param1->attacker].statusFlags & 0x4)) {
|
||||
} else if ((Battler_HeldItemEffect(param1, param1->attacker) == 108) && (param1->attacker == param1->sideEffectMon) && (param1->selfTurnFlags[param1->attacker].statusFlags & 0x4)) {
|
||||
param1->msgBattlerTemp = param1->attacker;
|
||||
param1->sideEffectMon = param1->defender;
|
||||
v0 = 1;
|
||||
|
|
@ -4420,7 +4420,7 @@ BOOL BattleSystem_TriggerHeldItem (BattleSystem * param0, BattleContext * param1
|
|||
int v3;
|
||||
|
||||
v0 = 0;
|
||||
v2 = ov16_02258AB8(param1, param2);
|
||||
v2 = Battler_HeldItemEffect(param1, param2);
|
||||
v3 = ov16_02258ACC(param1, param2, 0);
|
||||
|
||||
if (param1->battleMons[param2].curHP) {
|
||||
|
|
@ -4481,7 +4481,7 @@ BOOL BattleSystem_TriggerHeldItem (BattleSystem * param0, BattleContext * param1
|
|||
|
||||
if (v4 != 4) {
|
||||
ov16_02252A2C(¶m1->battleMons[param2], 31 + v4, v3);
|
||||
ov16_02253EC0(param0, param1, param2);
|
||||
BattleMon_CopyToParty(param0, param1, param2);
|
||||
param1->msgMoveTemp = param1->battleMons[param2].moves[v4];
|
||||
v1 = (0 + 204);
|
||||
v0 = 1;
|
||||
|
|
@ -4747,7 +4747,7 @@ BOOL BattleSystem_TriggerLeftovers (BattleSystem * param0, BattleContext * param
|
|||
int v3;
|
||||
|
||||
v0 = 0;
|
||||
v2 = ov16_02258AB8(param1, param2);
|
||||
v2 = Battler_HeldItemEffect(param1, param2);
|
||||
v3 = ov16_02258ACC(param1, param2, 0);
|
||||
|
||||
if (param1->battleMons[param2].curHP) {
|
||||
|
|
@ -4796,7 +4796,7 @@ BOOL BattleSystem_TriggerHeldItemOnStatus (BattleSystem * param0, BattleContext
|
|||
int v3;
|
||||
|
||||
v0 = 0;
|
||||
v2 = ov16_02258AB8(param1, param2);
|
||||
v2 = Battler_HeldItemEffect(param1, param2);
|
||||
v3 = ov16_02258ACC(param1, param2, 0);
|
||||
|
||||
if (param1->battleMons[param2].curHP) {
|
||||
|
|
@ -4857,7 +4857,7 @@ BOOL BattleSystem_TriggerHeldItemOnStatus (BattleSystem * param0, BattleContext
|
|||
|
||||
if (v4 != 4) {
|
||||
ov16_02252A2C(¶m1->battleMons[param2], 31 + v4, v3);
|
||||
ov16_02253EC0(param0, param1, param2);
|
||||
BattleMon_CopyToParty(param0, param1, param2);
|
||||
param1->msgMoveTemp = param1->battleMons[param2].moves[v4];
|
||||
param3[0] = (0 + 204);
|
||||
v0 = 1;
|
||||
|
|
@ -5119,7 +5119,7 @@ BOOL BattleSystem_TriggerDetrimentalHeldItem (BattleSystem * param0, BattleConte
|
|||
int v4;
|
||||
|
||||
v0 = 0;
|
||||
v3 = ov16_02258AB8(param1, param2);
|
||||
v3 = Battler_HeldItemEffect(param1, param2);
|
||||
v4 = ov16_02258ACC(param1, param2, 0);
|
||||
|
||||
if (param1->battleMons[param2].curHP) {
|
||||
|
|
@ -5195,7 +5195,7 @@ BOOL ov16_022588BC (BattleSystem * param0, BattleContext * param1, int * param2)
|
|||
return v0;
|
||||
}
|
||||
|
||||
v2 = ov16_02258AB8(param1, param1->defender);
|
||||
v2 = Battler_HeldItemEffect(param1, param1->defender);
|
||||
v3 = ov16_02258ACC(param1, param1->defender, 0);
|
||||
v4 = Battler_Side(param0, param1->attacker);
|
||||
|
||||
|
|
@ -5236,7 +5236,7 @@ BOOL ov16_022588BC (BattleSystem * param0, BattleContext * param1, int * param2)
|
|||
return v0;
|
||||
}
|
||||
|
||||
s32 ov16_02258AB8 (BattleContext * param0, int param1)
|
||||
s32 Battler_HeldItemEffect (BattleContext * param0, int param1)
|
||||
{
|
||||
u16 v0;
|
||||
|
||||
|
|
@ -5315,7 +5315,7 @@ int BattleSystem_CanSwitch (BattleSystem *battleSys, BattleContext *battleCtx, i
|
|||
|
||||
v0 = 0;
|
||||
|
||||
if (ov16_02258AB8(battleCtx, battler) == 123) {
|
||||
if (Battler_HeldItemEffect(battleCtx, battler) == 123) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
@ -5327,7 +5327,7 @@ int BattleSystem_CanSwitch (BattleSystem *battleSys, BattleContext *battleCtx, i
|
|||
v0 = 1;
|
||||
}
|
||||
|
||||
if ((((Battler_Ability(battleCtx, battler) != 26) && (battleCtx->battleMons[battler].moveEffectsData.magnetRiseTurns == 0) && (ov16_02252060(battleCtx, battler, 27, NULL) != 2) && (ov16_02252060(battleCtx, battler, 28, NULL) != 2)) || (ov16_02258AB8(battleCtx, battler) == 106) || (battleCtx->fieldConditionsMask & 0x7000)) && (BattleSystem_CountAbility(battleSys, battleCtx, 3, battler, 71))) {
|
||||
if ((((Battler_Ability(battleCtx, battler) != 26) && (battleCtx->battleMons[battler].moveEffectsData.magnetRiseTurns == 0) && (ov16_02252060(battleCtx, battler, 27, NULL) != 2) && (ov16_02252060(battleCtx, battler, 28, NULL) != 2)) || (Battler_HeldItemEffect(battleCtx, battler) == 106) || (battleCtx->fieldConditionsMask & 0x7000)) && (BattleSystem_CountAbility(battleSys, battleCtx, 3, battler, 71))) {
|
||||
v0 = 1;
|
||||
}
|
||||
|
||||
|
|
@ -5423,7 +5423,7 @@ BOOL ov16_02258CB4 (BattleSystem * param0, BattleContext * param1, int param2)
|
|||
}
|
||||
|
||||
ov16_02252A2C(¶m1->battleMons[param1->attacker], 31 + v7, v3);
|
||||
ov16_02253EC0(param0, param1, param1->attacker);
|
||||
BattleMon_CopyToParty(param0, param1, param1->attacker);
|
||||
param1->msgMoveTemp = param1->battleMons[param1->attacker].moves[v7];
|
||||
v1 = (0 + 204);
|
||||
}
|
||||
|
|
@ -5706,7 +5706,7 @@ BOOL ov16_02259204 (BattleSystem * param0, BattleContext * param1, int param2)
|
|||
|
||||
if (v5) {
|
||||
ov16_02252A2C(¶m1->battleMons[param1->defender], 31 + v6, v2);
|
||||
ov16_02253EC0(param0, param1, param1->defender);
|
||||
BattleMon_CopyToParty(param0, param1, param1->defender);
|
||||
|
||||
param1->msgMoveTemp = param1->battleMons[param1->defender].moves[v6];
|
||||
param1->flingScript = (0 + 204);
|
||||
|
|
@ -5919,9 +5919,9 @@ BOOL ov16_02259204 (BattleSystem * param0, BattleContext * param1, int param2)
|
|||
return 1;
|
||||
}
|
||||
|
||||
void ov16_02259868 (BattleSystem * param0, BattleContext * param1)
|
||||
void BattleSystem_UpdateMetronomeCount (BattleSystem * param0, BattleContext * param1)
|
||||
{
|
||||
if (ov16_02258AB8(param1, param1->attacker) == 105) {
|
||||
if (Battler_HeldItemEffect(param1, param1->attacker) == 105) {
|
||||
if (((param1->battleMons[param1->attacker].statusVolatile & 0xc00) == 0) && ((param1->battleMons[param1->attacker].statusVolatile & 0x70) == 0) && ((param1->battleStatusMask & 0x200) == 0) && ((param1->battleMons[param1->attacker].statusVolatile & 0x1000) == 0)) {
|
||||
if (param1->metronomeMove[param1->attacker] == param1->moveTemp) {
|
||||
if (param1->battleMons[param1->attacker].moveEffectsData.metronomeTurns < 10) {
|
||||
|
|
@ -5939,7 +5939,7 @@ void ov16_02259868 (BattleSystem * param0, BattleContext * param1)
|
|||
|
||||
void ov16_0225991C (BattleSystem * param0, BattleContext * param1)
|
||||
{
|
||||
if (ov16_02258AB8(param1, param1->attacker) == 105) {
|
||||
if (Battler_HeldItemEffect(param1, param1->attacker) == 105) {
|
||||
if ((param1->moveStatusFlags & ((1 | 8 | 64 | 2048 | 4096 | 16384 | 32768 | 65536 | 131072 | 262144 | 524288 | 1048576) | 512 | 0x80000000)) && (param1->metronomeMove[param1->attacker] == param1->moveTemp) && (param1->battleMons[param1->attacker].moveEffectsData.metronomeTurns) && (param1->selfTurnFlags[param1->attacker].repeatedMoveCount == 0) && ((param1->battleMons[param1->attacker].statusVolatile & 0xc00) == 0) && ((param1->battleMons[param1->attacker].statusVolatile & 0x70) == 0) && ((param1->battleStatusMask & 0x200) == 0) && ((param1->battleMons[param1->attacker].statusVolatile & 0x1000) == 0)) {
|
||||
param1->battleMons[param1->attacker].moveEffectsData.metronomeTurns--;
|
||||
}
|
||||
|
|
@ -6000,7 +6000,7 @@ void ov16_02259A5C (BattleSystem * param0, BattleContext * param1, Pokemon * par
|
|||
int v2;
|
||||
int v3;
|
||||
|
||||
v0 = ov16_0223E16C(param0, 0);
|
||||
v0 = BattleSystem_TrainerInfo(param0, 0);
|
||||
v1 = ov16_0223E24C(param0);
|
||||
v2 = ov16_0223E22C(param0);
|
||||
|
||||
|
|
@ -6029,14 +6029,14 @@ BOOL ov16_02259AC0 (BattleContext * param0, int param1)
|
|||
return v0;
|
||||
}
|
||||
|
||||
BOOL ov16_02259ADC (BattleSystem * param0, BattleContext * param1)
|
||||
BOOL BattleSystem_TrainerIsOT (BattleSystem * param0, BattleContext * param1)
|
||||
{
|
||||
TrainerInfo * v0;
|
||||
u32 v1;
|
||||
u32 v2;
|
||||
const u16 * v3;
|
||||
|
||||
v0 = ov16_0223E16C(param0, 0);
|
||||
v0 = BattleSystem_TrainerInfo(param0, 0);
|
||||
v1 = TrainerInfo_ID(v0);
|
||||
v2 = TrainerInfo_Gender(v0);
|
||||
v3 = TrainerInfo_Name(v0);
|
||||
|
|
@ -6056,7 +6056,7 @@ BOOL ov16_02259B38 (BattleSystem * param0, Pokemon * param1)
|
|||
const u16 * v3;
|
||||
u16 v4[7 + 1];
|
||||
|
||||
v0 = ov16_0223E16C(param0, 0);
|
||||
v0 = BattleSystem_TrainerInfo(param0, 0);
|
||||
v1 = TrainerInfo_ID(v0);
|
||||
v2 = TrainerInfo_Gender(v0);
|
||||
v3 = TrainerInfo_Name(v0);
|
||||
|
|
@ -6334,7 +6334,7 @@ static const u16 Unk_ov16_0226EC16[] = {
|
|||
0x147
|
||||
};
|
||||
|
||||
int ov16_0225A280 (BattleSystem * param0, BattleContext * param1, int param2, u32 param3, u32 param4, u16 param5, u8 param6, u8 param7, u8 param8, u8 param9)
|
||||
int BattleSystem_CalcMoveDamage (BattleSystem * param0, BattleContext * param1, int param2, u32 param3, u32 param4, u16 param5, u8 param6, u8 param7, u8 param8, u8 param9)
|
||||
{
|
||||
int v0;
|
||||
s32 v1 = 0;
|
||||
|
|
@ -6775,7 +6775,7 @@ int ov16_0225A280 (BattleSystem * param0, BattleContext * param1, int param2, u3
|
|||
return v1 + 2;
|
||||
}
|
||||
|
||||
int ov16_0225AEB8 (BattleSystem * param0, BattleContext * param1, int param2)
|
||||
int BattleSystem_CalcDamageVariance (BattleSystem * param0, BattleContext * param1, int param2)
|
||||
{
|
||||
if (param2) {
|
||||
param2 *= (100 - (BattleSystem_RandNext(param0) % 16));
|
||||
|
|
@ -6886,7 +6886,7 @@ BOOL ov16_0225B02C (BattleSystem * param0, BattleContext * param1, int param2, u
|
|||
|
||||
v0 = 0;
|
||||
|
||||
if ((ov16_02256044(param0, param1, param2, param3) == 1) || (ov16_02256078(param0, param1, param2, param3) == 1)) {
|
||||
if ((BattleSystem_FailsInHighGravity(param0, param1, param2, param3) == 1) || (BattleSystem_HealBlocked(param0, param1, param2, param3) == 1)) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
@ -7054,9 +7054,9 @@ BOOL ov16_0225B228 (BattleSystem * param0, BattleContext * param1, int * param2)
|
|||
int v6;
|
||||
|
||||
v0 = 0;
|
||||
v2 = ov16_02258AB8(param1, param1->attacker);
|
||||
v2 = Battler_HeldItemEffect(param1, param1->attacker);
|
||||
v3 = ov16_02258ACC(param1, param1->attacker, 0);
|
||||
v4 = ov16_02258AB8(param1, param1->defender);
|
||||
v4 = Battler_HeldItemEffect(param1, param1->defender);
|
||||
v5 = ov16_02258ACC(param1, param1->defender, 0);
|
||||
v6 = Battler_Side(param0, param1->attacker);
|
||||
|
||||
|
|
@ -7088,7 +7088,7 @@ BOOL ov16_0225B228 (BattleSystem * param0, BattleContext * param1, int * param2)
|
|||
return v0;
|
||||
}
|
||||
|
||||
void ov16_0225B408 (BattleContext * param0, int param1, int param2)
|
||||
void BattleSystem_DecPPForPressure (BattleContext * param0, int param1, int param2)
|
||||
{
|
||||
if ((param2 != 0xff) && (Battler_Ability(param0, param2) == 46) && (param0->battleMons[param1].ppCur[param0->moveSlot[param1]])) {
|
||||
param0->battleMons[param1].ppCur[param0->moveSlot[param1]]--;
|
||||
|
|
@ -7549,7 +7549,7 @@ static BOOL ov16_0225B8E4 (BattleContext * param0, int param1)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int ov16_0225B910 (BattleSystem * param0, BattleContext * param1, int param2, int param3)
|
||||
static int BattleMove_Type (BattleSystem * param0, BattleContext * param1, int param2, int param3)
|
||||
{
|
||||
int v0;
|
||||
|
||||
|
|
@ -7558,7 +7558,7 @@ static int ov16_0225B910 (BattleSystem * param0, BattleContext * param1, int par
|
|||
v0 = ov16_02258B2C(param1, param2);
|
||||
break;
|
||||
case 449:
|
||||
switch (ov16_02258AB8(param1, param2)) {
|
||||
switch (Battler_HeldItemEffect(param1, param2)) {
|
||||
case 131:
|
||||
v0 = 1;
|
||||
break;
|
||||
|
|
@ -7718,7 +7718,7 @@ int ov16_0225BA88 (BattleSystem * param0, int param1)
|
|||
|
||||
if (v8) {
|
||||
v16 = 0;
|
||||
ov16_022552D4(v20, v8, v9, Pokemon_GetValue(v19, MON_DATA_ABILITY, NULL), Battler_Ability(v20, v2), ov16_02258AB8(v20, v2), ov16_02252060(v20, v2, 27, NULL), ov16_02252060(v20, v2, 28, NULL), &v16);
|
||||
ov16_022552D4(v20, v8, v9, Pokemon_GetValue(v19, MON_DATA_ABILITY, NULL), Battler_Ability(v20, v2), Battler_HeldItemEffect(v20, v2), ov16_02252060(v20, v2, 27, NULL), ov16_02252060(v20, v2, 28, NULL), &v16);
|
||||
|
||||
if (v16 & 0x2) {
|
||||
break;
|
||||
|
|
@ -7749,7 +7749,7 @@ int ov16_0225BA88 (BattleSystem * param0, int param1)
|
|||
v9 = ov16_0225BE3C(param0, v20, v19, v8);
|
||||
|
||||
if ((v8) && (v20->aiContext.moveTable[v8].power != 1)) {
|
||||
v11 = ov16_0225A280(param0, v20, v8, v20->sideConditionsMask[Battler_Side(param0, v2)], v20->fieldConditionsMask, 0, 0, param1, v2, 1);
|
||||
v11 = BattleSystem_CalcMoveDamage(param0, v20, v8, v20->sideConditionsMask[Battler_Side(param0, v2)], v20->fieldConditionsMask, 0, 0, param1, v2, 1);
|
||||
v16 = 0;
|
||||
v11 = ov16_02254FA8(param0, v20, v8, v9, param1, v2, v11, &v16);
|
||||
|
||||
|
|
|
|||
|
|
@ -3664,7 +3664,7 @@ static void ov16_022611DC (UnkStruct_0201CD38 * param0, void * param1)
|
|||
memset(v0->unk_04, 0, sizeof(UnkStruct_ov13_022264F4));
|
||||
|
||||
v0->unk_04->unk_00 = v0->unk_00;
|
||||
v0->unk_04->unk_04 = ov16_0223E16C(v0->unk_00, v0->unk_0D);
|
||||
v0->unk_04->unk_04 = BattleSystem_TrainerInfo(v0->unk_00, v0->unk_0D);
|
||||
v0->unk_04->unk_0C = 5;
|
||||
v0->unk_04->unk_26 = 0;
|
||||
v0->unk_04->unk_08 = BattleSystem_Bag(v0->unk_00);
|
||||
|
|
@ -6421,7 +6421,7 @@ static void ov16_0226474C (BattleSystem * param0)
|
|||
static u8 ov16_02264768 (BattleSystem * param0, u8 param1, u8 param2)
|
||||
{
|
||||
if (BattleSystem_BattleType(param0) & 0x4) {
|
||||
if ((TrainerInfo_GameCode(ov16_0223E16C(param0, param1)) == 0) && (param2 <= 1)) {
|
||||
if ((TrainerInfo_GameCode(BattleSystem_TrainerInfo(param0, param1)) == 0) && (param2 <= 1)) {
|
||||
param2 += 103;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user