summaryrefslogtreecommitdiff
path: root/battle/effect_commands.asm
diff options
context:
space:
mode:
Diffstat (limited to 'battle/effect_commands.asm')
-rw-r--r--battle/effect_commands.asm659
1 files changed, 346 insertions, 313 deletions
diff --git a/battle/effect_commands.asm b/battle/effect_commands.asm
index 37e13d0bc..d31e635b3 100644
--- a/battle/effect_commands.asm
+++ b/battle/effect_commands.asm
@@ -30,12 +30,12 @@ DoTurn: ; 3401d
; 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 @@ BattleCommand_CheckTurn: ; 34084
ld a, BATTLE_VARS_MOVE
call GetBattleVar
inc a
- jp z, Function34385
+ jp z, EndTurn
xor a
ld [AttackMissed], a
@@ -156,7 +156,7 @@ CheckPlayerTurn:
ld hl, MustRechargeText
call StdBattleTextBox
call CantMove
- jp Function34385
+ jp EndTurn
.no_recharge
@@ -185,7 +185,7 @@ CheckPlayerTurn:
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 @@ CheckPlayerTurn:
jr z, .not_asleep
call CantMove
- jp Function34385
+ jp EndTurn
.not_asleep
@@ -222,7 +222,7 @@ CheckPlayerTurn:
call StdBattleTextBox
call CantMove
- jp Function34385
+ jp EndTurn
.not_frozen
@@ -236,7 +236,7 @@ CheckPlayerTurn:
call StdBattleTextBox
call CantMove
- jp Function34385
+ jp EndTurn
.not_flinched
@@ -293,7 +293,7 @@ CheckPlayerTurn:
call HitConfusion
call CantMove
- jp Function34385
+ jp EndTurn
.not_confused
@@ -317,7 +317,7 @@ CheckPlayerTurn:
ld hl, InfatuationText
call StdBattleTextBox
call CantMove
- jp Function34385
+ jp EndTurn
.not_infatuated
@@ -334,7 +334,7 @@ CheckPlayerTurn:
call MoveDisabled
call CantMove
- jp Function34385
+ jp EndTurn
.no_disabled_move
@@ -351,7 +351,7 @@ CheckPlayerTurn:
ld hl, FullyParalyzedText
call StdBattleTextBox
call CantMove
- jp Function34385
+ jp EndTurn
; 341f0
@@ -379,7 +379,7 @@ CantMove: ; 341f0
.fly_dig
res SUBSTATUS_UNDERGROUND, [hl]
res SUBSTATUS_FLYING, [hl]
- jp Function37ece
+ jp AppearUserRaiseSub
; 34216
@@ -402,7 +402,7 @@ CheckEnemyTurn: ; 3421f
ld hl, MustRechargeText
call StdBattleTextBox
call CantMove
- jp Function34385
+ jp EndTurn
.no_recharge
@@ -433,7 +433,7 @@ CheckEnemyTurn: ; 3421f
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 @@ CheckEnemyTurn: ; 3421f
cp SLEEP_TALK
jr z, .not_asleep
call CantMove
- jp Function34385
+ jp EndTurn
.not_asleep
@@ -463,7 +463,7 @@ CheckEnemyTurn: ; 3421f
ld hl, FrozenSolidText
call StdBattleTextBox
call CantMove
- jp Function34385
+ jp EndTurn
.not_frozen
@@ -477,7 +477,7 @@ CheckEnemyTurn: ; 3421f
call StdBattleTextBox
call CantMove
- jp Function34385
+ jp EndTurn
.not_flinched
@@ -527,7 +527,7 @@ CheckEnemyTurn: ; 3421f
; 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 @@ CheckEnemyTurn: ; 3421f
ld hl, HurtItselfText
call StdBattleTextBox
- call Function355dd
+ call HitSelfInConfusion
call BattleCommand_DamageCalc
call BattleCommand_LowerSub
xor a
@@ -552,10 +552,10 @@ CheckEnemyTurn: ; 3421f
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 @@ CheckEnemyTurn: ; 3421f
; 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 @@ CheckEnemyTurn: ; 3421f
call MoveDisabled
call CantMove
- jp Function34385
+ jp EndTurn
.no_disabled_move
@@ -619,9 +619,9 @@ CheckEnemyTurn: ; 3421f
; 34385
-Function34385: ; 34385
+EndTurn: ; 34385
ld a, $1
- ld [wc6b4], a
+ ld [wTurnEnded], a
jp ResetDamage
; 3438d
@@ -651,7 +651,7 @@ HitConfusion: ; 343a5
xor a
ld [CriticalHit], a
- call Function355dd
+ call HitSelfInConfusion
call BattleCommand_DamageCalc
call BattleCommand_LowerSub
@@ -668,9 +668,9 @@ HitConfusion: ; 343a5
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 @@ BattleCommand_CheckObedience: ; 343db
and a
ret nz
- call Function34548
+ call CheckUserIsCharging
ret nz
; If we've already checked this turn
@@ -1013,7 +1013,7 @@ BattleCommand_UsedMoveText: ; 34541
; 34548
-Function34548: ; 34548
+CheckUserIsCharging: ; 34548
ld a, [hBattleTurn]
and a
@@ -1027,7 +1027,7 @@ Function34548: ; 34548
BattleCommand_DoTurn: ; 34555
- call Function34548
+ call CheckUserIsCharging
ret nz
ld hl, BattleMonPP
@@ -1079,7 +1079,7 @@ endr
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 @@ endr
.player
call GetPartyLocation
push hl
- call Function3460b
+ call CheckMimicUsed
pop hl
ret c
@@ -1107,7 +1107,7 @@ endr
add hl, bc
ld a, [hl]
and $3f
- jr z, .asm_345e3
+ jr z, .out_of_pp
dec [hl]
ld b, 0
ret
@@ -1121,18 +1121,18 @@ endr
ld a, [hl]
cp MIMIC
jr z, .mimic
- ld hl, wCaughtMonMoves
+ ld hl, wWildMonMoves
add hl, bc
ld a, [hl]
cp MIMIC
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 @@ endr
db $ff
; 3460b
-Function3460b: ; 3460b
+CheckMimicUsed: ; 3460b
ld a, [hBattleTurn]
and a
ld a, [CurMoveNum]
@@ -1174,24 +1174,24 @@ Function3460b: ; 3460b
.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 @@ BattleCommand_LowerSub: ; 34eee
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 @@ BattleCommand_LowerSub: ; 34eee
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 @@ BattleCommand_HitTargetNoSub: ; 34f60
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 @@ BattleCommand_HitTargetNoSub: ; 34f60
.fly_dig
; clear sprite
- jp Function37ec7
+ jp AppearUserLowerSub
.multihit
.conversion
.doublehit
@@ -2199,9 +2199,9 @@ BattleCommand_StatDownAnim: ; 34fdb
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,47 +2246,50 @@ BattleCommand_RaiseSub: ; 35004
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
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 @@ BattleCommand_CheckFaint: ; 3505e
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 @@ BattleCommand_CheckFaint: ; 3505e
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 @@ BattleCommand_CheckFaint: ; 3505e
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 @@ BattleCommand_CheckFaint: ; 3505e
; 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 @@ Function350e4: ; 350e4
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 @@ Function350e4: ; 350e4
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 @@ BattleCommand_CheckDestinyBond: ; 351c0
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 @@ PlayerAttackDamage: ; 352e2
call ThickClubBoost
.done
- call Function3534d
+ call TruncateHL_BC
ld a, [BattleMonLevel]
ld e, a
@@ -2835,13 +2840,14 @@ PlayerAttackDamage: ; 352e2
; 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 @@ Function3534d: ; 3534d
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,17 +2867,17 @@ Function3534d: ; 3534d
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
ld a, h
or b
- jr nz, Function3534d
+ jr nz, .loop
.done
ld b, l
@@ -3077,7 +3083,7 @@ EnemyAttackDamage: ; 353f6
call ThickClubBoost
.done
- call Function3534d
+ call TruncateHL_BC
ld a, [EnemyMonLevel]
ld e, a
@@ -3315,37 +3321,37 @@ BattleCommand_ClearMissDamage: ; 355d5
; 355dd
-Function355dd: ; 355dd
+HitSelfInConfusion: ; 355dd
call ResetDamage
ld a, [hBattleTurn]
and a
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
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
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 @@ BattleCommand_Counter: ; 35813
and a
ret z
- call Function36abf
+ call CheckOpponentWentFirst
ret z
ld a, BATTLE_VARS_LAST_COUNTER_MOVE_OPP
@@ -3885,7 +3891,7 @@ rept 3
inc a
endr
ld [de], a
- call Function36abf
+ call CheckOpponentWentFirst
jr nz, .asm_3591a
ld a, [hBattleTurn]
and a
@@ -3967,13 +3973,13 @@ BattleCommand_PainSplit: ; 35926
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 @@ BattleCommand_PainSplit: ; 35926
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 @@ rept 3
inc de
endr
- ; fallthrough
-; 359ac
-
-
-Function359ac: ; 359ac
+.EnemyShareHP: ; 359ac
ld c, [hl]
dec hl
ld a, [CurDamage + 1]
@@ -4043,13 +4045,13 @@ Function359ac: ; 359ac
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 @@ Function359ac: ; 359ac
ret
; 359cd
-Function359cd: ; 359cd
+PainSplit_PrintButItFailed: ; 359cd
jp PrintDidntAffect2
; 359d0
@@ -4073,7 +4075,7 @@ BattleCommand_Snore: ; 359d0
call ResetDamage
ld a, $1
ld [AttackMissed], a
- call Function37354
+ call FailSnore
jp EndMoveEffect
; 359e6
@@ -4141,7 +4143,7 @@ BattleCommand_Conversion2: ; 359e6
jp StdBattleTextBox
.asm_35a50
- jp Function37354
+ jp FailConversion2
; 35a53
@@ -4149,11 +4151,11 @@ BattleCommand_LockOn: ; 35a53
; 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 @@ BattleCommand_LockOn: ; 35a53
ld hl, TookAimText
jp StdBattleTextBox
-.asm_35a6e
+.fail
call AnimateFailedMove
jp PrintDidntAffect
; 35a74
@@ -4172,58 +4174,68 @@ BattleCommand_LockOn: ; 35a53
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 @@ BattleCommand_Sketch: ; 35a74
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,17 +4275,17 @@ BattleCommand_Sketch: ; 35a74
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
ld hl, SketchedText
jp StdBattleTextBox
-.asm_35b10
+.fail
call AnimateFailedMove
jp PrintDidntAffect
; 35b16
@@ -4307,10 +4322,10 @@ BattleCommand_DefrostOpponent: ; 35b16
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 @@ BattleCommand_SleepTalk: ; 35b33
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 @@ BattleCommand_SleepTalk: ; 35b33
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 @@ PlayFXAnimID: ; 35d08
; 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 @@ Function35d1c: ; 35d1c
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 @@ Function35d1c: ; 35d1c
ld [hli], a
ld [hl], a
-.asm_35d59
+.mimic_faint
ld hl, EnemyMonMaxHP
ld a, [hli]
ld [Buffer2], a
@@ -4711,27 +4728,27 @@ Function35d1c: ; 35d1c
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 @@ Function35d7e: ; 35d7e
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 @@ Function35d7e: ; 35d7e
ld [hli], a
ld [hl], a
-.asm_35dc5
+.mimic_faint
ld hl, BattleMonMaxHP
ld a, [hli]
ld [Buffer2], a
@@ -4770,12 +4787,12 @@ Function35d7e: ; 35d7e
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 @@ Function35de0: ; 35de0
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 @@ BattleCommand_Poison: ; 35f2c
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 @@ BattleCommand_BurnTarget: ; 3608c
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 @@ BattleCommand_FreezeTarget: ; 36102
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 @@ BattleCommand_StatUp: ; 361e4
ld a, [FailedMessage]
and a
ret nz
- jp Function36281
+ jp StatUpAnimation
; 361ef
@@ -5561,7 +5578,7 @@ CheckIfStatCanBeRaised: ; 361ef
; 36281
-Function36281: ; 36281
+StatUpAnimation: ; 36281
ld bc, wc6fe
ld hl, Function3f447
ld a, [hBattleTurn]
@@ -5581,7 +5598,7 @@ Function36281: ; 36281
ret nc
xor a
- ld [$ffd4], a
+ ld [hBGMapMode], a
call CallBattleCore
call WaitBGMap
jp BattleCommand_MoveDelay
@@ -6146,7 +6163,7 @@ BattleCommand_RaiseSubNoAnim: ; 365af
ld hl, GetMonFrontpic
.PlayerTurn
xor a
- ld [$ffd4], a
+ ld [hBGMapMode], a
call CallBattleCore
jp WaitBGMap
; 365c3
@@ -6160,7 +6177,7 @@ BattleCommand_LowerSubNoAnim: ; 365c3
ld hl, Function3f486
.PlayerTurn
xor a
- ld [$ffd4], a
+ ld [hBGMapMode], a
call CallBattleCore
jp WaitBGMap
; 365d7
@@ -6534,7 +6551,7 @@ BattleCommand_Teleport: ; 36778
ld [wKickCounter], a
call SetBattleDraw
call BattleCommand_LowerSub
- call PlayPlayerMoveAnim_ClearHiID
+ call LoadMoveAnim
ld c, 20
call DelayFrames
call SetBattleDraw
@@ -6944,17 +6961,17 @@ BattleCommand_FakeOut: ; 36a82
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 @@ BattleCommand_FlinchTarget: ; 36aa0
and 1 << FRZ | SLP
ret nz
- call Function36abf
+ call CheckOpponentWentFirst
ret nz
ld a, [EffectFailed]
@@ -6981,7 +6998,7 @@ BattleCommand_FlinchTarget: ; 36aa0
; 36ab5
-Function36ab5: ; 36ab5
+FlinchTarget: ; 36ab5
ld a, BATTLE_VARS_SUBSTATUS3_OPP
call GetBattleVarAddr
set SUBSTATUS_FLINCHED, [hl]
@@ -6989,12 +7006,14 @@ Function36ab5: ; 36ab5
; 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,14 +7118,14 @@ BattleCommand_Charge: ; 36b4d
ld a, BATTLE_VARS_STATUS
call GetBattleVar
and SLP
- jr z, .asm_36b65
+ jr z, .awake
call BattleCommand_MoveDelay
call BattleCommand_RaiseSub
call PrintButItFailed
jp EndMoveEffect
-.asm_36b65
+.awake
ld a, BATTLE_VARS_SUBSTATUS3
call GetBattleVarAddr
set SUBSTATUS_CHARGED, [hl]
@@ -7121,36 +7140,36 @@ BattleCommand_Charge: ; 36b4d
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
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 @@ BattleCommand_Charge: ; 36b4d
call GetBattleVarAddr
ld [hl], b
-.asm_36bc3
+.mimic
call ResetDamage
ld hl, .UsedText
@@ -7567,7 +7586,7 @@ BattleCommand_Paralyze: ; 36dc7
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 @@ BattleCommand_Paralyze: ; 36dc7
; 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 @@ endr
ld [FXAnimIDHi], a
ld [wKickCounter], a
ld a, SUBSTITUTE
- call PlayMoveAnim_KeepHiID
+ call LoadAnim
jr .finish
.mobile
@@ -7705,13 +7724,13 @@ endr
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 @@ DoubleDamage: ; 36f37
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 @@ BattleCommand_Mimic: ; 36f46
call AnimateCurrentMove
ld hl, LearnedMoveText
jp StdBattleTextBox
-.asm_36f9a
- jp Function37357
+
+.fail
+ jp FailMimic
; 36f9d
@@ -7954,7 +7974,7 @@ BattleCommand_Disable: ; 36fed
ld hl, WasDisabledText
jp StdBattleTextBox
.asm_37059
- jp Function37354
+ jp FailDisable
; 3705c
@@ -8202,7 +8222,7 @@ BattleCommand_Heal: ; 3713e
BattleCommand_Transform: ; 371cd
; transform
- call Function372d8
+ call ClearLastMove
ld a, BATTLE_VARS_SUBSTATUS5_OPP
call GetBattleVarAddr
bit SUBSTATUS_TRANSFORMED, [hl]
@@ -8218,12 +8238,12 @@ BattleCommand_Transform: ; 371cd
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,14 +8269,14 @@ endr
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
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 @@ endr
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 @@ endr
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 @@ endr
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 @@ Function372d2: ; 372d2
; 372d8
-Function372d8: ; 372d8
+ClearLastMove: ; 372d8
ld a, BATTLE_VARS_LAST_COUNTER_MOVE
call GetBattleVarAddr
xor a
@@ -8472,15 +8492,20 @@ PrintButItFailed: ; 3734e
; 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 @@ PrintDidntAffect2: ; 37366
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 @@ CheckSubstituteOpp: ; 37378
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 @@ BattleCommand_SelfDestruct: ; 37380
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,15 +9373,17 @@ BattleCommand_StartSun: ; 37c07
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 Function3ccde
- jr nc, .asm_37c4f
+ callab CheckUserHasEnoughHP
+ jr nc, .failed
push bc
call AnimateCurrentMove
@@ -9365,16 +9392,17 @@ BattleCommand_BellyDrum: ; 37c1a
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 @@ BattleCommand_PsychUp: ; 37c55
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 @@ BattleCommand_MirrorCoat: ; 37c95
and a
ret z
- call Function36abf
+ call CheckOpponentWentFirst
ret z
ld a, BATTLE_VARS_LAST_COUNTER_MOVE_OPP
@@ -9514,7 +9547,7 @@ BattleCommand_DoubleMinimizeDamage: ; 37ce6
BattleCommand_SkipSunCharge: ; 37d02
-; skipsuncharge
+; mimicsuncharge
ld a, [Weather]
cp WEATHER_SUN
ret nz
@@ -9554,7 +9587,7 @@ BattleCommand_CheckFutureSight: ; 37d0d
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 @@ AnimateCurrentMoveEitherSide: ; 37de9
call BattleCommand_LowerSub
pop af
ld [wKickCounter], a
- call PlayMoveAnim_ClearHiID
+ call PlayDamageAnim
call BattleCommand_RaiseSub
pop bc
pop de
@@ -9709,7 +9742,7 @@ AnimateCurrentMove: ; 37e01
call BattleCommand_LowerSub
pop af
ld [wKickCounter], a
- call PlayPlayerMoveAnim_ClearHiID
+ call LoadMoveAnim
call BattleCommand_RaiseSub
pop bc
pop de
@@ -9718,7 +9751,7 @@ AnimateCurrentMove: ; 37e01
; 37e19
-PlayMoveAnim_ClearHiID: ; 37e19
+PlayDamageAnim: ; 37e19
xor a
ld [FXAnimIDHi], a
@@ -9731,9 +9764,9 @@ PlayMoveAnim_ClearHiID: ; 37e19
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 @@ PlayMoveAnim_ClearHiID: ; 37e19
; 37e36
-PlayPlayerMoveAnim_ClearHiID: ; 37e36
+LoadMoveAnim: ; 37e36
xor a
ld [wcfca], a
ld [FXAnimIDHi], a
@@ -9756,7 +9789,7 @@ PlayPlayerMoveAnim_ClearHiID: ; 37e36
; 37e44
-PlayMoveAnim_KeepHiID: ; 37e44
+LoadAnim: ; 37e44
ld [FXAnimIDLo], a
@@ -9838,10 +9871,10 @@ SkipToBattleCommand: ; 37e8c
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 @@ GetMoveByte: ; 37ebb
; 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