ref: 93ab6985d283857c54fe096294ba5296179963bf
parent: 59d67a44be4f76131b432b94b1cb6361b58a9a26
author: PikalaxALT <[email protected]>
date: Mon Nov 9 11:41:09 EST 2015
Some work on battle animations
--- a/battle/anim_commands.asm
+++ b/battle/anim_commands.asm
@@ -40,7 +40,7 @@
push af
ld [hl], c
- call Functioncc11c
+ call BattleAnimRunScript
pop af
ld [hVBlank], a
@@ -55,17 +55,17 @@
ret
; cc11c
-Functioncc11c: ; cc11c
+BattleAnimRunScript: ; cc11c
ld a, [FXAnimIDHi]
and a
- jr nz, .asm_cc156
+ jr nz, .hi_byte
callba CheckBattleScene
- jr c, .asm_cc141
+ jr c, .disabled
call BattleAnimClearHud
- call Functioncc163
+ call RunBattleAnimScript
call BattleAnimAssignPals
call BattleAnimRequestPals
@@ -76,14 +76,14 @@
call BattleAnimDelayFrame
call BattleAnimRestoreHuds
-.asm_cc141
+.disabled
ld a, [wcfca]
and a
- jr z, .asm_cc15f
+ jr z, .done
ld l, a
ld h, 0
- ld de, $10e
+ ld de, ANIM_MISS
add hl, de
ld a, l
ld [FXAnimIDLo], a
@@ -90,17 +90,17 @@
ld a, h
ld [FXAnimIDHi], a
-.asm_cc156
+.hi_byte
call WaitSFX
call Functioncc881
- call Functioncc163
+ call RunBattleAnimScript
-.asm_cc15f
+.done
call Functioncc8f6
ret
; cc163
-Functioncc163: ; cc163
+RunBattleAnimScript: ; cc163
call Functioncc8d3
@@ -257,11 +257,11 @@
ld a, [BattleAnimFlags]
bit 3, a
- jr z, .asm_cc254
+ jr z, .skip
ld hl, Sprites + 3
ld c, (SpritesEnd - Sprites) / 4
-.asm_cc249
+.loop
ld a, [hl]
and $f0
ld [hli], a
@@ -269,31 +269,31 @@
inc hl
endr
dec c
- jr nz, .asm_cc249
+ jr nz, .loop
ret
-.asm_cc254
+.skip
ld hl, Sprites
ld c, SpritesEnd - Sprites
xor a
-.asm_cc25a
+.loop2
ld [hli], a
dec c
- jr nz, .asm_cc25a
+ jr nz, .loop2
ret
; cc25f
Functioncc25f: ; cc25f
- call Functioncc267
+ call .CheckTimer
ret nc
- call Functioncc275
+ call .RunScript
ret
; cc267
-Functioncc267: ; cc267
+.CheckTimer: ; cc267
ld a, [BattleAnimDuration]
and a
- jr z, .asm_cc273
+ jr z, .done
dec a
ld [BattleAnimDuration], a
@@ -300,40 +300,40 @@
and a
ret
-.asm_cc273
+.done
scf
ret
; cc275
-Functioncc275: ; cc275
-
+.RunScript: ; cc275
+.loop
call GetBattleAnimByte
cp $ff
- jr nz, .asm_cc286
+ jr nz, .not_done_with_anim
; Return from a subroutine.
ld hl, BattleAnimFlags
bit 1, [hl]
- jr nz, .asm_cc28e
+ jr nz, .do_anim
set 0, [hl]
ret
-.asm_cc286
+.not_done_with_anim
cp $d0
- jr nc, .asm_cc28e
+ jr nc, .do_anim
ld [BattleAnimDuration], a
ret
-.asm_cc28e
- call Functioncc293
+.do_anim
+ call .DoCommand
- jr Functioncc275
+ jr .loop
; cc293
-Functioncc293: ; cc293
+.DoCommand: ; cc293
; Execute battle animation command in [BattleAnimByte].
ld a, [BattleAnimByte]
sub $d0
@@ -1332,11 +1332,11 @@
Functioncc881: ; cc881
ld a, [wcfca]
cp $1
- jr z, .asm_cc88b
+ jr z, .okay
cp $4
ret nz
-.asm_cc88b
+.okay
ld a, [TypeModifier]
and $7f
ret z
@@ -1358,41 +1358,43 @@
BattleAnimAssignPals: ; cc8a4
ld a, [hCGB]
and a
- jr nz, .asm_cc8be
+ jr nz, .cgb
ld a, [hSGB]
and a
- ld a, $e0
- jr z, .asm_cc8b2
- ld a, $f0
+ ld a, %11100000
+ jr z, .sgb
+ ld a, %11110000
-.asm_cc8b2
+.sgb
ld [wcfc8], a
- ld a, $e4
+ ld a, %11100100
ld [wcfc7], a
ld [wcfc9], a
ret
-.asm_cc8be
- ld a, $e4
+.cgb
+ ld a, %11100100
ld [wcfc7], a
ld [wcfc8], a
ld [wcfc9], a
call DmgToCgbBGPals
- ld de, $e4e4
+ lb de, %11100100, %11100100
call DmgToCgbObjPals
ret
; cc8d3
Functioncc8d3: ; cc8d3
+; Clear animation block
ld hl, LYOverrides
- ld bc, $0354
-.asm_cc8d9
+ ld bc, wBattleAnimEnd - LYOverrides
+.loop
ld [hl], $0
inc hl
dec bc
ld a, c
or b
- jr nz, .asm_cc8d9
+ jr nz, .loop
+
ld hl, FXAnimIDLo
ld e, [hl]
inc hl
@@ -1401,7 +1403,7 @@
rept 2
add hl, de
endr
- call Function3ae1
+ call GetBattleAnimPointer
call BattleAnimAssignPals
call BattleAnimDelayFrame
ret
@@ -1409,12 +1411,12 @@
Functioncc8f6: ; cc8f6
call WaitTop
- ld a, $e4
+ ld a, %11100100
ld [wcfc7], a
ld [wcfc8], a
ld [wcfc9], a
call DmgToCgbBGPals
- ld de, $e4e4
+ lb de, %11100100, %11100100
call DmgToCgbObjPals
xor a
ld [hSCX], a
--- a/battle/anims.asm
+++ b/battle/anims.asm
@@ -255,6 +255,7 @@
dw BattleAnim_253
dw BattleAnim_254
dw BattleAnim_SweetScent2
+; $100
dw BattleAnim_ThrowPokeBall
dw BattleAnim_SendOutMon
dw BattleAnim_ReturnMon
--- a/battle/core.asm
+++ b/battle/core.asm
@@ -2022,7 +2022,7 @@
ret
; 3ccde
-Function3ccde: ; 3ccde
+CheckUserHasEnoughHP: ; 3ccde
ld hl, BattleMonHP + 1
ld a, [hBattleTurn]
and a
@@ -3740,7 +3740,7 @@
lb bc, 4, 10
call ClearBox
call WaitBGMap
- jp Function3ee27
+ jp FinishBattleAnim
; 3d7b8
Function_BattleTextEnemySentOut: ; 3d7b8
@@ -4253,7 +4253,7 @@
ld [hBGMapMode], a
call GetMonBackpic
xor a
- ld [$ffad], a
+ ld [hFillBox], a
ld [wd0d2], a
ld [CurMoveNum], a
ld [TypeModifier], a
@@ -4262,7 +4262,7 @@
ld [LastPlayerCounterMove], a
ld [LastPlayerMove], a
call CheckAmuletCoin
- call Function3ee27
+ call FinishBattleAnim
xor a
ld [wEnemyWrapCount], a
call SetPlayerTurn
@@ -5132,7 +5132,7 @@
ld a, [hl]
cp b
ret z
- jp Function3ee27
+ jp FinishBattleAnim
; 3e138
Function3e138: ; 3e138
@@ -5269,7 +5269,7 @@
call GetMonFrontpic
call ExitMenu
call WaitBGMap
- call Function3ee27
+ call FinishBattleAnim
call LoadTileMapToTempTileMap
jp BattleMenu
; 3e22b
@@ -5309,7 +5309,7 @@
call WaitBGMap
call LoadTileMapToTempTileMap
call ResetTextRelatedRAM
- call Function3ee27
+ call FinishBattleAnim
and a
ret
@@ -6873,7 +6873,7 @@
Function3ebd8: ; 3ebd8
xor a
ld [TempEnemyMonSpecies], a
- call Function3ee27
+ call FinishBattleAnim
ld a, [OtherTrainerClass]
ld [TrainerClass], a
ld de, VTiles2
@@ -7368,7 +7368,7 @@
predef_jump PlayBattleAnim
; 3ee27
-Function3ee27: ; 3ee27
+FinishBattleAnim: ; 3ee27
push af
push bc
push de
@@ -8377,7 +8377,7 @@
ld a, [PlayerSubStatus4]
bit SUBSTATUS_SUBSTITUTE, a
ld hl, BattleAnimCmd_DD
- jr nz, Function3f46f
+ jr nz, Function3f46f ; substitute
Function3f447: ; 3f447
ld a, [wc6fe]
@@ -8576,7 +8576,7 @@
ld de, VTiles2
callab GetTrainerPic
xor a
- ld [$ffad], a
+ ld [hFillBox], a
dec a
ld [wc6e6], a
hlcoord 12, 0
@@ -8641,7 +8641,7 @@
predef Function5108b
xor a
ld [TrainerClass], a
- ld [$ffad], a
+ ld [hFillBox], a
hlcoord 12, 0
lb bc, 7, 7
predef FillBox
@@ -9400,7 +9400,7 @@
ld a, $1
ld [hBGMapMode], a
ld a, $31
- ld [$ffad], a
+ ld [hFillBox], a
hlcoord 2, 6
lb bc, 6, 6
predef FillBox
@@ -9494,7 +9494,7 @@
ld [rSVBK], a
call Function3fc5b
ld a, $31
- ld [$ffad], a
+ ld [hFillBox], a
hlcoord 2, 6
lb bc, 6, 6
predef FillBox
--- a/battle/effect_command_pointers.asm
+++ b/battle/effect_command_pointers.asm
@@ -13,7 +13,7 @@
dw BattleCommand_LowerSub ; 34eee
dw BattleCommand_HitTargetNoSub ; 34f60
dw BattleCommand_RaiseSub ; 35004
- dw BattleCommand_ResultText ; 35023
+ dw BattleCommand_FailureText ; 35023
dw BattleCommand_CheckFaint ; 3505e
dw BattleCommand_CriticalText ; 35175
dw BattleCommand_SuperEffectiveText ; 351ad
--- a/battle/effect_commands.asm
+++ b/battle/effect_commands.asm
@@ -30,12 +30,12 @@
; Read in and execute the user's move effects for this turn.
xor a
- ld [wc6b4], a
+ ld [wTurnEnded], a
; Effect command checkturn is called for every move.
call CheckTurn
- ld a, [wc6b4]
+ ld a, [wTurnEnded]
and a
ret nz
@@ -128,7 +128,7 @@
ld a, BATTLE_VARS_MOVE
call GetBattleVar
inc a
- jp z, Function34385
+ jp z, EndTurn
xor a
ld [AttackMissed], a
@@ -156,7 +156,7 @@
ld hl, MustRechargeText
call StdBattleTextBox
call CantMove
- jp Function34385
+ jp EndTurn
.no_recharge
@@ -185,7 +185,7 @@
ld hl, UpdatePlayerHUD
call CallBattleCore
ld a, $1
- ld [$ffd4], a
+ ld [hBGMapMode], a
ld hl, PlayerSubStatus1
res SUBSTATUS_NIGHTMARE, [hl]
jr .not_asleep
@@ -202,7 +202,7 @@
jr z, .not_asleep
call CantMove
- jp Function34385
+ jp EndTurn
.not_asleep
@@ -222,7 +222,7 @@
call StdBattleTextBox
call CantMove
- jp Function34385
+ jp EndTurn
.not_frozen
@@ -236,7 +236,7 @@
call StdBattleTextBox
call CantMove
- jp Function34385
+ jp EndTurn
.not_flinched
@@ -293,7 +293,7 @@
call HitConfusion
call CantMove
- jp Function34385
+ jp EndTurn
.not_confused
@@ -317,7 +317,7 @@
ld hl, InfatuationText
call StdBattleTextBox
call CantMove
- jp Function34385
+ jp EndTurn
.not_infatuated
@@ -334,7 +334,7 @@
call MoveDisabled
call CantMove
- jp Function34385
+ jp EndTurn
.no_disabled_move
@@ -351,7 +351,7 @@
ld hl, FullyParalyzedText
call StdBattleTextBox
call CantMove
- jp Function34385
+ jp EndTurn
; 341f0
@@ -379,7 +379,7 @@
.fly_dig
res SUBSTATUS_UNDERGROUND, [hl]
res SUBSTATUS_FLYING, [hl]
- jp Function37ece
+ jp AppearUserRaiseSub
; 34216
@@ -402,7 +402,7 @@
ld hl, MustRechargeText
call StdBattleTextBox
call CantMove
- jp Function34385
+ jp EndTurn
.no_recharge
@@ -433,7 +433,7 @@
ld hl, UpdateEnemyHUD
call CallBattleCore
ld a, $1
- ld [$ffd4], a
+ ld [hBGMapMode], a
ld hl, EnemySubStatus1
res SUBSTATUS_NIGHTMARE, [hl]
jr .not_asleep
@@ -446,7 +446,7 @@
cp SLEEP_TALK
jr z, .not_asleep
call CantMove
- jp Function34385
+ jp EndTurn
.not_asleep
@@ -463,7 +463,7 @@
ld hl, FrozenSolidText
call StdBattleTextBox
call CantMove
- jp Function34385
+ jp EndTurn
.not_frozen
@@ -477,7 +477,7 @@
call StdBattleTextBox
call CantMove
- jp Function34385
+ jp EndTurn
.not_flinched
@@ -527,7 +527,7 @@
; 50% chance of hitting itself
call BattleRandom
- cp $80
+ cp 1 + 50 percent
jr nc, .not_confused
; clear confusion-dependent substatus
@@ -538,7 +538,7 @@
ld hl, HurtItselfText
call StdBattleTextBox
- call Function355dd
+ call HitSelfInConfusion
call BattleCommand_DamageCalc
call BattleCommand_LowerSub
xor a
@@ -552,10 +552,10 @@
call z, PlayFXAnimID
ld c, $1
- call Function35d1c
+ call EnemyHurtItself
call BattleCommand_RaiseSub
call CantMove
- jp Function34385
+ jp EndTurn
.not_confused
@@ -573,13 +573,13 @@
; 50% chance of infatuation
call BattleRandom
- cp $80
+ cp 1 + 50 percent
jr c, .not_infatuated
ld hl, InfatuationText
call StdBattleTextBox
call CantMove
- jp Function34385
+ jp EndTurn
.not_infatuated
@@ -597,7 +597,7 @@
call MoveDisabled
call CantMove
- jp Function34385
+ jp EndTurn
.no_disabled_move
@@ -619,9 +619,9 @@
; 34385
-Function34385: ; 34385
+EndTurn: ; 34385
ld a, $1
- ld [wc6b4], a
+ ld [wTurnEnded], a
jp ResetDamage
; 3438d
@@ -651,7 +651,7 @@
xor a
ld [CriticalHit], a
- call Function355dd
+ call HitSelfInConfusion
call BattleCommand_DamageCalc
call BattleCommand_LowerSub
@@ -668,9 +668,9 @@
ld hl, UpdatePlayerHUD
call CallBattleCore
ld a, $1
- ld [$ffd4], a
+ ld [hBGMapMode], a
ld c, $1
- call Function35d7e
+ call PlayerHurtItself
jp BattleCommand_RaiseSub
; 343db
@@ -683,7 +683,7 @@
and a
ret nz
- call Function34548
+ call CheckUserIsCharging
ret nz
; If we've already checked this turn
@@ -1013,7 +1013,7 @@
; 34548
-Function34548: ; 34548
+CheckUserIsCharging: ; 34548
ld a, [hBattleTurn]
and a
@@ -1027,7 +1027,7 @@
BattleCommand_DoTurn: ; 34555
- call Function34548
+ call CheckUserIsCharging
ret nz
ld hl, BattleMonPP
@@ -1079,7 +1079,7 @@
ld a, [CurBattleMon]
jr z, .player
-; skip this part entirely if wildbattle
+; mimic this part entirely if wildbattle
ld a, [wBattleMode]
dec a
jr z, .wild
@@ -1090,7 +1090,7 @@
.player
call GetPartyLocation
push hl
- call Function3460b
+ call CheckMimicUsed
pop hl
ret c
@@ -1107,7 +1107,7 @@
add hl, bc
ld a, [hl]
and $3f
- jr z, .asm_345e3
+ jr z, .out_of_pp
dec [hl]
ld b, 0
ret
@@ -1121,7 +1121,7 @@
ld a, [hl]
cp MIMIC
jr z, .mimic
- ld hl, wCaughtMonMoves
+ ld hl, wWildMonMoves
add hl, bc
ld a, [hl]
cp MIMIC
@@ -1128,11 +1128,11 @@
ret z
.mimic
- ld hl, wCaughtMonPP
+ ld hl, wWildMonPP
call .consume_pp
ret
-.asm_345e3
+.out_of_pp
call BattleCommand_MoveDelay
; get move effect
ld a, BATTLE_VARS_MOVE_EFFECT
@@ -1165,7 +1165,7 @@
db $ff
; 3460b
-Function3460b: ; 3460b
+CheckMimicUsed: ; 3460b
ld a, [hBattleTurn]
and a
ld a, [CurMoveNum]
@@ -1174,24 +1174,24 @@
.player
ld c, a
- ld a, 2
+ ld a, MON_MOVES
call UserPartyAttr
ld a, BATTLE_VARS_MOVE
call GetBattleVar
cp MIMIC
- jr z, .asm_3462f
-
+ jr z, .mimic
+;
ld b, 0
add hl, bc
ld a, [hl]
cp MIMIC
- jr nz, .asm_3462f
+ jr nz, .mimic
scf
ret
-.asm_3462f
+.mimic
and a
ret
; 34631
@@ -2063,12 +2063,12 @@
call .Rampage
jr z, .charge_turn
- call Function34548
+ call CheckUserIsCharging
ret nz
.charge_turn
call _CheckBattleScene
- jr c, .skip_anims
+ jr c, .mimic_anims
xor a
ld [wcfca], a
@@ -2076,9 +2076,9 @@
inc a
ld [wKickCounter], a
ld a, SUBSTITUTE
- jp PlayMoveAnim_KeepHiID
+ jp LoadAnim
-.skip_anims
+.mimic_anims
call BattleCommand_LowerSubNoAnim
jp BattleCommand_MoveDelay
@@ -2119,10 +2119,10 @@
ld a, [hBattleTurn]
and a
ld de, PlayerRolloutCount
- ld a, 1
+ ld a, BATTLEANIM_ENEMY_DAMAGE
jr z, .got_rollout_count
ld de, EnemyRolloutCount
- ld a, 4
+ ld a, BATTLEANIM_PLAYER_DAMAGE
.got_rollout_count
ld [wcfca], a
@@ -2158,7 +2158,7 @@
.fly_dig
; clear sprite
- jp Function37ec7
+ jp AppearUserLowerSub
.multihit
.conversion
.doublehit
@@ -2199,9 +2199,9 @@
ld a, [hBattleTurn]
and a
- ld a, 2
+ ld a, BATTLEANIM_ENEMY_STAT_DOWN
jr z, BattleCommand_StatUpDownAnim
- ld a, 5
+ ld a, BATTLEANIM_WOBBLE
; fallthrough
; 34feb
@@ -2246,24 +2246,27 @@
ld a, $2
ld [wKickCounter], a
ld a, SUBSTITUTE
- jp PlayMoveAnim_KeepHiID
+ jp LoadAnim
; 35023
-BattleCommand_ResultText: ; 35023
-; resulttext
+BattleCommand_FailureText: ; 35023
+; failuretext
+; If the move missed or failed, load the appropriate
+; text, and end the effects of multi-turn or multi-
+; hit moves.
ld a, [AttackMissed]
and a
ret z
- call Function350e4
+ call GetFailureResultText
ld a, BATTLE_VARS_MOVE_ANIM
call GetBattleVarAddr
cp FLY
- jr z, .asm_3504f
+ jr z, .fly_dig
cp DIG
- jr z, .asm_3504f
+ jr z, .fly_dig
; Move effect:
inc hl
@@ -2270,23 +2273,23 @@
ld a, [hl]
cp EFFECT_MULTI_HIT
- jr z, .asm_35049
+ jr z, .multihit
cp EFFECT_DOUBLE_HIT
- jr z, .asm_35049
+ jr z, .multihit
cp EFFECT_TWINEEDLE
- jr z, .asm_35049
+ jr z, .multihit
jp EndMoveEffect
-.asm_35049
+.multihit
call BattleCommand_RaiseSub
jp EndMoveEffect
-.asm_3504f
+.fly_dig
ld a, BATTLE_VARS_SUBSTATUS3
call GetBattleVarAddr
res SUBSTATUS_UNDERGROUND, [hl]
res SUBSTATUS_FLYING, [hl]
- call Function37ece
+ call AppearUserRaiseSub
jp EndMoveEffect
; 3505e
@@ -2297,50 +2300,50 @@
ld a, BATTLE_VARS_SUBSTATUS1_OPP
call GetBattleVar
bit SUBSTATUS_ENDURE, a
- jr z, .asm_35072
+ jr z, .not_enduring
call BattleCommand_FalseSwipe
ld b, $0
- jr nc, .asm_3508b
+ jr nc, .okay
ld b, $1
- jr .asm_3508b
+ jr .okay
-.asm_35072
+.not_enduring
call GetOpponentItem
ld a, b
cp HELD_FOCUS_BAND
ld b, $0
- jr nz, .asm_3508b
+ jr nz, .okay
call BattleRandom
cp c
- jr nc, .asm_3508b
+ jr nc, .okay
call BattleCommand_FalseSwipe
ld b, $0
- jr nc, .asm_3508b
+ jr nc, .okay
ld b, $2
-.asm_3508b
+.okay
push bc
- call .asm_50bb
+ call .check_sub
ld c, $0
ld a, [hBattleTurn]
and a
- jr nz, .asm_3509b
- call Function35d1c
- jr .asm_3509e
+ jr nz, .damage_player
+ call EnemyHurtItself
+ jr .done_damage
-.asm_3509b
- call Function35d7e
+.damage_player
+ call PlayerHurtItself
-.asm_3509e
+.done_damage
pop bc
ld a, b
and a
ret z
dec a
- jr nz, .asm_350ab
+ jr nz, .not_enduring2
ld hl, EnduredText
jp StdBattleTextBox
-.asm_350ab
+.not_enduring2
call GetOpponentItem
ld a, [hl]
ld [wNamedObjectIndexBuffer], a
@@ -2349,7 +2352,7 @@
ld hl, HungOnText
jp StdBattleTextBox
-.asm_50bb
+.check_sub
ld a, BATTLE_VARS_SUBSTATUS4_OPP
call GetBattleVar
bit SUBSTATUS_SUBSTITUTE, a
@@ -2358,10 +2361,10 @@
ld de, PlayerDamageTaken + 1
ld a, [hBattleTurn]
and a
- jr nz, .asm_350ce
+ jr nz, .damage_taken
ld de, EnemyDamageTaken + 1
-.asm_350ce
+.damage_taken
ld a, [CurDamage + 1]
ld b, a
ld a, [de]
@@ -2382,26 +2385,26 @@
; 350e4
-Function350e4: ; 350e4
+GetFailureResultText: ; 350e4
ld hl, DoesntAffectText
ld de, DoesntAffectText
ld a, [TypeModifier]
and $7f
- jr z, .asm_35110
+ jr z, .got_text
ld a, BATTLE_VARS_MOVE_EFFECT
call GetBattleVar
cp EFFECT_FUTURE_SIGHT
ld hl, ButItFailedText
ld de, ItFailedText
- jr z, .asm_35110
+ jr z, .got_text
ld hl, AttackMissedText
ld de, AttackMissed2Text
ld a, [CriticalHit]
cp $ff
- jr nz, .asm_35110
+ jr nz, .got_text
ld hl, UnaffectedText
-.asm_35110
- call Function35157
+.got_text
+ call FailText_CheckOpponentProtect
xor a
ld [CriticalHit], a
@@ -2409,9 +2412,11 @@
call GetBattleVar
cp EFFECT_JUMP_KICK
ret nz
+
ld a, [TypeModifier]
and $7f
ret z
+
ld hl, CurDamage
ld a, [hli]
ld b, [hl]
@@ -2423,29 +2428,29 @@
dec hl
ld [hli], a
or b
- jr nz, .asm_3513e
+ jr nz, .do_at_least_1_damage
inc a
ld [hl], a
-.asm_3513e
+.do_at_least_1_damage
ld hl, CrashedText
call StdBattleTextBox
ld a, $1
ld [wKickCounter], a
- call PlayPlayerMoveAnim_ClearHiID
+ call LoadMoveAnim
ld c, $1
ld a, [hBattleTurn]
and a
- jp nz, Function35d1c
- jp Function35d7e
+ jp nz, EnemyHurtItself
+ jp PlayerHurtItself
-Function35157: ; 35157
+FailText_CheckOpponentProtect: ; 35157
ld a, BATTLE_VARS_SUBSTATUS1_OPP
call GetBattleVar
bit SUBSTATUS_PROTECT, a
- jr z, .asm_35162
+ jr z, .not_protected
ld h, d
ld l, e
-.asm_35162
+.not_protected
jp StdBattleTextBox
; 35165
@@ -2599,7 +2604,7 @@
inc a
ld [wKickCounter], a
ld a, DESTINY_BOND
- call PlayMoveAnim_KeepHiID
+ call LoadAnim
call BattleCommand_SwitchTurn
jr .asm_3524d ; 3522f $1c
@@ -2823,7 +2828,7 @@
call ThickClubBoost
.done
- call Function3534d
+ call TruncateHL_BC
ld a, [BattleMonLevel]
ld e, a
@@ -2835,13 +2840,14 @@
; 3534d
-Function3534d: ; 3534d
+TruncateHL_BC: ; 3534d
+.loop
; Truncate 16-bit values hl and bc to 8-bit values b and c respectively.
; b = hl, c = bc
ld a, h
or b
- jr z, .asm_3536b
+ jr z, .finish
srl b
rr c
@@ -2850,10 +2856,10 @@
ld a, c
or b
- jr nz, .asm_3535e
+ jr nz, .done_bc
inc c
-.asm_3535e
+.done_bc
srl h
rr l
srl h
@@ -2861,10 +2867,10 @@
ld a, l
or h
- jr nz, .asm_3536b
+ jr nz, .finish
inc l
-.asm_3536b
+.finish
ld a, [wLinkMode]
cp 3
jr z, .done
@@ -2871,7 +2877,7 @@
ld a, h
or b
- jr nz, Function3534d
+ jr nz, .loop
.done
ld b, l
@@ -3077,7 +3083,7 @@
call ThickClubBoost
.done
- call Function3534d
+ call TruncateHL_BC
ld a, [EnemyMonLevel]
ld e, a
@@ -3315,7 +3321,7 @@
; 355dd
-Function355dd: ; 355dd
+HitSelfInConfusion: ; 355dd
call ResetDamage
ld a, [hBattleTurn]
and a
@@ -3322,12 +3328,12 @@
ld hl, BattleMonDefense
ld de, PlayerScreens
ld a, [BattleMonLevel]
- jr z, .asm_355f7
+ jr z, .got_it
ld hl, EnemyMonDefense
ld de, EnemyScreens
ld a, [EnemyMonLevel]
-.asm_355f7
+.got_it
push af
ld a, [hli]
ld b, a
@@ -3334,11 +3340,11 @@
ld c, [hl]
ld a, [de]
bit SCREENS_REFLECT, a
- jr z, .asm_35604
+ jr z, .mimic_screen
sla c
rl b
-.asm_35604
+.mimic_screen
rept 3
dec hl
endr
@@ -3345,7 +3351,7 @@
ld a, [hli]
ld l, [hl]
ld h, a
- call Function3534d
+ call TruncateHL_BC
ld d, $28
pop af
ld e, a
@@ -3798,7 +3804,7 @@
and a
ret z
- call Function36abf
+ call CheckOpponentWentFirst
ret z
ld a, BATTLE_VARS_LAST_COUNTER_MOVE_OPP
@@ -3885,7 +3891,7 @@
inc a
endr
ld [de], a
- call Function36abf
+ call CheckOpponentWentFirst
jr nz, .asm_3591a
ld a, [hBattleTurn]
and a
@@ -3967,13 +3973,13 @@
ld a, [AttackMissed]
and a
- jp nz, Function359cd
+ jp nz, PainSplit_PrintButItFailed
call CheckSubstituteOpp
- jp nz, Function359cd
+ jp nz, PainSplit_PrintButItFailed
call AnimateCurrentMove
ld hl, BattleMonMaxHP + 1
ld de, EnemyMonMaxHP + 1
- call .asm_3597d
+ call .PlayerShareHP
ld a, $1
ld [wd10a], a
hlcoord 10, 9
@@ -3987,18 +3993,18 @@
ld [Buffer2], a
ld a, [hl]
ld [Buffer1], a
- call Function359ac
+ call .EnemyShareHP
xor a
ld [wd10a], a
call ResetDamage
hlcoord 2, 2
predef AnimateHPBar
- callba Function178000
+ callba _UpdateBattleHUDs
ld hl, SharedPainText
jp StdBattleTextBox
-.asm_3597d
+.PlayerShareHP
ld a, [hld]
ld [Buffer1], a
ld a, [hld]
@@ -4030,11 +4036,7 @@
inc de
endr
- ; fallthrough
-; 359ac
-
-
-Function359ac: ; 359ac
+.EnemyShareHP: ; 359ac
ld c, [hl]
dec hl
ld a, [CurDamage + 1]
@@ -4043,13 +4045,13 @@
dec hl
ld a, [CurDamage]
sbc b
- jr nc, .asm_359c2
+ jr nc, .skip
ld a, [CurDamage]
ld b, a
ld a, [CurDamage + 1]
ld c, a
-.asm_359c2
+.skip
ld a, c
ld [hld], a
ld [Buffer5], a
@@ -4059,7 +4061,7 @@
ret
; 359cd
-Function359cd: ; 359cd
+PainSplit_PrintButItFailed: ; 359cd
jp PrintDidntAffect2
; 359d0
@@ -4073,7 +4075,7 @@
call ResetDamage
ld a, $1
ld [AttackMissed], a
- call Function37354
+ call FailSnore
jp EndMoveEffect
; 359e6
@@ -4141,7 +4143,7 @@
jp StdBattleTextBox
.asm_35a50
- jp Function37354
+ jp FailConversion2
; 35a53
@@ -4149,11 +4151,11 @@
; lockon
call CheckSubstituteOpp
- jr nz, .asm_35a6e
+ jr nz, .fail
ld a, [AttackMissed]
and a
- jr nz, .asm_35a6e
+ jr nz, .fail
ld a, BATTLE_VARS_SUBSTATUS5_OPP
call GetBattleVarAddr
@@ -4163,7 +4165,7 @@
ld hl, TookAimText
jp StdBattleTextBox
-.asm_35a6e
+.fail
call AnimateFailedMove
jp PrintDidntAffect
; 35a74
@@ -4172,58 +4174,68 @@
BattleCommand_Sketch: ; 35a74
; sketch
- call Function372d8
-
+ call ClearLastMove
+; Don't sketch during a link battle
ld a, [wLinkMode]
and a
- jr z, .asm_35a83
+ jr z, .not_linked
call AnimateFailedMove
jp PrintNothingHappened
-.asm_35a83
+.not_linked
+; If the opponent has a substitute up, fail.
call CheckSubstituteOpp
- jp nz, .asm_35b10
-
+ jp nz, .fail
+; If the opponent is transformed, fail.
ld a, BATTLE_VARS_SUBSTATUS5_OPP
call GetBattleVarAddr
bit SUBSTATUS_TRANSFORMED, [hl]
- jp nz, .asm_35b10
-
+ jp nz, .fail
+; Get the user's moveset in its party struct.
+; This move replacement shall be permanent.
+; Pointer will be in de.
ld a, MON_MOVES
call UserPartyAttr
ld d, h
ld e, l
+; Get the battle move structs.
ld hl, BattleMonMoves
ld a, [hBattleTurn]
and a
- jr z, .asm_35aa5
+ jr z, .get_last_move
ld hl, EnemyMonMoves
-.asm_35aa5
+.get_last_move
ld a, BATTLE_VARS_LAST_COUNTER_MOVE_OPP
call GetBattleVar
ld [wTypeMatchup], a
ld b, a
+; Fail if move is invalid or is Struggle.
and a
- jr z, .asm_35b10
+ jr z, .fail
cp STRUGGLE
- jr z, .asm_35b10
+ jr z, .fail
+; Fail if user already knows that move
ld c, NUM_MOVES
-.asm_35ab7
+.does_user_already_know_move
ld a, [hli]
cp b
- jr z, .asm_35b10
+ jr z, .fail
dec c
- jr nz, .asm_35ab7
+ jr nz, .does_user_already_know_move
+; Find Sketch in the user's moveset.
+; Pointer in hl, and index in c.
dec hl
ld c, NUM_MOVES
-.asm_35ac1
+.find_sketch
dec c
ld a, [hld]
cp SKETCH
- jr nz, .asm_35ac1
+ jr nz, .find_sketch
inc hl
+; The Sketched move is loaded to that slot.
ld a, b
ld [hl], a
+; Copy the base PP from that move.
push bc
push hl
dec a
@@ -4234,24 +4246,27 @@
add hl, bc
ld [hl], a
pop bc
+
ld a, [hBattleTurn]
and a
- jr z, .asm_35af6
+ jr z, .user_trainer
ld a, [wBattleMode]
dec a
- jr nz, .asm_35af6
+ jr nz, .user_trainer
+; wildmon
ld a, [hl]
push bc
- ld hl, wc739
+ ld hl, wWildMonPP
ld b, 0
add hl, bc
ld [hl], a
- ld hl, wc735
+ ld hl, wWildMonMoves
add hl, bc
pop bc
ld [hl], b
- jr .asm_35b04
-.asm_35af6
+ jr .done_copy
+
+.user_trainer
ld a, [hl]
push af
ld l, c
@@ -4260,10 +4275,10 @@
ld a, b
ld [hl], a
pop af
- ld de, $0015
+ ld de, MON_PP - MON_MOVES
add hl, de
ld [hl], a
-.asm_35b04
+.done_copy
call GetMoveName
call AnimateCurrentMove
@@ -4270,7 +4285,7 @@
ld hl, SketchedText
jp StdBattleTextBox
-.asm_35b10
+.fail
call AnimateFailedMove
jp PrintDidntAffect
; 35b16
@@ -4307,10 +4322,10 @@
BattleCommand_SleepTalk: ; 35b33
; sleeptalk
- call Function372d8
+ call ClearLastMove
ld a, [AttackMissed]
and a
- jr nz, .asm_35ba3
+ jr nz, .fail
ld a, [hBattleTurn]
and a
ld hl, BattleMonMoves + 1
@@ -4324,12 +4339,12 @@
ld a, BATTLE_VARS_STATUS
call GetBattleVar
and SLP
- jr z, .asm_35ba3
+ jr z, .fail
ld a, [hl]
and a
- jr z, .asm_35ba3
+ jr z, .fail
call .asm_35ba9
- jr c, .asm_35ba3
+ jr c, .fail
dec hl
.asm_35b62
push hl
@@ -4356,18 +4371,19 @@
call GetBattleVarAddr
ld a, e
ld [hl], a
- call Function34548
- jr nz, .asm_35b9a
+ call CheckUserIsCharging
+ jr nz, .charging
ld a, [wKickCounter]
push af
call BattleCommand_LowerSub
pop af
ld [wKickCounter], a
-.asm_35b9a
- call PlayPlayerMoveAnim_ClearHiID
+.charging
+ call LoadMoveAnim
call UpdateMoveData
jp ResetTurn
-.asm_35ba3
+
+.fail
call AnimateFailedMove
jp TryPrintButItFailed
@@ -4656,22 +4672,23 @@
; 35d1c
-Function35d1c: ; 35d1c
+EnemyHurtItself: ; 35d1c
ld hl, CurDamage
ld a, [hli]
ld b, a
ld a, [hl]
or b
- jr z, .asm_35d7b
+ jr z, .did_no_damage
ld a, c
and a
- jr nz, .asm_35d31
+ jr nz, .mimic_sub_check
ld a, [EnemySubStatus4]
bit SUBSTATUS_SUBSTITUTE, a
- jp nz, Function35de0
-.asm_35d31
+ jp nz, SelfInflictDamageToSubstitute
+
+.mimic_sub_check
ld a, [hld]
ld b, a
ld a, [EnemyMonHP + 1]
@@ -4684,7 +4701,7 @@
ld [Buffer4], a
sbc b
ld [EnemyMonHP], a
- jr nc, .asm_35d59
+ jr nc, .mimic_faint
ld a, [Buffer4]
ld [hli], a
@@ -4696,7 +4713,7 @@
ld [hli], a
ld [hl], a
-.asm_35d59
+.mimic_faint
ld hl, EnemyMonMaxHP
ld a, [hli]
ld [Buffer2], a
@@ -4711,27 +4728,27 @@
xor a
ld [wd10a], a
predef AnimateHPBar
-.asm_35d7b
+.did_no_damage
jp RefreshBattleHuds
; 35d7e
-Function35d7e: ; 35d7e
+PlayerHurtItself: ; 35d7e
ld hl, CurDamage
ld a, [hli]
ld b, a
ld a, [hl]
or b
- jr z, .asm_35ddd
+ jr z, .did_no_damage
ld a, c
and a
- jr nz, .asm_35d93
+ jr nz, .mimic_sub_check
ld a, [PlayerSubStatus4]
bit SUBSTATUS_SUBSTITUTE, a
- jp nz, Function35de0
-.asm_35d93
+ jp nz, SelfInflictDamageToSubstitute
+.mimic_sub_check
ld a, [hld]
ld b, a
ld a, [BattleMonHP + 1]
@@ -4745,7 +4762,7 @@
sbc b
ld [BattleMonHP], a
ld [Buffer6], a
- jr nc, .asm_35dc5
+ jr nc, .mimic_faint
ld a, [Buffer4]
ld [hli], a
@@ -4760,7 +4777,7 @@
ld [hli], a
ld [hl], a
-.asm_35dc5
+.mimic_faint
ld hl, BattleMonMaxHP
ld a, [hli]
ld [Buffer2], a
@@ -4770,12 +4787,12 @@
ld a, $1
ld [wd10a], a
predef AnimateHPBar
-.asm_35ddd
+.did_no_damage
jp RefreshBattleHuds
; 35de0
-Function35de0: ; 35de0
+SelfInflictDamageToSubstitute: ; 35de0
ld hl, SubTookDamageText
call StdBattleTextBox
@@ -4811,7 +4828,7 @@
ld a, BATTLE_VARS_SUBSTATUS3
call GetBattleVar
and 1 << SUBSTATUS_FLYING | 1 << SUBSTATUS_UNDERGROUND
- call z, Function37ec7
+ call z, AppearUserLowerSub
call BattleCommand_SwitchTurn
ld a, BATTLE_VARS_MOVE_EFFECT
@@ -5031,25 +5048,25 @@
ld a, [hBattleTurn]
and a
- jr z, .skip_random
+ jr z, .mimic_random
ld a, [wLinkMode]
and a
- jr nz, .skip_random
+ jr nz, .mimic_random
ld a, [InBattleTowerBattle]
and a
- jr nz, .skip_random
+ jr nz, .mimic_random
ld a, [PlayerSubStatus5]
bit SUBSTATUS_LOCK_ON, a
- jr nz, .skip_random
+ jr nz, .mimic_random
call BattleRandom
cp $40 ; 25% chance AI fails
jr c, .failed
-.skip_random
+.mimic_random
call CheckSubstituteOpp
jr nz, .failed
ld a, [AttackMissed]
@@ -5244,7 +5261,7 @@
ld a, [TypeModifier]
and $7f
ret z
- call Function36e5b
+ call CheckMoveTypeMatchesTarget ; Don't burn a Fire-type
ret z
call GetOpponentItem
ld a, b
@@ -5317,7 +5334,7 @@
ld a, [Weather]
cp WEATHER_SUN
ret z
- call Function36e5b
+ call CheckMoveTypeMatchesTarget ; Don't freeze an Ice-type
ret z
call GetOpponentItem
ld a, b
@@ -5454,7 +5471,7 @@
ld a, [FailedMessage]
and a
ret nz
- jp Function36281
+ jp StatUpAnimation
; 361ef
@@ -5561,7 +5578,7 @@
; 36281
-Function36281: ; 36281
+StatUpAnimation: ; 36281
ld bc, wc6fe
ld hl, Function3f447
ld a, [hBattleTurn]
@@ -5581,7 +5598,7 @@
ret nc
xor a
- ld [$ffd4], a
+ ld [hBGMapMode], a
call CallBattleCore
call WaitBGMap
jp BattleCommand_MoveDelay
@@ -6146,7 +6163,7 @@
ld hl, GetMonFrontpic
.PlayerTurn
xor a
- ld [$ffd4], a
+ ld [hBGMapMode], a
call CallBattleCore
jp WaitBGMap
; 365c3
@@ -6160,7 +6177,7 @@
ld hl, Function3f486
.PlayerTurn
xor a
- ld [$ffd4], a
+ ld [hBGMapMode], a
call CallBattleCore
jp WaitBGMap
; 365d7
@@ -6534,7 +6551,7 @@
ld [wKickCounter], a
call SetBattleDraw
call BattleCommand_LowerSub
- call PlayPlayerMoveAnim_ClearHiID
+ call LoadMoveAnim
ld c, 20
call DelayFrames
call SetBattleDraw
@@ -6944,17 +6961,17 @@
ret nz
call CheckSubstituteOpp
- jr nz, .asm_36a9a
+ jr nz, .fail
ld a, BATTLE_VARS_STATUS_OPP
call GetBattleVar
and 1 << FRZ | SLP
- jr nz, .asm_36a9a
+ jr nz, .fail
- call Function36abf
- jr z, Function36ab5
+ call CheckOpponentWentFirst
+ jr z, FlinchTarget
-.asm_36a9a
+.fail
ld a, 1
ld [AttackMissed], a
ret
@@ -6970,7 +6987,7 @@
and 1 << FRZ | SLP
ret nz
- call Function36abf
+ call CheckOpponentWentFirst
ret nz
ld a, [EffectFailed]
@@ -6981,7 +6998,7 @@
; 36ab5
-Function36ab5: ; 36ab5
+FlinchTarget: ; 36ab5
ld a, BATTLE_VARS_SUBSTATUS3_OPP
call GetBattleVarAddr
set SUBSTATUS_FLINCHED, [hl]
@@ -6989,12 +7006,14 @@
; 36abf
-Function36abf: ; 36abf
+CheckOpponentWentFirst: ; 36abf
+; Returns a=0, z if user went first
+; Returns a=1, nz if opponent went first
push bc
- ld a, [wEnemyGoesFirst]
+ ld a, [wEnemyGoesFirst] ; 0 if player went first
ld b, a
- ld a, [hBattleTurn]
- xor b
+ ld a, [hBattleTurn] ; 0 if it's the player's turn
+ xor b ; 1 if opponent went first
pop bc
ret
; 36ac9
@@ -7099,7 +7118,7 @@
ld a, BATTLE_VARS_STATUS
call GetBattleVar
and SLP
- jr z, .asm_36b65
+ jr z, .awake
call BattleCommand_MoveDelay
call BattleCommand_RaiseSub
@@ -7106,7 +7125,7 @@
call PrintButItFailed
jp EndMoveEffect
-.asm_36b65
+.awake
ld a, BATTLE_VARS_SUBSTATUS3
call GetBattleVarAddr
set SUBSTATUS_CHARGED, [hl]
@@ -7121,18 +7140,18 @@
ld [wcfca], a
inc a
ld [wKickCounter], a
- call PlayPlayerMoveAnim_ClearHiID
+ call LoadMoveAnim
ld a, BATTLE_VARS_MOVE_ANIM
call GetBattleVar
cp FLY
- jr z, .asm_36b96
+ jr z, .flying
cp DIG
- jr z, .asm_36b96
+ jr z, .flying
call BattleCommand_RaiseSub
- jr .asm_36b99
-.asm_36b96
- call Function37ec0
-.asm_36b99
+ jr .not_flying
+.flying
+ call DisappearUser
+.not_flying
ld a, BATTLE_VARS_SUBSTATUS3
call GetBattleVarAddr
ld a, BATTLE_VARS_MOVE_ANIM
@@ -7139,18 +7158,18 @@
call GetBattleVar
ld b, a
cp FLY
- jr z, .asm_36bb0
+ jr z, .set_flying
cp DIG
- jr nz, .asm_36bb2
+ jr nz, .dont_set_digging
set SUBSTATUS_UNDERGROUND, [hl]
- jr .asm_36bb2
+ jr .dont_set_digging
-.asm_36bb0
+.set_flying
set SUBSTATUS_FLYING, [hl]
-.asm_36bb2
- call Function34548
- jr nz, .asm_36bc3
+.dont_set_digging
+ call CheckUserIsCharging
+ jr nz, .mimic
ld a, BATTLE_VARS_LAST_COUNTER_MOVE
call GetBattleVarAddr
ld [hl], b
@@ -7158,7 +7177,7 @@
call GetBattleVarAddr
ld [hl], b
-.asm_36bc3
+.mimic
call ResetDamage
ld hl, .UsedText
@@ -7567,7 +7586,7 @@
call DelayFrames
call AnimateCurrentMove
ld a, $1
- ld [$ffd4], a
+ ld [hBGMapMode], a
ld a, BATTLE_VARS_STATUS_OPP
call GetBattleVarAddr
set PAR, [hl]
@@ -7590,7 +7609,7 @@
; 36e5b
-Function36e5b: ; 36e5b
+CheckMoveTypeMatchesTarget: ; 36e5b
; Compare move type to opponent type.
; Return z if matching the opponent type,
; unless the move is Normal (Tri Attack).
@@ -7694,7 +7713,7 @@
ld [FXAnimIDHi], a
ld [wKickCounter], a
ld a, SUBSTITUTE
- call PlayMoveAnim_KeepHiID
+ call LoadAnim
jr .finish
.mobile
@@ -7705,13 +7724,13 @@
jp RefreshBattleHuds
.already_has_sub
- call Function34548
+ call CheckUserIsCharging
call nz, BattleCommand_RaiseSub
ld hl, HasSubstituteText
jr .jp_stdbattletextbox
.too_weak_to_sub
- call Function34548
+ call CheckUserIsCharging
call nz, BattleCommand_RaiseSub
ld hl, TooWeakSubText
.jp_stdbattletextbox
@@ -7785,38 +7804,38 @@
BattleCommand_Mimic: ; 36f46
; mimic
- call Function372d8
+ call ClearLastMove
call BattleCommand_MoveDelay
ld a, [AttackMissed]
and a
- jr nz, .asm_36f9a
+ jr nz, .fail
ld hl, BattleMonMoves
ld a, [hBattleTurn]
and a
- jr z, .asm_36f5d
+ jr z, .player_turn
ld hl, EnemyMonMoves
-.asm_36f5d
+.player_turn
call CheckHiddenOpponent
- jr nz, .asm_36f9a
+ jr nz, .fail
ld a, BATTLE_VARS_LAST_COUNTER_MOVE_OPP
call GetBattleVar
and a
- jr z, .asm_36f9a
+ jr z, .fail
cp STRUGGLE
- jr z, .asm_36f9a
+ jr z, .fail
ld b, a
ld c, NUM_MOVES
-.asm_36f71
+.check_already_knows_move
ld a, [hli]
cp b
- jr z, .asm_36f9a
+ jr z, .fail
dec c
- jr nz, .asm_36f71
+ jr nz, .check_already_knows_move
dec hl
-.asm_36f79
+.find_mimic
ld a, [hld]
cp MIMIC
- jr nz, .asm_36f79
+ jr nz, .find_mimic
inc hl
ld a, BATTLE_VARS_LAST_COUNTER_MOVE_OPP
call GetBattleVar
@@ -7829,8 +7848,9 @@
call AnimateCurrentMove
ld hl, LearnedMoveText
jp StdBattleTextBox
-.asm_36f9a
- jp Function37357
+
+.fail
+ jp FailMimic
; 36f9d
@@ -7954,7 +7974,7 @@
ld hl, WasDisabledText
jp StdBattleTextBox
.asm_37059
- jp Function37354
+ jp FailDisable
; 3705c
@@ -8202,7 +8222,7 @@
BattleCommand_Transform: ; 371cd
; transform
- call Function372d8
+ call ClearLastMove
ld a, BATTLE_VARS_SUBSTATUS5_OPP
call GetBattleVarAddr
bit SUBSTATUS_TRANSFORMED, [hl]
@@ -8218,12 +8238,12 @@
call GetBattleVarAddr
bit SUBSTATUS_SUBSTITUTE, [hl]
push af
- jr z, .skip_substitute
- call Function34548
- jr nz, .skip_substitute
+ jr z, .mimic_substitute
+ call CheckUserIsCharging
+ jr nz, .mimic_substitute
ld a, SUBSTITUTE
- call PlayMoveAnim_KeepHiID
-.skip_substitute
+ call LoadAnim
+.mimic_substitute
ld a, BATTLE_VARS_SUBSTATUS5
call GetBattleVarAddr
set SUBSTATUS_TRANSFORMED, [hl]
@@ -8249,7 +8269,7 @@
call CopyBytes
ld a, [hBattleTurn]
and a
- jr z, .skip_enemy_backup
+ jr z, .mimic_enemy_backup
ld a, [de]
ld [wEnemyBackupDVs], a
inc de
@@ -8256,7 +8276,7 @@
ld a, [de]
ld [wEnemyBackupDVs + 1], a
dec de
-.skip_enemy_backup
+.mimic_enemy_backup
; copy DVs
ld a, [hli]
ld [de], a
@@ -8312,7 +8332,7 @@
ld bc, 8
call BattleSideCopy
call _CheckBattleScene
- jr c, .skip_anims
+ jr c, .mimic_anims
ld a, [hBattleTurn]
and a
ld a, [wc6fe]
@@ -8320,10 +8340,10 @@
ld a, [wc6fa]
.got_byte
and a
- jr nz, .skip_anims
- call PlayPlayerMoveAnim_ClearHiID
+ jr nz, .mimic_anims
+ call LoadMoveAnim
jr .after_anim
-.skip_anims
+.mimic_anims
call BattleCommand_MoveDelay
call BattleCommand_RaiseSubNoAnim
.after_anim
@@ -8334,7 +8354,7 @@
ld [wKickCounter], a
pop af
ld a, SUBSTITUTE
- call nz, PlayMoveAnim_KeepHiID
+ call nz, LoadAnim
ld hl, TransformedText
jp StdBattleTextBox
; 372c6
@@ -8363,7 +8383,7 @@
; 372d8
-Function372d8: ; 372d8
+ClearLastMove: ; 372d8
ld a, BATTLE_VARS_LAST_COUNTER_MOVE
call GetBattleVarAddr
xor a
@@ -8472,15 +8492,20 @@
; 37354
-Function37354: ; 37354
+FailSnore:
+FailDisable:
+FailConversion2:
+FailAttract:
+FailForesight:
+FailSpikes:
call AnimateFailedMove
; fallthrough
; 37357
-Function37357: ; 37357
+FailMimic: ; 37357
ld hl, ButItFailedText ; 'but it failed!'
ld de, ItFailedText ; 'it failed!'
- jp Function35157
+ jp FailText_CheckOpponentProtect
; 37360
@@ -8495,7 +8520,7 @@
call AnimateFailedMove
ld hl, DidntAffect1Text ; 'it didn't affect'
ld de, DidntAffect2Text ; 'it didn't affect'
- jp Function35157
+ jp FailText_CheckOpponentProtect
; 37372
@@ -8516,9 +8541,9 @@
BattleCommand_SelfDestruct: ; 37380
callba MobileFn_10610d
- ld a, $4
+ ld a, BATTLEANIM_PLAYER_DAMAGE
ld [wcfca], a
- ld c, $3
+ ld c, 3
call DelayFrames
ld a, BATTLE_VARS_STATUS
call GetBattleVarAddr
@@ -8530,7 +8555,7 @@
ld a, $1
ld [wKickCounter], a
call BattleCommand_LowerSub
- call PlayPlayerMoveAnim_ClearHiID
+ call LoadMoveAnim
ld a, BATTLE_VARS_SUBSTATUS4
call GetBattleVarAddr
res SUBSTATUS_LEECH_SEED, [hl]
@@ -9348,16 +9373,18 @@
BattleCommand_BellyDrum: ; 37c1a
; bellydrum
+; This command is buggy because it raises the user's attack
+; before checking that it has enough HP to use the move.
+; Swap the order of these two blocks to fix.
call BattleCommand_AttackUp2
ld a, [AttackMissed]
and a
- jr nz, .asm_37c4f
+ jr nz, .failed
callab GetHalfMaxHP
+ callab CheckUserHasEnoughHP
+ jr nc, .failed
- callab Function3ccde
- jr nc, .asm_37c4f
-
push bc
call AnimateCurrentMove
pop bc
@@ -9365,16 +9392,17 @@
call UpdateUserInParty
ld a, 5
-.asm_37c41
+.max_attack_loop
push af
call BattleCommand_AttackUp2
pop af
dec a
- jr nz, .asm_37c41
+ jr nz, .max_attack_loop
ld hl, BellyDrumText
jp StdBattleTextBox
-.asm_37c4f
+
+.failed
call AnimateFailedMove
jp PrintButItFailed
; 37c55
@@ -9387,40 +9415,45 @@
ld de, PlayerStatLevels
ld a, [hBattleTurn]
and a
- jr z, .asm_37c64 ; 37c5e $4
+ jr z, .pointers_correct ; 37c5e $4
+; It's the enemy's turn, so swap the pointers.
push hl
ld h, d
ld l, e
pop de
-.asm_37c64
+.pointers_correct
push hl
- ld b, $8
-.asm_37c67
+ ld b, NUM_LEVEL_STATS
+; If any of the enemy's stats is modified from its base level,
+; the move succeeds. Otherwise, it fails.
+.loop
ld a, [hli]
- cp $7
- jr nz, .asm_37c76 ; 37c6a $a
+ cp BASE_STAT_LEVEL
+ jr nz, .break ; 37c6a $a
dec b
- jr nz, .asm_37c67 ; 37c6d $f8
+ jr nz, .loop ; 37c6d $f8
pop hl
call AnimateFailedMove
jp PrintButItFailed
-.asm_37c76
+
+.break
pop hl
- ld b, $8
-.asm_37c79
+ ld b, NUM_LEVEL_STATS
+.loop2
ld a, [hli]
ld [de], a
inc de
dec b
- jr nz, .asm_37c79 ; 37c7d $fa
+ jr nz, .loop2 ; 37c7d $fa
ld a, [hBattleTurn]
and a
- jr nz, .asm_37c89 ; 37c82 $5
+ jr nz, .calc_enemy_stats ; 37c82 $5
call CalcPlayerStats
- jr .asm_37c8c ; 37c87 $3
-.asm_37c89
+ jr .merge ; 37c87 $3
+
+.calc_enemy_stats
call CalcEnemyStats
-.asm_37c8c
+.merge
call AnimateCurrentMove
ld hl, CopiedStatsText
jp StdBattleTextBox
@@ -9449,7 +9482,7 @@
and a
ret z
- call Function36abf
+ call CheckOpponentWentFirst
ret z
ld a, BATTLE_VARS_LAST_COUNTER_MOVE_OPP
@@ -9514,7 +9547,7 @@
BattleCommand_SkipSunCharge: ; 37d02
-; skipsuncharge
+; mimicsuncharge
ld a, [Weather]
cp WEATHER_SUN
ret nz
@@ -9554,7 +9587,7 @@
BattleCommand_FutureSight: ; 37d34
; futuresight
- call Function34548
+ call CheckUserIsCharging
jr nz, .asm_37d4b ; 37d37 $12
ld a, BATTLE_VARS_MOVE_ANIM
call GetBattleVar
@@ -9691,7 +9724,7 @@
call BattleCommand_LowerSub
pop af
ld [wKickCounter], a
- call PlayMoveAnim_ClearHiID
+ call PlayDamageAnim
call BattleCommand_RaiseSub
pop bc
pop de
@@ -9709,7 +9742,7 @@
call BattleCommand_LowerSub
pop af
ld [wKickCounter], a
- call PlayPlayerMoveAnim_ClearHiID
+ call LoadMoveAnim
call BattleCommand_RaiseSub
pop bc
pop de
@@ -9718,7 +9751,7 @@
; 37e19
-PlayMoveAnim_ClearHiID: ; 37e19
+PlayDamageAnim: ; 37e19
xor a
ld [FXAnimIDHi], a
@@ -9731,9 +9764,9 @@
ld a, [hBattleTurn]
and a
- ld a, 1
+ ld a, BATTLEANIM_ENEMY_DAMAGE
jr z, .player
- ld a, 4
+ ld a, BATTLEANIM_PLAYER_DAMAGE
.player
ld [wcfca], a
@@ -9742,7 +9775,7 @@
; 37e36
-PlayPlayerMoveAnim_ClearHiID: ; 37e36
+LoadMoveAnim: ; 37e36
xor a
ld [wcfca], a
ld [FXAnimIDHi], a
@@ -9756,7 +9789,7 @@
; 37e44
-PlayMoveAnim_KeepHiID: ; 37e44
+LoadAnim: ; 37e44
ld [FXAnimIDLo], a
@@ -9838,10 +9871,10 @@
ld h, a
ld a, [BattleScriptBufferLoc]
ld l, a
-.asm_37e94
+.loop
ld a, [hli]
cp b
- jr nz, .asm_37e94
+ jr nz, .loop
ld a, h
ld [BattleScriptBufferLoc + 1], a
@@ -9878,20 +9911,20 @@
; 37ec0
-Function37ec0: ; 37ec0
- callba Functionfbd54
+DisappearUser: ; 37ec0
+ callba _DisappearUser
ret
; 37ec7
-Function37ec7: ; 37ec7
- callba Functionfbd71
+AppearUserLowerSub: ; 37ec7
+ callba _AppearUserLowerSub
ret
; 37ece
-Function37ece: ; 37ece
- callba Functionfbd69
+AppearUserRaiseSub: ; 37ece
+ callba _AppearUserRaiseSub
ret
; 37ed5
--- a/battle/effects/attract.asm
+++ b/battle/effects/attract.asm
@@ -20,7 +20,7 @@
jp StdBattleTextBox
.failed
- jp Function37354
+ jp FailAttract
; 377f5
--- a/battle/effects/foresight.asm
+++ b/battle/effects/foresight.asm
@@ -19,5 +19,5 @@
jp StdBattleTextBox
.failed
- jp Function37354
+ jp FailForesight
; 376c2
--- a/battle/effects/metronome.asm
+++ b/battle/effects/metronome.asm
@@ -1,8 +1,8 @@
BattleCommand_Metronome: ; 37418
; metronome
- call Function372d8
- call Function34548
+ call ClearLastMove
+ call CheckUserIsCharging
jr nz, .asm_3742b
ld a, [wKickCounter]
@@ -12,7 +12,7 @@
ld [wKickCounter], a
.asm_3742b
- call PlayPlayerMoveAnim_ClearHiID
+ call LoadMoveAnim
.GetMove
call BattleRandom
--- a/battle/effects/mirror_move.asm
+++ b/battle/effects/mirror_move.asm
@@ -1,7 +1,7 @@
BattleCommand_MirrorMove: ; 373c9
; mirrormove
- call Function372d8
+ call ClearLastMove
ld a, BATTLE_VARS_MOVE
call GetBattleVarAddr
@@ -37,7 +37,7 @@
call GetMoveData
call GetMoveName
call CopyName1
- call Function34548
+ call CheckUserIsCharging
jr nz, .done
ld a, [wKickCounter]
--- a/battle/effects/protect.asm
+++ b/battle/effects/protect.asm
@@ -23,7 +23,7 @@
ld de, EnemyProtectCount
.asm_37637
- call Function36abf
+ call CheckOpponentWentFirst
jr nz, .failed
; Can't have a substitute.
--- a/battle/effects/spikes.asm
+++ b/battle/effects/spikes.asm
@@ -23,5 +23,5 @@
jp StdBattleTextBox
.failed
- jp Function37354
+ jp FailSpikes
; 376a0
--- a/battle/misc.asm
+++ b/battle/misc.asm
@@ -1,50 +1,50 @@
-Functionfbd54: ; fbd54
+_DisappearUser: ; fbd54
xor a
ld [hBGMapMode], a ; $ff00+$d4
ld a, [hBattleTurn] ; $ff00+$e4
and a
- jr z, .asm_fbd61
- call Functionfbd96
- jr .asm_fbd64
-.asm_fbd61
- call Functionfbd9d
-.asm_fbd64
+ jr z, .player
+ call GetEnemyFrontpicCoords
+ jr .okay
+.player
+ call GetPlayerBackpicCoords
+.okay
call ClearBox
- jr Functionfbd91
+ jr FinishAppearDisappearUser
-Functionfbd69: ; fbd69 (3e:7d69)
+_AppearUserRaiseSub: ; fbd69 (3e:7d69)
callba BattleCommand_RaiseSubNoAnim
- jr Functionfbd77
+ jr AppearUser
-Functionfbd71: ; fbd71 (3e:7d71)
+_AppearUserLowerSub: ; fbd71 (3e:7d71)
callba BattleCommand_LowerSubNoAnim
-Functionfbd77: ; fbd77 (3e:7d77)
+AppearUser: ; fbd77 (3e:7d77)
xor a
ld [hBGMapMode], a ; $ff00+$d4
ld a, [hBattleTurn] ; $ff00+$e4
and a
- jr z, .asm_fbd85
- call Functionfbd96
+ jr z, .player
+ call GetEnemyFrontpicCoords
xor a
- jr .asm_fbd8a
-.asm_fbd85
- call Functionfbd9d
+ jr .okay
+.player
+ call GetPlayerBackpicCoords
ld a, $31
-.asm_fbd8a
- ld [$ffad], a
+.okay
+ ld [hFillBox], a
predef FillBox
-Functionfbd91: ; fbd91 (3e:7d91)
+FinishAppearDisappearUser: ; fbd91 (3e:7d91)
ld a, $1
ld [hBGMapMode], a ; $ff00+$d4
ret
-Functionfbd96: ; fbd96 (3e:7d96)
+GetEnemyFrontpicCoords: ; fbd96 (3e:7d96)
hlcoord 12, 0
lb bc, 7, 7
ret
-Functionfbd9d: ; fbd9d (3e:7d9d)
+GetPlayerBackpicCoords: ; fbd9d (3e:7d9d)
hlcoord 2, 6
lb bc, 6, 6
ret
@@ -62,7 +62,7 @@
ld a, [de]
inc de
cp $ff
- jr z, .asm_fbdc0
+ jr z, .done_weather_types
cp b
jr nz, .NextWeatherType
@@ -78,7 +78,7 @@
jr .CheckWeatherType
-.asm_fbdc0
+.done_weather_types
ld de, .WeatherMoveModifiers
ld a, BATTLE_VARS_MOVE_EFFECT
@@ -217,10 +217,10 @@
ld a, e
or d
- jr nz, .asm_fbe6f
+ jr nz, .done_min
ld e, 1
-.asm_fbe6f
+.done_min
add hl, de
jr nc, .Update
--- a/battle/moves/move_effects.asm
+++ b/battle/moves/move_effects.asm
@@ -44,7 +44,7 @@
damagevariation
checkhit
hittarget
- resulttext
+ failuretext
checkfaint
criticaltext
supereffectivetext
@@ -83,7 +83,7 @@
checkhit
effectchance
hittarget
- resulttext
+ failuretext
checkfaint
criticaltext
supereffectivetext
@@ -107,7 +107,7 @@
damagevariation
checkhit
hittarget
- resulttext
+ failuretext
checkfaint
criticaltext
supereffectivetext
@@ -133,7 +133,7 @@
checkhit
effectchance
hittarget
- resulttext
+ failuretext
checkfaint
criticaltext
supereffectivetext
@@ -158,7 +158,7 @@
checkhit
effectchance
hittarget
- resulttext
+ failuretext
checkfaint
criticaltext
supereffectivetext
@@ -187,7 +187,7 @@
checkhit
effectchance
hittarget
- resulttext
+ failuretext
checkfaint
criticaltext
supereffectivetext
@@ -209,7 +209,7 @@
checkhit
selfdestruct
hittargetnosub
- resulttext
+ failuretext
checkfaint
criticaltext
supereffectivetext
@@ -229,7 +229,7 @@
damagevariation
checkhit
hittarget
- resulttext
+ failuretext
checkfaint
criticaltext
supereffectivetext
@@ -634,7 +634,7 @@
checkhit
effectchance
hittarget
- resulttext
+ failuretext
checkfaint
criticaltext
supereffectivetext
@@ -659,7 +659,7 @@
checkhit
effectchance
hittarget
- resulttext
+ failuretext
checkfaint
criticaltext
supereffectivetext
@@ -686,7 +686,7 @@
checkhit
effectchance
hittarget
- resulttext
+ failuretext
checkfaint
criticaltext
supereffectivetext
@@ -708,7 +708,7 @@
checkhit
effectchance
hittarget
- resulttext
+ failuretext
checkfaint
criticaltext
supereffectivetext
@@ -733,7 +733,7 @@
checkhit
effectchance
hittarget
- resulttext
+ failuretext
checkfaint
criticaltext
supereffectivetext
@@ -757,7 +757,7 @@
checkhit
effectchance
hittarget
- resulttext
+ failuretext
checkfaint
criticaltext
supereffectivetext
@@ -779,7 +779,7 @@
checkhit
effectchance
hittarget
- resulttext
+ failuretext
checkfaint
criticaltext
supereffectivetext
@@ -802,7 +802,7 @@
checkhit
effectchance
hittarget
- resulttext
+ failuretext
checkfaint
criticaltext
supereffectivetext
@@ -825,7 +825,7 @@
checkhit
effectchance
hittarget
- resulttext
+ failuretext
checkfaint
criticaltext
supereffectivetext
@@ -848,7 +848,7 @@
checkhit
effectchance
hittarget
- resulttext
+ failuretext
checkfaint
criticaltext
supereffectivetext
@@ -868,7 +868,7 @@
damagevariation
checkhit
hittarget
- resulttext
+ failuretext
checkfaint
criticaltext
supereffectivetext
@@ -925,7 +925,7 @@
damagevariation
clearmissdamage
hittarget
- resulttext
+ failuretext
checkfaint
criticaltext
supereffectivetext
@@ -967,7 +967,7 @@
damagevariation
clearmissdamage
hittargetnosub
- resulttext
+ failuretext
checkfaint
criticaltext
cleartext
@@ -995,7 +995,7 @@
damagevariation
clearmissdamage
hittargetnosub
- resulttext
+ failuretext
checkfaint
criticaltext
cleartext
@@ -1027,7 +1027,7 @@
checkhit
effectchance
hittarget
- resulttext
+ failuretext
checkfaint
criticaltext
supereffectivetext
@@ -1046,7 +1046,7 @@
stab
ohko
hittarget
- resulttext
+ failuretext
checkfaint
criticaltext
supereffectivetext
@@ -1069,7 +1069,7 @@
damagevariation
checkhit
hittarget
- resulttext
+ failuretext
checkfaint
criticaltext
supereffectivetext
@@ -1122,7 +1122,7 @@
checkhit
effectchance
hittarget
- resulttext
+ failuretext
checkfaint
criticaltext
supereffectivetext
@@ -1169,7 +1169,7 @@
damagevariation
checkhit
hittarget
- resulttext
+ failuretext
checkfaint
criticaltext
supereffectivetext
@@ -1218,7 +1218,7 @@
checkhit
effectchance
hittarget
- resulttext
+ failuretext
checkfaint
criticaltext
supereffectivetext
@@ -1246,7 +1246,7 @@
damagevariation
checkhit
hittarget
- resulttext
+ failuretext
checkfaint
criticaltext
supereffectivetext
@@ -1267,7 +1267,7 @@
ragedamage
damagevariation
hittarget
- resulttext
+ failuretext
rage
checkfaint
criticaltext
@@ -1328,7 +1328,7 @@
damagevariation
checkhit
hittarget
- resulttext
+ failuretext
checkfaint
criticaltext
supereffectivetext
@@ -1352,7 +1352,7 @@
checkhit
hittargetnosub
raisesub
- resulttext
+ failuretext
checkfaint
criticaltext
supereffectivetext
@@ -1377,7 +1377,7 @@
damagevariation
clearmissdamage
hittarget
- resulttext
+ failuretext
checkfaint
criticaltext
supereffectivetext
@@ -1400,7 +1400,7 @@
checkhit
resettypematchup
hittarget
- resulttext
+ failuretext
checkfaint
checkdestinybond
buildopponentrage
@@ -1416,7 +1416,7 @@
stab
checkhit
hittarget
- resulttext
+ failuretext
checkfaint
supereffectivetext
checkdestinybond
@@ -1430,7 +1430,7 @@
doturn
counter
hittarget
- resulttext
+ failuretext
checkfaint
checkdestinybond
buildopponentrage
@@ -1466,7 +1466,7 @@
effectchance
snore
hittarget
- resulttext
+ failuretext
checkfaint
criticaltext
supereffectivetext
@@ -1541,7 +1541,7 @@
falseswipe
checkhit
hittarget
- resulttext
+ failuretext
checkfaint
criticaltext
supereffectivetext
@@ -1572,7 +1572,7 @@
damagevariation
clearmissdamage
hittargetnosub
- resulttext
+ failuretext
checkfaint
criticaltext
cleartext
@@ -1597,7 +1597,7 @@
checkhit
effectchance
hittarget
- resulttext
+ failuretext
checkfaint
criticaltext
supereffectivetext
@@ -1634,7 +1634,7 @@
checkhit
effectchance
hittarget
- resulttext
+ failuretext
checkfaint
criticaltext
supereffectivetext
@@ -1708,7 +1708,7 @@
rolloutpower
damagevariation
hittarget
- resulttext
+ failuretext
checkfaint
criticaltext
supereffectivetext
@@ -1728,7 +1728,7 @@
lowersub
statupanim
raisesub
- resulttext
+ failuretext
switchturn
statupmessage
switchturn
@@ -1747,7 +1747,7 @@
furycutter
damagevariation
hittarget
- resulttext
+ failuretext
checkfaint
criticaltext
supereffectivetext
@@ -1776,7 +1776,7 @@
damagevariation
checkhit
hittarget
- resulttext
+ failuretext
checkfaint
criticaltext
supereffectivetext
@@ -1797,7 +1797,7 @@
stab
damagevariation
clearmissdamage
- resulttext
+ failuretext
checkfaint
criticaltext
supereffectivetext
@@ -1818,7 +1818,7 @@
damagevariation
checkhit
hittarget
- resulttext
+ failuretext
checkfaint
criticaltext
supereffectivetext
@@ -1846,7 +1846,7 @@
checkhit
effectchance
hittarget
- resulttext
+ failuretext
checkfaint
criticaltext
supereffectivetext
@@ -1869,7 +1869,7 @@
checkhit
doubleundergrounddamage
hittarget
- resulttext
+ failuretext
checkfaint
criticaltext
supereffectivetext
@@ -1897,7 +1897,7 @@
pursuit
checkhit
hittarget
- resulttext
+ failuretext
checkfaint
criticaltext
supereffectivetext
@@ -1917,7 +1917,7 @@
damagevariation
checkhit
hittarget
- resulttext
+ failuretext
checkfaint
criticaltext
supereffectivetext
@@ -1959,7 +1959,7 @@
damagevariation
checkhit
hittarget
- resulttext
+ failuretext
checkfaint
criticaltext
supereffectivetext
@@ -1989,7 +1989,7 @@
checkhit
fakeout
hittarget
- resulttext
+ failuretext
endmove
BellyDrum:
@@ -2012,7 +2012,7 @@
doturn
mirrorcoat
hittarget
- resulttext
+ failuretext
checkfaint
checkdestinybond
buildopponentrage
@@ -2032,7 +2032,7 @@
damagevariation
checkhit
hittarget
- resulttext
+ failuretext
checkfaint
criticaltext
supereffectivetext
@@ -2057,7 +2057,7 @@
checkhit
effectchance
hittarget
- resulttext
+ failuretext
checkfaint
criticaltext
supereffectivetext
@@ -2079,7 +2079,7 @@
checkhit
effectchance
hittarget
- resulttext
+ failuretext
checkfaint
criticaltext
supereffectivetext
@@ -2098,7 +2098,7 @@
damagevariation
checkhit
hittargetnosub
- resulttext
+ failuretext
checkfaint
checkdestinybond
buildopponentrage
@@ -2116,7 +2116,7 @@
doubleflyingdamage
checkhit
hittarget
- resulttext
+ failuretext
checkfaint
criticaltext
supereffectivetext
@@ -2137,7 +2137,7 @@
checkhit
effectchance
hittarget
- resulttext
+ failuretext
checkfaint
criticaltext
supereffectivetext
@@ -2160,7 +2160,7 @@
damagevariation
checkhit
hittarget
- resulttext
+ failuretext
checkfaint
criticaltext
supereffectivetext
@@ -2182,7 +2182,7 @@
stab
damagevariation
hittarget
- resulttext
+ failuretext
checkfaint
criticaltext
supereffectivetext
@@ -2212,7 +2212,7 @@
damagevariation
clearmissdamage
hittargetnosub
- resulttext
+ failuretext
checkfaint
criticaltext
cleartext
--- a/constants/animation_constants.asm
+++ b/constants/animation_constants.asm
@@ -1,26 +1,3 @@
-ANIM_SWEET_SCENT_2 EQU 255 ; unused?
-ANIM_THROW_POKE_BALL EQU 256
-ANIM_SEND_OUT_MON EQU 257 ; seems to also cover shiny
-ANIM_RETURN_MON EQU 258
-ANIM_CONFUSED EQU 259
-ANIM_SLP EQU 260
-ANIM_BRN EQU 261
-ANIM_PSN EQU 262
-ANIM_SAP EQU 263
-ANIM_FRZ EQU 264
-ANIM_PAR EQU 265
-ANIM_IN_LOVE EQU 266
-ANIM_IN_SANDSTORM EQU 267
-ANIM_IN_NIGHTMARE EQU 268
-ANIM_IN_WHIRLPOOL EQU 269
-ANIM_MISS EQU 270
-ANIM_ENEMY_DAMAGE EQU 271
-ANIM_ENEMY_STAT_DOWN EQU 272 ; vibrate horizontally
-ANIM_PLAYER_STAT_DOWN EQU 273 ; wobble horizontally
-ANIM_PLAYER_DAMAGE EQU 274
-ANIM_WOBBLE EQU 275
-ANIM_SHAKE EQU 276
-ANIM_HIT_CONFUSION EQU 277
ANIM_OBJ_BURNED EQU $10
ANIM_OBJ_FROZEN EQU $2a
@@ -71,3 +48,53 @@
const ANIM_MON_UNUSED ; 6
const ANIM_MON_EGG1 ; 7
const ANIM_MON_EGG2 ; 8
+
+const_value SET $d0
+ const BATTLEANIM_D0
+ const BATTLEANIM_D1
+ const BATTLEANIM_D2
+ const BATTLEANIM_D3
+ const BATTLEANIM_D4
+ const BATTLEANIM_D5
+ const BATTLEANIM_D6
+ const BATTLEANIM_D7
+ const BATTLEANIM_D8
+ const BATTLEANIM_D9
+ const BATTLEANIM_DA
+ const BATTLEANIM_DB
+ const BATTLEANIM_DC
+ const BATTLEANIM_DD
+ const BATTLEANIM_DE
+ const BATTLEANIM_DF
+ const BATTLEANIM_E0
+ const BATTLEANIM_E1
+ const BATTLEANIM_E2
+ const BATTLEANIM_E3
+ const BATTLEANIM_E4
+ const BATTLEANIM_E5
+ const BATTLEANIM_E6
+ const BATTLEANIM_E7
+ const BATTLEANIM_E8
+ const BATTLEANIM_E9
+ const BATTLEANIM_EA
+ const BATTLEANIM_EB
+ const BATTLEANIM_EC
+ const BATTLEANIM_ED
+ const BATTLEANIM_EE
+ const BATTLEANIM_EF
+ const BATTLEANIM_F0
+ const BATTLEANIM_F1
+ const BATTLEANIM_F2
+ const BATTLEANIM_F3
+ const BATTLEANIM_F4
+ const BATTLEANIM_F5
+ const BATTLEANIM_F6
+ const BATTLEANIM_F7
+ const BATTLEANIM_F8
+ const BATTLEANIM_F9
+ const BATTLEANIM_FA
+ const BATTLEANIM_FB
+ const BATTLEANIM_FC
+ const BATTLEANIM_FD
+ const BATTLEANIM_FE
+ const BATTLEANIM_FF
--- a/constants/move_constants.asm
+++ b/constants/move_constants.asm
@@ -256,3 +256,44 @@
const_value SET const_value + -1
const NUM_ATTACKS ; $fb
+
+; Battle animations use the same constants
+; as the moves up to this point.
+ const ANIM_FC ; $fc
+ const ANIM_FD ; $fd
+ const ANIM_FE ; $fe
+ const ANIM_SWEET_SCENT_2 ; $ff
+ const ANIM_THROW_POKE_BALL ; $100
+ const ANIM_SEND_OUT_MON ; $101
+ const ANIM_RETURN_MON ; $102
+ const ANIM_CONFUSED ; $103
+ const ANIM_SLP ; $104
+ const ANIM_BRN ; $105
+ const ANIM_PSN ; $106
+ const ANIM_SAP ; $107
+ const ANIM_FRZ ; $108
+ const ANIM_PAR ; $109
+ const ANIM_IN_LOVE ; $10a
+ const ANIM_IN_SANDSTORM ; $10b
+ const ANIM_IN_NIGHTMARE ; $10c
+ const ANIM_IN_WHIRLPOOL ; $10d
+; battle anims
+ const ANIM_MISS ; $10e
+ const ANIM_ENEMY_DAMAGE ; $10f
+ const ANIM_ENEMY_STAT_DOWN ; $110
+ const ANIM_PLAYER_STAT_DOWN ; $111
+ const ANIM_PLAYER_DAMAGE ; $112
+ const ANIM_WOBBLE ; $113
+ const ANIM_SHAKE ; $114
+ const ANIM_HIT_CONFUSION ; $115
+
+; wcfca 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
\ No newline at end of file
--- a/engine/credits.asm
+++ b/engine/credits.asm
@@ -366,7 +366,7 @@
; First, let's clear the current text display,
; starting from line 5.
xor a
- ld [$ffd4], a
+ ld [hBGMapMode], a
hlcoord 0, 5
ld bc, 20 * 12
ld a, " "
@@ -479,9 +479,9 @@
ld [CreditsTimer], a
xor a
- ld [$ffd5], a
+ ld [hBGMapThird], a
ld a, 1
- ld [$ffd4], a
+ ld [hBGMapMode], a
.done
jp Function109951
--- a/engine/scripting.asm
+++ b/engine/scripting.asm
@@ -440,14 +440,14 @@
Script_keeptextopen: ; 0x96edc
; script command 0x55
- ld a, [$ffd8]
+ ld a, [hOAMUpdate]
push af
ld a, $1
- ld [$ffd8], a
+ ld [hOAMUpdate], a
call WaitBGMap
call KeepTextOpen
pop af
- ld [$ffd8], a
+ ld [hOAMUpdate], a
ret
; 0x96eed
--- a/home.asm
+++ b/home.asm
@@ -1724,7 +1724,7 @@
predef GetFrontpic
pop hl
xor a
- ld [$ffad], a
+ ld [hFillBox], a
lb bc, 7, 7
predef FillBox
xor a
@@ -1990,57 +1990,6 @@
INCLUDE "home/battle.asm"
-
-
-Function3ae1:: ; 3ae1
-
-GLOBAL BattleAnimations
-GLOBAL BattleAnimCommands
-
- ld a, BANK(BattleAnimations)
- rst Bankswitch
-
- ld a, [hli]
- ld [BattleAnimAddress], a
- ld a, [hl]
- ld [BattleAnimAddress + 1], a
-
- ld a, BANK(BattleAnimCommands)
- rst Bankswitch
-
- ret
-; 3af0
-
-GetBattleAnimByte:: ; 3af0
-
- push hl
- push de
-
- ld hl, BattleAnimAddress
- ld e, [hl]
- inc hl
- ld d, [hl]
-
- ld a, BANK(BattleAnimations)
- rst Bankswitch
-
- ld a, [de]
- ld [BattleAnimByte], a
- inc de
-
- ld a, BANK(BattleAnimCommands)
- rst Bankswitch
-
- ld [hl], d
- dec hl
- ld [hl], e
-
- pop de
- pop hl
-
- ld a, [BattleAnimByte]
- ret
-; 3b0c
Function3b0c:: ; 3b0c
--- a/home/battle.asm
+++ b/home/battle.asm
@@ -309,3 +309,53 @@
rst Bankswitch
ret
; 3ae1
+
+GetBattleAnimPointer:: ; 3ae1
+
+GLOBAL BattleAnimations
+GLOBAL BattleAnimCommands
+
+ ld a, BANK(BattleAnimations)
+ rst Bankswitch
+
+ ld a, [hli]
+ ld [BattleAnimAddress], a
+ ld a, [hl]
+ ld [BattleAnimAddress + 1], a
+
+ ld a, BANK(BattleAnimCommands)
+ rst Bankswitch
+
+ ret
+; 3af0
+
+GetBattleAnimByte:: ; 3af0
+
+ push hl
+ push de
+
+ ld hl, BattleAnimAddress
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+
+ ld a, BANK(BattleAnimations)
+ rst Bankswitch
+
+ ld a, [de]
+ ld [BattleAnimByte], a
+ inc de
+
+ ld a, BANK(BattleAnimCommands)
+ rst Bankswitch
+
+ ld [hl], d
+ dec hl
+ ld [hl], e
+
+ pop de
+ pop hl
+
+ ld a, [BattleAnimByte]
+ ret
+; 3b0c
--- a/home/map.asm
+++ b/home/map.asm
@@ -124,9 +124,10 @@
; 2198
LoadMetatiles:: ; 2198
+; de <- wd194
ld a, [wd194]
ld e, a
- ld a, [wd195]
+ ld a, [wd194 + 1]
ld d, a
ld hl, wMisc
ld b, 5 ; SCREEN_WIDTH / 4
@@ -163,20 +164,21 @@
ld h, a
rept 3
+; copy 4 bytes from hl to de
rept 4
ld a, [hli]
ld [de], a
inc de
endr
-
+; next row
ld a, e
- add 5 * 4
+ add SCREEN_WIDTH
ld e, a
jr nc, .next\@
inc d
.next\@
endr
-
+; copy 4 more bytes from hl to de
rept 4
ld a, [hli]
ld [de], a
--- a/home/palettes.asm
+++ b/home/palettes.asm
@@ -79,7 +79,7 @@
ld [rBGP], a
push af
-; Don't need to be here if CGB
+; Don't need to be here if DMG
ld a, [hCGB]
and a
jr z, .end
--- a/hram.asm
+++ b/hram.asm
@@ -32,6 +32,8 @@
hJoyLast EQU $ffa9
hInMenu EQU $ffaa
+hFillBox EQU $ffad
+
hMapObjectIndexBuffer EQU $ffaf
hObjectStructIndexBuffer EQU $ffb0
--- a/items/item_effects.asm
+++ b/items/item_effects.asm
@@ -225,7 +225,7 @@
.room_in_party
xor a
- ld [wCaughtMon], a
+ ld [wWildMon], a
ld a, [CurItem]
cp PARK_BALL
call nz, Functionedfa
@@ -394,7 +394,7 @@
ld a, [EnemyMonSpecies]
.fail_to_catch
- ld [wCaughtMon], a
+ ld [wWildMon], a
ld c, 20
call DelayFrames
@@ -416,7 +416,7 @@
ld [wcfca], a
predef PlayBattleAnim
- ld a, [wCaughtMon]
+ ld a, [wWildMon]
and a
jr nz, .caught
ld a, [Buffer2]
@@ -493,12 +493,12 @@
ld hl, EnemySubStatus5
bit SUBSTATUS_TRANSFORMED, [hl]
jr nz, .Transformed
- ld hl, wCaughtMonMoves
+ ld hl, wWildMonMoves
ld de, EnemyMonMoves
ld bc, NUM_MOVES
call CopyBytes
- ld hl, wCaughtMonPP
+ ld hl, wWildMonPP
ld de, EnemyMonPP
ld bc, NUM_MOVES
call CopyBytes
@@ -505,7 +505,7 @@
.Transformed
ld a, [EnemyMonSpecies]
- ld [wCaughtMon], a
+ ld [wWildMon], a
ld [CurPartySpecies], a
ld [wd265], a
ld a, [BattleType]
@@ -710,7 +710,7 @@
cp BATTLETYPE_CONTEST
jr z, .used_park_ball
- ld a, [wCaughtMon]
+ ld a, [wWildMon]
and a
jr z, .toss
--- a/macros/move_effect.asm
+++ b/macros/move_effect.asm
@@ -17,7 +17,7 @@
command lowersub
command hittargetnosub
command raisesub
- command resulttext
+ command failuretext
command checkfaint
command criticaltext
command supereffectivetext
--- a/main.asm
+++ b/main.asm
@@ -1001,7 +1001,7 @@
ld de, VTiles2
callba GetTrainerPic
xor a
- ld [$ffad], a
+ ld [hFillBox], a
hlcoord 6, 4
lb bc, 7, 7
predef FillBox
@@ -1013,7 +1013,7 @@
ld c, $31
predef DecompressPredef
xor a
- ld [$ffad], a
+ ld [hFillBox], a
hlcoord 6, 4
lb bc, 7, 7
predef FillBox
@@ -7487,11 +7487,11 @@
cp $2
jr nz, .asm_d61c
ld [hl], $0
- call Functiond61d
+ call .Incrementwd194
.asm_d61c
ret
-Functiond61d: ; d61d (3:561d)
+.Incrementwd194: ; d61d (3:561d)
ld hl, wd194
ld a, [hl]
add $1
@@ -7757,14 +7757,14 @@
and a
ret z
cp $1
- jr z, .asm_d792
+ jr z, .load_15
ld de, $16
- jr .asm_d795
+ jr .loaded_de
-.asm_d792
+.load_15
ld de, $15
-.asm_d795
+.loaded_de
push hl
add hl, de
ld a, " "
@@ -7799,32 +7799,32 @@
Functiond7c9: ; d7c9
ld a, [hCGB]
and a
- jr nz, .asm_d7d5
+ jr nz, .cgb
call DelayFrame
call DelayFrame
ret
-.asm_d7d5
+.cgb
ld a, [wd10a]
and a
- jr z, .asm_d829
+ jr z, .load_0
cp $1
- jr z, .asm_d82d
+ jr z, .load_1
ld a, [CurPartyMon]
cp $3
- jr nc, .asm_d7ea
+ jr nc, .c_is_1
ld c, $0
- jr .asm_d7ec
+ jr .c_is_0
-.asm_d7ea
+.c_is_1
ld c, $1
-.asm_d7ec
+.c_is_0
push af
cp $2
- jr z, .asm_d7ff
+ jr z, .skip_delay
cp $5
- jr z, .asm_d7ff
+ jr z, .skip_delay
ld a, $2
ld [hBGMapMode], a
ld a, c
@@ -7831,7 +7831,7 @@
ld [hBGMapThird], a
call DelayFrame
-.asm_d7ff
+.skip_delay
ld a, $1
ld [hBGMapMode], a
ld a, c
@@ -7839,12 +7839,12 @@
call DelayFrame
pop af
cp $2
- jr z, .asm_d813
+ jr z, .two_frames
cp $5
- jr z, .asm_d813
+ jr z, .two_frames
ret
-.asm_d813
+.two_frames
inc c
ld a, $2
ld [hBGMapMode], a
@@ -7858,14 +7858,14 @@
call DelayFrame
ret
-.asm_d829
+.load_0
ld c, $0
- jr .asm_d82f
+ jr .finish
-.asm_d82d
+.load_1
ld c, $1
-.asm_d82f
+.finish
call DelayFrame
ld a, c
ld [hBGMapThird], a
@@ -7880,12 +7880,12 @@
ld hl, 0
ld a, [wd1f1]
cp $30
- jr nc, .asm_d885
+ jr nc, .coppy_buffer
and a
- jr z, .asm_d880
+ jr z, .return_zero
call AddNTimes
ld b, $0
-.asm_d851
+.loop
ld a, l
sub $30
ld l, a
@@ -7892,11 +7892,11 @@
ld a, h
sbc $0
ld h, a
- jr c, .asm_d85e
+ jr c, .done
inc b
- jr .asm_d851
+ jr .loop
-.asm_d85e
+.done
push bc
ld bc, $80
add hl, bc
@@ -7907,28 +7907,28 @@
ld a, h
sbc $0
ld h, a
- jr c, .asm_d86f
+ jr c, .no_carry
inc b
-.asm_d86f
+.no_carry
ld a, [wd1f5]
cp b
- jr nc, .asm_d87c
+ jr nc, .finish
ld a, [wd1f6]
cp b
- jr c, .asm_d87c
+ jr c, .finish
ld a, b
-.asm_d87c
+.finish
ld [wd1ec], a
ret
-.asm_d880
+.return_zero
xor a
ld [wd1ec], a
ret
-.asm_d885
+.coppy_buffer
ld a, [Buffer1]
ld [wd1ec], a
ret
@@ -8262,10 +8262,10 @@
FillPP: ; da6d
push bc
ld b, NUM_MOVES
-.asm_da70
+.loop
ld a, [hli]
and a
- jr z, .asm_da8f
+ jr z, .next
dec a
push hl
push de
@@ -8281,11 +8281,11 @@
pop hl
ld a, [StringBuffer1 + MOVE_PP]
-.asm_da8f
+.next
ld [de], a
inc de
dec b
- jr nz, .asm_da70
+ jr nz, .loop
pop bc
ret
; da96
@@ -8396,13 +8396,13 @@
ld a, [hl]
cp MONS_PER_BOX
jr nz, .there_is_room
- jp CloseSRAM_And_SetCFlag
+ jp CloseSRAM_And_SetCarryFlag
.check_IfPartyIsFull
ld hl, PartyCount
ld a, [hl]
cp PARTY_LENGTH
- jp z, CloseSRAM_And_SetCFlag
+ jp z, CloseSRAM_And_SetCarryFlag
.there_is_room
inc a
@@ -8529,7 +8529,7 @@
cp PC_DEPOSIT
jr z, .took_out_of_box
cp DAYCARE_DEPOSIT
- jp z, .CloseSRAM_And_ClearCFlag
+ jp z, .CloseSRAM_And_ClearCarryFlag
push hl
srl a
@@ -8560,7 +8560,7 @@
ld a, [wPokemonWithdrawDepositParameter]
and a
- jr nz, .CloseSRAM_And_ClearCFlag
+ jr nz, .CloseSRAM_And_ClearCarryFlag
ld hl, MON_STATUS
add hl, bc
xor a
@@ -8580,7 +8580,7 @@
ld a, [hl]
inc de
ld [de], a
- jr .CloseSRAM_And_ClearCFlag
+ jr .CloseSRAM_And_ClearCarryFlag
.egg
xor a
@@ -8587,7 +8587,7 @@
ld [de], a
inc de
ld [de], a
- jr .CloseSRAM_And_ClearCFlag
+ jr .CloseSRAM_And_ClearCarryFlag
.took_out_of_box
ld a, [sBoxCount]
@@ -8595,13 +8595,13 @@
ld b, a
call Functiondcb6
-.CloseSRAM_And_ClearCFlag
+.CloseSRAM_And_ClearCarryFlag
call CloseSRAM
and a
ret
; dcb1
-CloseSRAM_And_SetCFlag: ; dcb1
+CloseSRAM_And_SetCarryFlag: ; dcb1
call CloseSRAM
scf
ret
@@ -19131,7 +19131,7 @@
call Function16cff
hlcoord 1, 6
xor a
- ld [$ffad], a
+ ld [hFillBox], a
lb bc, 7, 7
predef FillBox
ld de, VTiles2 tile $31
@@ -19213,7 +19213,7 @@
call ByteFill
hlcoord 7, 11
ld a, $31
- ld [$ffad], a
+ ld [hFillBox], a
lb bc, 7, 7
predef FillBox
ret
@@ -19950,7 +19950,7 @@
ld a, b
ld [hBGMapAddress + 1], a
ld a, c
- ld [$ffad], a
+ ld [hFillBox], a
lb bc, 7, 7
predef FillBox
pop af
@@ -20832,7 +20832,7 @@
ld c, a
call GetTileCoord
ld a, $80
- ld [$ffad], a
+ ld [hFillBox], a
lb bc, 7, 7
predef FillBox
call WaitBGMap
@@ -22991,7 +22991,7 @@
hlcoord 14, 1
lb bc, 5, 7
xor a
- ld [$ffad], a
+ ld [hFillBox], a
predef FillBox
ret
; 252ec (9:52ec)
@@ -28076,7 +28076,7 @@
call Function297cf
hlcoord 7, 2
xor a
- ld [$ffad], a
+ ld [hFillBox], a
lb bc, 7, 7
predef FillBox
call WaitBGMap
@@ -32294,7 +32294,7 @@
FillBox: ; 2ef6e
; Fill wc2c6-aligned box width b height c
-; with iterating tile starting from $ffad at hl.
+; with iterating tile starting from hFillBox at hl.
; Predef $13
ld de, 20
@@ -32303,7 +32303,7 @@
and a
jr nz, .left
- ld a, [$ffad]
+ ld a, [hFillBox]
.x1
push bc
push hl
@@ -32330,7 +32330,7 @@
add hl, bc
pop bc
- ld a, [$ffad]
+ ld a, [hFillBox]
.x2
push bc
push hl
@@ -48128,7 +48128,7 @@
ld de, VTiles2 tile $31
predef GetBackpic
ld a, $31
- ld [$ffad], a
+ ld [hFillBox], a
hlcoord 2, 4
lb bc, 6, 6
predef FillBox
@@ -48160,7 +48160,7 @@
callab GetTrainerPic
xor a
ld [TempEnemyMonSpecies], a
- ld [$ffad], a
+ ld [hFillBox], a
hlcoord 2, 3
lb bc, 7, 7
predef FillBox
@@ -50997,7 +50997,7 @@
ld de, VTiles2 tile $31
predef GetBackpic
ld a, $31
- ld [$ffad], a
+ ld [hFillBox], a
hlcoord 6, 6
lb bc, 6, 6
predef FillBox
@@ -51295,7 +51295,7 @@
call ByteFill
callba GetPlayerBackpic
ld a, $31
- ld [$ffad], a
+ ld [hFillBox], a
hlcoord 6, 6
lb bc, 6, 6
predef FillBox
@@ -51319,7 +51319,7 @@
call ByteFill
callba Function88840
xor a
- ld [$ffad], a
+ ld [hFillBox], a
hlcoord 12, 5
lb bc, 7, 7
predef FillBox
@@ -51635,7 +51635,7 @@
; Draw
xor a
- ld [$ffad], a
+ ld [hFillBox], a
hlcoord 6, 4
lb bc, 7, 7
predef FillBox
@@ -52482,7 +52482,7 @@
Function8ce19: ; 8ce19
ld d, $55
- ld a, [wd195]
+ ld a, [wd194 + 1]
ld e, a
ld b, $15
ld a, [rSVBK]
@@ -75652,22 +75652,22 @@
ld h, [hl]
ld l, a
srl c
- jr z, .asm_10461e
+ jr z, .skip_to_load
ld a, [WestConnectedMapWidth]
add 6
ld e, a
ld d, 0
-.asm_10461a
+.loop
add hl, de
dec c
- jr nz, .asm_10461a
+ jr nz, .loop
-.asm_10461e
+.skip_to_load
ld a, l
ld [wd194], a
ld a, h
- ld [wd195], a
+ ld [wd194 + 1], a
jp EnteredConnection
; 104629
@@ -75689,22 +75689,22 @@
ld h, [hl]
ld l, a
srl c
- jr z, .asm_10465a
+ jr z, .skip_to_load
ld a, [EastConnectedMapWidth]
add 6
ld e, a
ld d, 0
-.asm_104656
+.loop
add hl, de
dec c
- jr nz, .asm_104656
+ jr nz, .loop
-.asm_10465a
+.skip_to_load
ld a, l
ld [wd194], a
ld a, h
- ld [wd195], a
+ ld [wd194 + 1], a
jp EnteredConnection
; 104665
@@ -75731,7 +75731,7 @@
ld a, l
ld [wd194], a
ld a, h
- ld [wd195], a
+ ld [wd194 + 1], a
jp EnteredConnection
; 104696
@@ -75758,7 +75758,7 @@
ld a, l
ld [wd194], a
ld a, h
- ld [wd195], a
+ ld [wd194 + 1], a
; fallthrough
; 1046c4
@@ -75994,16 +75994,16 @@
ld hl, OverworldMap
ld a, [XCoord]
bit 0, a
- jr nz, .asm_10487d
+ jr nz, .increment_then_halve1
srl a
add $1
- jr .asm_104881
+ jr .resume
-.asm_10487d
+.increment_then_halve1
add $1
srl a
-.asm_104881
+.resume
ld c, a
ld b, $0
add hl, bc
@@ -76013,21 +76013,21 @@
ld b, $0
ld a, [YCoord]
bit 0, a
- jr nz, .asm_10489a
+ jr nz, .increment_then_halve2
srl a
add $1
- jr .asm_10489e
+ jr .resume2
-.asm_10489a
+.increment_then_halve2
add $1
srl a
-.asm_10489e
+.resume2
call AddNTimes
ld a, l
ld [wd194], a
ld a, h
- ld [wd195], a
+ ld [wd194 + 1], a
ld a, [YCoord]
and $1
ld [wd196], a
@@ -77777,7 +77777,7 @@
ld [wd265], a
push hl
- callba Function34548
+ callba CheckUserIsCharging
pop hl
jr nz, .grammar
@@ -79228,7 +79228,7 @@
SECTION "bank5E", ROMX, BANK[$5E]
-Function178000:
+_UpdateBattleHUDs:
callba DrawPlayerHUD
ld hl, PlayerHPPal
call SetHPPal
@@ -79235,7 +79235,7 @@
callba DrawEnemyHUD
ld hl, EnemyHPPal
call SetHPPal
- callba Function3ee27
+ callba FinishBattleAnim
ret
; 17801f (5e:401f)
--- a/misc/mobile_22.asm
+++ b/misc/mobile_22.asm
@@ -1253,7 +1253,7 @@
.asm_897f3
ld a, $37
- ld [$ffad], a
+ ld [hFillBox], a
hlcoord 12, 3
lb bc, 7, 7
predef FillBox
--- a/misc/mobile_40.asm
+++ b/misc/mobile_40.asm
@@ -1618,7 +1618,7 @@
call Function100a87
call Function100da5
- callba Function3ee27
+ callba FinishBattleAnim
jr .asm_100a2d
.asm_100a2a
--- a/misc/mobile_42.asm
+++ b/misc/mobile_42.asm
@@ -1210,7 +1210,7 @@
call Function108ac8
hlcoord 7, 2
xor a
- ld [$ffad], a
+ ld [hFillBox], a
ld bc, $0707
predef FillBox
call WaitBGMap
@@ -1224,7 +1224,7 @@
call Function108ac8
hlcoord 7, 2
xor a
- ld [$ffad], a
+ ld [hFillBox], a
ld bc, $0707
predef FillBox
call WaitBGMap
--- a/wram.asm
+++ b/wram.asm
@@ -473,7 +473,7 @@
ds 1
wc64d:: ds 1
-wCaughtMon::
+wWildMon::
wc64e:: ds 1
ds 1
wEnemyTrainerItem1:: ds 1
@@ -635,7 +635,8 @@
BattleScriptBufferLoc:: ; c6b2
ds 2
-wc6b4:: ds 2
+wTurnEnded:: ds 1
+ ds 1
PlayerStats:: ; c6b6
ds 10
@@ -862,10 +863,10 @@
BattleEnded:: ; c734
ds 1
-wCaughtMonMoves::
+wWildMonMoves::
wc735:: ds 1
wc736:: ds 3
-wCaughtMonPP::
+wWildMonPP::
wc739:: ds 4
wc73d:: ds 1
wc73e:: ds 1
@@ -1627,7 +1628,11 @@
wd152:: ds 1
wd153:: ds 1
-UsedSprites:: ; d154
+UsedSprites:: ds 64
+UsedSpritesEnd::
+ ds UsedSprites - @
+
+wd154:: ; d154
ds 31 ; 64
wd173:: ds 1
@@ -1639,9 +1644,7 @@
wd191:: ds 1
wd192:: ds 1
wd193:: ds 1
-UsedSpritesEnd::
-wd194:: ds 1
-wd195:: ds 1
+wd194:: dw
wd196:: ds 1
wd197:: ds 2
wd199:: ds 1
@@ -2731,7 +2734,7 @@
LYOverrides:: ; d100
ds SCREEN_HEIGHT_PX
-LYOverridesEnd::
+LYOverridesEnd:: ; d190
ds 1
w5_d191:: ds 1
@@ -2781,7 +2784,9 @@
BattleAnimTemps:: ; d419
ds 8
ds 1
-w5_d422:: ds $40
+w5_d422:: ds $32
+wBattleAnimEnd::
+ ds $e
SECTION "WRAM 6", WRAMX, BANK [6]