summaryrefslogtreecommitdiff
path: root/engine/battle/effect_commands.asm
diff options
context:
space:
mode:
Diffstat (limited to 'engine/battle/effect_commands.asm')
-rw-r--r--engine/battle/effect_commands.asm1037
1 files changed, 222 insertions, 815 deletions
diff --git a/engine/battle/effect_commands.asm b/engine/battle/effect_commands.asm
index fad5b27a0..eb30af88b 100644
--- a/engine/battle/effect_commands.asm
+++ b/engine/battle/effect_commands.asm
@@ -1,4 +1,4 @@
-DoPlayerTurn: ; 34000
+DoPlayerTurn:
call SetPlayerTurn
ld a, [wBattlePlayerAction]
@@ -7,10 +7,7 @@ DoPlayerTurn: ; 34000
jr DoTurn
-; 3400a
-
-
-DoEnemyTurn: ; 3400a
+DoEnemyTurn:
call SetEnemyTurn
ld a, [wLinkMode]
@@ -24,10 +21,8 @@ DoEnemyTurn: ; 3400a
ret nc
; fallthrough
-; 3401d
-
-DoTurn: ; 3401d
+DoTurn:
; Read in and execute the user's move effects for this turn.
xor a
@@ -41,10 +36,8 @@ DoTurn: ; 3401d
ret nz
call UpdateMoveData
-; 3402c
-
-DoMove: ; 3402c
+DoMove:
; Get the user's move effect.
ld a, BATTLE_VARS_MOVE_EFFECT
call GetBattleVar
@@ -64,7 +57,7 @@ DoMove: ; 3402c
inc hl
ld [de], a
inc de
- cp -1
+ cp endmove_command
jr nz, .GetMoveEffect
; Start at the first command.
@@ -75,7 +68,6 @@ DoMove: ; 3402c
ld [wBattleScriptBufferAddress + 1], a
.ReadMoveEffectCommand:
-
; ld a, [wBattleScriptBufferAddress++]
ld a, [wBattleScriptBufferAddress]
ld l, a
@@ -115,11 +107,8 @@ DoMove: ; 3402c
.DoMoveEffectCommand:
jp hl
-; 34084
-
-
CheckTurn:
-BattleCommand_CheckTurn: ; 34084
+BattleCommand_CheckTurn:
; checkturn
; Repurposed as hardcoded turn handling. Useless as a command.
@@ -145,9 +134,7 @@ BattleCommand_CheckTurn: ; 34084
and a
jp nz, CheckEnemyTurn
-
CheckPlayerTurn:
-
ld hl, wPlayerSubStatus4
bit SUBSTATUS_RECHARGE, [hl]
jr z, .no_recharge
@@ -160,7 +147,6 @@ CheckPlayerTurn:
.no_recharge
-
ld hl, wBattleMonStatus
ld a, [hl]
and SLP
@@ -206,7 +192,6 @@ CheckPlayerTurn:
.not_asleep
-
ld hl, wBattleMonStatus
bit FRZ, [hl]
jr z, .not_frozen
@@ -226,7 +211,6 @@ CheckPlayerTurn:
.not_frozen
-
ld hl, wPlayerSubStatus3
bit SUBSTATUS_FLINCHED, [hl]
jr z, .not_flinched
@@ -240,7 +224,6 @@ CheckPlayerTurn:
.not_flinched
-
ld hl, wPlayerDisableCount
ld a, [hl]
and a
@@ -258,7 +241,6 @@ CheckPlayerTurn:
.not_disabled
-
ld a, [wPlayerSubStatus3]
add a
jr nc, .not_confused
@@ -297,7 +279,6 @@ CheckPlayerTurn:
.not_confused
-
ld a, [wPlayerSubStatus1]
add a ; bit SUBSTATUS_ATTRACT
jr nc, .not_infatuated
@@ -321,7 +302,6 @@ CheckPlayerTurn:
.not_infatuated
-
; We can't disable a move that doesn't exist.
ld a, [wDisabledMove]
and a
@@ -338,7 +318,6 @@ CheckPlayerTurn:
.no_disabled_move
-
ld hl, wBattleMonStatus
bit PAR, [hl]
ret z
@@ -353,10 +332,7 @@ CheckPlayerTurn:
call CantMove
jp EndTurn
-; 341f0
-
-
-CantMove: ; 341f0
+CantMove:
ld a, BATTLE_VARS_SUBSTATUS1
call GetBattleVarAddr
res SUBSTATUS_ROLLOUT, [hl]
@@ -364,7 +340,7 @@ CantMove: ; 341f0
ld a, BATTLE_VARS_SUBSTATUS3
call GetBattleVarAddr
ld a, [hl]
- and $ff ^ (1<<SUBSTATUS_BIDE + 1<<SUBSTATUS_RAMPAGE + 1<<SUBSTATUS_CHARGED)
+ and $ff ^ (1 << SUBSTATUS_BIDE | 1 << SUBSTATUS_RAMPAGE | 1 << SUBSTATUS_CHARGED)
ld [hl], a
call ResetFuryCutterCount
@@ -382,21 +358,12 @@ CantMove: ; 341f0
res SUBSTATUS_FLYING, [hl]
jp AppearUserRaiseSub
-; 34216
-
-
-
-OpponentCantMove: ; 34216
+OpponentCantMove:
call BattleCommand_SwitchTurn
call CantMove
jp BattleCommand_SwitchTurn
-; 3421f
-
-
-
-CheckEnemyTurn: ; 3421f
-
+CheckEnemyTurn:
ld hl, wEnemySubStatus4
bit SUBSTATUS_RECHARGE, [hl]
jr z, .no_recharge
@@ -409,7 +376,6 @@ CheckEnemyTurn: ; 3421f
.no_recharge
-
ld hl, wEnemyMonStatus
ld a, [hl]
and SLP
@@ -453,7 +419,6 @@ CheckEnemyTurn: ; 3421f
.not_asleep
-
ld hl, wEnemyMonStatus
bit FRZ, [hl]
jr z, .not_frozen
@@ -472,7 +437,6 @@ CheckEnemyTurn: ; 3421f
.not_frozen
-
ld hl, wEnemySubStatus3
bit SUBSTATUS_FLINCHED, [hl]
jr z, .not_flinched
@@ -486,7 +450,6 @@ CheckEnemyTurn: ; 3421f
.not_flinched
-
ld hl, wEnemyDisableCount
ld a, [hl]
and a
@@ -505,7 +468,6 @@ CheckEnemyTurn: ; 3421f
.not_disabled
-
ld a, [wEnemySubStatus3]
add a ; bit SUBSTATUS_CONFUSED
jr nc, .not_confused
@@ -520,7 +482,6 @@ CheckEnemyTurn: ; 3421f
call StdBattleTextBox
jr .not_confused
-
.confused
ld hl, IsConfusedText
call StdBattleTextBox
@@ -564,7 +525,6 @@ CheckEnemyTurn: ; 3421f
.not_confused
-
ld a, [wEnemySubStatus1]
add a ; bit SUBSTATUS_ATTRACT
jr nc, .not_infatuated
@@ -588,7 +548,6 @@ CheckEnemyTurn: ; 3421f
.not_infatuated
-
; We can't disable a move that doesn't exist.
ld a, [wEnemyDisabledMove]
and a
@@ -606,7 +565,6 @@ CheckEnemyTurn: ; 3421f
.no_disabled_move
-
ld hl, wEnemyMonStatus
bit PAR, [hl]
ret z
@@ -621,19 +579,13 @@ CheckEnemyTurn: ; 3421f
call CantMove
; fallthrough
-; 34385
-
-EndTurn: ; 34385
+EndTurn:
ld a, $1
ld [wTurnEnded], a
jp ResetDamage
-; 3438d
-
-
-MoveDisabled: ; 3438d
-
+MoveDisabled:
; Make sure any charged moves fail
ld a, BATTLE_VARS_SUBSTATUS3
call GetBattleVarAddr
@@ -647,11 +599,7 @@ MoveDisabled: ; 3438d
ld hl, DisabledMoveText
jp StdBattleTextBox
-; 343a5
-
-
-HitConfusion: ; 343a5
-
+HitConfusion:
ld hl, HurtItselfText
call StdBattleTextBox
@@ -680,10 +628,7 @@ HitConfusion: ; 343a5
call DoPlayerDamage
jp BattleCommand_RaiseSub
-; 343db
-
-
-BattleCommand_CheckObedience: ; 343db
+BattleCommand_CheckObedience:
; checkobedience
; Enemy can't disobey
@@ -725,7 +670,6 @@ BattleCommand_CheckObedience: ; 343db
cp [hl]
ret z
-
.obeylevel
; The maximum obedience level is constrained by owned badges:
ld hl, wJohtoBadges
@@ -753,7 +697,6 @@ BattleCommand_CheckObedience: ; 343db
; no badges
ld a, 10
-
.getlevel
; c = obedience level
; d = monster level
@@ -772,14 +715,12 @@ BattleCommand_CheckObedience: ; 343db
jr nc, .checklevel
ld b, $ff
-
.checklevel
; If the monster's level is lower than the obedience level, it will obey.
ld a, c
cp d
ret nc
-
; Random number from 0 to obedience level + monster level
.rand1
call BattleRandom
@@ -797,7 +738,6 @@ BattleCommand_CheckObedience: ; 343db
call IgnoreSleepOnly
ret c
-
; Another random number from 0 to obedience level + monster level
.rand2
call BattleRandom
@@ -808,7 +748,6 @@ BattleCommand_CheckObedience: ; 343db
cp c
jr c, .UseInstead
-
; No hope of using a move now.
; b = number of levels the monster is above the obedience level
@@ -831,7 +770,6 @@ BattleCommand_CheckObedience: ; 343db
call HitConfusion
jp .EndDisobedience
-
.Nap:
call BattleRandom
add a
@@ -844,7 +782,6 @@ BattleCommand_CheckObedience: ; 343db
ld hl, BeganToNapText
jr .Print
-
.DoNothing:
; 4 random choices
call BattleRandom
@@ -868,9 +805,7 @@ BattleCommand_CheckObedience: ; 343db
call StdBattleTextBox
jp .EndDisobedience
-
.UseInstead:
-
; Can't use another move if the monster only has one!
ld a, [wBattleMonMoves + 1]
and a
@@ -881,7 +816,6 @@ BattleCommand_CheckObedience: ; 343db
and a
jr nz, .DoNothing
-
ld hl, wBattleMonPP
ld de, wBattleMonMoves
ld b, 0
@@ -902,7 +836,6 @@ BattleCommand_CheckObedience: ; 343db
and a
jr nz, .GetTotalPP
-
.CheckMovePP:
ld hl, wBattleMonPP
ld a, [wCurMoveNum]
@@ -916,7 +849,6 @@ BattleCommand_CheckObedience: ; 343db
cp b
jr z, .DoNothing
-
; Make sure we can actually use the move once we get there.
ld a, 1
ld [wAlreadyDisobeyed], a
@@ -929,7 +861,6 @@ BattleCommand_CheckObedience: ; 343db
ld c, a
push af
-
.RandomMove:
call BattleRandom
maskbits NUM_MOVES
@@ -951,7 +882,6 @@ BattleCommand_CheckObedience: ; 343db
and PP_MASK
jr z, .RandomMove
-
; Use it.
ld a, [wCurMoveNum]
ld c, a
@@ -965,12 +895,10 @@ BattleCommand_CheckObedience: ; 343db
call UpdateMoveData
call DoMove
-
; Restore original move choice.
pop af
ld [wCurMoveNum], a
-
.EndDisobedience:
xor a
ld [wLastPlayerMove], a
@@ -984,11 +912,7 @@ BattleCommand_CheckObedience: ; 343db
jp EndMoveEffect
-; 3451f
-
-
-IgnoreSleepOnly: ; 3451f
-
+IgnoreSleepOnly:
ld a, BATTLE_VARS_MOVE_ANIM
call GetBattleVar
@@ -1015,19 +939,12 @@ IgnoreSleepOnly: ; 3451f
scf
ret
-; 34541
-
-
-BattleCommand_UsedMoveText: ; 34541
+BattleCommand_UsedMoveText:
; usedmovetext
farcall DisplayUsedMoveText
ret
-; 34548
-
-
-CheckUserIsCharging: ; 34548
-
+CheckUserIsCharging:
ld a, [hBattleTurn]
and a
ld a, [wPlayerCharging] ; player
@@ -1037,10 +954,7 @@ CheckUserIsCharging: ; 34548
and a
ret
-; 34555
-
-
-BattleCommand_DoTurn: ; 34555
+BattleCommand_DoTurn:
call CheckUserIsCharging
ret nz
@@ -1165,9 +1079,7 @@ BattleCommand_DoTurn: ; 34555
ld b, 1
ret
-; 34602
-
-.continuousmoves ; 34602
+.continuousmoves
db EFFECT_RAZOR_WIND
db EFFECT_SKY_ATTACK
db EFFECT_SKULL_BASH
@@ -1177,9 +1089,8 @@ BattleCommand_DoTurn: ; 34555
db EFFECT_BIDE
db EFFECT_RAMPAGE
db -1
-; 3460b
-CheckMimicUsed: ; 3460b
+CheckMimicUsed:
ld a, [hBattleTurn]
and a
ld a, [wCurMoveNum]
@@ -1209,10 +1120,7 @@ CheckMimicUsed: ; 3460b
and a
ret
-; 34631
-
-
-BattleCommand_Critical: ; 34631
+BattleCommand_Critical:
; critical
; Determine whether this attack's hit will be critical.
@@ -1302,14 +1210,13 @@ BattleCommand_Critical: ; 34631
ld [wCriticalHit], a
ret
-INCLUDE "data/battle/critical_hits.asm"
-; 346b2
+INCLUDE "data/moves/critical_hit_moves.asm"
+INCLUDE "data/battle/critical_hit_chances.asm"
INCLUDE "engine/battle/move_effects/triple_kick.asm"
-
-BattleCommand_Stab: ; 346d2
+BattleCommand_Stab:
; STAB = Same Type Attack Bonus
ld a, BATTLE_VARS_MOVE_ANIM
call GetBattleVar
@@ -1493,16 +1400,13 @@ BattleCommand_Stab: ; 346d2
ld [wTypeModifier], a
ret
-; 347c8
-
-
-BattleCheckTypeMatchup: ; 347c8
+BattleCheckTypeMatchup:
ld hl, wEnemyMonType1
ld a, [hBattleTurn]
and a
jr z, CheckTypeMatchup
ld hl, wBattleMonType1
-CheckTypeMatchup: ; 347d3
+CheckTypeMatchup:
; There is an incorrect assumption about this function made in the AI related code: when
; the AI calls CheckTypeMatchup (not BattleCheckTypeMatchup), it assumes that placing the
; offensive type in a will make this function do the right thing. Since a is overwritten,
@@ -1575,10 +1479,7 @@ CheckTypeMatchup: ; 347d3
pop hl
ret
-; 34833
-
-
-BattleCommand_ResetTypeMatchup: ; 34833
+BattleCommand_ResetTypeMatchup:
; Reset the type matchup multiplier to 1.0, if the type matchup is not 0.
; If there is immunity in play, the move automatically misses.
call BattleCheckTypeMatchup
@@ -1597,15 +1498,11 @@ BattleCommand_ResetTypeMatchup: ; 34833
ld [wTypeMatchup], a
ret
-; 3484e
-
-
INCLUDE "engine/battle/ai/switch.asm"
INCLUDE "data/types/type_matchups.asm"
-
-BattleCommand_DamageVariation: ; 34cfd
+BattleCommand_DamageVariation:
; damagevariation
; Modify the damage spread between 85% and 100%.
@@ -1614,7 +1511,6 @@ BattleCommand_DamageVariation: ; 34cfd
; is not consistent. This makes the highest damage multipliers
; rarer than normal.
-
; No point in reducing 1 or 0 damage.
ld hl, wCurDamage
ld a, [hli]
@@ -1658,10 +1554,7 @@ BattleCommand_DamageVariation: ; 34cfd
ld [hl], a
ret
-; 34d32
-
-
-BattleCommand_CheckHit: ; 34d32
+BattleCommand_CheckHit:
; checkhit
call .DreamEater
@@ -1729,7 +1622,6 @@ BattleCommand_CheckHit: ; 34d32
.Hit:
ret
-
.Miss:
; Keep the damage value intact if we're using (Hi) Jump Kick.
ld a, BATTLE_VARS_MOVE_EFFECT
@@ -1743,7 +1635,6 @@ BattleCommand_CheckHit: ; 34d32
ld [wAttackMissed], a
ret
-
.DreamEater:
; Return z if we're trying to eat the dream of
; a monster that isn't sleeping.
@@ -1757,7 +1648,6 @@ BattleCommand_CheckHit: ; 34d32
and SLP
ret
-
.Protect:
; Return nz if the opponent is protected.
ld a, BATTLE_VARS_SUBSTATUS1_OPP
@@ -1779,7 +1669,6 @@ BattleCommand_CheckHit: ; 34d32
and a
ret
-
.LockOn:
; Return nz if we are locked-on and aren't trying to use Earthquake,
; Fissure or Magnitude on a monster that is flying.
@@ -1809,7 +1698,6 @@ BattleCommand_CheckHit: ; 34d32
and a
ret
-
.DrainSub:
; Return z if using an HP drain move on a substitute.
call CheckSubstituteOpp
@@ -1828,7 +1716,6 @@ BattleCommand_CheckHit: ; 34d32
and a
ret
-
.FlyDigMoves:
; Check for moves that can hit underground/flying opponents.
; Return z if the current move can hit the opponent.
@@ -1864,7 +1751,6 @@ BattleCommand_CheckHit: ; 34d32
cp MAGNITUDE
ret
-
.ThunderRain:
; Return z if the current move always hits in rain, and it is raining.
ld a, BATTLE_VARS_MOVE_EFFECT
@@ -1876,16 +1762,13 @@ BattleCommand_CheckHit: ; 34d32
cp WEATHER_RAIN
ret
-
.XAccuracy:
ld a, BATTLE_VARS_SUBSTATUS4
call GetBattleVar
bit SUBSTATUS_X_ACCURACY, a
ret
-
.StatModifiers:
-
ld a, [hBattleTurn]
and a
@@ -1977,10 +1860,8 @@ BattleCommand_CheckHit: ; 34d32
ret
INCLUDE "data/battle/accuracy_multipliers.asm"
-; 34ecc
-
-BattleCommand_EffectChance: ; 34ecc
+BattleCommand_EffectChance:
; effectchance
xor a
@@ -2007,10 +1888,7 @@ BattleCommand_EffectChance: ; 34ecc
and a
ret
-; 34eee
-
-
-BattleCommand_LowerSub: ; 34eee
+BattleCommand_LowerSub:
; lowersub
ld a, BATTLE_VARS_SUBSTATUS4
@@ -2078,19 +1956,13 @@ BattleCommand_LowerSub: ; 34eee
ld [wSomeoneIsRampaging], a
ret
-; 34f57
-
-
-BattleCommand_MoveAnim: ; 34f57
+BattleCommand_MoveAnim:
; moveanim
call BattleCommand_LowerSub
call BattleCommand_MoveAnimNoSub
jp BattleCommand_RaiseSub
-; 34f60
-
-
-BattleCommand_MoveAnimNoSub: ; 34f60
+BattleCommand_MoveAnimNoSub:
ld a, [wAttackMissed]
and a
jp nz, BattleCommand_MoveDelay
@@ -2154,10 +2026,7 @@ BattleCommand_MoveAnimNoSub: ; 34f60
ld [wNumHits], a
jp PlayFXAnimID
-; 34fd1
-
-
-BattleCommand_StatUpAnim: ; 34fd1
+BattleCommand_StatUpAnim:
ld a, [wAttackMissed]
and a
jp nz, BattleCommand_MoveDelay
@@ -2165,10 +2034,7 @@ BattleCommand_StatUpAnim: ; 34fd1
xor a
jr BattleCommand_StatUpDownAnim
-; 34fdb
-
-
-BattleCommand_StatDownAnim: ; 34fdb
+BattleCommand_StatDownAnim:
ld a, [wAttackMissed]
and a
jp nz, BattleCommand_MoveDelay
@@ -2180,10 +2046,8 @@ BattleCommand_StatDownAnim: ; 34fdb
ld a, BATTLEANIM_WOBBLE
; fallthrough
-; 34feb
-
-BattleCommand_StatUpDownAnim: ; 34feb
+BattleCommand_StatUpDownAnim:
ld [wNumHits], a
xor a
ld [wKickCounter], a
@@ -2193,10 +2057,7 @@ BattleCommand_StatUpDownAnim: ; 34feb
ld d, 0
jp PlayFXAnimID
-; 34ffd
-
-
-BattleCommand_SwitchTurn: ; 34ffd
+BattleCommand_SwitchTurn:
; switchturn
ld a, [hBattleTurn]
@@ -2204,10 +2065,7 @@ BattleCommand_SwitchTurn: ; 34ffd
ld [hBattleTurn], a
ret
-; 35004
-
-
-BattleCommand_RaiseSub: ; 35004
+BattleCommand_RaiseSub:
; raisesub
ld a, BATTLE_VARS_SUBSTATUS4
@@ -2226,10 +2084,7 @@ BattleCommand_RaiseSub: ; 35004
ld a, SUBSTITUTE
jp LoadAnim
-; 35023
-
-
-BattleCommand_FailureText: ; 35023
+BattleCommand_FailureText:
; failuretext
; If the move missed or failed, load the appropriate
; text, and end the effects of multi-turn or multi-
@@ -2271,10 +2126,7 @@ BattleCommand_FailureText: ; 35023
call AppearUserRaiseSub
jp EndMoveEffect
-; 3505e
-
-
-BattleCommand_ApplyDamage: ; 3505e
+BattleCommand_ApplyDamage:
; applydamage
ld a, BATTLE_VARS_SUBSTATUS1_OPP
@@ -2366,10 +2218,7 @@ BattleCommand_ApplyDamage: ; 3505e
ld [de], a
ret
-; 350e4
-
-
-GetFailureResultText: ; 350e4
+GetFailureResultText:
ld hl, DoesntAffectText
ld de, DoesntAffectText
ld a, [wTypeModifier]
@@ -2427,7 +2276,7 @@ endr
jp nz, DoEnemyDamage
jp DoPlayerDamage
-FailText_CheckOpponentProtect: ; 35157
+FailText_CheckOpponentProtect:
ld a, BATTLE_VARS_SUBSTATUS1_OPP
call GetBattleVar
bit SUBSTATUS_PROTECT, a
@@ -2437,10 +2286,7 @@ FailText_CheckOpponentProtect: ; 35157
.not_protected
jp StdBattleTextBox
-; 35165
-
-
-BattleCommand_BideFailText: ; 35165
+BattleCommand_BideFailText:
ld a, [wAttackMissed]
and a
ret z
@@ -2450,10 +2296,7 @@ BattleCommand_BideFailText: ; 35165
jp z, PrintDoesntAffect
jp PrintButItFailed
-; 35175
-
-
-BattleCommand_CriticalText: ; 35175
+BattleCommand_CriticalText:
; criticaltext
; Prints the message for critical hits or one-hit KOs.
@@ -2483,10 +2326,8 @@ BattleCommand_CriticalText: ; 35175
.texts
dw CriticalHitText
dw OneHitKOText
-; 35197
-
-BattleCommand_StartLoop: ; 35197
+BattleCommand_StartLoop:
; startloop
ld hl, wPlayerRolloutCount
@@ -2499,10 +2340,7 @@ BattleCommand_StartLoop: ; 35197
ld [hl], a
ret
-; 351a5
-
-
-BattleCommand_SuperEffectiveLoopText: ; 351a5
+BattleCommand_SuperEffectiveLoopText:
; supereffectivelooptext
ld a, BATTLE_VARS_SUBSTATUS3
@@ -2511,10 +2349,8 @@ BattleCommand_SuperEffectiveLoopText: ; 351a5
ret nz
; fallthrough
-; 351ad
-
-BattleCommand_SuperEffectiveText: ; 351ad
+BattleCommand_SuperEffectiveText:
; supereffectivetext
ld a, [wTypeModifier]
@@ -2527,10 +2363,7 @@ BattleCommand_SuperEffectiveText: ; 351ad
.print
jp StdBattleTextBox
-; 351c0
-
-
-BattleCommand_CheckDestinyBond: ; 351c0
+BattleCommand_CheckDestinyBond:
; checkdestinybond
; Faint the user if it fainted an opponent using Destiny Bond.
@@ -2617,10 +2450,7 @@ BattleCommand_CheckDestinyBond: ; 351c0
.finish
jp EndMoveEffect
-; 35250
-
-
-BattleCommand_BuildOpponentRage: ; 35250
+BattleCommand_BuildOpponentRage:
; buildopponentrage
jp .start
@@ -2651,10 +2481,7 @@ BattleCommand_BuildOpponentRage: ; 35250
call StdBattleTextBox
jp BattleCommand_SwitchTurn
-; 3527b
-
-
-BattleCommand_RageDamage: ; 3527b
+BattleCommand_RageDamage:
; ragedamage
ld a, [wCurDamage]
@@ -2682,10 +2509,7 @@ BattleCommand_RageDamage: ; 3527b
ld [wCurDamage + 1], a
ret
-; 352a3
-
-
-EndMoveEffect: ; 352a3
+EndMoveEffect:
ld a, [wBattleScriptBufferAddress]
ld l, a
ld a, [wBattleScriptBufferAddress + 1]
@@ -2696,10 +2520,7 @@ EndMoveEffect: ; 352a3
ld [hl], a
ret
-; 352b1
-
-
-DittoMetalPowder: ; 352b1
+DittoMetalPowder:
ld a, MON_SPECIES
call BattlePartyAttr
ld a, [hBattleTurn]
@@ -2735,10 +2556,7 @@ DittoMetalPowder: ; 352b1
rr c
ret
-; 352dc
-
-
-BattleCommand_DamageStats: ; 352dc
+BattleCommand_DamageStats:
; damagestats
ld a, [hBattleTurn]
@@ -2746,10 +2564,8 @@ BattleCommand_DamageStats: ; 352dc
jp nz, EnemyAttackDamage
; fallthrough
-; 352e2
-
-PlayerAttackDamage: ; 352e2
+PlayerAttackDamage:
; Return move power d, player level e, enemy defense c and player attack b.
call ResetDamage
@@ -2831,10 +2647,7 @@ PlayerAttackDamage: ; 352e2
and a
ret
-; 3534d
-
-
-TruncateHL_BC: ; 3534d
+TruncateHL_BC:
.loop
; Truncate 16-bit values hl and bc to 8-bit values b and c respectively.
; b = hl, c = bc
@@ -2879,10 +2692,7 @@ TruncateHL_BC: ; 3534d
ld b, l
ret
-; 35378
-
-
-GetDamageStatsCritical: ; 35378
+GetDamageStatsCritical:
; Return carry if non-critical.
ld a, [wCriticalHit]
@@ -2891,10 +2701,8 @@ GetDamageStatsCritical: ; 35378
ret z
; fallthrough
-; 3537e
-
-GetDamageStats: ; 3537e
+GetDamageStats:
; Return the attacker's offensive stat and the defender's defensive
; stat based on whether the attacking type is physical or special.
@@ -2934,10 +2742,7 @@ GetDamageStats: ; 3537e
pop hl
ret
-; 353b5
-
-
-ThickClubBoost: ; 353b5
+ThickClubBoost:
; Return in hl the stat value at hl.
; If the attacking monster is Cubone or Marowak and
@@ -2952,10 +2757,7 @@ ThickClubBoost: ; 353b5
pop bc
ret
-; 353c3
-
-
-LightBallBoost: ; 353c3
+LightBallBoost:
; Return in hl the stat value at hl.
; If the attacking monster is Pikachu and it's
@@ -2970,10 +2772,7 @@ LightBallBoost: ; 353c3
pop bc
ret
-; 353d1
-
-
-SpeciesItemBoost: ; 353d1
+SpeciesItemBoost:
; Return in hl the stat value at hl.
; If the attacking monster is species b or c and
@@ -3013,10 +2812,7 @@ SpeciesItemBoost: ; 353d1
rl h
ret
-; 353f6
-
-
-EnemyAttackDamage: ; 353f6
+EnemyAttackDamage:
call ResetDamage
; No damage dealt with 0 power.
@@ -3094,13 +2890,9 @@ EnemyAttackDamage: ; 353f6
and a
ret
-; 35461
-
-
INCLUDE "engine/battle/move_effects/beat_up.asm"
-
-BattleCommand_ClearMissDamage: ; 355d5
+BattleCommand_ClearMissDamage:
; clearmissdamage
ld a, [wAttackMissed]
and a
@@ -3108,10 +2900,7 @@ BattleCommand_ClearMissDamage: ; 355d5
jp ResetDamage
-; 355dd
-
-
-HitSelfInConfusion: ; 355dd
+HitSelfInConfusion:
call ResetDamage
ld a, [hBattleTurn]
and a
@@ -3147,10 +2936,7 @@ HitSelfInConfusion: ; 355dd
ld e, a
ret
-; 35612
-
-
-BattleCommand_DamageCalc: ; 35612
+BattleCommand_DamageCalc:
; damagecalc
; Return a damage value for move power d, player level e, enemy defense c and player attack b.
@@ -3273,12 +3059,11 @@ BattleCommand_DamageCalc: ; 35612
ld [hDivisor], a
ld b, 4
call Divide
-.DoneItem:
+.DoneItem:
; Critical hits
call .CriticalMultiplier
-
; Update wCurDamage (capped at 997).
ld hl, wCurDamage
ld b, [hl]
@@ -3343,7 +3128,6 @@ BattleCommand_DamageCalc: ; 35612
ld a, LOW(MAX_STAT_VALUE - MIN_NEUTRAL_DAMAGE)
ld [hld], a
-
.dont_cap_3
; Minimum neutral damage is 2 (bringing the cap to 999).
inc hl
@@ -3358,7 +3142,6 @@ BattleCommand_DamageCalc: ; 35612
and a
ret
-
.CriticalMultiplier:
ld a, [wCriticalHit]
and a
@@ -3382,13 +3165,9 @@ BattleCommand_DamageCalc: ; 35612
ret
-; 35703
-
-
INCLUDE "data/types/type_boost_items.asm"
-
-BattleCommand_ConstantDamage: ; 35726
+BattleCommand_ConstantDamage:
; constantdamage
ld hl, wBattleMonLevel
@@ -3548,7 +3327,6 @@ BattleCommand_ConstantDamage: ; 35726
INCLUDE "data/moves/flail_reversal_power.asm"
-
INCLUDE "engine/battle/move_effects/counter.asm"
INCLUDE "engine/battle/move_effects/encore.asm"
@@ -3563,8 +3341,7 @@ INCLUDE "engine/battle/move_effects/lock_on.asm"
INCLUDE "engine/battle/move_effects/sketch.asm"
-
-BattleCommand_DefrostOpponent: ; 35b16
+BattleCommand_DefrostOpponent:
; defrostopponent
; Thaw the opponent if frozen, and
; raise the user's Attack one stage.
@@ -3590,9 +3367,6 @@ BattleCommand_DefrostOpponent: ; 35b16
ld [hl], a
ret
-; 35b33
-
-
INCLUDE "engine/battle/move_effects/sleep_talk.asm"
INCLUDE "engine/battle/move_effects/destiny_bond.asm"
@@ -3603,8 +3377,7 @@ INCLUDE "engine/battle/move_effects/false_swipe.asm"
INCLUDE "engine/battle/move_effects/heal_bell.asm"
-
-FarPlayBattleAnimation: ; 35d00
+FarPlayBattleAnimation:
; play animation de
ld a, BATTLE_VARS_SUBSTATUS3
@@ -3613,9 +3386,8 @@ FarPlayBattleAnimation: ; 35d00
ret nz
; fallthrough
-; 35d08
-PlayFXAnimID: ; 35d08
+PlayFXAnimID:
ld a, e
ld [wFXAnimID], a
ld a, d
@@ -3626,10 +3398,7 @@ PlayFXAnimID: ; 35d08
callfar PlayBattleAnim
ret
-; 35d1c
-
-
-DoEnemyDamage: ; 35d1c
+DoEnemyDamage:
ld hl, wCurDamage
ld a, [hli]
ld b, a
@@ -3689,10 +3458,7 @@ DoEnemyDamage: ; 35d1c
.did_no_damage
jp RefreshBattleHuds
-; 35d7e
-
-
-DoPlayerDamage: ; 35d7e
+DoPlayerDamage:
ld hl, wCurDamage
ld a, [hli]
ld b, a
@@ -3752,10 +3518,7 @@ DoPlayerDamage: ; 35d7e
.did_no_damage
jp RefreshBattleHuds
-; 35de0
-
-
-DoSubstituteDamage: ; 35de0
+DoSubstituteDamage:
ld hl, SubTookDamageText
call StdBattleTextBox
@@ -3812,11 +3575,7 @@ DoSubstituteDamage: ; 35de0
.done
jp ResetDamage
-; 35e40
-
-
-UpdateMoveData: ; 35e40
-
+UpdateMoveData:
ld a, BATTLE_VARS_MOVE_ANIM
call GetBattleVarAddr
ld d, h
@@ -3832,10 +3591,7 @@ UpdateMoveData: ; 35e40
call GetMoveName
jp CopyName1
-; 35e5c
-
-
-BattleCommand_SleepTarget: ; 35e5c
+BattleCommand_SleepTarget:
; sleeptarget
call GetOpponentItem
@@ -3906,10 +3662,7 @@ BattleCommand_SleepTarget: ; 35e5c
pop hl
jp StdBattleTextBox
-; 35ece
-
-
-.CheckAIRandomFail: ; 35ece
+.CheckAIRandomFail:
; Enemy turn
ld a, [hBattleTurn]
and a
@@ -3937,10 +3690,7 @@ BattleCommand_SleepTarget: ; 35e5c
xor a
ret
-; 35eee
-
-
-BattleCommand_PoisonTarget: ; 35eee
+BattleCommand_PoisonTarget:
; poisontarget
call CheckSubstituteOpp
@@ -3975,10 +3725,7 @@ BattleCommand_PoisonTarget: ; 35eee
farcall UseHeldStatusHealingItem
ret
-; 35f2c
-
-
-BattleCommand_Poison: ; 35f2c
+BattleCommand_Poison:
; poison
ld hl, DoesntAffectText
@@ -4066,18 +3813,12 @@ BattleCommand_Poison: ; 35f2c
pop hl
jp StdBattleTextBox
-; 35fc0
-
-
-.apply_poison ; 35fc0
+.apply_poison
call AnimateCurrentMove
call PoisonOpponent
jp RefreshBattleHuds
-; 35fc9
-
-
-.check_toxic ; 35fc9
+.check_toxic
ld a, BATTLE_VARS_SUBSTATUS5_OPP
call GetBattleVarAddr
ld a, [hBattleTurn]
@@ -4091,10 +3832,7 @@ BattleCommand_Poison: ; 35f2c
cp EFFECT_TOXIC
ret
-; 35fe1
-
-
-CheckIfTargetIsPoisonType: ; 35fe1
+CheckIfTargetIsPoisonType:
ld de, wEnemyMonType1
ld a, [hBattleTurn]
and a
@@ -4109,37 +3847,25 @@ CheckIfTargetIsPoisonType: ; 35fe1
cp POISON
ret
-; 35ff5
-
-
-PoisonOpponent: ; 35ff5
+PoisonOpponent:
ld a, BATTLE_VARS_STATUS_OPP
call GetBattleVarAddr
set PSN, [hl]
jp UpdateOpponentInParty
-; 35fff
-
-
-BattleCommand_DrainTarget: ; 35fff
+BattleCommand_DrainTarget:
; draintarget
call SapHealth
ld hl, SuckedHealthText
jp StdBattleTextBox
-; 36008
-
-
-BattleCommand_EatDream: ; 36008
+BattleCommand_EatDream:
; eatdream
call SapHealth
ld hl, DreamEatenText
jp StdBattleTextBox
-; 36011
-
-
-SapHealth: ; 36011
+SapHealth:
; Divide damage by 2, store it in hDividend
ld hl, wCurDamage
ld a, [hli]
@@ -4232,10 +3958,7 @@ SapHealth: ; 36011
call RefreshBattleHuds
jp UpdateBattleMonInParty
-; 3608c
-
-
-BattleCommand_BurnTarget: ; 3608c
+BattleCommand_BurnTarget:
; burntarget
xor a
@@ -4276,10 +3999,7 @@ BattleCommand_BurnTarget: ; 3608c
farcall UseHeldStatusHealingItem
ret
-; 360dd
-
-
-Defrost: ; 360dd
+Defrost:
ld a, [hl]
and 1 << FRZ
ret z
@@ -4304,10 +4024,7 @@ Defrost: ; 360dd
ld hl, DefrostedOpponentText
jp StdBattleTextBox
-; 36102
-
-
-BattleCommand_FreezeTarget: ; 36102
+BattleCommand_FreezeTarget:
; freezetarget
xor a
@@ -4360,10 +4077,7 @@ BattleCommand_FreezeTarget: ; 36102
ld [hl], $1
ret
-; 36165
-
-
-BattleCommand_ParalyzeTarget: ; 36165
+BattleCommand_ParalyzeTarget:
; paralyzetarget
xor a
@@ -4399,80 +4113,77 @@ BattleCommand_ParalyzeTarget: ; 36165
ld hl, UseHeldStatusHealingItem
jp CallBattleCore
-; 361ac
-
-
-BattleCommand_AttackUp: ; 361ac
+BattleCommand_AttackUp:
; attackup
ld b, ATTACK
jr BattleCommand_StatUp
-BattleCommand_DefenseUp: ; 361b0
+BattleCommand_DefenseUp:
; defenseup
ld b, DEFENSE
jr BattleCommand_StatUp
-BattleCommand_SpeedUp: ; 361b4
+BattleCommand_SpeedUp:
; speedup
ld b, SPEED
jr BattleCommand_StatUp
-BattleCommand_SpecialAttackUp: ; 361b8
+BattleCommand_SpecialAttackUp:
; specialattackup
ld b, SP_ATTACK
jr BattleCommand_StatUp
-BattleCommand_SpecialDefenseUp: ; 361bc
+BattleCommand_SpecialDefenseUp:
; specialdefenseup
ld b, SP_DEFENSE
jr BattleCommand_StatUp
-BattleCommand_AccuracyUp: ; 361c0
+BattleCommand_AccuracyUp:
; accuracyup
ld b, ACCURACY
jr BattleCommand_StatUp
-BattleCommand_EvasionUp: ; 361c4
+BattleCommand_EvasionUp:
; evasionup
ld b, EVASION
jr BattleCommand_StatUp
-BattleCommand_AttackUp2: ; 361c8
+BattleCommand_AttackUp2:
; attackup2
ld b, $10 | ATTACK
jr BattleCommand_StatUp
-BattleCommand_DefenseUp2: ; 361cc
+BattleCommand_DefenseUp2:
; defenseup2
ld b, $10 | DEFENSE
jr BattleCommand_StatUp
-BattleCommand_SpeedUp2: ; 361d0
+BattleCommand_SpeedUp2:
; speedup2
ld b, $10 | SPEED
jr BattleCommand_StatUp
-BattleCommand_SpecialAttackUp2: ; 361d4
+BattleCommand_SpecialAttackUp2:
; specialattackup2
ld b, $10 | SP_ATTACK
jr BattleCommand_StatUp
-BattleCommand_SpecialDefenseUp2: ; 361d8
+BattleCommand_SpecialDefenseUp2:
; specialdefenseup2
ld b, $10 | SP_DEFENSE
jr BattleCommand_StatUp
-BattleCommand_AccuracyUp2: ; 361dc
+BattleCommand_AccuracyUp2:
; accuracyup2
ld b, $10 | ACCURACY
jr BattleCommand_StatUp
-BattleCommand_EvasionUp2: ; 361e0
+BattleCommand_EvasionUp2:
; evasionup2
ld b, $10 | EVASION
jr BattleCommand_StatUp
-BattleCommand_StatUp: ; 361e4
+BattleCommand_StatUp:
; statup
call CheckIfStatCanBeRaised
ld a, [wFailedMessage]
@@ -4480,10 +4191,7 @@ BattleCommand_StatUp: ; 361e4
ret nz
jp StatUpAnimation
-; 361ef
-
-
-CheckIfStatCanBeRaised: ; 361ef
+CheckIfStatCanBeRaised:
ld a, b
ld [wLoweredStat], a
ld hl, wPlayerStatLevels
@@ -4562,35 +4270,24 @@ CheckIfStatCanBeRaised: ; 361ef
ld [wFailedMessage], a
ret
-; 3626e
-
-
-.stats_already_max ; 3626e
+.stats_already_max
pop hl
dec [hl]
; fallthrough
-; 36270
-
-.cant_raise_stat ; 36270
+.cant_raise_stat
ld a, $2
ld [wFailedMessage], a
ld a, $1
ld [wAttackMissed], a
ret
-; 3627b
-
-
-.stat_raise_failed ; 3627b
+.stat_raise_failed
ld a, $1
ld [wFailedMessage], a
ret
-; 36281
-
-
-StatUpAnimation: ; 36281
+StatUpAnimation:
ld bc, wPlayerMinimized
ld hl, DropPlayerSub
ld a, [hBattleTurn]
@@ -4615,79 +4312,76 @@ StatUpAnimation: ; 36281
call WaitBGMap
jp BattleCommand_MoveDelay
-; 362ad
-
-
-BattleCommand_AttackDown: ; 362ad
+BattleCommand_AttackDown:
; attackdown
ld a, ATTACK
jr BattleCommand_StatDown
-BattleCommand_DefenseDown: ; 362b1
+BattleCommand_DefenseDown:
; defensedown
ld a, DEFENSE
jr BattleCommand_StatDown
-BattleCommand_SpeedDown: ; 362b5
+BattleCommand_SpeedDown:
; speeddown
ld a, SPEED
jr BattleCommand_StatDown
-BattleCommand_SpecialAttackDown: ; 362b9
+BattleCommand_SpecialAttackDown:
; specialattackdown
ld a, SP_ATTACK
jr BattleCommand_StatDown
-BattleCommand_SpecialDefenseDown: ; 362bd
+BattleCommand_SpecialDefenseDown:
; specialdefensedown
ld a, SP_DEFENSE
jr BattleCommand_StatDown
-BattleCommand_AccuracyDown: ; 362c1
+BattleCommand_AccuracyDown:
; accuracydown
ld a, ACCURACY
jr BattleCommand_StatDown
-BattleCommand_EvasionDown: ; 362c5
+BattleCommand_EvasionDown:
; evasiondown
ld a, EVASION
jr BattleCommand_StatDown
-BattleCommand_AttackDown2: ; 362c9
+BattleCommand_AttackDown2:
; attackdown2
ld a, $10 | ATTACK
jr BattleCommand_StatDown
-BattleCommand_DefenseDown2: ; 362cd
+BattleCommand_DefenseDown2:
; defensedown2
ld a, $10 | DEFENSE
jr BattleCommand_StatDown
-BattleCommand_SpeedDown2: ; 362d1
+BattleCommand_SpeedDown2:
; speeddown2
ld a, $10 | SPEED
jr BattleCommand_StatDown
-BattleCommand_SpecialAttackDown2: ; 362d5
+BattleCommand_SpecialAttackDown2:
; specialattackdown2
ld a, $10 | SP_ATTACK
jr BattleCommand_StatDown
-BattleCommand_SpecialDefenseDown2: ; 362d9
+BattleCommand_SpecialDefenseDown2:
; specialdefensedown2
ld a, $10 | SP_DEFENSE
jr BattleCommand_StatDown
-BattleCommand_AccuracyDown2: ; 362dd
+BattleCommand_AccuracyDown2:
; accuracydown2
ld a, $10 | ACCURACY
jr BattleCommand_StatDown
-BattleCommand_EvasionDown2: ; 362e1
+BattleCommand_EvasionDown2:
; evasiondown2
ld a, $10 | EVASION
-BattleCommand_StatDown: ; 362e3
+BattleCommand_StatDown:
; statdown
ld [wLoweredStat], a
@@ -4810,10 +4504,7 @@ BattleCommand_StatDown: ; 362e3
ld [wAttackMissed], a
ret
-; 36391
-
-
-CheckMist: ; 36391
+CheckMist:
ld a, BATTLE_VARS_MOVE_EFFECT
call GetBattleVar
cp EFFECT_ATTACK_DOWN
@@ -4838,10 +4529,7 @@ CheckMist: ; 36391
bit SUBSTATUS_MIST, a
ret
-; 363b8
-
-
-BattleCommand_StatUpMessage: ; 363b8
+BattleCommand_StatUpMessage:
ld a, [wFailedMessage]
and a
ret nz
@@ -4871,10 +4559,7 @@ BattleCommand_StatUpMessage: ; 363b8
text_jump UnknownText_0x1c0ce0
db "@"
-; 363e9
-
-
-BattleCommand_StatDownMessage: ; 363e9
+BattleCommand_StatDownMessage:
ld a, [wFailedMessage]
and a
ret nz
@@ -4903,10 +4588,7 @@ BattleCommand_StatDownMessage: ; 363e9
text_jump UnknownText_0x1c0d06
db "@"
-; 3641a
-
-
-TryLowerStat: ; 3641a
+TryLowerStat:
; Lower stat c from stat struct hl (buffer de).
push bc
@@ -4949,10 +4631,7 @@ TryLowerStat: ; 3641a
and a
ret
-; 3644c
-
-
-BattleCommand_StatUpFailText: ; 3644c
+BattleCommand_StatUpFailText:
; statupfailtext
ld a, [wFailedMessage]
and a
@@ -4970,10 +4649,7 @@ BattleCommand_StatUpFailText: ; 3644c
ld hl, WontRiseAnymoreText
jp StdBattleTextBox
-; 3646a
-
-
-BattleCommand_StatDownFailText: ; 3646a
+BattleCommand_StatDownFailText:
; statdownfailtext
ld a, [wFailedMessage]
and a
@@ -4994,10 +4670,7 @@ BattleCommand_StatDownFailText: ; 3646a
ld hl, WontDropAnymoreText
jp StdBattleTextBox
-; 3648f
-
-
-GetStatName: ; 3648f
+GetStatName:
ld hl, StatNames
ld c, "@"
.CheckName:
@@ -5016,11 +4689,9 @@ GetStatName: ; 3648f
INCLUDE "data/battle/stat_names.asm"
-
INCLUDE "data/battle/stat_multipliers.asm"
-
-BattleCommand_AllStatsUp: ; 36500
+BattleCommand_AllStatsUp:
; allstatsup
; Attack
@@ -5047,18 +4718,13 @@ BattleCommand_AllStatsUp: ; 36500
call ResetMiss
call BattleCommand_SpecialDefenseUp
jp BattleCommand_StatUpMessage
-; 3652d
-
-ResetMiss: ; 3652d
+ResetMiss:
xor a
ld [wAttackMissed], a
ret
-; 36532
-
-
-LowerStat: ; 36532
+LowerStat:
ld [wLoweredStat], a
ld hl, wPlayerStatLevels
@@ -5129,10 +4795,7 @@ LowerStat: ; 36532
ld [wFailedMessage], a
ret
-; 3658f
-
-
-BattleCommand_TriStatusChance: ; 3658f
+BattleCommand_TriStatusChance:
; tristatuschance
call BattleCommand_EffectChance
@@ -5152,20 +4815,15 @@ BattleCommand_TriStatusChance: ; 3658f
dw BattleCommand_ParalyzeTarget ; paralyze
dw BattleCommand_FreezeTarget ; freeze
dw BattleCommand_BurnTarget ; burn
-; 365a7
-
-BattleCommand_Curl: ; 365a7
+BattleCommand_Curl:
; curl
ld a, BATTLE_VARS_SUBSTATUS2
call GetBattleVarAddr
set SUBSTATUS_CURLED, [hl]
ret
-; 365af
-
-
-BattleCommand_RaiseSubNoAnim: ; 365af
+BattleCommand_RaiseSubNoAnim:
ld hl, GetBattleMonBackpic
ld a, [hBattleTurn]
and a
@@ -5177,10 +4835,7 @@ BattleCommand_RaiseSubNoAnim: ; 365af
call CallBattleCore
jp WaitBGMap
-; 365c3
-
-
-BattleCommand_LowerSubNoAnim: ; 365c3
+BattleCommand_LowerSubNoAnim:
ld hl, DropPlayerSub
ld a, [hBattleTurn]
and a
@@ -5192,10 +4847,7 @@ BattleCommand_LowerSubNoAnim: ; 365c3
call CallBattleCore
jp WaitBGMap
-; 365d7
-
-
-CalcPlayerStats: ; 365d7
+CalcPlayerStats:
ld hl, wPlayerAtkLevel
ld de, wPlayerStats
ld bc, wBattleMonAttack
@@ -5216,10 +4868,7 @@ CalcPlayerStats: ; 365d7
jp BattleCommand_SwitchTurn
-; 365fd
-
-
-CalcEnemyStats: ; 365fd
+CalcEnemyStats:
ld hl, wEnemyAtkLevel
ld de, wEnemyStats
ld bc, wEnemyMonAttack
@@ -5237,10 +4886,7 @@ CalcEnemyStats: ; 365fd
jp BattleCommand_SwitchTurn
-; 3661d
-
-
-CalcStats: ; 3661d
+CalcStats:
.loop
push af
ld a, [hli]
@@ -5309,13 +4955,9 @@ CalcStats: ; 3661d
ret
-; 36671
-
-
INCLUDE "engine/battle/move_effects/bide.asm"
-
-BattleCommand_CheckRampage: ; 3671a
+BattleCommand_CheckRampage:
; checkrampage
ld de, wPlayerRolloutCount
@@ -5352,10 +4994,7 @@ BattleCommand_CheckRampage: ; 3671a
ld b, rampage_command
jp SkipToBattleCommand
-; 36751
-
-
-BattleCommand_Rampage: ; 36751
+BattleCommand_Rampage:
; rampage
; No rampage during Sleep Talk.
@@ -5382,23 +5021,16 @@ BattleCommand_Rampage: ; 36751
ld [wSomeoneIsRampaging], a
ret
-; 36778
-
-
INCLUDE "engine/battle/move_effects/teleport.asm"
-
-SetBattleDraw: ; 36804
+SetBattleDraw:
ld a, [wBattleResult]
and BATTLERESULT_BITMASK
or DRAW
ld [wBattleResult], a
ret
-; 3680f
-
-
-BattleCommand_ForceSwitch: ; 3680f
+BattleCommand_ForceSwitch:
; forceswitch
ld a, [wBattleType]
@@ -5617,10 +5249,7 @@ BattleCommand_ForceSwitch: ; 3680f
.do_text
jp StdBattleTextBox
-; 36994
-
-
-CheckPlayerHasMonToSwitchTo: ; 36994
+CheckPlayerHasMonToSwitchTo:
ld a, [wPartyCount]
ld d, a
ld e, 0
@@ -5649,10 +5278,7 @@ CheckPlayerHasMonToSwitchTo: ; 36994
and a
ret
-; 369b6
-
-
-BattleCommand_EndLoop: ; 369b6
+BattleCommand_EndLoop:
; endloop
; Loop back to 'critical'.
@@ -5786,10 +5412,7 @@ BattleCommand_EndLoop: ; 369b6
ld [wBattleScriptBufferAddress], a
ret
-; 36a82
-
-
-BattleCommand_FakeOut: ; 36a82
+BattleCommand_FakeOut:
ld a, [wAttackMissed]
and a
ret nz
@@ -5810,10 +5433,7 @@ BattleCommand_FakeOut: ; 36a82
ld [wAttackMissed], a
ret
-; 36aa0
-
-
-BattleCommand_FlinchTarget: ; 36aa0
+BattleCommand_FlinchTarget:
call CheckSubstituteOpp
ret nz
@@ -5830,19 +5450,14 @@ BattleCommand_FlinchTarget: ; 36aa0
ret nz
; fallthrough
-; 36ab5
-
-FlinchTarget: ; 36ab5
+FlinchTarget:
ld a, BATTLE_VARS_SUBSTATUS3_OPP
call GetBattleVarAddr
set SUBSTATUS_FLINCHED, [hl]
jp EndRechargeOpp
-; 36abf
-
-
-CheckOpponentWentFirst: ; 36abf
+CheckOpponentWentFirst:
; Returns a=0, z if user went first
; Returns a=1, nz if opponent went first
push bc
@@ -5853,10 +5468,7 @@ CheckOpponentWentFirst: ; 36abf
pop bc
ret
-; 36ac9
-
-
-BattleCommand_HeldFlinch: ; 36ac9
+BattleCommand_HeldFlinch:
; kingsrock
ld a, [wAttackMissed]
@@ -5884,10 +5496,7 @@ BattleCommand_HeldFlinch: ; 36ac9
set SUBSTATUS_FLINCHED, [hl]
ret
-; 36af3
-
-
-BattleCommand_OHKO: ; 36af3
+BattleCommand_OHKO:
; ohko
call ResetDamage
@@ -5933,10 +5542,7 @@ BattleCommand_OHKO: ; 36af3
ld [wAttackMissed], a
ret
-; 36b3a
-
-
-BattleCommand_CheckCharge: ; 36b3a
+BattleCommand_CheckCharge:
; checkcharge
ld a, BATTLE_VARS_SUBSTATUS3
@@ -5949,10 +5555,7 @@ BattleCommand_CheckCharge: ; 36b3a
ld b, charge_command
jp SkipToBattleCommand
-; 36b4d
-
-
-BattleCommand_Charge: ; 36b4d
+BattleCommand_Charge:
; charge
call BattleCommand_ClearText
@@ -6092,17 +5695,12 @@ BattleCommand_Charge: ; 36b4d
; 'dug a hole!'
text_jump UnknownText_0x1c0d6c
db "@"
-; 36c2c
-
-BattleCommand3c: ; 36c2c
+BattleCommand3c:
; unused
ret
-; 36c2d
-
-
-BattleCommand_TrapTarget: ; 36c2d
+BattleCommand_TrapTarget:
; traptarget
ld a, [wAttackMissed]
@@ -6157,15 +5755,12 @@ BattleCommand_TrapTarget: ; 36c2d
dbw FIRE_SPIN, FireSpinTrapText ; 'was trapped!'
dbw CLAMP, ClampedByText ; 'was CLAMPED by'
dbw WHIRLPOOL, WhirlpoolTrapText ; 'was trapped!'
-; 36c7e
-
INCLUDE "engine/battle/move_effects/mist.asm"
INCLUDE "engine/battle/move_effects/focus_energy.asm"
-
-BattleCommand_Recoil: ; 36cb2
+BattleCommand_Recoil:
; recoil
ld hl, wBattleMonMaxHP
@@ -6229,10 +5824,7 @@ BattleCommand_Recoil: ; 36cb2
ld hl, RecoilText
jp StdBattleTextBox
-; 36d1d
-
-
-BattleCommand_ConfuseTarget: ; 36d1d
+BattleCommand_ConfuseTarget:
; confusetarget
call GetOpponentItem
@@ -6252,8 +5844,7 @@ BattleCommand_ConfuseTarget: ; 36d1d
ret nz
jr BattleCommand_FinishConfusingTarget
-
-BattleCommand_Confuse: ; 36d3b
+BattleCommand_Confuse:
; confuse
call GetOpponentItem
@@ -6282,7 +5873,7 @@ BattleCommand_Confuse: ; 36d3b
ld a, [wAttackMissed]
and a
jr nz, BattleCommand_Confuse_CheckSnore_Swagger_ConfuseHit
-BattleCommand_FinishConfusingTarget: ; 36d70
+BattleCommand_FinishConfusingTarget:
ld bc, wEnemyConfuseCount
ld a, [hBattleTurn]
and a
@@ -6325,9 +5916,7 @@ BattleCommand_FinishConfusingTarget: ; 36d70
ld hl, UseConfusionHealingItem
jp CallBattleCore
-; 36db6
-
-BattleCommand_Confuse_CheckSnore_Swagger_ConfuseHit: ; 36db6
+BattleCommand_Confuse_CheckSnore_Swagger_ConfuseHit:
ld a, BATTLE_VARS_MOVE_EFFECT
call GetBattleVar
cp EFFECT_CONFUSE_HIT
@@ -6338,10 +5927,7 @@ BattleCommand_Confuse_CheckSnore_Swagger_ConfuseHit: ; 36db6
ret z
jp PrintDidntAffect2
-; 36dc7
-
-
-BattleCommand_Paralyze: ; 36dc7
+BattleCommand_Paralyze:
; paralyze
ld a, BATTLE_VARS_STATUS_OPP
@@ -6421,10 +6007,7 @@ BattleCommand_Paralyze: ; 36dc7
call AnimateFailedMove
jp PrintDoesntAffect
-; 36e5b
-
-
-CheckMoveTypeMatchesTarget: ; 36e5b
+CheckMoveTypeMatchesTarget:
; Compare move type to opponent type.
; Return z if matching the opponent type,
; unless the move is Normal (Tri Attack).
@@ -6459,23 +6042,16 @@ CheckMoveTypeMatchesTarget: ; 36e5b
pop hl
ret
-; 36e7c
-
-
INCLUDE "engine/battle/move_effects/substitute.asm"
-
-BattleCommand_RechargeNextTurn: ; 36f0b
+BattleCommand_RechargeNextTurn:
; rechargenextturn
ld a, BATTLE_VARS_SUBSTATUS4
call GetBattleVarAddr
set SUBSTATUS_RECHARGE, [hl]
ret
-; 36f13
-
-
-EndRechargeOpp: ; 36f13
+EndRechargeOpp:
push hl
ld a, BATTLE_VARS_SUBSTATUS4_OPP
call GetBattleVarAddr
@@ -6483,13 +6059,9 @@ EndRechargeOpp: ; 36f13
pop hl
ret
-; 36f1d
-
-
INCLUDE "engine/battle/move_effects/rage.asm"
-
-BattleCommand_DoubleFlyingDamage: ; 36f25
+BattleCommand_DoubleFlyingDamage:
; doubleflyingdamage
ld a, BATTLE_VARS_SUBSTATUS3_OPP
call GetBattleVar
@@ -6497,10 +6069,7 @@ BattleCommand_DoubleFlyingDamage: ; 36f25
ret z
jr DoubleDamage
-; 36f2f
-
-
-BattleCommand_DoubleUndergroundDamage: ; 36f2f
+BattleCommand_DoubleUndergroundDamage:
; doubleundergrounddamage
ld a, BATTLE_VARS_SUBSTATUS3_OPP
call GetBattleVar
@@ -6508,10 +6077,8 @@ BattleCommand_DoubleUndergroundDamage: ; 36f2f
ret z
; fallthrough
-; 36f37
-
-DoubleDamage: ; 36f37
+DoubleDamage:
ld hl, wCurDamage + 1
sla [hl]
dec hl
@@ -6524,9 +6091,6 @@ DoubleDamage: ; 36f37
.quit
ret
-; 36f46
-
-
INCLUDE "engine/battle/move_effects/mimic.asm"
INCLUDE "engine/battle/move_effects/leech_seed.asm"
@@ -6539,8 +6103,7 @@ INCLUDE "engine/battle/move_effects/pay_day.asm"
INCLUDE "engine/battle/move_effects/conversion.asm"
-
-BattleCommand_ResetStats: ; 3710e
+BattleCommand_ResetStats:
; resetstats
ld a, 7 ; neutral
@@ -6573,10 +6136,7 @@ BattleCommand_ResetStats: ; 3710e
jr nz, .next
ret
-; 3713e
-
-
-BattleCommand_Heal: ; 3713e
+BattleCommand_Heal:
; heal
ld de, wBattleMonHP
@@ -6658,13 +6218,9 @@ BattleCommand_Heal: ; 3713e
ld hl, HPIsFullText
jp StdBattleTextBox
-; 371cd
-
-
INCLUDE "engine/battle/move_effects/transform.asm"
-
-BattleSideCopy: ; 372c6
+BattleSideCopy:
; Copy bc bytes from hl to de if it's the player's turn.
; Copy bc bytes from de to hl if it's the enemy's turn.
ld a, [hBattleTurn]
@@ -6679,17 +6235,11 @@ BattleSideCopy: ; 372c6
.copy
jp CopyBytes
-; 372d2
-
-
-BattleEffect_ButItFailed: ; 372d2
+BattleEffect_ButItFailed:
call AnimateFailedMove
jp PrintButItFailed
-; 372d8
-
-
-ClearLastMove: ; 372d8
+ClearLastMove:
ld a, BATTLE_VARS_LAST_COUNTER_MOVE
call GetBattleVarAddr
xor a
@@ -6701,10 +6251,7 @@ ClearLastMove: ; 372d8
ld [hl], a
ret
-; 372e7
-
-
-ResetActorDisable: ; 372e7
+ResetActorDisable:
ld a, [hBattleTurn]
and a
jr z, .player
@@ -6720,10 +6267,7 @@ ResetActorDisable: ; 372e7
ld [wDisabledMove], a
ret
-; 372fc
-
-
-BattleCommand_Screen: ; 372fc
+BattleCommand_Screen:
; screen
ld hl, wPlayerScreens
@@ -6768,97 +6312,66 @@ BattleCommand_Screen: ; 372fc
call AnimateFailedMove
jp PrintButItFailed
-; 3733d
-
-
-PrintDoesntAffect: ; 3733d
+PrintDoesntAffect:
; 'it doesn't affect'
ld hl, DoesntAffectText
jp StdBattleTextBox
-; 37343
-
-
-PrintNothingHappened: ; 37343
+PrintNothingHappened:
; 'but nothing happened!'
ld hl, NothingHappenedText
jp StdBattleTextBox
-; 37349
-
-
-TryPrintButItFailed: ; 37349
+TryPrintButItFailed:
ld a, [wAlreadyFailed]
and a
ret nz
; fallthrough
-; 3734e
-
-PrintButItFailed: ; 3734e
+PrintButItFailed:
; 'but it failed!'
ld hl, ButItFailedText
jp StdBattleTextBox
-; 37354
-
-
FailMove:
call AnimateFailedMove
; fallthrough
-; 37357
-FailMimic: ; 37357
+FailMimic:
ld hl, ButItFailedText ; 'but it failed!'
ld de, ItFailedText ; 'it failed!'
jp FailText_CheckOpponentProtect
-; 37360
-
-
-PrintDidntAffect: ; 37360
+PrintDidntAffect:
; 'it didn't affect'
ld hl, DidntAffect1Text
jp StdBattleTextBox
-; 37366
-
-
-PrintDidntAffect2: ; 37366
+PrintDidntAffect2:
call AnimateFailedMove
ld hl, DidntAffect1Text ; 'it didn't affect'
ld de, DidntAffect2Text ; 'it didn't affect'
jp FailText_CheckOpponentProtect
-; 37372
-
-
-PrintParalyze: ; 37372
+PrintParalyze:
; 'paralyzed! maybe it can't attack!'
ld hl, ParalyzedText
jp StdBattleTextBox
-; 37378
-
-
-CheckSubstituteOpp: ; 37378
+CheckSubstituteOpp:
ld a, BATTLE_VARS_SUBSTATUS4_OPP
call GetBattleVar
bit SUBSTATUS_SUBSTITUTE, a
ret
-; 37380
-
-
INCLUDE "engine/battle/move_effects/selfdestruct.asm"
INCLUDE "engine/battle/move_effects/mirror_move.asm"
INCLUDE "engine/battle/move_effects/metronome.asm"
-
-CheckUserMove: ; 37462
+CheckUserMove:
; Return z if the user has move a.
ld b, a
ld de, wBattleMonMoves
@@ -6882,10 +6395,7 @@ CheckUserMove: ; 37462
and a
ret
-; 3747b
-
-
-ResetTurn: ; 3747b
+ResetTurn:
ld hl, wPlayerCharging
ld a, [hBattleTurn]
and a
@@ -6899,13 +6409,9 @@ ResetTurn: ; 3747b
call DoMove
jp EndMoveEffect
-; 37492
-
-
INCLUDE "engine/battle/move_effects/thief.asm"
-
-BattleCommand_ArenaTrap: ; 37517
+BattleCommand_ArenaTrap:
; arenatrap
; Doesn't work on an absent opponent.
@@ -6931,13 +6437,9 @@ BattleCommand_ArenaTrap: ; 37517
call AnimateFailedMove
jp PrintButItFailed
-; 37536
-
-
INCLUDE "engine/battle/move_effects/nightmare.asm"
-
-BattleCommand_Defrost: ; 37563
+BattleCommand_Defrost:
; defrost
; Thaw the user.
@@ -6968,9 +6470,6 @@ BattleCommand_Defrost: ; 37563
ld hl, WasDefrostedText
jp StdBattleTextBox
-; 37588
-
-
INCLUDE "engine/battle/move_effects/curse.asm"
INCLUDE "engine/battle/move_effects/protect.asm"
@@ -6987,14 +6486,10 @@ INCLUDE "engine/battle/move_effects/sandstorm.asm"
INCLUDE "engine/battle/move_effects/rollout.asm"
-
-BattleCommand5d: ; 37791
+BattleCommand5d:
; unused
ret
-; 37792
-
-
INCLUDE "engine/battle/move_effects/fury_cutter.asm"
INCLUDE "engine/battle/move_effects/attract.asm"
@@ -7007,8 +6502,7 @@ INCLUDE "engine/battle/move_effects/frustration.asm"
INCLUDE "engine/battle/move_effects/safeguard.asm"
-
-SafeCheckSafeguard: ; 37962
+SafeCheckSafeguard:
push hl
ld hl, wEnemyScreens
ld a, [hBattleTurn]
@@ -7021,10 +6515,7 @@ SafeCheckSafeguard: ; 37962
pop hl
ret
-; 37972
-
-
-BattleCommand_CheckSafeguard: ; 37972
+BattleCommand_CheckSafeguard:
; checksafeguard
ld hl, wEnemyScreens
ld a, [hBattleTurn]
@@ -7041,9 +6532,6 @@ BattleCommand_CheckSafeguard: ; 37972
call StdBattleTextBox
jp EndMoveEffect
-; 37991
-
-
INCLUDE "engine/battle/move_effects/magnitude.asm"
INCLUDE "engine/battle/move_effects/baton_pass.asm"
@@ -7052,28 +6540,22 @@ INCLUDE "engine/battle/move_effects/pursuit.asm"
INCLUDE "engine/battle/move_effects/rapid_spin.asm"
-
-BattleCommand_HealMorn: ; 37b74
+BattleCommand_HealMorn:
; healmorn
ld b, MORN_F
jr BattleCommand_TimeBasedHealContinue
-; 37b78
-
-BattleCommand_HealDay: ; 37b78
+BattleCommand_HealDay:
; healday
ld b, DAY_F
jr BattleCommand_TimeBasedHealContinue
-; 37b7c
-
-BattleCommand_HealNite: ; 37b7c
+BattleCommand_HealNite:
; healnite
ld b, NITE_F
; fallthrough
-; 37b7e
-BattleCommand_TimeBasedHealContinue: ; 37b7e
+BattleCommand_TimeBasedHealContinue:
; Time- and weather-sensitive heal.
ld hl, wBattleMonMaxHP
@@ -7154,8 +6636,6 @@ BattleCommand_TimeBasedHealContinue: ; 37b7e
dw GetQuarterMaxHP
dw GetHalfMaxHP
dw GetMaxHP
-; 37be8
-
INCLUDE "engine/battle/move_effects/hidden_power.asm"
@@ -7169,8 +6649,7 @@ INCLUDE "engine/battle/move_effects/psych_up.asm"
INCLUDE "engine/battle/move_effects/mirror_coat.asm"
-
-BattleCommand_DoubleMinimizeDamage: ; 37ce6
+BattleCommand_DoubleMinimizeDamage:
; doubleminimizedamage
ld hl, wEnemyMinimized
@@ -7192,10 +6671,7 @@ BattleCommand_DoubleMinimizeDamage: ; 37ce6
ld [hl], a
ret
-; 37d02
-
-
-BattleCommand_SkipSunCharge: ; 37d02
+BattleCommand_SkipSunCharge:
; mimicsuncharge
ld a, [wBattleWeather]
cp WEATHER_SUN
@@ -7203,25 +6679,18 @@ BattleCommand_SkipSunCharge: ; 37d02
ld b, charge_command
jp SkipToBattleCommand
-; 37d0d
-
-
INCLUDE "engine/battle/move_effects/future_sight.asm"
INCLUDE "engine/battle/move_effects/thunder.asm"
-
-CheckHiddenOpponent: ; 37daa
+CheckHiddenOpponent:
; BUG: This routine should account for Lock-On and Mind Reader.
ld a, BATTLE_VARS_SUBSTATUS3_OPP
call GetBattleVar
and 1 << SUBSTATUS_FLYING | 1 << SUBSTATUS_UNDERGROUND
ret
-; 37db2
-
-
-GetUserItem: ; 37db2
+GetUserItem:
; Return the effect of the user's item in bc, and its id at hl.
ld hl, wBattleMonItem
ld a, [hBattleTurn]
@@ -7232,10 +6701,7 @@ GetUserItem: ; 37db2
ld b, [hl]
jp GetItemHeldEffect
-; 37dc1
-
-
-GetOpponentItem: ; 37dc1
+GetOpponentItem:
; Return the effect of the opponent's item in bc, and its id at hl.
ld hl, wEnemyMonItem
ld a, [hBattleTurn]
@@ -7246,10 +6712,7 @@ GetOpponentItem: ; 37dc1
ld b, [hl]
jp GetItemHeldEffect
-; 37dd0
-
-
-GetItemHeldEffect: ; 37dd0
+GetItemHeldEffect:
; Return the effect of item b in bc.
ld a, b
and a
@@ -7269,10 +6732,7 @@ GetItemHeldEffect: ; 37dd0
pop hl
ret
-; 37de9
-
-
-AnimateCurrentMoveEitherSide: ; 37de9
+AnimateCurrentMoveEitherSide:
push hl
push de
push bc
@@ -7288,10 +6748,7 @@ AnimateCurrentMoveEitherSide: ; 37de9
pop hl
ret
-; 37e01
-
-
-AnimateCurrentMove: ; 37e01
+AnimateCurrentMove:
push hl
push de
push bc
@@ -7307,10 +6764,7 @@ AnimateCurrentMove: ; 37e01
pop hl
ret
-; 37e19
-
-
-PlayDamageAnim: ; 37e19
+PlayDamageAnim:
xor a
ld [wFXAnimID + 1], a
@@ -7332,10 +6786,7 @@ PlayDamageAnim: ; 37e19
jp PlayUserBattleAnim
-; 37e36
-
-
-LoadMoveAnim: ; 37e36
+LoadMoveAnim:
xor a
ld [wNumHits], a
ld [wFXAnimID + 1], a
@@ -7346,17 +6797,13 @@ LoadMoveAnim: ; 37e36
ret z
; fallthrough
-; 37e44
-
-LoadAnim: ; 37e44
+LoadAnim:
ld [wFXAnimID], a
; fallthrough
-; 37e47
-
-PlayUserBattleAnim: ; 37e47
+PlayUserBattleAnim:
push hl
push de
push bc
@@ -7366,10 +6813,7 @@ PlayUserBattleAnim: ; 37e47
pop hl
ret
-; 37e54
-
-
-PlayOpponentBattleAnim: ; 37e54
+PlayOpponentBattleAnim:
ld a, e
ld [wFXAnimID], a
ld a, d
@@ -7390,35 +6834,23 @@ PlayOpponentBattleAnim: ; 37e54
pop hl
ret
-; 37e73
-
-
-CallBattleCore: ; 37e73
- ld a, BANK(BattleCore)
+CallBattleCore:
+ ld a, BANK("Battle Core")
rst FarCall
ret
-; 37e77
-
-
-AnimateFailedMove: ; 37e77
+AnimateFailedMove:
call BattleCommand_LowerSub
call BattleCommand_MoveDelay
jp BattleCommand_RaiseSub
-; 37e80
-
-
-BattleCommand_MoveDelay: ; 37e80
+BattleCommand_MoveDelay:
; movedelay
; Wait 40 frames.
ld c, 40
jp DelayFrames
-; 37e85
-
-
-BattleCommand_ClearText: ; 37e85
+BattleCommand_ClearText:
; cleartext
; Used in multi-hit moves.
@@ -7427,10 +6859,8 @@ BattleCommand_ClearText: ; 37e85
.text
db "@"
-; 37e8c
-
-SkipToBattleCommand: ; 37e8c
+SkipToBattleCommand:
; Skip over commands until reaching command b.
ld a, [wBattleScriptBufferAddress + 1]
ld h, a
@@ -7447,10 +6877,7 @@ SkipToBattleCommand: ; 37e8c
ld [wBattleScriptBufferAddress], a
ret
-; 37ea1
-
-
-GetMoveAttr: ; 37ea1
+GetMoveAttr:
; Assuming hl = Moves + x, return attribute x of move a.
push bc
ld bc, MOVE_LENGTH
@@ -7459,49 +6886,31 @@ GetMoveAttr: ; 37ea1
pop bc
ret
-; 37ead
-
-
-GetMoveData: ; 37ead
+GetMoveData:
; Copy move struct a to de.
ld hl, Moves
ld bc, MOVE_LENGTH
call AddNTimes
- ld a, Bank(Moves)
+ ld a, BANK(Moves)
jp FarCopyBytes
-; 37ebb
-
-
-GetMoveByte: ; 37ebb
+GetMoveByte:
ld a, BANK(Moves)
jp GetFarByte
-; 37ec0
-
-
-DisappearUser: ; 37ec0
+DisappearUser:
farcall _DisappearUser
ret
-; 37ec7
-
-
-AppearUserLowerSub: ; 37ec7
+AppearUserLowerSub:
farcall _AppearUserLowerSub
ret
-; 37ece
-
-
-AppearUserRaiseSub: ; 37ece
+AppearUserRaiseSub:
farcall _AppearUserRaiseSub
ret
-; 37ed5
-
-
-_CheckBattleScene: ; 37ed5
+_CheckBattleScene:
; Checks the options. Returns carry if battle animations are disabled.
push hl
push de
@@ -7511,5 +6920,3 @@ _CheckBattleScene: ; 37ed5
pop de
pop hl
ret
-
-; 37ee2