diff --git a/constants/move_constants.asm b/constants/move_constants.asm index 6e79b2e4b..4b09855e8 100644 --- a/constants/move_constants.asm +++ b/constants/move_constants.asm @@ -278,7 +278,9 @@ DEF CANNOT_MOVE EQU $ff const ANIM_IN_SANDSTORM ; 10b const ANIM_IN_NIGHTMARE ; 10c const ANIM_IN_WHIRLPOOL ; 10d -; battle anims + +; wBattleAfterAnim uses offsets from BATTLE_AFTERANIMS +DEF BATTLE_AFTERANIMS EQU const_value const ANIM_MISS ; 10e const ANIM_ENEMY_DAMAGE ; 10f const ANIM_ENEMY_STAT_DOWN ; 110 @@ -288,14 +290,3 @@ DEF CANNOT_MOVE EQU $ff const ANIM_SHAKE ; 114 const ANIM_HIT_CONFUSION ; 115 DEF NUM_BATTLE_ANIMS EQU const_value - 1 - -; wNumHits uses offsets from ANIM_MISS - const_def - const BATTLEANIM_NONE - const BATTLEANIM_ENEMY_DAMAGE - const BATTLEANIM_ENEMY_STAT_DOWN - const BATTLEANIM_PLAYER_STAT_DOWN - const BATTLEANIM_PLAYER_DAMAGE - const BATTLEANIM_WOBBLE - const BATTLEANIM_SHAKE - const BATTLEANIM_HIT_CONFUSION diff --git a/engine/battle/core.asm b/engine/battle/core.asm index f70caab92..439fa2917 100644 --- a/engine/battle/core.asm +++ b/engine/battle/core.asm @@ -415,7 +415,7 @@ HandleBerserkGene: bit SUBSTATUS_CONFUSED, a ret nz xor a - ld [wNumHits], a + ld [wBattleAfterAnim], a ld de, ANIM_CONFUSED call Call_PlayBattleAnim_OnlyIfVisible call SwitchTurnCore @@ -1028,7 +1028,7 @@ ResidualDamage: pop de xor a - ld [wNumHits], a + ld [wBattleAfterAnim], a call Call_PlayBattleAnim_OnlyIfVisible call GetEighthMaxHP ld de, wPlayerToxicCount @@ -1068,7 +1068,7 @@ ResidualDamage: call SwitchTurnCore xor a - ld [wNumHits], a + ld [wBattleAfterAnim], a ld de, ANIM_SAP ld a, BATTLE_VARS_SUBSTATUS3_OPP call GetBattleVar @@ -1093,7 +1093,7 @@ ResidualDamage: bit SUBSTATUS_NIGHTMARE, [hl] jr z, .not_nightmare xor a - ld [wNumHits], a + ld [wBattleAfterAnim], a ld de, ANIM_IN_NIGHTMARE call Call_PlayBattleAnim_OnlyIfVisible call GetQuarterMaxHP @@ -1111,7 +1111,7 @@ ResidualDamage: jr z, .not_cursed xor a - ld [wNumHits], a + ld [wBattleAfterAnim], a ld de, ANIM_IN_NIGHTMARE call Call_PlayBattleAnim_OnlyIfVisible call GetQuarterMaxHP @@ -1253,7 +1253,7 @@ HandleWrap: call SwitchTurnCore xor a - ld [wNumHits], a + ld [wBattleAfterAnim], a ld [wFXAnimID + 1], a predef PlayBattleAnim call SwitchTurnCore @@ -1743,7 +1743,7 @@ HandleWeather: call SwitchTurnCore xor a - ld [wNumHits], a + ld [wBattleAfterAnim], a ld de, ANIM_IN_SANDSTORM call Call_PlayBattleAnim call SwitchTurnCore @@ -3553,7 +3553,7 @@ ShowSetEnemyMonAndSendOutAnimation: call GetEnemyMonFrontpic xor a - ld [wNumHits], a + ld [wBattleAfterAnim], a ld [wBattleAnimParam], a call SetEnemyTurn ld de, ANIM_SEND_OUT_MON @@ -4046,7 +4046,7 @@ SendOutPlayerMon: ld [wEnemyWrapCount], a call SetPlayerTurn xor a - ld [wNumHits], a + ld [wBattleAfterAnim], a ld [wBattleAnimParam], a ld de, ANIM_SEND_OUT_MON call Call_PlayBattleAnim @@ -4235,7 +4235,7 @@ RecallPlayerMon: push af xor a ldh [hBattleTurn], a - ld [wNumHits], a + ld [wBattleAfterAnim], a ld de, ANIM_RETURN_MON call Call_PlayBattleAnim pop af @@ -4367,7 +4367,7 @@ ItemRecoveryAnim: ld [wFXAnimID], a call SwitchTurnCore xor a - ld [wNumHits], a + ld [wBattleAfterAnim], a ld [wFXAnimID + 1], a predef PlayBattleAnim call SwitchTurnCore @@ -9086,7 +9086,7 @@ BattleStartMessage: jr nc, .not_shiny xor a - ld [wNumHits], a + ld [wBattleAfterAnim], a ld a, 1 ldh [hBattleTurn], a ld a, 1 diff --git a/engine/battle/effect_commands.asm b/engine/battle/effect_commands.asm index 3ad991425..89d0c4841 100644 --- a/engine/battle/effect_commands.asm +++ b/engine/battle/effect_commands.asm @@ -156,7 +156,7 @@ BattleCommand_CheckTurn: jr z, .woke_up xor a - ld [wNumHits], a + ld [wBattleAfterAnim], a ld de, ANIM_SLP call FarPlayBattleAnimation jr .fast_asleep @@ -256,7 +256,7 @@ BattleCommand_CheckTurn: ld hl, IsConfusedText call StdBattleTextbox xor a - ld [wNumHits], a + ld [wBattleAfterAnim], a ld de, ANIM_CONFUSED call FarPlayBattleAnimation @@ -284,7 +284,7 @@ BattleCommand_CheckTurn: ld hl, InLoveWithText call StdBattleTextbox xor a - ld [wNumHits], a + ld [wBattleAfterAnim], a ld de, ANIM_IN_LOVE call FarPlayBattleAnimation @@ -387,7 +387,7 @@ CheckEnemyTurn: ld hl, FastAsleepText call StdBattleTextbox xor a - ld [wNumHits], a + ld [wBattleAfterAnim], a ld de, ANIM_SLP call FarPlayBattleAnimation jr .fast_asleep @@ -485,7 +485,7 @@ CheckEnemyTurn: call StdBattleTextbox xor a - ld [wNumHits], a + ld [wBattleAfterAnim], a ld de, ANIM_CONFUSED call FarPlayBattleAnimation @@ -508,7 +508,7 @@ CheckEnemyTurn: call BattleCommand_LowerSub xor a - ld [wNumHits], a + ld [wBattleAfterAnim], a ; Flicker the monster pic unless flying or underground. ld de, ANIM_HIT_CONFUSION @@ -532,7 +532,7 @@ CheckEnemyTurn: ld hl, InLoveWithText call StdBattleTextbox xor a - ld [wNumHits], a + ld [wBattleAfterAnim], a ld de, ANIM_IN_LOVE call FarPlayBattleAnimation @@ -611,7 +611,7 @@ HitConfusion: call BattleCommand_LowerSub xor a - ld [wNumHits], a + ld [wBattleAfterAnim], a ; Flicker the monster pic unless flying or underground. ld de, ANIM_HIT_CONFUSION @@ -1909,7 +1909,7 @@ BattleCommand_LowerSub: jr c, .mimic_anims xor a - ld [wNumHits], a + ld [wBattleAfterAnim], a ld [wFXAnimID + 1], a inc a ld [wBattleAnimParam], a @@ -1952,13 +1952,13 @@ BattleCommand_MoveAnimNoSub: ldh a, [hBattleTurn] and a ld de, wPlayerRolloutCount - ld a, BATTLEANIM_ENEMY_DAMAGE + ld a, ANIM_ENEMY_DAMAGE - BATTLE_AFTERANIMS jr z, .got_rollout_count ld de, wEnemyRolloutCount - ld a, BATTLEANIM_PLAYER_DAMAGE + ld a, ANIM_PLAYER_DAMAGE - BATTLE_AFTERANIMS .got_rollout_count - ld [wNumHits], a + ld [wBattleAfterAnim], a ld a, BATTLE_VARS_MOVE_EFFECT call GetBattleVar cp EFFECT_MULTI_HIT @@ -2005,7 +2005,7 @@ BattleCommand_MoveAnimNoSub: pop af jp z, PlayFXAnimID xor a - ld [wNumHits], a + ld [wBattleAfterAnim], a jp PlayFXAnimID BattleCommand_StatUpAnim: @@ -2023,14 +2023,14 @@ BattleCommand_StatDownAnim: ldh a, [hBattleTurn] and a - ld a, BATTLEANIM_ENEMY_STAT_DOWN + ld a, ANIM_ENEMY_STAT_DOWN - BATTLE_AFTERANIMS jr z, BattleCommand_StatUpDownAnim - ld a, BATTLEANIM_WOBBLE + ld a, ANIM_WOBBLE - BATTLE_AFTERANIMS ; fallthrough BattleCommand_StatUpDownAnim: - ld [wNumHits], a + ld [wBattleAfterAnim], a xor a ld [wBattleAnimParam], a ld a, BATTLE_VARS_MOVE_ANIM @@ -2055,7 +2055,7 @@ BattleCommand_RaiseSub: jp c, BattleCommand_RaiseSubNoAnim xor a - ld [wNumHits], a + ld [wBattleAfterAnim], a ld [wFXAnimID + 1], a ld a, $2 ld [wBattleAnimParam], a @@ -2389,7 +2389,7 @@ BattleCommand_CheckFaint: call BattleCommand_SwitchTurn xor a - ld [wNumHits], a + ld [wBattleAfterAnim], a ld [wFXAnimID + 1], a inc a ld [wBattleAnimParam], a @@ -3929,7 +3929,7 @@ SapHealth: BattleCommand_BurnTarget: xor a - ld [wNumHits], a + ld [wBattleAfterAnim], a call CheckSubstituteOpp ret nz ld a, BATTLE_VARS_STATUS_OPP @@ -3993,7 +3993,7 @@ Defrost: BattleCommand_FreezeTarget: xor a - ld [wNumHits], a + ld [wBattleAfterAnim], a call CheckSubstituteOpp ret nz ld a, BATTLE_VARS_STATUS_OPP @@ -4044,7 +4044,7 @@ BattleCommand_FreezeTarget: BattleCommand_ParalyzeTarget: xor a - ld [wNumHits], a + ld [wBattleAfterAnim], a call CheckSubstituteOpp ret nz ld a, BATTLE_VARS_STATUS_OPP @@ -4995,7 +4995,7 @@ BattleCommand_ForceSwitch: .wild_force_flee call UpdateBattleMonInParty xor a - ld [wNumHits], a + ld [wBattleAfterAnim], a inc a ; TRUE ld [wForcedSwitch], a call SetBattleDraw @@ -5088,7 +5088,7 @@ BattleCommand_ForceSwitch: .wild_succeed_playeristarget call UpdateBattleMonInParty xor a - ld [wNumHits], a + ld [wBattleAfterAnim], a inc a ; TRUE ld [wForcedSwitch], a call SetBattleDraw @@ -5496,7 +5496,7 @@ BattleCommand_Charge: call BattleCommand_LowerSub xor a - ld [wNumHits], a + ld [wBattleAfterAnim], a inc a ld [wBattleAnimParam], a call LoadMoveAnim @@ -6638,18 +6638,18 @@ PlayDamageAnim: ldh a, [hBattleTurn] and a - ld a, BATTLEANIM_ENEMY_DAMAGE + ld a, ANIM_ENEMY_DAMAGE - BATTLE_AFTERANIMS jr z, .player - ld a, BATTLEANIM_PLAYER_DAMAGE + ld a, ANIM_PLAYER_DAMAGE - BATTLE_AFTERANIMS .player - ld [wNumHits], a + ld [wBattleAfterAnim], a jp PlayUserBattleAnim LoadMoveAnim: xor a - ld [wNumHits], a + ld [wBattleAfterAnim], a ld [wFXAnimID + 1], a ld a, BATTLE_VARS_MOVE_ANIM @@ -6680,7 +6680,7 @@ PlayOpponentBattleAnim: ld a, d ld [wFXAnimID + 1], a xor a - ld [wNumHits], a + ld [wBattleAfterAnim], a push hl push de diff --git a/engine/battle/move_effects/selfdestruct.asm b/engine/battle/move_effects/selfdestruct.asm index ef5e2e8f9..091a04732 100644 --- a/engine/battle/move_effects/selfdestruct.asm +++ b/engine/battle/move_effects/selfdestruct.asm @@ -1,7 +1,7 @@ BattleCommand_Selfdestruct: farcall StubbedTrainerRankings_Selfdestruct - ld a, BATTLEANIM_PLAYER_DAMAGE - ld [wNumHits], a + ld a, ANIM_PLAYER_DAMAGE - BATTLE_AFTERANIMS + ld [wBattleAfterAnim], a ld c, 3 call DelayFrames ld a, BATTLE_VARS_STATUS diff --git a/engine/battle/move_effects/substitute.asm b/engine/battle/move_effects/substitute.asm index cc3de90c0..c0cf120d6 100644 --- a/engine/battle/move_effects/substitute.asm +++ b/engine/battle/move_effects/substitute.asm @@ -58,7 +58,7 @@ BattleCommand_Substitute: jr c, .no_anim xor a - ld [wNumHits], a + ld [wBattleAfterAnim], a ld [wFXAnimID + 1], a ld [wBattleAnimParam], a ld a, SUBSTITUTE diff --git a/engine/battle/move_effects/teleport.asm b/engine/battle/move_effects/teleport.asm index 87d2c6571..3ea05116d 100644 --- a/engine/battle/move_effects/teleport.asm +++ b/engine/battle/move_effects/teleport.asm @@ -79,7 +79,7 @@ BattleCommand_Teleport: .run_away call UpdateBattleMonInParty xor a - ld [wNumHits], a + ld [wBattleAfterAnim], a inc a ld [wForcedSwitch], a ld [wBattleAnimParam], a diff --git a/engine/battle/move_effects/transform.asm b/engine/battle/move_effects/transform.asm index 7d3a7efcf..daa59517c 100644 --- a/engine/battle/move_effects/transform.asm +++ b/engine/battle/move_effects/transform.asm @@ -7,7 +7,7 @@ BattleCommand_Transform: call CheckHiddenOpponent jp nz, BattleEffect_ButItFailed xor a - ld [wNumHits], a + ld [wBattleAfterAnim], a ld [wFXAnimID + 1], a ld a, $1 ld [wBattleAnimParam], a @@ -125,7 +125,7 @@ BattleCommand_Transform: call BattleCommand_RaiseSubNoAnim .after_anim xor a - ld [wNumHits], a + ld [wBattleAfterAnim], a ld [wFXAnimID + 1], a ld a, $2 ld [wBattleAnimParam], a diff --git a/engine/battle_anims/anim_commands.asm b/engine/battle_anims/anim_commands.asm index 818c56ef3..4d41e9ccb 100644 --- a/engine/battle_anims/anim_commands.asm +++ b/engine/battle_anims/anim_commands.asm @@ -53,7 +53,7 @@ _PlayBattleAnim: BattleAnimRunScript: ld a, [wFXAnimID + 1] and a - jr nz, .hi_byte + jr nz, .not_move farcall CheckBattleScene jr c, .disabled @@ -75,20 +75,20 @@ BattleAnimRunScript: call BattleAnimRestoreHuds .disabled - ld a, [wNumHits] + ld a, [wBattleAfterAnim] and a jr z, .done ld l, a ld h, 0 - ld de, ANIM_MISS + ld de, BATTLE_AFTERANIMS add hl, de ld a, l ld [wFXAnimID], a ld a, h ld [wFXAnimID + 1], a -.hi_byte +.not_move call WaitSFX call PlayHitSound call RunBattleAnimScript @@ -1311,10 +1311,10 @@ endr dw $0000, $0000 PlayHitSound: - ld a, [wNumHits] - cp BATTLEANIM_ENEMY_DAMAGE + ld a, [wBattleAfterAnim] + cp ANIM_ENEMY_DAMAGE - BATTLE_AFTERANIMS jr z, .okay - cp BATTLEANIM_PLAYER_DAMAGE + cp ANIM_PLAYER_DAMAGE - BATTLE_AFTERANIMS ret nz .okay diff --git a/engine/items/item_effects.asm b/engine/items/item_effects.asm index 377f4bcf9..1797a1641 100644 --- a/engine/items/item_effects.asm +++ b/engine/items/item_effects.asm @@ -401,7 +401,7 @@ PokeBallEffect: xor a ldh [hBattleTurn], a ld [wThrownBallWobbleCount], a - ld [wNumHits], a + ld [wBattleAfterAnim], a predef PlayBattleAnim ld a, [wWildMon] @@ -2601,7 +2601,7 @@ UseBallInTrainerBattle: xor a ld [wBattleAnimParam], a ldh [hBattleTurn], a - ld [wNumHits], a + ld [wBattleAfterAnim], a predef PlayBattleAnim ld hl, BallBlockedText call PrintText diff --git a/ram/wram.asm b/ram/wram.asm index bf5fcc4cc..d76d94b51 100644 --- a/ram/wram.asm +++ b/ram/wram.asm @@ -1775,7 +1775,7 @@ wBGP:: db wOBP0:: db wOBP1:: db -wNumHits:: db +wBattleAfterAnim:: db ds 1