ref: 94c9f59f459e7a96c9e1febfac45e20e5bfce759
parent: 056c2403667a6670815528e220b4e1e4ea974e32
parent: 08a0462c1e588c2efb99097cf1e9b314f600b009
author: Bryan Bishop <[email protected]>
date: Mon Jan 27 01:51:01 EST 2014
Merge pull request #224 from yenatch/moves Clean up the battle core and specify type categories
--- a/battle/ai/scoring.asm
+++ b/battle/ai/scoring.asm
@@ -162,7 +162,7 @@
push de
ld a, 1
ld [hBattleTurn], a
- callab Function0x347c8
+ callab Function347c8
pop de
pop bc
pop hl
@@ -412,7 +412,7 @@
push hl
ld a, 1
ld [hBattleTurn], a
- callab Function0x347c8
+ callab Function347c8
pop hl
ld a, [$d265]
@@ -559,7 +559,7 @@
AIScoring_Explosion: ; 388a6
push hl
- callba Function0x349f4
+ callba Function349f4
pop hl
jr nc, .asm_388b7
@@ -904,7 +904,7 @@
AIScoring_Whirlwind: ; 38a2a
push hl
- callab Function0x3484e
+ callab Function3484e
ld a, [$c716]
cp $a
pop hl
@@ -1760,7 +1760,7 @@
jr nz, .asm_38e26
push hl
- callab Function0x3484e
+ callab Function3484e
ld a, [$c716]
cp $b
pop hl
@@ -1874,7 +1874,7 @@
jp nz, AIDiscourageMove
push hl
- callba Function0x349f4
+ callba Function349f4
pop hl
jr nc, .asm_38eb0
@@ -2003,7 +2003,7 @@
AIScoring_PerishSong: ; 38f4a
push hl
- callab Function0x349f4
+ callab Function349f4
pop hl
jr c, .asm_38f75
@@ -2012,7 +2012,7 @@
jr nz, .asm_38f6f
push hl
- callab Function0x3484e
+ callab Function3484e
ld a, [$c716]
cp 10 ; 1.0
pop hl
@@ -2242,7 +2242,7 @@
AIScoring_BatonPass: ; 39062
push hl
- callab Function0x3484e
+ callab Function3484e
ld a, [$c716]
cp 10 ; 1.0
pop hl
@@ -2299,7 +2299,7 @@
ld hl, $7ced
ld a, $3e
rst FarCall
- callab Function0x347c8
+ callab Function347c8
pop hl
ld a, [$d265]
@@ -3223,7 +3223,7 @@
push de
ld a, 1
ld [hBattleTurn], a
- callab Function0x347c8
+ callab Function347c8
pop de
pop bc
pop hl
--- a/battle/anim_commands.asm
+++ b/battle/anim_commands.asm
@@ -1430,7 +1430,7 @@
ld e, [hl]
inc hl
ld d, [hl]
- ld hl, $506f
+ ld hl, BattleAnimations
add hl, de
add hl, de
call Function3ae1
--- a/battle/core.asm
+++ b/battle/core.asm
@@ -1,3 +1,5 @@
+BattleCore:
+
; Core components of the battle engine.
@@ -26,11 +28,10 @@
ld a, [InLinkBattle]
and a
jr z, .asm_3c031
+
ld a, [$ffcb]
cp $2
-.data_3c02f
- db $28
- db $1b
+ jr z, .asm_3c04c
.asm_3c031
ld a, [IsInBattle]
@@ -38,14 +39,16 @@
jr z, .asm_3c047
xor a
ld [$c718], a
- call Function3d834
- call Function3d867
- call Function3dc18
+ call NewEnemyMonStatus
+ call ResetEnemyStatLevels
+ call BreakAttraction
call Function3d4e1
.asm_3c047
- ld c, $28
+ ld c, 40
call DelayFrames
+
+.asm_3c04c
call Function309d
call Function3d873
ld a, d
@@ -85,15 +88,15 @@
call Function309d
call Function3d57a
call Function3da0d
- call Function3dab1
+ call ResetPlayerStatLevels
call Function3f26d
- call Function3dbde
- call Function3dc18
+ call NewBattleMonStatus
+ call BreakAttraction
call Function3db5f
call EmptyBattleTextBox
call Function309d
call SetPlayerTurn
- call Function3dc23
+ call SpikesDamage
ld a, [InLinkBattle]
and a
jr z, .asm_3c0df
@@ -102,12 +105,12 @@
jr nz, .asm_3c0df
xor a
ld [$c718], a
- call Function3d834
- call Function3d867
- call Function3dc18
+ call NewEnemyMonStatus
+ call ResetEnemyStatLevels
+ call BreakAttraction
call Function3d4e1
call SetEnemyTurn
- call Function3dc23
+ call SpikesDamage
.asm_3c0df
jp Function3c12f
@@ -127,18 +130,18 @@
ld [$d0ee], a
ld a, [InLinkBattle]
and a
- ld hl, $47bd
+ ld hl, BattleText_0x807bd
jr z, .asm_3c115
ld a, [$d0ee]
and $c0
ld [$d0ee], a
- ld hl, $47cf
+ ld hl, BattleText_0x807cf
call Function3d2e0
jr nc, .asm_3c115
ld hl, $cd2a
bit 4, [hl]
jr nz, .asm_3c118
- ld hl, $5863
+ ld hl, BattleText_0x81863
.asm_3c115
call StdBattleTextBox
@@ -351,36 +354,42 @@
Function3c27c: ; 3c27c
ld a, [$ffcb]
cp $1
- jr z, .asm_3c287
- call .asm_3c28a
- jr .asm_3c296
+ jr z, .reverse
-.asm_3c287
- call .asm_3c296
-.asm_3c28a
+ call .player
+ jr .enemy
+
+.reverse
+ call .enemy
+; jr .player
+
+.player
call SetPlayerTurn
ld de, PartyMon1Item
ld a, [CurBattleMon]
ld b, a
- jr .asm_3c2a0
+ jr .go
-.asm_3c296
+.enemy
call SetEnemyTurn
ld de, OTPartyMon1Item
ld a, [CurOTMon]
ld b, a
+; jr .go
-.asm_3c2a0
+.go
push de
push bc
callab GetUserItem
ld a, [hl]
ld [$d265], a
- sub $98
+ sub BERSERK_GENE
pop bc
pop de
ret nz
+
ld [hl], a
+
ld h, d
ld l, e
ld a, b
@@ -387,11 +396,11 @@
call GetPartyLocation
xor a
ld [hl], a
- ld a, $2
+ ld a, BATTLE_VARS_SUBSTATUS3
call _GetBattleVar
push af
- set 7, [hl]
- ld a, $c
+ set SUBSTATUS_CONFUSED, [hl]
+ ld a, BATTLE_VARS_MOVE_ANIM
call _GetBattleVar
push hl
push af
@@ -404,11 +413,11 @@
pop hl
ld [hl], a
call GetItemName
- ld hl, $4bde
+ ld hl, BattleText_0x80bde
call StdBattleTextBox
callab BattleCommand8c
pop af
- bit 7, a
+ bit SUBSTATUS_CONFUSED, a
ret nz
xor a
ld [$cfca], a
@@ -415,7 +424,7 @@
ld de, $0103
call Function3ee0f
call Function3c8e4
- ld hl, $4d97
+ ld hl, BecameConfusedText
jp StdBattleTextBox
; 3c300
@@ -468,7 +477,7 @@
.asm_3c34c
callab Function3846c
call SetEnemyTurn
- call Function3dc23
+ call SpikesDamage
jp Function3c3f3
.asm_3c35b
@@ -666,7 +675,7 @@
cp $74
jr z, .asm_3c4c9
xor a
- ld [$c679], a
+ ld [PlayerProtectCount], a
jr .asm_3c4c9
.asm_3c4b5
@@ -676,7 +685,7 @@
.asm_3c4ba
xor a
ld [PlayerFuryCutterCount], a
- ld [$c679], a
+ ld [PlayerProtectCount], a
ld [$c72b], a
ld hl, PlayerSubStatus4
res 6, [hl]
@@ -689,7 +698,7 @@
.asm_3c4ce
xor a
ld [PlayerFuryCutterCount], a
- ld [$c679], a
+ ld [PlayerProtectCount], a
ld [$c72b], a
ld hl, PlayerSubStatus4
res 6, [hl]
@@ -727,7 +736,7 @@
ld hl, PlayerSubStatus5
res 4, [hl]
call SetEnemyTurn
- ld hl, $4c8a
+ ld hl, BattleText_0x80c8a
jp StdBattleTextBox
.asm_3c518
@@ -751,7 +760,7 @@
ld hl, EnemySubStatus5
res 4, [hl]
call SetPlayerTurn
- ld hl, $4c8a
+ ld hl, BattleText_0x80c8a
jp StdBattleTextBox
; 3c543
@@ -1047,12 +1056,12 @@
jr z, Function3c710
Function3c70b: ; 3c70b
ld hl, EnemyMonHPHi
- jr asm_3c713
+ jr Function3c713
Function3c710: ; 3c710
ld hl, BattleMonHP
-asm_3c713
+Function3c713: ; 3c713
ld a, [hli]
or [hl]
ret
@@ -1065,11 +1074,11 @@
call GetBattleVar
and $18
jr z, .asm_3c768
- ld hl, $47e2
+ ld hl, BattleText_0x807e2
ld de, $0106
and $10
jr z, .asm_3c733
- ld hl, $47f8
+ ld hl, BattleText_0x807f8
ld de, $0105
.asm_3c733
@@ -1127,7 +1136,7 @@
ld a, $1
ld [hBGMapMode], a
call Function3ccef
- ld hl, $480e
+ ld hl, BattleText_0x8080e
call StdBattleTextBox
.asm_3c7a1
@@ -1143,7 +1152,7 @@
call Function3ee0f
call GetQuarterMaxHP
call Function3cc3f
- ld hl, $4822
+ ld hl, BattleText_0x80822
call StdBattleTextBox
.asm_3c7c5
@@ -1159,7 +1168,7 @@
call Function3ee0f
call GetQuarterMaxHP
call Function3cc3f
- ld hl, $4836
+ ld hl, BattleText_0x80836
call StdBattleTextBox
.asm_3c7e9
@@ -1211,7 +1220,7 @@
ld a, [hl]
ld [$d265], a
push af
- ld hl, $4864
+ ld hl, BattleText_0x80864
call StdBattleTextBox
pop af
ret nz
@@ -1301,11 +1310,11 @@
.asm_3c8d3
call Function3cc76
call Function3cc3f
- ld hl, $4de2
+ ld hl, BattleText_0x80de2
jr .asm_3c8e1
.asm_3c8de
- ld hl, $4df5
+ ld hl, BattleText_0x80df5
.asm_3c8e1
jp StdBattleTextBox
@@ -1337,7 +1346,7 @@
ld [$d265], a
call GetItemName
ld a, b
- cp $3
+ cp HELD_LEFTOVERS
ret nz
ld hl, BattleMonHP
ld a, [hBattleTurn]
@@ -1361,7 +1370,7 @@
call Function3cc76
call Function3c8e4
call Function3ccef
- ld hl, $4880
+ ld hl, BattleText_0x80880
jp StdBattleTextBox
; 3c93c
@@ -1501,7 +1510,7 @@
call Function3c8e4
call Function3ddc8
call Function3c8e4
- ld hl, $4899
+ ld hl, BattleText_0x80899
jp StdBattleTextBox
; 3ca26
@@ -1533,7 +1542,7 @@
ld [hl], a
cp $1
ret nz
- ld hl, $48b6
+ ld hl, BattleText_0x808b6
call StdBattleTextBox
ld a, $10
call _GetBattleVar
@@ -1585,7 +1594,7 @@
ld [hl], $0
call UpdateBattleHuds
call SetEnemyTurn
- ld hl, $524b
+ ld hl, DefrostedOpponentText
jp StdBattleTextBox
.asm_3cac9
@@ -1611,7 +1620,7 @@
.asm_3caef
call UpdateBattleHuds
call SetPlayerTurn
- ld hl, $524b
+ ld hl, DefrostedOpponentText
jp StdBattleTextBox
; 3cafb
@@ -1649,7 +1658,7 @@
.asm_3cb2e
ld [hBattleTurn], a
- ld hl, $48d2
+ ld hl, BattleText_0x808d2
jp StdBattleTextBox
; 3cb36
@@ -2120,7 +2129,7 @@
ld [$d0ec], a
call Function3cf4a
jp z, Function3c0e5
- jr asm_3cdca
+ jr Function3cdca
.asm_3cdba
ld a, $1
@@ -2130,8 +2139,9 @@
xor a
ld [$d0ec], a
ret
+; 3cdca
-asm_3cdca
+Function3cdca: ; 3cdca
ld a, [$ffcb]
cp $1
jr z, .asm_3cde6
@@ -2141,7 +2151,7 @@
call ClearBox
call Function3d2b3
ld a, $1
- call asm_3cf78
+ call EnemyPartyMonEntrance
jr .asm_3cdfc
.asm_3cde6
@@ -2148,7 +2158,7 @@
ld a, [CurPartyMon]
push af
ld a, $1
- call asm_3cf78
+ call EnemyPartyMonEntrance
call ClearSprites
call Function309d
pop af
@@ -2180,8 +2190,8 @@
ld hl, EnemyDamageTaken
ld [hli], a
ld [hl], a
- call Function3d834
- call Function3dc18
+ call NewEnemyMonStatus
+ call BreakAttraction
ld a, [IsInBattle]
dec a
jr z, .asm_3ce2f
@@ -2379,17 +2389,18 @@
ld a, [hli]
or [hl]
ld a, $0
- jr nz, asm_3cf78
+ jr nz, EnemyPartyMonEntrance
inc a
ret
+; 3cf78
-asm_3cf78
+EnemyPartyMonEntrance: ; 3cf78
push af
xor a
ld [$c718], a
- call Function3d834
- call Function3d867
- call Function3dc18
+ call NewEnemyMonStatus
+ call ResetEnemyStatLevels
+ call BreakAttraction
pop af
and a
jr nz, .asm_3cf8f
@@ -2397,12 +2408,12 @@
jr .asm_3cf92
.asm_3cf8f
- call asm_3d517
+ call Function3d517
.asm_3cf92
call Function3d57a
call SetEnemyTurn
- call Function3dc23
+ call SpikesDamage
xor a
ld [EnemyMoveAnimation], a
ld [$d0ec], a
@@ -2758,7 +2769,7 @@
ld [$d0ec], a
call Function3cf4a
jp z, Function3c0e5
- jp asm_3cdca
+ jp Function3cdca
; 3d1aa
Function3d1aa: ; 3d1aa
@@ -2830,7 +2841,7 @@
call EmptyBattleTextBox
call Function1d6e
call Function3d2f7
- call Function3d362
+ call ForcePickPartyMonInBattle
ld a, [InLinkBattle]
and a
jr z, .asm_3d241
@@ -2869,7 +2880,7 @@
ld [CurBattleMon], a
call Function3d581
call Function3da0d
- call Function3dab1
+ call ResetPlayerStatLevels
call ClearPalettes
call DelayFrame
call Function3eda6
@@ -2877,13 +2888,13 @@
call ClearSGB
call Function32f9
call Function3f26d
- call Function3dbde
- call Function3dc18
+ call NewBattleMonStatus
+ call BreakAttraction
call Function3db5f
call EmptyBattleTextBox
call Function309d
call SetPlayerTurn
- call Function3dc23
+ call SpikesDamage
ld a, $1
and a
ld c, a
@@ -2897,15 +2908,15 @@
ld [CurBattleMon], a
call Function3d581
call Function3da0d
- call Function3dab1
+ call ResetPlayerStatLevels
call Function3f26d
- call Function3dbde
- call Function3dc18
+ call NewBattleMonStatus
+ call BreakAttraction
call Function3db5f
call EmptyBattleTextBox
call Function309d
call SetPlayerTurn
- jp Function3dc23
+ jp SpikesDamage
; 3d2e0
@@ -2961,9 +2972,9 @@
ret
; 3d33c
-Function3d33c: ; 3d33c
+PickPartyMonInBattle: ; 3d33c
.asm_3d33c
- ld a, $2
+ ld a, $2 ; Which PKMN?
ld [PartyMenuActionText], a
call Function3d313
call Function3d329
@@ -2974,52 +2985,58 @@
ret
; 3d34f
-Function3d34f: ; 3d34f
+SwitchMonAlreadyOut: ; 3d34f
ld hl, CurBattleMon
ld a, [CurPartyMon]
cp [hl]
- jr nz, .asm_3d360
+ jr nz, .notout
+
ld hl, BattleText_0x80c0d
call StdBattleTextBox
scf
ret
-.asm_3d360
+.notout
xor a
ret
; 3d362
-Function3d362: ; 3d362
-.asm_3d362
- call Function3d33c
+ForcePickPartyMonInBattle: ; 3d362
+; Can't back out.
+
+.pick
+ call PickPartyMonInBattle
ret nc
call Function3d2e0
ret c
+
ld de, SFX_WRONG
call PlaySFX
call WaitSFX
- jr .asm_3d362
+ jr .pick
; 3d375
-
-Function3d375: ; 3d375
-.asm_3d375
- call Function3d33c
+PickSwitchMonInBattle: ; 3d375
+.pick
+ call PickPartyMonInBattle
ret c
- call Function3d34f
- jr c, .asm_3d375
+ call SwitchMonAlreadyOut
+ jr c, .pick
xor a
ret
; 3d380
-Function3d380: ; 3d380
-.asm_3d380
- call Function3d362
+ForcePickSwitchMonInBattle: ; 3d380
+; Can't back out.
+
+.pick
+ call ForcePickPartyMonInBattle
call Function3d2e0
ret c
- call Function3d34f
- jr c, .asm_3d380
+ call SwitchMonAlreadyOut
+ jr c, .pick
+
xor a
ret
; 3d38e
@@ -3240,10 +3257,10 @@
ld b, a
call Function3d6ca
call Function3d7a0
- call Function3d834
- call Function3d867
+ call NewEnemyMonStatus
+ call ResetEnemyStatLevels
call Function3d7c7
- call Function3dc18
+ call BreakAttraction
call Function3d57a
ret
; 3d4e1
@@ -3251,7 +3268,7 @@
Function3d4e1: ; 3d4e1
call Function3d714
- jr nc, asm_3d517
+ jr nc, Function3d517
call Function3d557
call Function3d533
jr c, .asm_3d4f1
@@ -3274,8 +3291,9 @@
ld [$c711], a
call Function309d
jp Function3e3ad
+; 3d517
-asm_3d517
+Function3d517: ; 3d517
call Function3d557
call Function3d533
jr c, .asm_3d522
@@ -3416,7 +3434,7 @@
ld a, BANK(Moves)
call FarCopyBytes
call SetEnemyTurn
- callab Function0x347c8
+ callab Function347c8
pop bc
pop de
pop hl
@@ -3441,23 +3459,23 @@
add hl, bc
ld a, [hl]
dec a
- ld hl, $542b
- ld bc, $0020
+ ld hl, BaseData + 7 ; type
+ ld bc, $20
call AddNTimes
ld de, EnemyMonType1
- ld bc, $0002
- ld a, $14
+ ld bc, 2
+ ld a, BANK(BaseData)
call FarCopyBytes
ld a, [BattleMonType1]
ld [PlayerMoveType], a
call SetPlayerTurn
- callab Function0x347c8
+ callab Function347c8
ld a, [$d265]
cp $b
jr nc, .asm_3d663
ld a, [BattleMonType2]
ld [PlayerMoveType], a
- callab Function0x347c8
+ callab Function347c8
ld a, [$d265]
cp $b
jr nc, .asm_3d663
@@ -3623,7 +3641,7 @@
dec a
jr nz, .asm_3d79a
call Function3d2f7
- call Function3d375
+ call PickSwitchMonInBattle
jr c, .asm_3d791
ld a, [CurBattleMon]
ld [$c71a], a
@@ -3720,7 +3738,7 @@
ret
; 3d834
-Function3d834: ; 3d834
+NewEnemyMonStatus: ; 3d834
xor a
ld [LastEnemyCounterMove], a
ld [LastPlayerCounterMove], a
@@ -3745,14 +3763,14 @@
ret
; 3d867
-Function3d867: ; 3d867
- ld a, $7
- ld b, $8
- ld hl, EnemyAtkLevel
-.asm_3d86e
+ResetEnemyStatLevels: ; 3d867
+ ld a, 7
+ ld b, 8
+ ld hl, EnemyStatLevels
+.loop
ld [hli], a
dec b
- jr nz, .asm_3d86e
+ jr nz, .loop
ret
; 3d873
@@ -4035,12 +4053,12 @@
Function3da74: ; 3da74
call Function3da85
- jr asm_3da7c
+ jr Function3da7c
Function3da79: ; 3da79
call Function3da97
-asm_3da7c
+Function3da7c: ; 3da7c
ld b, h
ld c, l
callab CheckShininess
@@ -4071,14 +4089,14 @@
jp GetPartyLocation
; 3dab1
-Function3dab1: ; 3dab1
- ld a, $7
- ld b, $8
- ld hl, PlayerAtkLevel
-.asm_3dab8
+ResetPlayerStatLevels: ; 3dab1
+ ld a, 7
+ ld b, 8
+ ld hl, PlayerStatLevels
+.loop
ld [hli], a
dec b
- jr nz, .asm_3dab8
+ jr nz, .loop
ret
; 3dabd
@@ -4145,9 +4163,9 @@
ld [CurBattleMon], a
call Function3d581
call Function3da0d
- call Function3dab1
- call Function3dbde
- call Function3dc18
+ call ResetPlayerStatLevels
+ call NewBattleMonStatus
+ call BreakAttraction
call Function3db5f
call EmptyBattleTextBox
call Function309d
@@ -4215,7 +4233,7 @@
ret
; 3dbde
-Function3dbde: ; 3dbde
+NewBattleMonStatus: ; 3dbde
xor a
ld [LastEnemyCounterMove], a
ld [LastPlayerCounterMove], a
@@ -4233,7 +4251,7 @@
ld [hl], a
ld [PlayerDisableCount], a
ld [PlayerFuryCutterCount], a
- ld [$c679], a
+ ld [PlayerProtectCount], a
ld [$c72b], a
ld [DisabledMove], a
ld [$c6fe], a
@@ -4241,50 +4259,56 @@
ld [$c730], a
ld [PlayerTurnsTaken], a
ld hl, EnemySubStatus5
- res 7, [hl]
+ res SUBSTATUS_CANT_RUN, [hl]
ret
; 3dc18
-Function3dc18: ; 3dc18
+BreakAttraction: ; 3dc18
ld hl, PlayerSubStatus1
- res 7, [hl]
+ res SUBSTATUS_IN_LOVE, [hl]
ld hl, EnemySubStatus1
- res 7, [hl]
+ res SUBSTATUS_IN_LOVE, [hl]
ret
; 3dc23
-Function3dc23: ; 3dc23
+SpikesDamage: ; 3dc23
ld hl, PlayerScreens
ld de, BattleMonType1
ld bc, Function3df48
ld a, [hBattleTurn]
and a
- jr z, .asm_3dc3a
+ jr z, .ok
ld hl, EnemyScreens
ld de, EnemyMonType1
ld bc, Function3e036
+.ok
-.asm_3dc3a
- bit 0, [hl]
+ bit SCREENS_SPIKES, [hl]
ret z
+
+; Flying-types aren't affected by Spikes.
ld a, [de]
- cp $2
+ cp FLYING
ret z
inc de
ld a, [de]
- cp $2
+ cp FLYING
ret z
+
push bc
- ld hl, BattleText_0x80bae
+
+ ld hl, BattleText_0x80bae ; "hurt by SPIKES!"
call StdBattleTextBox
+
call GetEighthMaxHP
call Function3cc39
+
pop hl
- call Function3dc5a
+ call .hl
+
jp WaitBGMap
-; 3dc5a
-Function3dc5a: ; 3dc5a
+.hl
jp [hl]
; 3dc5b
@@ -4549,15 +4573,15 @@
res 7, [hl]
.asm_3de26
- ld hl, Function0x365fd
+ ld hl, Function365fd
ld a, [hBattleTurn]
and a
jr z, .asm_3de31
- ld hl, Function0x365d7
+ ld hl, Function365d7
.asm_3de31
call Function3c8e4
- ld a, BANK(Function0x365fd)
+ ld a, BANK(Function365fd)
rst FarCall
call Function3c8e4
call Function3ddc8
@@ -5110,7 +5134,7 @@
ld hl, $cd2a
bit 4, [hl]
jr nz, .asm_3e1c5
- ld hl, $5863
+ ld hl, BattleText_0x81863
call StdBattleTextBox
ld c, $3c
call DelayFrames
@@ -5370,7 +5394,7 @@
jr nz, .asm_3e3cf
.asm_3e3ca
- call Function3e40b
+ call BattleMonEntrance
and a
ret
@@ -5391,7 +5415,7 @@
ld a, [$ffcb]
cp $1
jr z, .asm_3e3f7
- call Function3e40b
+ call BattleMonEntrance
call Function3e3ff
and a
ret
@@ -5398,7 +5422,7 @@
.asm_3e3f7
call Function3e3ff
- call Function3e40b
+ call BattleMonEntrance
and a
ret
; 3e3ff
@@ -5406,48 +5430,54 @@
Function3e3ff: ; 3e3ff
callab Function3846c
call SetEnemyTurn
- jp Function3dc23
+ jp SpikesDamage
; 3e40b
-Function3e40b: ; 3e40b
+BattleMonEntrance: ; 3e40b
call Function3f2f4
- ld c, $32
+
+ ld c, 50
call DelayFrames
+
ld hl, PlayerSubStatus4
- res 6, [hl]
+ res SUBSTATUS_RAGE, [hl]
+
call SetEnemyTurn
call Function3dc5b
jr c, .asm_3e423
call Function3dce6
-
.asm_3e423
- ld hl, $c535
- ld bc, $050b
+
+ hlcoord 9, 7
+ lb bc, 5, 11
call ClearBox
+
ld a, [CurBattleMon]
ld [CurPartyMon], a
call Function3d581
call Function3da0d
- call Function3dab1
+ call ResetPlayerStatLevels
call Function3f26d
- call Function3dbde
- call Function3dc18
+ call NewBattleMonStatus
+ call BreakAttraction
call Function3db5f
call EmptyBattleTextBox
call Function309d
call SetPlayerTurn
- call Function3dc23
+ call SpikesDamage
ld a, $2
ld [$cfa9], a
ret
; 3e459
-Function3e459: ; 3e459
- ld c, $32
+PassedBattleMonEntrance: ; 3e459
+ ld c, 50
call DelayFrames
- ld hl, $c535
- ld bc, $050b
+
+ hlcoord 9, 7
+ lb bc, 5, 11
call ClearBox
+
ld a, [CurPartyMon]
ld [CurBattleMon], a
call Function3d581
@@ -5459,7 +5489,7 @@
call EmptyBattleTextBox
call Function309d
call SetPlayerTurn
- jp Function3dc23
+ jp SpikesDamage
; 3e489
@@ -8250,12 +8280,12 @@
ld a, [PlayerSubStatus4]
bit 4, a
ld hl, BattleAnimCmd_DD
- jr nz, asm_3f46f
+ jr nz, Function3f46f
Function3f447: ; 3f447
ld a, [$c6fe]
and a
ld hl, BattleAnimCmd_E2
- jr nz, asm_3f46f
+ jr nz, Function3f46f
ld a, [CurPartySpecies]
push af
ld a, [BattleMonSpecies]
@@ -8269,8 +8299,9 @@
pop af
ld [CurPartySpecies], a
ret
+; 3f46f
-asm_3f46f
+Function3f46f: ; 3f46f
ld a, [hBattleTurn]
push af
xor a
@@ -8286,12 +8317,12 @@
ld a, [EnemySubStatus4]
bit 4, a
ld hl, BattleAnimCmd_DD
- jr nz, asm_3f4b4
+ jr nz, Function3f4b4
Function3f486: ; 3f486
ld a, [$c6fa]
and a
ld hl, BattleAnimCmd_E2
- jr nz, asm_3f4b4
+ jr nz, Function3f4b4
ld a, [CurPartySpecies]
push af
ld a, [EnemyMonSpecies]
@@ -8307,8 +8338,9 @@
pop af
ld [CurPartySpecies], a
ret
+; 3f4b4
-asm_3f4b4
+Function3f4b4: ; 3f4b4
ld a, [hBattleTurn]
push af
call SetEnemyTurn
@@ -8524,40 +8556,45 @@
Function3f662: ; 3f662
ld hl, EnemyMonMove1
ld de, $d25e
- ld b, $4
-.asm_3f66a
+ ld b, 4
+.loop
ld a, [de]
inc de
ld [hli], a
and a
- jr z, .asm_3f690
+ jr z, .clearpp
+
push bc
push hl
+
push hl
dec a
- ld hl, $5b00
- ld bc, $0007
+ ld hl, Moves + MOVE_PP
+ ld bc, Move2 - Move1
call AddNTimes
- ld a, $10
+ ld a, BANK(Moves)
call GetFarByte
pop hl
- ld bc, $0005
+
+ ld bc, EnemyMonPP - (EnemyMonMoves + 1)
add hl, bc
ld [hl], a
+
pop hl
pop bc
+
dec b
- jr nz, .asm_3f66a
+ jr nz, .loop
ret
-.asm_3f68e
+.clear
xor a
ld [hli], a
-.asm_3f690
+.clearpp
push bc
push hl
- ld bc, $0005
+ ld bc, EnemyMonPP - (EnemyMonMoves + 1)
add hl, bc
xor a
ld [hl], a
@@ -8564,7 +8601,7 @@
pop hl
pop bc
dec b
- jr nz, .asm_3f68e
+ jr nz, .clear
ret
; 3f69e
--- a/battle/effect_commands.asm
+++ b/battle/effect_commands.asm
@@ -126,7 +126,7 @@
ld a, BATTLE_VARS_MOVE
call GetBattleVar
inc a
- jp z, Function0x34385
+ jp z, Function34385
xor a
ld [AttackMissed], a
@@ -157,7 +157,7 @@
call StdBattleTextBox
call CantMove
- jp Function0x34385
+ jp Function34385
.CheckSleep
@@ -183,8 +183,8 @@
call CantMove
call UpdateBattleMonInParty
- ld hl, $5f48
- call CallBankF
+ ld hl, Function3df48
+ call CallBattleCore
ld a, $1
ld [$ffd4], a
ld hl, PlayerSubStatus1
@@ -204,7 +204,7 @@
cp SLEEP_TALK
jr z, .CheckFrozen
call CantMove
- jp Function0x34385
+ jp Function34385
.CheckFrozen
@@ -224,7 +224,7 @@
call StdBattleTextBox
call CantMove
- jp Function0x34385
+ jp Function34385
.CheckFlinch
@@ -239,7 +239,7 @@
call StdBattleTextBox
call CantMove
- jp Function0x34385
+ jp Function34385
.CheckDisabled
@@ -300,7 +300,7 @@
call HitConfusion
call CantMove
- jp Function0x34385
+ jp Function34385
.CheckAttract
@@ -328,7 +328,7 @@
call StdBattleTextBox
call CantMove
- jp Function0x34385
+ jp Function34385
.CheckDisabledMove
@@ -344,7 +344,7 @@
call MoveDisabled
call CantMove
- jp Function0x34385
+ jp Function34385
.CheckParalyzed
@@ -361,7 +361,7 @@
ld hl, FullyParalyzedText
call StdBattleTextBox
call CantMove
- jp Function0x34385
+ jp Function34385
; 341f0
@@ -389,12 +389,12 @@
.asm_3420f
res 5, [hl]
res 6, [hl]
- jp Function0x37ece
+ jp Function37ece
; 34216
-Function0x34216: ; 34216
+Function34216: ; 34216
call SwitchTurn
call CantMove
jp SwitchTurn
@@ -414,7 +414,7 @@
ld hl, MustRechargeText
call StdBattleTextBox
call CantMove
- jp Function0x34385
+ jp Function34385
.CheckSleep
@@ -443,8 +443,8 @@
call StdBattleTextBox
call CantMove
call UpdateEnemyMonInParty
- ld hl, $6036
- call CallBankF
+ ld hl, Function3e036
+ call CallBattleCore
ld a, $1
ld [$ffd4], a
ld hl, EnemySubStatus1
@@ -460,7 +460,7 @@
cp SLEEP_TALK
jr z, .CheckFrozen
call CantMove
- jp Function0x34385
+ jp Function34385
.CheckFrozen
@@ -477,7 +477,7 @@
ld hl, FrozenSolidText
call StdBattleTextBox
call CantMove
- jp Function0x34385
+ jp Function34385
.CheckFlinch
@@ -492,7 +492,7 @@
call StdBattleTextBox
call CantMove
- jp Function0x34385
+ jp Function34385
.CheckDisabled
@@ -557,7 +557,7 @@
ld hl, HurtItselfText
call StdBattleTextBox
- call Function0x355dd
+ call Function355dd
call BattleCommand62
@@ -574,12 +574,12 @@
call z, PlayFXAnimID
ld c, $1
- call Function0x35d1c
+ call Function35d1c
call BattleCommand0c
call CantMove
- jp Function0x34385
+ jp Function34385
.CheckAttract
@@ -607,7 +607,7 @@
call StdBattleTextBox
call CantMove
- jp Function0x34385
+ jp Function34385
.CheckDisabledMove
@@ -624,7 +624,7 @@
call MoveDisabled
call CantMove
- jp Function0x34385
+ jp Function34385
.CheckParalyzed
@@ -647,7 +647,7 @@
; 34385
-Function0x34385: ; 34385
+Function34385: ; 34385
ld a, $1
ld [$c6b4], a
jp ResetDamage
@@ -681,7 +681,7 @@
xor a
ld [CriticalHit], a
- call Function0x355dd
+ call Function355dd
call BattleCommand62
@@ -697,14 +697,14 @@
and $60
call z, PlayFXAnimID
- ld hl, $5f48
- call CallBankF
+ ld hl, Function3df48
+ call CallBattleCore
ld a, $1
ld [$ffd4], a
ld c, $1
- call Function0x35d7e
+ call Function35d7e
jp BattleCommand0c
; 343db
@@ -718,7 +718,7 @@
and a
ret nz
- call Function0x34548
+ call Function34548
ret nz
; If we've already checked this turn
@@ -858,7 +858,7 @@
call HitConfusion
- jp Function0x3450c
+ jp Function3450c
.Nap
@@ -899,7 +899,7 @@
call StdBattleTextBox
- jp Function0x3450c
+ jp Function3450c
.UseInstead
@@ -1007,7 +1007,7 @@
; 3450c
-Function0x3450c: ; 3450c
+Function3450c: ; 3450c
xor a
ld [LastPlayerMove], a
ld [LastEnemyCounterMove], a
@@ -1059,7 +1059,7 @@
; 34548
-Function0x34548: ; 34548
+Function34548: ; 34548
ld a, [hBattleTurn]
and a
@@ -1073,7 +1073,7 @@
BattleCommand04: ; 34555
- call Function0x34548
+ call Function34548
ret nz
ld hl, BattleMonPP
@@ -1134,7 +1134,7 @@
.asm_345a4
call GetPartyLocation
push hl
- call Function0x3460b
+ call Function3460b
pop hl
ret c
@@ -1209,7 +1209,7 @@
db $ff
; 3460b
-Function0x3460b: ; 3460b
+Function3460b: ; 3460b
ld a, [hBattleTurn]
and a
ld a, [CurMoveNum]
@@ -1313,7 +1313,7 @@
push bc
call GetUserItem
ld a, b
- cp $49 ; Increased critical chance. Only Scope Lens has this.
+ cp HELD_CRITICAL_UP ; Increased critical chance. Only Scope Lens has this.
pop bc
jr nz, .Tally
@@ -1552,7 +1552,7 @@
jr .asm_34743
.end
- call Function0x347c8
+ call Function347c8
ld a, [$d265]
ld b, a
ld a, [TypeModifier]
@@ -1563,11 +1563,11 @@
; 347c8
-Function0x347c8: ; 347c8
+Function347c8: ; 347c8
ld hl, EnemyMonType1
ld a, [hBattleTurn]
and a
- jr z, Function0x347d3
+ jr z, Function347d3
ld hl, BattleMonType1
; fallthrough
@@ -1574,7 +1574,7 @@
; 347d3
-Function0x347d3: ; 347d3
+Function347d3: ; 347d3
push hl
push de
push bc
@@ -1640,7 +1640,7 @@
BattleCommanda3: ; 34833
- call Function0x347c8
+ call Function347c8
ld a, [$d265]
and a
ld a, $a
@@ -1657,7 +1657,7 @@
; 3484e
-Function0x3484e: ; 3484e
+Function3484e: ; 3484e
push hl
push de
push bc
@@ -1682,7 +1682,7 @@
inc hl
call GetMoveByte
ld hl, EnemyMonType1
- call Function0x347d3
+ call Function347d3
ld a, [$d265]
cp $b
jr nc, .asm_34895 ; 0x3487f $14
@@ -1699,7 +1699,7 @@
ld e, $2
jr .asm_3489b ; 0x34893 $6
.asm_34895
- call Function0x34931
+ call Function34931
pop hl
jr .asm_348d7 ; 0x34899 $3c
.asm_3489b
@@ -1710,32 +1710,32 @@
ld a, e
cp $2
jr z, .asm_348d7 ; 0x348a2 $33
- call Function0x34939
+ call Function34939
ld a, e
and a
jr nz, .asm_348d7 ; 0x348a9 $2c
- call Function0x34939
+ call Function34939
jr .asm_348d7 ; 0x348ae $27
.asm_348b0
ld a, [BattleMonType1]
ld b, a
ld hl, EnemyMonType1
- call Function0x347d3
+ call Function347d3
ld a, [$d265]
cp $b
jr c, .asm_348c4 ; 0x348bf $3
- call Function0x34931
+ call Function34931
.asm_348c4
ld a, [BattleMonType2]
cp b
jr z, .asm_348d7 ; 0x348c8 $d
- call Function0x347d3
+ call Function347d3
ld a, [$d265]
cp $b
jr c, .asm_348d7 ; 0x348d2 $3
- call Function0x34931
+ call Function34931
.asm_348d7
- call Function0x348de
+ call Function348de
pop bc
pop de
pop hl
@@ -1743,7 +1743,7 @@
; 348de
-Function0x348de: ; 348de
+Function348de: ; 348de
ld de, EnemyMonMove1
ld b, 5
ld c, 0
@@ -1769,7 +1769,7 @@
inc hl
call GetMoveByte
ld hl, BattleMonType1
- call Function0x347d3
+ call Function347d3
ld a, [$d265]
and a
jr z, .loop
@@ -1798,19 +1798,19 @@
and a
jr z, .doubledown ; double down
cp $5
- jr c, Function0x34931 ; down
+ jr c, Function34931 ; down
cp $64
ret c
- jr Function0x34939 ; up
+ jr Function34939 ; up
.doubledown
- call Function0x34931
+ call Function34931
; fallthrough
; 34931
-Function0x34931: ; 34931
+Function34931: ; 34931
ld a, [$c716]
dec a
ld [$c716], a
@@ -1818,7 +1818,7 @@
; 34939
-Function0x34939: ; 34939
+Function34939: ; 34939
ld a, [$c716]
inc a
ld [$c716], a
@@ -1826,10 +1826,10 @@
; 34941
-Function0x34941: ; 34941
+Function34941: ; 34941
xor a
ld [$c717], a
- call Function0x349f4
+ call Function349f4
ret c
ld a, [EnemySubStatus1]
@@ -1840,10 +1840,10 @@
cp $1
jr nz, .asm_34986
- call Function0x349f4
- call Function0x34b77
- call Function0x34b20
- call Function0x34a85
+ call Function349f4
+ call Function34b77
+ call Function34b20
+ call Function34a85
ld a, e
cp $2
@@ -1855,7 +1855,7 @@
ret
.asm_34971
- call Function0x349f4
+ call Function349f4
sla c
sla c
ld b, $ff
@@ -1871,7 +1871,7 @@
ret
.asm_34986
- call Function0x3484e
+ call Function3484e
ld a, [$c716]
cp $b
ret nc
@@ -1880,13 +1880,13 @@
and a
jr z, .asm_349d2
- call Function0x34a2a
+ call Function34a2a
ld a, [$c716]
and a
jr z, .asm_349d2
ld c, a
- call Function0x34aa7
+ call Function34aa7
ld a, [$c716]
cp $ff
ret z
@@ -1896,7 +1896,7 @@
cp $2
jr z, .asm_349be
- call Function0x3484e
+ call Function3484e
ld a, [$c716]
cp $a
ret nc
@@ -1908,7 +1908,7 @@
.asm_349be
ld c, $10
- call Function0x3484e
+ call Function3484e
ld a, [$c716]
cp $a
jr nc, .asm_349cc
@@ -1921,15 +1921,15 @@
ret
.asm_349d2
- call Function0x3484e
+ call Function3484e
ld a, [$c716]
cp $a
ret nc
- call Function0x349f4
- call Function0x34b77
- call Function0x34b20
- call Function0x34a85
+ call Function349f4
+ call Function34b77
+ call Function34b20
+ call Function34a85
ld a, e
cp $2
@@ -1942,7 +1942,7 @@
; 349f4
-Function0x349f4: ; 349f4
+Function349f4: ; 349f4
ld a, [OTPartyCount]
cp 2
jr c, .asm_34a26
@@ -1993,7 +1993,7 @@
; 34a2a
-Function0x34a2a: ; 34a2a
+Function34a2a: ; 34a2a
ld hl, OTPartyMon1
ld a, [OTPartyCount]
ld b, a
@@ -2031,7 +2031,7 @@
inc hl
call GetMoveByte
ld hl, $d23d
- call Function0x347d3
+ call Function347d3
ld a, [$d265]
and a
jr nz, .asm_34a77
@@ -2055,7 +2055,7 @@
; 34a85
-Function0x34a85: ; 34a85
+Function34a85: ; 34a85
push bc
ld a, [OTPartyCount]
ld e, a
@@ -2089,7 +2089,7 @@
; fallthrough
; 34aa7
-Function0x34aa7: ; 34aa7
+Function34aa7: ; 34aa7
ld a, $ff
ld [$c716], a
@@ -2121,7 +2121,7 @@
inc hl
call GetMoveByte
ld hl, BattleMonType1
- call Function0x347d3
+ call Function347d3
ld a, [$d265]
cp $a
jr c, .asm_34ae9
@@ -2187,7 +2187,7 @@
; 34b20
-Function0x34b20: ; 34b20
+Function34b20: ; 34b20
push bc
ld hl, OTPartySpecies
ld b, $20
@@ -2218,7 +2218,7 @@
.asm_34b4a
ld a, [BattleMonType1]
ld hl, $d23d
- call Function0x347d3
+ call Function347d3
ld a, [$d265]
cp $b
jr nc, .asm_34b6d
@@ -2226,7 +2226,7 @@
.asm_34b5d
ld hl, $d23d
- call Function0x347d3
+ call Function347d3
ld a, [$d265]
cp $b
jr nc, .asm_34b6d
@@ -2249,7 +2249,7 @@
; 34b77
-Function0x34b77: ; 34b77
+Function34b77: ; 34b77
push bc
ld de, OTPartySpecies
ld b, $20
@@ -2715,6 +2715,7 @@
BattleCommand0a: ; 34eee
+; lowersub
ld a, BATTLE_VARS_SUBSTATUS4
call GetBattleVar
@@ -2743,11 +2744,11 @@
call .Rampage
jr z, .asm_34f21
- call Function0x34548
+ call Function34548
ret nz
.asm_34f21
- call Function0x37ed5
+ call Function37ed5
jr c, .asm_34f36
xor a
@@ -2755,8 +2756,8 @@
ld [FXAnimIDHi], a
inc a
ld [$c689], a
- ld a, $a4
- jp Function0x37e44
+ ld a, SUBSTITUTE
+ jp Function37e44
.asm_34f36
call BattleCommanda7
@@ -2838,7 +2839,7 @@
.asm_34fad
; clear sprite
- jp Function0x37ec7
+ jp Function37ec7
.asm_34fb0
ld a, [$c689]
and 1
@@ -2908,12 +2909,14 @@
BattleCommand0c: ; 35004
+; raisesub
+
ld a, BATTLE_VARS_SUBSTATUS4
call GetBattleVar
bit SUBSTATUS_SUBSTITUTE, a
ret z
- call Function0x37ed5
+ call Function37ed5
jp c, BattleCommanda6
xor a
@@ -2921,8 +2924,8 @@
ld [FXAnimIDHi], a
ld a, $2
ld [$c689], a
- ld a, $a4
- jp Function0x37e44
+ ld a, SUBSTITUTE
+ jp Function37e44
; 35023
@@ -2932,7 +2935,7 @@
and a
ret z
- call Function0x350e4
+ call Function350e4
ld a, BATTLE_VARS_MOVE_ANIM
call _GetBattleVar
@@ -2962,7 +2965,7 @@
call _GetBattleVar
res SUBSTATUS_UNDERGROUND, [hl]
res SUBSTATUS_FLYING, [hl]
- call Function0x37ece
+ call Function37ece
jp EndMoveEffect
; 3505e
@@ -3000,11 +3003,11 @@
ld a, [hBattleTurn]
and a
jr nz, .asm_3509b
- call Function0x35d1c
+ call Function35d1c
jr .asm_3509e
.asm_3509b
- call Function0x35d7e
+ call Function35d7e
.asm_3509e
pop bc
@@ -3058,7 +3061,7 @@
; 350e4
-Function0x350e4: ; 350e4
+Function350e4: ; 350e4
ld hl, DoesntAffectText
ld de, DoesntAffectText
ld a, [TypeModifier]
@@ -3077,7 +3080,7 @@
jr nz, .asm_35110 ; 0x3510b $3
ld hl, UnaffectedText
.asm_35110
- call Function0x35157
+ call Function35157
xor a
ld [CriticalHit], a
ld a, BATTLE_VARS_MOVE_EFFECT
@@ -3108,14 +3111,14 @@
call StdBattleTextBox
ld a, $1
ld [$c689], a
- call Function0x37e36
+ call Function37e36
ld c, $1
ld a, [hBattleTurn]
and a
- jp nz, Function0x35d1c
- jp Function0x35d7e
+ jp nz, Function35d1c
+ jp Function35d7e
-Function0x35157: ; 35157
+Function35157: ; 35157
ld a, BATTLE_VARS_SUBSTATUS1_OPP
call GetBattleVar
bit SUBSTATUS_PROTECT, a
@@ -3278,7 +3281,7 @@
inc a
ld [$c689], a
ld a, $c2
- call Function0x37e44
+ call Function37e44
call SwitchTurn
jr .asm_3524d ; 3522f $1c
@@ -3441,7 +3444,7 @@
ret z
ld a, [hl]
- cp FIRE
+ cp SPECIAL
jr nc, .special
@@ -3505,7 +3508,7 @@
call ThickClubBoost
.done
- call Function0x3534d
+ call Function3534d
ld a, [BattleMonLevel]
ld e, a
@@ -3517,7 +3520,7 @@
; 3534d
-Function0x3534d: ; 3534d
+Function3534d: ; 3534d
; Truncate 16-bit values hl and bc to 8-bit values b and c respectively.
; b = hl, c = bc
@@ -3553,7 +3556,7 @@
ld a, h
or b
- jr nz, Function0x3534d
+ jr nz, Function3534d
.done
ld b, l
@@ -3583,7 +3586,7 @@
and a
jr nz, .enemy
ld a, [PlayerMoveType]
- cp FIRE
+ cp SPECIAL
; special
ld a, [PlayerSAtkLevel]
ld b, a
@@ -3597,7 +3600,7 @@
.enemy
ld a, [EnemyMoveType]
- cp FIRE
+ cp SPECIAL
; special
ld a, [EnemySAtkLevel]
ld b, a
@@ -3702,7 +3705,7 @@
ret z
ld a, [hl]
- cp FIRE
+ cp SPECIAL
jr nc, .Special
@@ -3763,7 +3766,7 @@
call ThickClubBoost
.done
- call Function0x3534d
+ call Function3534d
ld a, [EnemyMonLevel]
ld e, a
@@ -3801,12 +3804,12 @@
.asm_3548d
ld a, [DefaultFlypoint]
ld hl, PartyMon1Nickname
- call $38a2
+ call GetNick
ld a, $22
- call Function0x355bd
+ call Function355bd
ld a, [hli]
or [hl]
- jp z, Function0x355b0
+ jp z, Function355b0
ld a, [DefaultFlypoint]
ld c, a
ld a, [CurBattleMon]
@@ -3814,11 +3817,11 @@
ld hl, BattleMonStatus
jr z, .asm_354b2 ; 354ab $5
ld a, $20
- call Function0x355bd
+ call Function355bd
.asm_354b2
ld a, [hl]
and a
- jp nz, Function0x355b0
+ jp nz, Function355b0
ld a, $1
ld [$c72d], a
ld hl, BeatUpAttackText
@@ -3825,21 +3828,21 @@
call StdBattleTextBox
ld a, [EnemyMonSpecies]
ld [CurSpecies], a
- call $3856
+ call GetBaseData
ld a, [$d239]
ld c, a
push bc
ld a, $0
- call Function0x355bd
+ call Function355bd
ld a, [hl]
ld [CurSpecies], a
- call $3856
+ call GetBaseData
ld a, [$d238]
pop bc
ld b, a
push bc
ld a, $1f
- call Function0x355bd
+ call Function355bd
ld a, [hl]
ld e, a
pop bc
@@ -3884,7 +3887,7 @@
add hl, bc
ld a, [hl]
ld [$d265], a
- call $343b
+ call GetPokemonName
jr .asm_35544
.asm_35532
@@ -3896,10 +3899,10 @@
call CopyBytes
.asm_35544
ld a, $22
- call Function0x355bd
+ call Function355bd
ld a, [hli]
or [hl]
- jp z, Function0x355b0
+ jp z, Function355b0
ld a, [DefaultFlypoint]
ld b, a
ld a, [CurOTMon]
@@ -3908,11 +3911,11 @@
jr z, .asm_35560
ld a, $20
- call Function0x355bd
+ call Function355bd
.asm_35560
ld a, [hl]
and a
- jr nz, Function0x355b0
+ jr nz, Function355b0
ld a, $1
ld [$c72d], a
@@ -3921,7 +3924,7 @@
.asm_3556b
ld a, [EnemyMonSpecies]
ld [$d265], a
- call $343b
+ call GetPokemonName
ld hl, BeatUpAttackText
call StdBattleTextBox
jp EnemyAttackDamage
@@ -3935,7 +3938,7 @@
ld c, a
push bc
ld a, $0
- call Function0x355bd
+ call Function355bd
ld a, [hl]
ld [CurSpecies], a
call GetBaseData
@@ -3944,7 +3947,7 @@
ld b, a
push bc
ld a, $1f
- call Function0x355bd
+ call Function355bd
ld a, [hl]
ld e, a
pop bc
@@ -3954,7 +3957,7 @@
; 355b0
-Function0x355b0: ; 355b0
+Function355b0: ; 355b0
ld b, $12 ; buildopponentrage
jp SkipToBattleCommand
; 355b5
@@ -3968,7 +3971,7 @@
; 355bd
-Function0x355bd: ; 355bd
+Function355bd: ; 355bd
push bc
ld c, a
ld b, 0
@@ -3996,7 +3999,7 @@
; 355dd
-Function0x355dd: ; 355dd
+Function355dd: ; 355dd
call ResetDamage
ld a, [hBattleTurn]
and a
@@ -4026,7 +4029,7 @@
ld a, [hli]
ld l, [hl]
ld h, a
- call Function0x3534d
+ call Function3534d
ld d, $28
pop af
ld e, a
@@ -4461,40 +4464,46 @@
BattleCommand40: ; 35813
; counter
- ld a, $1
+ ld a, 1
ld [AttackMissed], a
ld a, BATTLE_VARS_LAST_COUNTER_MOVE_OPP
call GetBattleVar
and a
ret z
- ld b, a
+ ld b, a
callab GetMoveEffect
-
ld a, b
- cp $59
+ cp EFFECT_COUNTER
ret z
+
call BattleCommanda3
ld a, [$d265]
and a
ret z
- call Function0x36abf
+
+ call Function36abf
ret z
+
ld a, BATTLE_VARS_LAST_COUNTER_MOVE_OPP
call GetBattleVar
dec a
ld de, StringBuffer1
call GetMoveData
+
ld a, [$d075]
and a
ret z
+
ld a, [$d076]
- cp $14
+ cp SPECIAL
ret nc
+
ld hl, CurDamage
ld a, [hli]
or [hl]
ret z
+
ld a, [hl]
add a
ld [hld], a
@@ -4501,11 +4510,12 @@
ld a, [hl]
adc a
ld [hl], a
- jr nc, .asm_3585f ; 35859 $4
+ jr nc, .capped
ld a, $ff
ld [hli], a
ld [hl], a
-.asm_3585f
+.capped
+
xor a
ld [AttackMissed], a
ret
@@ -4526,13 +4536,13 @@
ld a, BATTLE_VARS_LAST_MOVE_OPP
call GetBattleVar
and a
- jp z, Function0x35923
+ jp z, Function35923
cp STRUGGLE
- jp z, Function0x35923
+ jp z, Function35923
cp ENCORE
- jp z, Function0x35923
+ jp z, Function35923
cp MIRROR_MOVE
- jp z, Function0x35923
+ jp z, Function35923
ld b, a
.asm_3588e
@@ -4544,14 +4554,14 @@
add hl, bc
ld a, [hl]
and $3f
- jp z, Function0x35923
+ jp z, Function35923
ld a, [AttackMissed]
and a
- jp nz, Function0x35923
+ jp nz, Function35923
ld a, BATTLE_VARS_SUBSTATUS5_OPP
call _GetBattleVar
bit 4, [hl]
- jp nz, Function0x35923
+ jp nz, Function35923
set 4, [hl]
call BattleRandom
and $3
@@ -4559,7 +4569,7 @@
inc a
inc a
ld [de], a
- call Function0x36abf
+ call Function36abf
jr nz, .asm_3591a
ld a, [hBattleTurn]
and a
@@ -4581,7 +4591,7 @@
res 4, [hl]
xor a
ld [de], a
- jr Function0x35923
+ jr Function35923
.asm_358dd
pop hl
ld a, c
@@ -4610,7 +4620,7 @@
res 4, [hl]
xor a
ld [de], a
- jr Function0x35923
+ jr Function35923
.asm_3590a
pop hl
ld a, c
@@ -4621,7 +4631,7 @@
ld de, EnemyMoveStruct
call GetMoveData
.asm_3591a
- call Function0x37e01
+ call AnimateCurrentMove
ld hl, GotAnEncoreText
jp StdBattleTextBox
@@ -4628,7 +4638,7 @@
; 35923
-Function0x35923: ; 35923
+Function35923: ; 35923
jp PrintDidntAffect2
; 35926
@@ -4638,10 +4648,10 @@
ld a, [AttackMissed]
and a
- jp nz, Function0x359cd
+ jp nz, Function359cd
call CheckSubstituteOpp
- jp nz, Function0x359cd
- call Function0x37e01
+ jp nz, Function359cd
+ call AnimateCurrentMove
ld hl, $c63f
ld de, EnemyMonMaxHPLo
call .asm_3597d
@@ -4659,7 +4669,7 @@
ld [$d1eb], a
ld a, [hl]
ld [$d1ea], a
- call Function0x359ac
+ call Function359ac
xor a
ld [$d10a], a
call ResetDamage
@@ -4706,7 +4716,7 @@
; 359ac
-Function0x359ac: ; 359ac
+Function359ac: ; 359ac
ld c, [hl]
dec hl
ld a, [$d257]
@@ -4731,7 +4741,7 @@
ret
; 359cd
-Function0x359cd: ; 359cd
+Function359cd: ; 359cd
jp PrintDidntAffect2
; 359d0
@@ -4745,7 +4755,7 @@
call ResetDamage
ld a, $1
ld [AttackMissed], a
- call Function0x37354
+ call Function37354
jp EndMoveEffect
; 359e6
@@ -4774,7 +4784,7 @@
pop hl
cp CURSE_T
jr z, .asm_35a50 ; 35a0b $43
- call Function0x37e01
+ call AnimateCurrentMove
call SwitchTurn
.asm_35a13
@@ -4796,7 +4806,7 @@
push hl
ld a, d
ld [hl], a
- call Function0x347c8
+ call Function347c8
pop hl
pop af
ld [hl], a
@@ -4810,10 +4820,10 @@
ld [$d265], a
ld a, $29
call Predef
- ld hl, $5452
+ ld hl, TransformedTypeText
jp StdBattleTextBox
.asm_35a50
- jp Function0x37354
+ jp Function37354
; 35a53
@@ -4828,13 +4838,13 @@
ld a, BATTLE_VARS_SUBSTATUS5_OPP
call _GetBattleVar
set SUBSTATUS_LOCK_ON, [hl]
- call Function0x37e01
+ call AnimateCurrentMove
ld hl, TookAimText
jp StdBattleTextBox
.asm_35a6e
- call Function0x37e77
+ call AnimateFailedMove
jp PrintDidntAffect
; 35a74
@@ -4842,11 +4852,11 @@
BattleCommand46: ; 35a74
; sketch
- call Function0x372d8
+ call Function372d8
ld a, [InLinkBattle]
and a
jr z, .asm_35a83 ; 35a7b $6
- call Function0x37e77
+ call AnimateFailedMove
jp PrintNothingHappened
.asm_35a83
call CheckSubstituteOpp
@@ -4931,13 +4941,13 @@
ld [hl], a
.asm_35b04
call GetMoveName
- call Function0x37e01
+ call AnimateCurrentMove
ld hl, SketchedText
jp StdBattleTextBox
.asm_35b10
- call Function0x37e77
+ call AnimateFailedMove
jp PrintDidntAffect
; 35b16
@@ -4948,7 +4958,7 @@
; If the opponent isn't frozen, raise Attack one stage.
; If the opponent is frozen, thaw them and raise Accuracy two stages.
- call Function0x37e01
+ call AnimateCurrentMove
ld a, BATTLE_VARS_STATUS_OPP
call _GetBattleVar
@@ -4975,7 +4985,7 @@
BattleCommand48: ; 35b33
; sleeptalk
- call Function0x372d8
+ call Function372d8
ld a, [AttackMissed]
and a
jr nz, .asm_35ba3 ; 35b3a $67
@@ -5024,7 +5034,7 @@
call _GetBattleVar
ld a, e
ld [hl], a
- call Function0x34548
+ call Function34548
jr nz, .asm_35b9a ; 35b8d $b
ld a, [$c689]
push af
@@ -5032,11 +5042,11 @@
pop af
ld [$c689], a
.asm_35b9a
- call Function0x37e36
+ call Function37e36
call UpdateMoveData
jp ResetTurn
.asm_35ba3
- call Function0x37e77
+ call AnimateFailedMove
jp TryPrintButItFailed
.asm_35ba9
@@ -5123,7 +5133,7 @@
ld a, BATTLE_VARS_SUBSTATUS5
call _GetBattleVar
set 6, [hl]
- call Function0x37e01
+ call AnimateCurrentMove
ld hl, DestinyBondEffectText
jp StdBattleTextBox
; 35c0f
@@ -5205,7 +5215,7 @@
ld [hl], e
.asm_35c82
push de
- call Function0x37e01
+ call AnimateCurrentMove
pop de
ld a, d
ld [$d265], a
@@ -5285,7 +5295,7 @@
add hl, bc
dec d
jr nz, .asm_35ce9
- call Function0x37e01
+ call AnimateCurrentMove
ld hl, BellChimedText
call StdBattleTextBox
@@ -5292,8 +5302,8 @@
ld a, [hBattleTurn]
and a
- jp z, Function0x365d7
- jp Function0x365fd
+ jp z, Function365d7
+ jp Function365fd
; 35d00
@@ -5324,7 +5334,7 @@
; 35d1c
-Function0x35d1c: ; 35d1c
+Function35d1c: ; 35d1c
ld hl, CurDamage
ld a, [hli]
ld b, a
@@ -5338,7 +5348,7 @@
ld a, [EnemySubStatus4]
bit 4, a
- jp nz, Function0x35de0
+ jp nz, Function35de0
.asm_35d31
ld a, [hld]
ld b, a
@@ -5383,7 +5393,7 @@
; 35d7e
-Function0x35d7e: ; 35d7e
+Function35d7e: ; 35d7e
ld hl, CurDamage
ld a, [hli]
ld b, a
@@ -5397,7 +5407,7 @@
ld a, [PlayerSubStatus4]
bit 4, a
- jp nz, Function0x35de0
+ jp nz, Function35de0
.asm_35d93
ld a, [hld]
ld b, a
@@ -5441,7 +5451,7 @@
; 35de0
-Function0x35de0: ; 35de0
+Function35de0: ; 35de0
ld hl, SubTookDamageText
call StdBattleTextBox
@@ -5478,7 +5488,7 @@
ld a, BATTLE_VARS_SUBSTATUS3
call GetBattleVar
and $60 ; fly | dig
- call z, Function0x37ec7
+ call z, Function37ec7
call SwitchTurn
ld a, BATTLE_VARS_MOVE_EFFECT
@@ -5550,7 +5560,7 @@
jp nz, PrintDidntAffect2
ld hl, DidntAffect1Text
- call Function0x35ece
+ call Function35ece
jr c, .asm_35ec6
ld a, [de]
@@ -5560,7 +5570,7 @@
call CheckSubstituteOpp
jr nz, .asm_35ec6
- call Function0x37e01
+ call AnimateCurrentMove
ld b, $7
ld a, [$cfc0]
and a
@@ -5583,18 +5593,18 @@
callba Function3dde9
- jp z, Function0x34216
+ jp z, Function34216
ret
.asm_35ec6
push hl
- call Function0x37e77
+ call AnimateFailedMove
pop hl
jp StdBattleTextBox
; 35ece
-Function0x35ece: ; 35ece
+Function35ece: ; 35ece
; Enemy turn
ld a, [hBattleTurn]
and a
@@ -5637,7 +5647,7 @@
ld a, [TypeModifier]
and $7f
ret z
- call Function0x35fe1
+ call Function35fe1
ret z
call GetOpponentItem
ld a, b
@@ -5646,11 +5656,11 @@
ld a, [EffectFailed]
and a
ret nz
- call Function0x37962
+ call Function37962
ret nz
- call Function0x35ff5
+ call Function35ff5
ld de, $0106
- call Function0x37e54
+ call Function37e54
call RefreshBattleHuds
ld hl, WasPoisonedText
@@ -5668,7 +5678,7 @@
ld a, [TypeModifier]
and $7f
jp z, .asm_35fb8
- call Function0x35fe1
+ call Function35fe1
jp z, .asm_35fb8
ld a, BATTLE_VARS_STATUS_OPP
call GetBattleVar
@@ -5712,9 +5722,9 @@
ld a, [AttackMissed]
and a
jr nz, .asm_35fb8 ; 35f92 $24
- call Function0x35fc9
+ call Function35fc9
jr z, .asm_35fa4 ; 35f97 $b
- call Function0x35fc0
+ call Function35fc0
ld hl, WasPoisonedText
call StdBattleTextBox
@@ -5724,7 +5734,7 @@
set 0, [hl]
xor a
ld [de], a
- call Function0x35fc0
+ call Function35fc0
ld hl, BadlyPoisonedText
call StdBattleTextBox
@@ -5735,20 +5745,20 @@
.asm_35fb8
push hl
- call Function0x37e77
+ call AnimateFailedMove
pop hl
jp StdBattleTextBox
; 35fc0
-Function0x35fc0: ; 35fc0
- call Function0x37e01
- call Function0x35ff5
+Function35fc0: ; 35fc0
+ call AnimateCurrentMove
+ call Function35ff5
jp RefreshBattleHuds
; 35fc9
-Function0x35fc9: ; 35fc9
+Function35fc9: ; 35fc9
ld a, BATTLE_VARS_SUBSTATUS5_OPP
call _GetBattleVar
ld a, [hBattleTurn]
@@ -5764,7 +5774,7 @@
; 35fe1
-Function0x35fe1: ; 35fe1
+Function35fe1: ; 35fe1
ld de, EnemyMonType1
ld a, [hBattleTurn]
and a
@@ -5781,7 +5791,7 @@
; 35ff5
-Function0x35ff5: ; 35ff5
+Function35ff5: ; 35ff5
ld a, BATTLE_VARS_STATUS_OPP
call _GetBattleVar
set PSN, [hl]
@@ -5791,7 +5801,7 @@
BattleCommand15: ; 35fff
; draintarget
- call Function0x36011
+ call Function36011
ld hl, SuckedHealthText
jp StdBattleTextBox
; 36008
@@ -5799,13 +5809,13 @@
BattleCommand16: ; 36008
; eatdream
- call Function0x36011
+ call Function36011
ld hl, DreamEatenText
jp StdBattleTextBox
; 36011
-Function0x36011: ; 36011
+Function36011: ; 36011
ld hl, CurDamage
ld a, [hli]
srl a
@@ -5902,7 +5912,7 @@
ld a, [TypeModifier]
and $7f
ret z
- call Function0x36e5b
+ call Function36e5b
ret z
call GetOpponentItem
ld a, b
@@ -5911,16 +5921,16 @@
ld a, [EffectFailed]
and a
ret nz
- call Function0x37962
+ call Function37962
ret nz
ld a, BATTLE_VARS_STATUS_OPP
call _GetBattleVar
set 4, [hl]
call UpdateOpponentInParty
- ld hl, $6c76
- call CallBankF
+ ld hl, Function3ec76
+ call CallBattleCore
ld de, $0105
- call Function0x37e54
+ call Function37e54
call RefreshBattleHuds
ld hl, WasBurnedText
@@ -5975,7 +5985,7 @@
ld a, [Weather]
cp $2
ret z
- call Function0x36e5b
+ call Function36e5b
ret z
call GetOpponentItem
ld a, b
@@ -5984,7 +5994,7 @@
ld a, [EffectFailed]
and a
ret nz
- call Function0x37962
+ call Function37962
ret nz
ld a, BATTLE_VARS_STATUS_OPP
call _GetBattleVar
@@ -5991,7 +6001,7 @@
set 5, [hl]
call UpdateOpponentInParty
ld de, $0108
- call Function0x37e54
+ call Function37e54
call RefreshBattleHuds
ld hl, WasFrozenText
@@ -5999,7 +6009,7 @@
callba Function3dde9
ret nz
- call Function0x34216
+ call Function34216
call EndRechargeOpp
ld hl, $c740
ld a, [hBattleTurn]
@@ -6033,20 +6043,20 @@
ld a, [EffectFailed]
and a
ret nz
- call Function0x37962
+ call Function37962
ret nz
ld a, BATTLE_VARS_STATUS_OPP
call _GetBattleVar
set 6, [hl]
call UpdateOpponentInParty
- ld hl, $6c39
- call CallBankF
+ ld hl, Function3ec39
+ call CallBattleCore
ld de, $0109
- call Function0x37e54
+ call Function37e54
call RefreshBattleHuds
call PrintParalyze
- ld hl, $5de9
- jp CallBankF
+ ld hl, Function3dde9
+ jp CallBattleCore
; 361ac
@@ -6108,15 +6118,15 @@
jr BattleCommand1c
BattleCommand1c: ; 361e4
; statup
- call Function0x361ef
+ call Function361ef
ld a, [FailedMessage]
and a
ret nz
- jp Function0x36281
+ jp Function36281
; 361ef
-Function0x361ef: ; 361ef
+Function361ef: ; 361ef
ld a, b
ld [LoweredStat], a
ld hl, PlayerStatLevels
@@ -6127,10 +6137,10 @@
.asm_361fe
ld a, [AttackMissed]
and a
- jp nz, Function0x3627b
+ jp nz, Function3627b
ld a, [EffectFailed]
and a
- jp nz, Function0x3627b
+ jp nz, Function3627b
ld a, [LoweredStat]
and $f
ld c, a
@@ -6140,7 +6150,7 @@
inc b
ld a, $d
cp b
- jp c, Function0x36270
+ jp c, Function36270
ld a, [LoweredStat]
and $f0
jr z, .asm_3622b ; 0x36222 $7
@@ -6179,15 +6189,15 @@
jr nz, .asm_3625b ; 0x36253 $6
ld a, [hl]
sbc $3
- jp z, Function0x3626e
+ jp z, Function3626e
.asm_3625b
ld a, [hBattleTurn]
and a
jr z, .asm_36265 ; 0x3625e $5
- call Function0x365fd
+ call Function365fd
jr .asm_36268 ; 0x36263 $3
.asm_36265
- call Function0x365d7
+ call Function365d7
.asm_36268
pop hl
xor a
@@ -6196,7 +6206,7 @@
; 3626e
-Function0x3626e: ; 3626e
+Function3626e: ; 3626e
pop hl
dec [hl]
; fallthrough
@@ -6203,7 +6213,7 @@
; 36270
-Function0x36270: ; 36270
+Function36270: ; 36270
ld a, $2
ld [FailedMessage], a
ld a, $1
@@ -6212,7 +6222,7 @@
; 3627b
-Function0x3627b: ; 3627b
+Function3627b: ; 3627b
ld a, $1
ld [FailedMessage], a
ret
@@ -6219,26 +6229,26 @@
; 36281
-Function0x36281: ; 36281
+Function36281: ; 36281
ld bc, $c6fe
- ld hl, $7447
+ ld hl, Function3f447
ld a, [hBattleTurn]
and a
jr z, .asm_36292 ; 0x3628a $6
ld bc, $c6fa
- ld hl, $7486
+ ld hl, Function3f486
.asm_36292
- ld a, $c
+ ld a, BATTLE_VARS_MOVE_ANIM
call GetBattleVar
- cp $6b
+ cp MINIMIZE
ret nz
ld a, $1
ld [bc], a
- call Function0x37ed5
+ call Function37ed5
ret nc
xor a
ld [$ffd4], a
- call CallBankF
+ call CallBattleCore
call WaitBGMap
jp BattleCommandaa
; 362ad
@@ -6305,7 +6315,7 @@
ld [LoweredStat], a
- call Function0x36391
+ call Function36391
jp nz, .Mist
ld hl, EnemyStatLevels
@@ -6391,7 +6401,7 @@
ld hl, BattleMonAtk + 1
ld de, PlayerStats
.asm_36366
- call Function0x3641a
+ call Function3641a
pop hl
jr z, .CouldntLower
@@ -6424,7 +6434,7 @@
; 36391
-Function0x36391: ; 36391
+Function36391: ; 36391
ld a, BATTLE_VARS_MOVE_EFFECT
call GetBattleVar
cp EFFECT_ATTACK_DOWN
@@ -6517,7 +6527,7 @@
; 3641a
-Function0x3641a: ; 3641a
+Function3641a: ; 3641a
; Lower stat c from stat struct hl (buffer de).
push bc
@@ -6547,13 +6557,13 @@
jr z, .Player
call SwitchTurn
- call Function0x365d7
+ call Function365d7
call SwitchTurn
jr .end
.Player
call SwitchTurn
- call Function0x365fd
+ call Function365fd
call SwitchTurn
.end
ld a, 1
@@ -6691,7 +6701,7 @@
; 36532
-Function0x36532: ; 36532
+Function36532: ; 36532
ld [LoweredStat], a
ld hl, PlayerStatLevels
@@ -6733,7 +6743,7 @@
ld de, EnemyStats
.asm_36570
- call Function0x3641a
+ call Function3641a
pop hl
jr z, .asm_36588
@@ -6742,12 +6752,12 @@
and a
jr z, .asm_36580
- call Function0x365fd
+ call Function365fd
jr .asm_36583
.asm_36580
- call Function0x365d7
+ call Function365d7
.asm_36583
xor a
@@ -6797,77 +6807,77 @@
BattleCommanda6: ; 365af
- ld hl, $743d
+ ld hl, Function3f43d
ld a, [hBattleTurn]
and a
jr z, .asm_365ba ; 365b5 $3
- ld hl, $747c
+ ld hl, Function3f47c
.asm_365ba
xor a
ld [$ffd4], a
- call CallBankF
+ call CallBattleCore
jp WaitBGMap
; 365c3
BattleCommanda7: ; 365c3
- ld hl, $7447
+ ld hl, Function3f447
ld a, [hBattleTurn]
and a
jr z, .asm_365ce ; 365c9 $3
- ld hl, $7486
+ ld hl, Function3f486
.asm_365ce
xor a
ld [$ffd4], a
- call CallBankF
+ call CallBattleCore
jp WaitBGMap
; 365d7
-Function0x365d7: ; 365d7
+Function365d7: ; 365d7
ld hl, PlayerAtkLevel
ld de, PlayerStats
ld bc, BattleMonAtk
ld a, $5
- call Function0x3661d
+ call Function3661d
ld hl, BadgeStatBoosts
- call CallBankF
+ call CallBattleCore
call SwitchTurn
- ld hl, $6c39
- call CallBankF
+ ld hl, Function3ec39
+ call CallBattleCore
- ld hl, $6c76
- call CallBankF
+ ld hl, Function3ec76
+ call CallBattleCore
jp SwitchTurn
; 365fd
-Function0x365fd: ; 365fd
+Function365fd: ; 365fd
ld hl, EnemyAtkLevel
ld de, EnemyStats
ld bc, EnemyMonAtk
ld a, $5
- call Function0x3661d
+ call Function3661d
call SwitchTurn
- ld hl, $6c39
- call CallBankF
+ ld hl, Function3ec39
+ call CallBattleCore
- ld hl, $6c76
- call CallBankF
+ ld hl, Function3ec76
+ call CallBattleCore
jp SwitchTurn
; 3661d
-Function0x3661d: ; 3661d
+Function3661d: ; 3661d
.asm_3661d
push af
ld a, [hli]
@@ -7036,7 +7046,7 @@
ld [bc], a
ld a, $1
ld [$c689], a
- call Function0x37e01
+ call AnimateCurrentMove
jp EndMoveEffect
; 3671a
@@ -7060,7 +7070,7 @@
jr nz, .asm_3674c ; 36730 $1a
res 1, [hl]
call SwitchTurn
- call Function0x37962
+ call Function37962
push af
call SwitchTurn
pop af
@@ -7147,7 +7157,7 @@
jr nc, .asm_367df ; 367b7 $26
.asm_367b9
- call Function0x37e77
+ call AnimateFailedMove
jp PrintButItFailed
.asm_367bf
@@ -7177,12 +7187,12 @@
inc a
ld [$d232], a
ld [$c689], a
- call Function0x36804
+ call Function36804
call BattleCommand0a
- call Function0x37e36
+ call Function37e36
ld c, 20
call DelayFrames
- call Function0x36804
+ call Function36804
ld hl, FledFromBattleText
jp StdBattleTextBox
@@ -7189,7 +7199,7 @@
; 36804
-Function0x36804: ; 36804
+Function36804: ; 36804
ld a, [$d0ee]
and $c0
or $2
@@ -7243,11 +7253,11 @@
ld [$cfca], a
inc a
ld [$d232], a
- call Function0x36804
+ call Function36804
ld a, [PlayerMoveAnimation]
jp .asm_36975
.asm_36869
- call Function0x349f4
+ call Function349f4
jr c, .asm_368ca ; 3686c $5c
ld a, [$c70f]
and a
@@ -7255,7 +7265,7 @@
call UpdateEnemyMonInParty
ld a, $1
ld [$c689], a
- call Function0x37e01
+ call AnimateCurrentMove
ld c, $14
call DelayFrames
ld hl, $c4a1
@@ -7291,8 +7301,8 @@
ld hl, DraggedOutText
call StdBattleTextBox
- ld hl, $5c23
- jp CallBankF
+ ld hl, SpikesDamage
+ jp CallBattleCore
.asm_368ca
jp .asm_36969
@@ -7334,12 +7344,12 @@
ld [$cfca], a
inc a
ld [$d232], a
- call Function0x36804
+ call Function36804
ld a, [EnemyMoveAnimation]
jr .asm_36975
.asm_36908
- call Function0x36994
+ call Function36994
jr c, .asm_36969
ld a, [$c70f]
@@ -7349,12 +7359,12 @@
call UpdateBattleMonInParty
ld a, $1
ld [$c689], a
- call Function0x37e01
+ call AnimateCurrentMove
ld c, $14
call DelayFrames
ld hl, $c535
ld bc, $050b
- call $0fb6
+ call ClearBox
ld c, $14
call DelayFrames
ld a, [PartyCount]
@@ -7382,14 +7392,14 @@
ld a, d
ld [CurPartyMon], a
- ld hl, $5b32
- call CallBankF
+ ld hl, Function3db32
+ call CallBattleCore
ld hl, DraggedOutText
call StdBattleTextBox
- ld hl, $5c23
- jp CallBankF
+ ld hl, SpikesDamage
+ jp CallBattleCore
.asm_36969
call BattleCommand0a
@@ -7399,10 +7409,10 @@
.asm_36975
push af
- call Function0x36804
+ call Function36804
ld a, $1
ld [$c689], a
- call Function0x37e01
+ call AnimateCurrentMove
ld c, $14
call DelayFrames
pop af
@@ -7416,7 +7426,7 @@
; 36994
-Function0x36994: ; 36994
+Function36994: ; 36994
ld a, [PartyCount]
ld d, a
ld e, 0
@@ -7590,8 +7600,8 @@
call GetBattleVar
and $27
jr nz, .asm_36a9a ; 36a93 $5
- call Function0x36abf
- jr z, Function0x36ab5 ; 36a98 $1b
+ call Function36abf
+ jr z, Function36ab5 ; 36a98 $1b
.asm_36a9a
ld a, 1
ld [AttackMissed], a
@@ -7606,7 +7616,7 @@
call GetBattleVar
and $27
ret nz
- call Function0x36abf
+ call Function36abf
ret nz
ld a, [EffectFailed]
and a
@@ -7616,7 +7626,7 @@
; 36ab5
-Function0x36ab5: ; 36ab5
+Function36ab5: ; 36ab5
ld a, BATTLE_VARS_SUBSTATUS3_OPP
call _GetBattleVar
set 3, [hl]
@@ -7624,7 +7634,7 @@
; 36abf
-Function0x36abf: ; 36abf
+Function36abf: ; 36abf
push bc
ld a, [$c70f]
ld b, a
@@ -7644,7 +7654,7 @@
call GetUserItem
ld a, b
- cp $4b ; king's rock
+ cp HELD_TRADE_EVOLVE ; king's rock
ret nz
call CheckSubstituteOpp
@@ -7758,7 +7768,7 @@
ld [$cfca], a
inc a
ld [$c689], a
- call Function0x37e36
+ call Function37e36
ld a, BATTLE_VARS_MOVE_ANIM
call GetBattleVar
cp $13
@@ -7768,7 +7778,7 @@
call BattleCommand0c
jr .asm_36b99 ; 36b94 $3
.asm_36b96
- call Function0x37ec0
+ call Function37ec0
.asm_36b99
ld a, BATTLE_VARS_SUBSTATUS3
call _GetBattleVar
@@ -7786,7 +7796,7 @@
set 6, [hl]
.asm_36bb2
- call Function0x34548
+ call Function34548
jr nz, .asm_36bc3 ; 36bb5 $c
ld a, BATTLE_VARS_LAST_COUNTER_MOVE
call _GetBattleVar
@@ -7944,11 +7954,11 @@
bit 1, [hl]
jr nz, .asm_36c92 ; 36c85 $b
set 1, [hl]
- call Function0x37e01
+ call AnimateCurrentMove
ld hl, MistText
jp StdBattleTextBox
.asm_36c92
- call Function0x37e77
+ call AnimateFailedMove
jp PrintButItFailed
; 36c98
@@ -7961,11 +7971,11 @@
bit 2, [hl]
jr nz, .asm_36cac ; 36c9f $b
set 2, [hl]
- call Function0x37e01
+ call AnimateCurrentMove
ld hl, GettingPumpedText
jp StdBattleTextBox
.asm_36cac
- call Function0x37e77
+ call AnimateFailedMove
jp PrintButItFailed
; 36cb2
@@ -8046,7 +8056,7 @@
ld a, [EffectFailed]
and a
ret nz
- call Function0x37962
+ call Function37962
ret nz
call CheckSubstituteOpp
ret nz
@@ -8054,7 +8064,7 @@
call _GetBattleVar
bit 7, [hl]
ret nz
- jr Function0x36d70
+ jr Function36d70
BattleCommand2a: ; 36d3b
@@ -8067,7 +8077,7 @@
ld a, [hl]
ld [$d265], a
call GetItemName
- call Function0x37e77
+ call AnimateFailedMove
ld hl, ProtectedByText
jp StdBattleTextBox
@@ -8076,22 +8086,22 @@
call _GetBattleVar
bit 7, [hl]
jr z, .asm_36d65
- call Function0x37e77
+ call AnimateFailedMove
ld hl, AlreadyConfusedText
jp StdBattleTextBox
.asm_36d65
call CheckSubstituteOpp
- jr nz, Function0x36db6
+ jr nz, Function36db6
ld a, [AttackMissed]
and a
- jr nz, Function0x36db6
+ jr nz, Function36db6
; fallthrough
; 36d70
-Function0x36d70: ; 36d70
+Function36d70: ; 36d70
ld bc, EnemyConfuseCount
ld a, [hBattleTurn]
and a
@@ -8114,11 +8124,11 @@
jr z, .asm_36d99
cp EFFECT_SWAGGER
jr z, .asm_36d99
- call Function0x37e01
+ call AnimateCurrentMove
.asm_36d99
ld de, $0103
- call Function0x37e54
+ call Function37e54
ld hl, BecameConfusedText
call StdBattleTextBox
@@ -8130,11 +8140,11 @@
cp $10
ret nz
.asm_36db0
- ld hl, $5e51
- jp CallBankF
+ ld hl, Function3de51
+ jp CallBattleCore
; 36db6
-Function0x36db6: ; 36db6
+Function36db6: ; 36db6
ld a, BATTLE_VARS_MOVE_EFFECT
call GetBattleVar
cp EFFECT_CONFUSE_HIT
@@ -8164,7 +8174,7 @@
ld a, [hl]
ld [$d265], a
call GetItemName
- call Function0x37e77
+ call AnimateFailedMove
ld hl, ProtectedByText
jp StdBattleTextBox
.asm_36def
@@ -8195,7 +8205,7 @@
jr nz, .asm_36e52 ; 36e1f $31
ld c, $1e
call DelayFrames
- call Function0x37e01
+ call AnimateCurrentMove
ld a, $1
ld [$ffd4], a
ld a, BATTLE_VARS_STATUS_OPP
@@ -8202,25 +8212,25 @@
call _GetBattleVar
set 6, [hl]
call UpdateOpponentInParty
- ld hl, $6c39
- call CallBankF
+ ld hl, Function3ec39
+ call CallBattleCore
call UpdateBattleHuds
call PrintParalyze
- ld hl, $5de9
- jp CallBankF
+ ld hl, Function3dde9
+ jp CallBattleCore
.asm_36e49
- call Function0x37e77
+ call AnimateFailedMove
ld hl, AlreadyParalyzedText
jp StdBattleTextBox
.asm_36e52
jp PrintDidntAffect2
.asm_36e55
- call Function0x37e77
+ call AnimateFailedMove
jp PrintDoesntAffect
; 36e5b
-Function0x36e5b: ; 36e5b
+Function36e5b: ; 36e5b
; Compare move type to user type.
; Return z if matching the user type (unless the move is Normal).
@@ -8309,7 +8319,7 @@
xor a
ld [hl], a
ld [de], a
- call Function0x37ed5
+ call Function37ed5
jr c, .asm_36ee8 ; 36ed5 $11
xor a
ld [$cfca], a
@@ -8316,7 +8326,7 @@
ld [FXAnimIDHi], a
ld [$c689], a
ld a, $a4
- call Function0x37e44
+ call Function37e44
jr .asm_36eeb ; 36ee6 $3
.asm_36ee8
call BattleCommanda6
@@ -8325,12 +8335,12 @@
call StdBattleTextBox
jp RefreshBattleHuds
.asm_36ef4
- call Function0x34548
+ call Function34548
call nz, BattleCommand0c
ld hl, HasSubstituteText
jr .asm_36f08 ; 36efd $9
.asm_36eff
- call Function0x34548
+ call Function34548
call nz, BattleCommand0c
ld hl, TooWeakSubText
.asm_36f08
@@ -8404,7 +8414,7 @@
BattleCommand33: ; 36f46
; mimic
- call Function0x372d8
+ call Function372d8
call BattleCommandaa
ld a, [AttackMissed]
and a
@@ -8445,11 +8455,11 @@
add hl, bc
ld [hl], $5
call GetMoveName
- call Function0x37e01
+ call AnimateCurrentMove
ld hl, LearnedMoveText
jp StdBattleTextBox
.asm_36f9a
- jp Function0x37357
+ jp Function37357
; 36f9d
@@ -8478,14 +8488,14 @@
bit 7, [hl]
jr nz, .asm_36fd8 ; 36fc5 $11
set 7, [hl]
- call Function0x37e01
+ call AnimateCurrentMove
ld hl, WasSeededText
jp StdBattleTextBox
.asm_36fd2
- call Function0x37e77
+ call AnimateFailedMove
jp PrintDoesntAffect
.asm_36fd8
- call Function0x37e77
+ call AnimateFailedMove
ld hl, EvadedText
jp StdBattleTextBox
; 36fe1
@@ -8492,7 +8502,7 @@
BattleCommand36: ; 36fe1
- call Function0x37e01
+ call AnimateCurrentMove
callba Function1060e5
jp PrintNothingHappened
; 36fed
@@ -8548,7 +8558,7 @@
swap c
add c
ld [de], a
- call Function0x37e01
+ call AnimateCurrentMove
ld hl, DisabledMove
ld a, [hBattleTurn]
and a
@@ -8563,7 +8573,7 @@
ld hl, WasDisabledText
jp StdBattleTextBox
.asm_37059
- jp Function0x37354
+ jp Function37354
; 3705c
@@ -8656,7 +8666,7 @@
inc hl
jr .asm_370bd ; 370d1 $ea
.asm_370d3
- call Function0x37e77
+ call AnimateFailedMove
jp PrintButItFailed
.asm_370d9
call BattleRandom
@@ -8684,7 +8694,7 @@
ld [de], a
ld [$d265], a
callba GetTypeName
- call Function0x37e01
+ call AnimateCurrentMove
ld hl, TransformedTypeText
jp StdBattleTextBox
; 3710e
@@ -8703,14 +8713,14 @@
push af
call SetPlayerTurn
- call Function0x365d7
+ call Function365d7
call SetEnemyTurn
- call Function0x365fd
+ call Function365fd
pop af
ld [hBattleTurn], a
- call Function0x37e01
+ call AnimateCurrentMove
ld hl, EliminatedStatsText
jp StdBattleTextBox
@@ -8771,10 +8781,10 @@
ld a, [hBattleTurn]
and a
jr nz, .asm_37193 ; 3718c $5
- call Function0x365d7
+ call Function365d7
jr .asm_37196 ; 37191 $3
.asm_37193
- call Function0x365fd
+ call Function365fd
.asm_37196
pop af
pop de
@@ -8781,17 +8791,17 @@
pop hl
.asm_37199
jr z, .asm_371a3 ; 37199 $8
- ld hl, $4c9f
- call CallBankF
+ ld hl, GetHalfMaxHP
+ call CallBattleCore
jr .asm_371a9 ; 371a1 $6
.asm_371a3
- ld hl, $4cac
- call CallBankF
+ ld hl, GetMaxHP
+ call CallBattleCore
.asm_371a9
- call Function0x37e01
+ call AnimateCurrentMove
call SwitchTurn
- ld hl, $4cef
- call CallBankF
+ ld hl, Function3ccef
+ call CallBattleCore
call SwitchTurn
call UpdateUserInParty
call RefreshBattleHuds
@@ -8799,7 +8809,7 @@
jp StdBattleTextBox
.asm_371c4
- call Function0x37e77
+ call AnimateFailedMove
ld hl, HPIsFullText
jp StdBattleTextBox
; 371cd
@@ -8808,13 +8818,13 @@
BattleCommand2d: ; 371cd
; transform
- call Function0x372d8
+ call Function372d8
ld a, BATTLE_VARS_SUBSTATUS5_OPP
call _GetBattleVar
bit 3, [hl]
- jp nz, Function0x372d2
+ jp nz, Function372d2
call CheckHiddenOpponent
- jp nz, Function0x372d2
+ jp nz, Function372d2
xor a
ld [$cfca], a
ld [FXAnimIDHi], a
@@ -8825,15 +8835,15 @@
bit 4, [hl]
push af
jr z, .asm_37200 ; 371f4 $a
- call Function0x34548
+ call Function34548
jr nz, .asm_37200 ; 371f9 $5
ld a, $a4
- call Function0x37e44
+ call Function37e44
.asm_37200
ld a, BATTLE_VARS_SUBSTATUS5
call _GetBattleVar
set 3, [hl]
- call Function0x372e7
+ call ResetActorDisable
ld hl, BattleMonSpecies
ld de, EnemyMonSpecies
ld a, [hBattleTurn]
@@ -8851,7 +8861,7 @@
inc de
inc de
ld bc, $0004
- call $3026
+ call CopyBytes
ld a, [hBattleTurn]
and a
jr z, .asm_3723a ; 3722e $a
@@ -8878,7 +8888,7 @@
ld e, l
pop hl
ld bc, $000c
- call $3026
+ call CopyBytes
ld bc, $ffe2
add hl, bc
push de
@@ -8893,10 +8903,10 @@
inc de
and a
jr z, .asm_3726c ; 37262 $8
- cp $a6
- ld a, $1
+ cp SKETCH
+ ld a, 1
jr z, .asm_3726c ; 37268 $2
- ld a, $5
+ ld a, 5
.asm_3726c
ld [hli], a
dec b
@@ -8904,7 +8914,7 @@
pop hl
ld a, [hl]
ld [$d265], a
- call $343b
+ call GetPokemonName
ld hl, EnemyStats
ld de, PlayerStats
ld bc, $000a
@@ -8913,7 +8923,7 @@
ld de, PlayerStatLevels
ld bc, $0008
call BattleSideCopy
- call Function0x37ed5
+ call Function37ed5
jr c, .asm_372a8 ; 37293 $13
ld a, [hBattleTurn]
and a
@@ -8923,7 +8933,7 @@
.asm_372a0
and a
jr nz, .asm_372a8 ; 372a1 $5
- call Function0x37e36
+ call Function37e36
jr .asm_372ae ; 372a6 $6
.asm_372a8
call BattleCommandaa
@@ -8936,7 +8946,7 @@
ld [$c689], a
pop af
ld a, $a4
- call nz, Function0x37e44
+ call nz, Function37e44
ld hl, TransformedText
jp StdBattleTextBox
; 372c6
@@ -8959,13 +8969,13 @@
; 372d2
-Function0x372d2: ; 372d2
- call Function0x37e77
+Function372d2: ; 372d2
+ call AnimateFailedMove
jp PrintButItFailed
; 372d8
-Function0x372d8: ; 372d8
+Function372d8: ; 372d8
ld a, BATTLE_VARS_LAST_COUNTER_MOVE
call _GetBattleVar
xor a
@@ -8979,7 +8989,7 @@
; 372e7
-Function0x372e7: ; 372e7
+ResetActorDisable: ; 372e7
ld a, [hBattleTurn]
and a
jr z, .player
@@ -9035,11 +9045,11 @@
ld hl, ReflectEffectText
.asm_37331
- call Function0x37e01
+ call AnimateCurrentMove
jp StdBattleTextBox
.asm_37337
- call Function0x37e77
+ call AnimateFailedMove
jp PrintButItFailed
; 3733d
@@ -9074,15 +9084,15 @@
; 37354
-Function0x37354: ; 37354
- call Function0x37e77
+Function37354: ; 37354
+ call AnimateFailedMove
; fallthrough
; 37357
-Function0x37357: ; 37357
+Function37357: ; 37357
ld hl, ButItFailedText ; 'but it failed!'
ld de, ItFailedText ; 'it failed!'
- jp Function0x35157
+ jp Function35157
; 37360
@@ -9094,10 +9104,10 @@
PrintDidntAffect2: ; 37366
- call Function0x37e77
+ call AnimateFailedMove
ld hl, DidntAffect1Text ; 'it didn't affect'
ld de, DidntAffect2Text ; 'it didn't affect'
- jp Function0x35157
+ jp Function35157
; 37372
@@ -9132,7 +9142,7 @@
ld a, $1
ld [$c689], a
call BattleCommand0a
- call Function0x37e36
+ call Function37e36
ld a, BATTLE_VARS_SUBSTATUS4
call _GetBattleVar
res 7, [hl]
@@ -9139,7 +9149,7 @@
ld a, BATTLE_VARS_SUBSTATUS5_OPP
call _GetBattleVar
res 6, [hl]
- call Function0x37ed5
+ call Function37ed5
ret nc
callba DrawPlayerHUD
callba Function3e043
@@ -9216,12 +9226,12 @@
; Otherwise trap the opponent.
set SUBSTATUS_CANT_RUN, [hl]
- call Function0x37e01
+ call AnimateCurrentMove
ld hl, CantEscapeNowText
jp StdBattleTextBox
.failed
- call Function0x37e77
+ call AnimateFailedMove
jp PrintButItFailed
; 37536
@@ -9351,7 +9361,7 @@
ld a, [AttackMissed]
and a
jr nz, .asm_377f2
- call Function0x377f5
+ call Function377f5
jr c, .asm_377f2
call CheckHiddenOpponent
jr nz, .asm_377f2
@@ -9361,7 +9371,7 @@
jr nz, .asm_377f2
set 7, [hl]
- call Function0x37e01
+ call AnimateCurrentMove
; 'fell in love!'
ld hl, FellInLoveText
@@ -9368,11 +9378,11 @@
jp StdBattleTextBox
.asm_377f2
- jp Function0x37354
+ jp Function37354
; 377f5
-Function0x377f5: ; 377f5
+Function377f5: ; 377f5
ld a, 0
call BattlePartyAttr
ld a, [hl]
@@ -9474,10 +9484,10 @@
.asm_37889
ld a, [$d265]
and a
- jp z, Function0x37e77
+ jp z, AnimateFailedMove
ld a, [AttackMissed]
and a
- jp nz, Function0x37e77
+ jp nz, AnimateFailedMove
push bc
call BattleRandom
ld b, a
@@ -9495,7 +9505,7 @@
.asm_378ad
ld a, c
ld [$c689], a
- call Function0x37de9
+ call Function37de9
ld d, [hl]
pop bc
ret
@@ -9503,7 +9513,7 @@
pop bc
ld a, $3
ld [$c689], a
- call Function0x37e01
+ call AnimateCurrentMove
call SwitchTurn
ld hl, AICheckPlayerMaxHP
ld a, [hBattleTurn]
@@ -9514,11 +9524,11 @@
ld a, BANK(AICheckPlayerMaxHP)
rst FarCall
jr c, .asm_378f3 ; 378d1 $20
- ld hl, $4c8e
- call CallBankF
+ ld hl, GetQuarterMaxHP
+ call CallBattleCore
call SwitchTurn
- ld hl, $4cef
- call CallBankF
+ ld hl, Function3ccef
+ call CallBattleCore
call SwitchTurn
ld hl, RegainedHealthText
call StdBattleTextBox
@@ -9527,9 +9537,9 @@
jr .asm_37904 ; 378f1 $11
.asm_378f3
call SwitchTurn
- call Function0x37ed5
+ call Function37ed5
jr nc, .asm_37904 ; 378f9 $9
- call Function0x37e77
+ call AnimateFailedMove
ld hl, RefusedGiftText
call StdBattleTextBox
.asm_37904
@@ -9589,16 +9599,16 @@
set 2, [hl]
ld a, $5
ld [de], a
- call Function0x37e01
+ call AnimateCurrentMove
ld hl, CoveredByVeilText
jp StdBattleTextBox
.asm_3795c
- call Function0x37e77
+ call AnimateFailedMove
jp PrintButItFailed
; 37962
-Function0x37962: ; 37962
+Function37962: ; 37962
push hl
ld hl, EnemyScreens
ld a, [hBattleTurn]
@@ -9678,85 +9688,85 @@
and a
jp nz, .Enemy
- call Function0x37ae9
- jp z, Function0x37aab
+; Need something to switch to
+ call CheckAnyOtherAlivePartyMons
+ jp z, FailedBatonPass
+
call UpdateBattleMonInParty
- call Function0x37e01
+ call AnimateCurrentMove
ld c, 50
call DelayFrames
+; Transition into switchmon menu
call Function1d6e
-
callba Function3d2f7
- callba Function3d380
+ callba ForcePickSwitchMonInBattle
+; Return to battle scene
call ClearPalettes
-
callba Function3ed9f
-
call Function1c17
call ClearSprites
-
- ld hl, $c4a1
- ld bc, $040a
+ hlcoord 1, 0
+ lb bc, 4, 10
call ClearBox
-
ld b, 1
call GetSGBLayout
call Function32f9
- call Function0x37a67
+ call BatonPass_LinkPlayerSwitch
+; Mobile link battles handle entrances differently
callba Function3d2e0
-
jp c, EndMoveEffect
- ld hl, Function3e459
- call CallBankF
- call Function0x37ab1
+ ld hl, PassedBattleMonEntrance
+ call CallBattleCore
+ call ResetBatonPassStatus
ret
+
.Enemy
+
+; Wildmons don't have anything to switch to
ld a, [IsInBattle]
- dec a
- jp z, Function0x37aab
+ dec a ; WILDMON
+ jp z, FailedBatonPass
- call Function0x37af6
- jp z, Function0x37aab
+ call CheckAnyOtherAliveEnemyMons
+ jp z, FailedBatonPass
call UpdateEnemyMonInParty
- call Function0x37e01
- call Function0x37a82
+ call AnimateCurrentMove
+ call BatonPass_LinkEnemySwitch
+; Mobile link battles handle entrances differently
callba Function3d2e0
jp c, EndMoveEffect
+; Passed enemy PartyMon entrance
xor a
ld [$c718], a
-
- ld hl, $5517
- call CallBankF
-
- ld hl, $557a
- call CallBankF
-
+ ld hl, Function3d517
+ call CallBattleCore
+ ld hl, Function3d57a
+ call CallBattleCore
ld a, 1
ld [$d265], a
+ ld hl, Function3ecab
+ call CallBattleCore
- ld hl, $6cab
- call CallBankF
+ ld hl, SpikesDamage
+ call CallBattleCore
- ld hl, $5c23
- call CallBankF
-
- jr Function0x37ab1
+ jr ResetBatonPassStatus
; 37a67
-Function0x37a67: ; 37a67
+BatonPass_LinkPlayerSwitch: ; 37a67
ld a, [InLinkBattle]
and a
ret z
@@ -9764,76 +9774,84 @@
ld a, 1
ld [$d0ec], a
- call $1d6e
+ call Function1d6e
+ ld hl, Function3e8e4
+ call CallBattleCore
+ call Function1c17
- ld hl, $68e4
- call CallBankF
-
- call $1c17
-
xor a
ld [$d0ec], a
-
ret
; 37a82
-Function0x37a82; 37a82
+BatonPass_LinkEnemySwitch: ; 37a82
ld a, [InLinkBattle]
and a
ret z
- call $1d6e
- ld hl, $68e4
- call CallBankF
+ call Function1d6e
+ ld hl, Function3e8e4
+ call CallBattleCore
+
ld a, [OTPartyCount]
- add $4
+ add 4
ld b, a
ld a, [$d430]
- cp $4
+ cp 4
jr c, .asm_37aa0
-
cp b
jr c, .asm_37aa8
.asm_37aa0
ld a, [CurOTMon]
- add $4
+ add 4
ld [$d430], a
.asm_37aa8
- jp $1c17
+ jp Function1c17
; 37aab
-Function0x37aab: ; 37aab
- call Function0x37e77
+FailedBatonPass: ; 37aab
+ call AnimateFailedMove
jp PrintButItFailed
; 37ab1
-Function0x37ab1: ; 37ab1
+ResetBatonPassStatus: ; 37ab1
+; Reset status changes that aren't passed by Baton Pass.
+
+; Nightmare isn't passed.
ld a, BATTLE_VARS_STATUS
call GetBattleVar
- and 7
- jr nz, .asm_37ac1
+ and SLP
+ jr nz, .ok
+
ld a, BATTLE_VARS_SUBSTATUS1
call _GetBattleVar
- res 0, [hl]
+ res SUBSTATUS_NIGHTMARE, [hl]
+.ok
-.asm_37ac1
- call Function0x372e7
+; Disable isn't passed.
+ call ResetActorDisable
+
+; Attraction isn't passed.
ld hl, PlayerSubStatus1
- res 7, [hl]
+ res SUBSTATUS_IN_LOVE, [hl]
ld hl, EnemySubStatus1
- res 7, [hl]
+ res SUBSTATUS_IN_LOVE, [hl]
ld hl, PlayerSubStatus5
+
ld a, BATTLE_VARS_SUBSTATUS5
call _GetBattleVar
res 3, [hl]
res 4, [hl]
+
+; New mon hasn't used a move yet.
ld a, BATTLE_VARS_LAST_MOVE
call _GetBattleVar
ld [hl], 0
+
xor a
ld [$c730], a
ld [$c731], a
@@ -9841,17 +9859,17 @@
; 37ae9
-Function0x37ae9: ; 37ae9
+CheckAnyOtherAlivePartyMons: ; 37ae9
ld hl, PartyMon1CurHP
ld a, [PartyCount]
ld d, a
ld a, [CurBattleMon]
ld e, a
- jr Function0x37b01
+ jr CheckAnyOtherAliveMons
; 37af6
-Function0x37af6: ; 37af6
+CheckAnyOtherAliveEnemyMons: ; 37af6
ld hl, OTPartyMon1CurHP
ld a, [OTPartyCount]
ld d, a
@@ -9861,17 +9879,21 @@
; fallthrough
; 37b01
-Function0x37b01: ; 37b01
+CheckAnyOtherAliveMons: ; 37b01
+; Check for nonzero HP starting from partymon
+; HP at hl for d partymons, besides current mon e.
+
+; Return nz if any are alive.
+
xor a
ld b, a
ld c, a
-.asm_37b04
+.loop
ld a, c
cp d
- jr z, .asm_37b1a
-
+ jr z, .done
cp e
- jr z, .asm_37b11
+ jr z, .next
ld a, [hli]
or b
@@ -9879,15 +9901,16 @@
ld a, [hld]
or b
ld b, a
-.asm_37b11
+
+.next
push bc
- ld bc, $30
+ ld bc, PartyMon2 - PartyMon1
add hl, bc
pop bc
inc c
- jr .asm_37b04
+ jr .loop
-.asm_37b1a
+.done
ld a, b
and a
ret
@@ -10028,7 +10051,7 @@
ld a, BANK(GetMaxHP)
rst FarCall
- call Function0x37e01
+ call AnimateCurrentMove
call SwitchTurn
callab Function3ccef
@@ -10041,7 +10064,7 @@
jp StdBattleTextBox
.Full
- call Function0x37e77
+ call AnimateFailedMove
; 'hp is full!'
ld hl, HPIsFullText
@@ -10061,7 +10084,7 @@
ld a, [AttackMissed]
and a
ret nz
- callba GetHiddenPower
+ callba HiddenPowerDamage
ret
; 37bf4
@@ -10072,7 +10095,7 @@
ld [Weather], a
ld a, 5
ld [WeatherCount], a
- call Function0x37e01
+ call AnimateCurrentMove
ld hl, DownpourText
jp StdBattleTextBox
; 37c07
@@ -10084,7 +10107,7 @@
ld [Weather], a
ld a, 5
ld [WeatherCount], a
- call Function0x37e01
+ call AnimateCurrentMove
ld hl, SunGotBrightText
jp StdBattleTextBox
; 37c1a
@@ -10103,7 +10126,7 @@
jr nc, .asm_37c4f
push bc
- call Function0x37e01
+ call AnimateCurrentMove
pop bc
callab Function3cc3f
call UpdateUserInParty
@@ -10119,7 +10142,7 @@
ld hl, BellyDrumText
jp StdBattleTextBox
.asm_37c4f
- call Function0x37e77
+ call AnimateFailedMove
jp PrintButItFailed
; 37c55
@@ -10146,7 +10169,7 @@
dec b
jr nz, .asm_37c67 ; 37c6d $f8
pop hl
- call Function0x37e77
+ call AnimateFailedMove
jp PrintButItFailed
.asm_37c76
pop hl
@@ -10160,12 +10183,12 @@
ld a, [hBattleTurn]
and a
jr nz, .asm_37c89 ; 37c82 $5
- call Function0x365d7
+ call Function365d7
jr .asm_37c8c ; 37c87 $3
.asm_37c89
- call Function0x365fd
+ call Function365fd
.asm_37c8c
- call Function0x37e01
+ call AnimateCurrentMove
ld hl, CopiedStatsText
jp StdBattleTextBox
; 37c95
@@ -10174,38 +10197,47 @@
BattleCommand9a: ; 37c95
; mirrorcoat
- ld a, $1
+ ld a, 1
ld [AttackMissed], a
+
ld a, BATTLE_VARS_LAST_COUNTER_MOVE_OPP
call GetBattleVar
and a
ret z
+
ld b, a
callab GetMoveEffect
ld a, b
- cp $90
+ cp EFFECT_MIRROR_COAT
ret z
+
call BattleCommanda3
ld a, [$d265]
and a
ret z
- call Function0x36abf
+
+ call Function36abf
ret z
+
ld a, BATTLE_VARS_LAST_COUNTER_MOVE_OPP
call GetBattleVar
dec a
ld de, StringBuffer1
call GetMoveData
+
ld a, [$d075]
and a
ret z
+
ld a, [$d076]
- cp $14
+ cp SPECIAL
ret c
+
ld hl, CurDamage
ld a, [hli]
or [hl]
ret z
+
ld a, [hl]
add a
ld [hld], a
@@ -10212,11 +10244,12 @@
ld a, [hl]
adc a
ld [hl], a
- jr nc, .asm_37ce1 ; 37cdb $4
+ jr nc, .capped
ld a, $ff
ld [hli], a
ld [hl], a
-.asm_37ce1
+.capped
+
xor a
ld [AttackMissed], a
ret
@@ -10288,7 +10321,7 @@
BattleCommand9c: ; 37d34
; futuresight
- call Function0x34548
+ call Function34548
jr nz, .asm_37d4b ; 37d37 $12
ld a, BATTLE_VARS_MOVE_ANIM
call GetBattleVar
@@ -10335,7 +10368,7 @@
.asm_37d87
pop bc
call ResetDamage
- call Function0x37e77
+ call AnimateFailedMove
call PrintButItFailed
jp EndMoveEffect
; 37d94
@@ -10416,7 +10449,7 @@
; 37de9
-Function0x37de9: ; 37de9
+Function37de9: ; 37de9
push hl
push de
push bc
@@ -10425,7 +10458,7 @@
call BattleCommand0a
pop af
ld [$c689], a
- call Function0x37e19
+ call Function37e19
call BattleCommand0c
pop bc
pop de
@@ -10434,7 +10467,7 @@
; 37e01
-Function0x37e01: ; 37e01
+AnimateCurrentMove: ; 37e01
push hl
push de
push bc
@@ -10443,7 +10476,7 @@
call BattleCommand0a
pop af
ld [$c689], a
- call Function0x37e36
+ call Function37e36
call BattleCommand0c
pop bc
pop de
@@ -10452,7 +10485,7 @@
; 37e19
-Function0x37e19: ; 37e19
+Function37e19: ; 37e19
xor a
ld [FXAnimIDHi], a
@@ -10472,11 +10505,11 @@
.asm_37e30
ld [$cfca], a
- jp Function0x37e47
+ jp Function37e47
; 37e36
-Function0x37e36: ; 37e36
+Function37e36: ; 37e36
xor a
ld [$cfca], a
ld [FXAnimIDHi], a
@@ -10490,7 +10523,7 @@
; 37e44
-Function0x37e44: ; 37e44
+Function37e44: ; 37e44
ld [FXAnimIDLo], a
@@ -10498,7 +10531,7 @@
; 37e47
-Function0x37e47: ; 37e47
+Function37e47: ; 37e47
push hl
push de
push bc
@@ -10510,7 +10543,7 @@
; 37e54
-Function0x37e54: ; 37e54
+Function37e54: ; 37e54
ld a, e
ld [FXAnimIDLo], a
ld a, d
@@ -10533,14 +10566,14 @@
; 37e73
-CallBankF: ; 37e73
- ld a, $f
+CallBattleCore: ; 37e73
+ ld a, BANK(BattleCore)
rst FarCall
ret
; 37e77
-Function0x37e77: ; 37e77
+AnimateFailedMove: ; 37e77
call BattleCommand0a
call BattleCommandaa
jp BattleCommand0c
@@ -10612,25 +10645,25 @@
; 37ec0
-Function0x37ec0: ; 37ec0
+Function37ec0: ; 37ec0
callba Functionfbd54
ret
; 37ec7
-Function0x37ec7: ; 37ec7
+Function37ec7: ; 37ec7
callba Functionfbd71
ret
; 37ece
-Function0x37ece: ; 37ece
+Function37ece: ; 37ece
callba Functionfbd69
ret
; 37ed5
-Function0x37ed5: ; 37ed5
+Function37ed5: ; 37ed5
; Related to mobile link battles.
push hl
push de
--- a/battle/effects/curse.asm
+++ b/battle/effects/curse.asm
@@ -41,9 +41,9 @@
ld a, $1
ld [$c689], a
- call Function0x37e01
+ call AnimateCurrentMove
ld a, $2
- call Function0x36532
+ call Function36532
call SwitchTurn
call BattleCommand8d
call ResetMiss
@@ -71,17 +71,17 @@
jr nz, .failed
set 1, [hl]
- call Function0x37e01
+ call AnimateCurrentMove
ld hl, GetHalfMaxHP
- call CallBankF
+ call CallBattleCore
ld hl, Function3cc3f
- call CallBankF
+ call CallBattleCore
call UpdateUserInParty
ld hl, PutACurseText
jp StdBattleTextBox
.failed
- call Function0x37e77
+ call AnimateFailedMove
jp PrintButItFailed
@@ -91,7 +91,7 @@
ld b, $8 ; ABILITY
call GetStatName
- call Function0x37e77
+ call AnimateFailedMove
ld hl, WontRiseAnymoreText
jp StdBattleTextBox
; 37618
--- a/battle/effects/endure.asm
+++ b/battle/effects/endure.asm
@@ -10,7 +10,7 @@
call _GetBattleVar
set SUBSTATUS_ENDURE, [hl]
- call Function0x37e01
+ call AnimateCurrentMove
ld hl, BracedItselfText
jp StdBattleTextBox
--- a/battle/effects/foresight.asm
+++ b/battle/effects/foresight.asm
@@ -14,11 +14,11 @@
jr nz, .failed
set SUBSTATUS_IDENTIFIED, [hl]
- call Function0x37e01
+ call AnimateCurrentMove
ld hl, IdentifiedText
jp StdBattleTextBox
.failed
- jp Function0x37354
+ jp Function37354
; 376c2
--- a/battle/effects/metronome.asm
+++ b/battle/effects/metronome.asm
@@ -1,8 +1,8 @@
BattleCommand34: ; 37418
; metronome
- call Function0x372d8
- call Function0x34548
+ call Function372d8
+ call Function34548
jr nz, .asm_3742b
ld a, [$c689]
@@ -12,7 +12,7 @@
ld [$c689], a
.asm_3742b
- call Function0x37e36
+ call Function37e36
.GetMove
call BattleRandom
--- a/battle/effects/mirror_move.asm
+++ b/battle/effects/mirror_move.asm
@@ -1,7 +1,7 @@
BattleCommand1b: ; 373c9
; mirrormove
- call Function0x372d8
+ call Function372d8
ld a, BATTLE_VARS_MOVE
call _GetBattleVar
@@ -15,7 +15,7 @@
jr nz, .use
.failed
- call Function0x37e77
+ call AnimateFailedMove
ld hl, MirrorMoveFailedText
call StdBattleTextBox
@@ -37,7 +37,7 @@
call GetMoveData
call GetMoveName
call CopyName1
- call Function0x34548
+ call Function34548
jr nz, .done
ld a, [$c689]
--- a/battle/effects/nightmare.asm
+++ b/battle/effects/nightmare.asm
@@ -28,12 +28,12 @@
; Otherwise give the opponent a nightmare.
set SUBSTATUS_NIGHTMARE, [hl]
- call Function0x37e01
+ call AnimateCurrentMove
ld hl, StartedNightmareText
jp StdBattleTextBox
.failed
- call Function0x37e77
+ call AnimateFailedMove
jp PrintButItFailed
; 37563
--- a/battle/effects/perish_song.asm
+++ b/battle/effects/perish_song.asm
@@ -30,12 +30,12 @@
ld [EnemyPerishCount], a
.done
- call Function0x37e01
+ call AnimateCurrentMove
ld hl, StartPerishText
jp StdBattleTextBox
.failed
- call Function0x37e77
+ call AnimateFailedMove
jp PrintButItFailed
; 376f8
--- a/battle/effects/protect.asm
+++ b/battle/effects/protect.asm
@@ -7,7 +7,7 @@
call _GetBattleVar
set SUBSTATUS_PROTECT, [hl]
- call Function0x37e01
+ call AnimateCurrentMove
ld hl, ProtectedItselfText
jp StdBattleTextBox
@@ -23,7 +23,7 @@
ld de, EnemyProtectCount
.asm_37637
- call Function0x36abf
+ call Function36abf
jr nz, .failed
; Can't have a substitute.
@@ -73,7 +73,7 @@
.failed
xor a
ld [de], a
- call Function0x37e77
+ call AnimateFailedMove
call PrintButItFailed
scf
ret
--- a/battle/effects/sandstorm.asm
+++ b/battle/effects/sandstorm.asm
@@ -9,12 +9,12 @@
ld [Weather], a
ld a, 5
ld [WeatherCount], a
- call Function0x37e01
+ call AnimateCurrentMove
ld hl, SandstormBrewedText
jp StdBattleTextBox
.failed
- call Function0x37e77
+ call AnimateFailedMove
jp PrintButItFailed
; 37718
--- a/battle/effects/spikes.asm
+++ b/battle/effects/spikes.asm
@@ -17,12 +17,12 @@
set SCREENS_SPIKES, [hl]
- call Function0x37e01
+ call AnimateCurrentMove
ld hl, SpikesText
jp StdBattleTextBox
.failed
- jp Function0x37354
+ jp Function37354
; 376a0
--- a/battle/hidden_power.asm
+++ b/battle/hidden_power.asm
@@ -1,30 +1,32 @@
-GetHiddenPower: ; fbced
-; Override Hidden Power's type and power based on the actor's DVs.
+HiddenPowerDamage: ; fbced
+; Override Hidden Power's type and power based on the user's DVs.
ld hl, BattleMonDVs
ld a, [hBattleTurn]
and a
- jr z, .GotDVs
+ jr z, .got_dvs
ld hl, EnemyMonDVs
-.GotDVs
+.got_dvs
; Power:
-; Take the top bit from...
+; Take the top bit from each stat
-; Atk
+ ; Attack
ld a, [hl]
swap a
and 8
+
+ ; Defense
ld b, a
-; Def
ld a, [hli]
and 8
srl a
or b
+
+ ; Speed
ld b, a
-; Spd
ld a, [hl]
swap a
and 8
@@ -31,8 +33,9 @@
srl a
srl a
or b
+
+ ; Special
ld b, a
-; Spc
ld a, [hl]
and 8
srl a
@@ -39,37 +42,35 @@
srl a
srl a
or b
- ld b, a
-; * 5
+; Multiply by 5
+ ld b, a
add a
add a
add b
- ld b, a
-; + (Spc & 3)
+; Add Special & 3
+ ld b, a
ld a, [hld]
and 3
add b
-; / 2
+; Divide by 2 and add 30 + 1
srl a
-
-; + 30
add 30
-; + 1
inc a
+
ld d, a
; Type:
-; Def & 3
+ ; Def & 3
ld a, [hl]
and 3
ld b, a
-; + (Atk & 3) << 2
+ ; + (Atk & 3) << 2
ld a, [hl]
and 3 << 4
swap a
@@ -80,18 +81,19 @@
; Skip Normal
inc a
-; Skip type 6 (unused)
- cp 6
- jr c, .GotType
+; Skip Bird
+ cp BIRD
+ jr c, .done
inc a
-; Skip unused types between Steel and Fire
- cp STEEL + 1
- jr c, .GotType
- add FIRE - (STEEL + 1)
+; Skip unused types
+ cp UNUSED_TYPES
+ jr c, .done
+ add SPECIAL - UNUSED_TYPES
+.done
-.GotType
+; Overwrite the current move type.
push af
ld a, BATTLE_VARS_MOVE_TYPE
call _GetBattleVar
@@ -98,9 +100,11 @@
pop af
ld [hl], a
+; Get the rest of the damage formula variables
+; based on the new type, but keep base power.
ld a, d
push af
- callba BattleCommand06
+ callba BattleCommand06 ; damagestats
pop af
ld d, a
ret
--- a/constants.asm
+++ b/constants.asm
@@ -12,6 +12,7 @@
INCLUDE "constants/wram_constants.asm"
INCLUDE "constants/pokemon_constants.asm"
+INCLUDE "constants/type_constants.asm"
INCLUDE "constants/move_constants.asm"
INCLUDE "constants/battle_constants.asm"
INCLUDE "constants/map_constants.asm"
@@ -31,25 +32,6 @@
NONE EQU 0
-; types
-NORMAL EQU $00
-FIGHTING EQU $01
-FLYING EQU $02
-POISON EQU $03
-GROUND EQU $04
-ROCK EQU $05
-BUG EQU $07
-GHOST EQU $08
-STEEL EQU $09
-CURSE_T EQU $13
-FIRE EQU $14
-WATER EQU $15
-GRASS EQU $16
-ELECTRIC EQU $17
-PSYCHIC EQU $18
-ICE EQU $19
-DRAGON EQU $1A
-DARK EQU $1B
; egg group constants
MONSTER EQU $01
--- a/constants/move_constants.asm
+++ b/constants/move_constants.asm
@@ -1,259 +1,259 @@
const_def
- const NO_MOVE
- const POUND
- const KARATE_CHOP
- const DOUBLESLAP
- const COMET_PUNCH
- const MEGA_PUNCH
- const PAY_DAY
- const FIRE_PUNCH
- const ICE_PUNCH
- const THUNDERPUNCH
- const SCRATCH
- const VICEGRIP
- const GUILLOTINE
- const RAZOR_WIND
- const SWORDS_DANCE
- const CUT
- const GUST
- const WING_ATTACK
- const WHIRLWIND
- const FLY
- const BIND
- const SLAM
- const VINE_WHIP
- const STOMP
- const DOUBLE_KICK
- const MEGA_KICK
- const JUMP_KICK
- const ROLLING_KICK
- const SAND_ATTACK
- const HEADBUTT
- const HORN_ATTACK
- const FURY_ATTACK
- const HORN_DRILL
- const TACKLE
- const BODY_SLAM
- const WRAP
- const TAKE_DOWN
- const THRASH
- const DOUBLE_EDGE
- const TAIL_WHIP
- const POISON_STING
- const TWINEEDLE
- const PIN_MISSILE
- const LEER
- const BITE
- const GROWL
- const ROAR
- const SING
- const SUPERSONIC
- const SONICBOOM
- const DISABLE
- const ACID
- const EMBER
- const FLAMETHROWER
- const MIST
- const WATER_GUN
- const HYDRO_PUMP
- const SURF
- const ICE_BEAM
- const BLIZZARD
- const PSYBEAM
- const BUBBLEBEAM
- const AURORA_BEAM
- const HYPER_BEAM
- const PECK
- const DRILL_PECK
- const SUBMISSION
- const LOW_KICK
- const COUNTER
- const SEISMIC_TOSS
- const STRENGTH
- const ABSORB
- const MEGA_DRAIN
- const LEECH_SEED
- const GROWTH
- const RAZOR_LEAF
- const SOLARBEAM
- const POISONPOWDER
- const STUN_SPORE
- const SLEEP_POWDER
- const PETAL_DANCE
- const STRING_SHOT
- const DRAGON_RAGE
- const FIRE_SPIN
- const THUNDERSHOCK
- const THUNDERBOLT
- const THUNDER_WAVE
- const THUNDER
- const ROCK_THROW
- const EARTHQUAKE
- const FISSURE
- const DIG
- const TOXIC
- const CONFUSION
- const PSYCHIC_M
- const HYPNOSIS
- const MEDITATE
- const AGILITY
- const QUICK_ATTACK
- const RAGE
- const TELEPORT
- const NIGHT_SHADE
- const MIMIC
- const SCREECH
- const DOUBLE_TEAM
- const RECOVER
- const HARDEN
- const MINIMIZE
- const SMOKESCREEN
- const CONFUSE_RAY
- const WITHDRAW
- const DEFENSE_CURL
- const BARRIER
- const LIGHT_SCREEN
- const HAZE
- const REFLECT
- const FOCUS_ENERGY
- const BIDE
- const METRONOME
- const MIRROR_MOVE
- const SELFDESTRUCT
- const EGG_BOMB
- const LICK
- const SMOG
- const SLUDGE
- const BONE_CLUB
- const FIRE_BLAST
- const WATERFALL
- const CLAMP
- const SWIFT
- const SKULL_BASH
- const SPIKE_CANNON
- const CONSTRICT
- const AMNESIA
- const KINESIS
- const SOFTBOILED
- const HI_JUMP_KICK
- const GLARE
- const DREAM_EATER
- const POISON_GAS
- const BARRAGE
- const LEECH_LIFE
- const LOVELY_KISS
- const SKY_ATTACK
- const TRANSFORM
- const BUBBLE
- const DIZZY_PUNCH
- const SPORE
- const FLASH
- const PSYWAVE
- const SPLASH
- const ACID_ARMOR
- const CRABHAMMER
- const EXPLOSION
- const FURY_SWIPES
- const BONEMERANG
- const REST
- const ROCK_SLIDE
- const HYPER_FANG
- const SHARPEN
- const CONVERSION
- const TRI_ATTACK
- const SUPER_FANG
- const SLASH
- const SUBSTITUTE
- const STRUGGLE
- const SKETCH
- const TRIPLE_KICK
- const THIEF
- const SPIDER_WEB
- const MIND_READER
- const NIGHTMARE
- const FLAME_WHEEL
- const SNORE
- const CURSE
- const FLAIL
- const CONVERSION2
- const AEROBLAST
- const COTTON_SPORE
- const REVERSAL
- const SPITE
- const POWDER_SNOW
- const PROTECT
- const MACH_PUNCH
- const SCARY_FACE
- const FAINT_ATTACK
- const SWEET_KISS
- const BELLY_DRUM
- const SLUDGE_BOMB
- const MUD_SLAP
- const OCTAZOOKA
- const SPIKES
- const ZAP_CANNON
- const FORESIGHT
- const DESTINY_BOND
- const PERISH_SONG
- const ICY_WIND
- const DETECT
- const BONE_RUSH
- const LOCK_ON
- const OUTRAGE
- const SANDSTORM
- const GIGA_DRAIN
- const ENDURE
- const CHARM
- const ROLLOUT
- const FALSE_SWIPE
- const SWAGGER
- const MILK_DRINK
- const SPARK
- const FURY_CUTTER
- const STEEL_WING
- const MEAN_LOOK
- const ATTRACT
- const SLEEP_TALK
- const HEAL_BELL
- const RETURN
- const PRESENT
- const FRUSTRATION
- const SAFEGUARD
- const PAIN_SPLIT
- const SACRED_FIRE
- const MAGNITUDE
- const DYNAMICPUNCH
- const MEGAHORN
- const DRAGONBREATH
- const BATON_PASS
- const ENCORE
- const PURSUIT
- const RAPID_SPIN
- const SWEET_SCENT
- const IRON_TAIL
- const METAL_CLAW
- const VITAL_THROW
- const MORNING_SUN
- const SYNTHESIS
- const MOONLIGHT
- const HIDDEN_POWER
- const CROSS_CHOP
- const TWISTER
- const RAIN_DANCE
- const SUNNY_DAY
- const CRUNCH
- const MIRROR_COAT
- const PSYCH_UP
- const EXTREMESPEED
- const ANCIENTPOWER
- const SHADOW_BALL
- const FUTURE_SIGHT
- const ROCK_SMASH
- const WHIRLPOOL
- const BEAT_UP
+ const NO_MOVE ; $00
+ const POUND ; $01
+ const KARATE_CHOP ; $02
+ const DOUBLESLAP ; $03
+ const COMET_PUNCH ; $04
+ const MEGA_PUNCH ; $05
+ const PAY_DAY ; $06
+ const FIRE_PUNCH ; $07
+ const ICE_PUNCH ; $08
+ const THUNDERPUNCH ; $09
+ const SCRATCH ; $0a
+ const VICEGRIP ; $0b
+ const GUILLOTINE ; $0c
+ const RAZOR_WIND ; $0d
+ const SWORDS_DANCE ; $0e
+ const CUT ; $0f
+ const GUST ; $10
+ const WING_ATTACK ; $11
+ const WHIRLWIND ; $12
+ const FLY ; $13
+ const BIND ; $14
+ const SLAM ; $15
+ const VINE_WHIP ; $16
+ const STOMP ; $17
+ const DOUBLE_KICK ; $18
+ const MEGA_KICK ; $19
+ const JUMP_KICK ; $1a
+ const ROLLING_KICK ; $1b
+ const SAND_ATTACK ; $1c
+ const HEADBUTT ; $1d
+ const HORN_ATTACK ; $1e
+ const FURY_ATTACK ; $1f
+ const HORN_DRILL ; $20
+ const TACKLE ; $21
+ const BODY_SLAM ; $22
+ const WRAP ; $23
+ const TAKE_DOWN ; $24
+ const THRASH ; $25
+ const DOUBLE_EDGE ; $26
+ const TAIL_WHIP ; $27
+ const POISON_STING ; $28
+ const TWINEEDLE ; $29
+ const PIN_MISSILE ; $2a
+ const LEER ; $2b
+ const BITE ; $2c
+ const GROWL ; $2d
+ const ROAR ; $2e
+ const SING ; $2f
+ const SUPERSONIC ; $30
+ const SONICBOOM ; $31
+ const DISABLE ; $32
+ const ACID ; $33
+ const EMBER ; $34
+ const FLAMETHROWER ; $35
+ const MIST ; $36
+ const WATER_GUN ; $37
+ const HYDRO_PUMP ; $38
+ const SURF ; $39
+ const ICE_BEAM ; $3a
+ const BLIZZARD ; $3b
+ const PSYBEAM ; $3c
+ const BUBBLEBEAM ; $3d
+ const AURORA_BEAM ; $3e
+ const HYPER_BEAM ; $3f
+ const PECK ; $40
+ const DRILL_PECK ; $41
+ const SUBMISSION ; $42
+ const LOW_KICK ; $43
+ const COUNTER ; $44
+ const SEISMIC_TOSS ; $45
+ const STRENGTH ; $46
+ const ABSORB ; $47
+ const MEGA_DRAIN ; $48
+ const LEECH_SEED ; $49
+ const GROWTH ; $4a
+ const RAZOR_LEAF ; $4b
+ const SOLARBEAM ; $4c
+ const POISONPOWDER ; $4d
+ const STUN_SPORE ; $4e
+ const SLEEP_POWDER ; $4f
+ const PETAL_DANCE ; $50
+ const STRING_SHOT ; $51
+ const DRAGON_RAGE ; $52
+ const FIRE_SPIN ; $53
+ const THUNDERSHOCK ; $54
+ const THUNDERBOLT ; $55
+ const THUNDER_WAVE ; $56
+ const THUNDER ; $57
+ const ROCK_THROW ; $58
+ const EARTHQUAKE ; $59
+ const FISSURE ; $5a
+ const DIG ; $5b
+ const TOXIC ; $5c
+ const CONFUSION ; $5d
+ const PSYCHIC_M ; $5e
+ const HYPNOSIS ; $5f
+ const MEDITATE ; $60
+ const AGILITY ; $61
+ const QUICK_ATTACK ; $62
+ const RAGE ; $63
+ const TELEPORT ; $64
+ const NIGHT_SHADE ; $65
+ const MIMIC ; $66
+ const SCREECH ; $67
+ const DOUBLE_TEAM ; $68
+ const RECOVER ; $69
+ const HARDEN ; $6a
+ const MINIMIZE ; $6b
+ const SMOKESCREEN ; $6c
+ const CONFUSE_RAY ; $6d
+ const WITHDRAW ; $6e
+ const DEFENSE_CURL ; $6f
+ const BARRIER ; $70
+ const LIGHT_SCREEN ; $71
+ const HAZE ; $72
+ const REFLECT ; $73
+ const FOCUS_ENERGY ; $74
+ const BIDE ; $75
+ const METRONOME ; $76
+ const MIRROR_MOVE ; $77
+ const SELFDESTRUCT ; $78
+ const EGG_BOMB ; $79
+ const LICK ; $7a
+ const SMOG ; $7b
+ const SLUDGE ; $7c
+ const BONE_CLUB ; $7d
+ const FIRE_BLAST ; $7e
+ const WATERFALL ; $7f
+ const CLAMP ; $80
+ const SWIFT ; $81
+ const SKULL_BASH ; $82
+ const SPIKE_CANNON ; $83
+ const CONSTRICT ; $84
+ const AMNESIA ; $85
+ const KINESIS ; $86
+ const SOFTBOILED ; $87
+ const HI_JUMP_KICK ; $88
+ const GLARE ; $89
+ const DREAM_EATER ; $8a
+ const POISON_GAS ; $8b
+ const BARRAGE ; $8c
+ const LEECH_LIFE ; $8d
+ const LOVELY_KISS ; $8e
+ const SKY_ATTACK ; $8f
+ const TRANSFORM ; $90
+ const BUBBLE ; $91
+ const DIZZY_PUNCH ; $92
+ const SPORE ; $93
+ const FLASH ; $94
+ const PSYWAVE ; $95
+ const SPLASH ; $96
+ const ACID_ARMOR ; $97
+ const CRABHAMMER ; $98
+ const EXPLOSION ; $99
+ const FURY_SWIPES ; $9a
+ const BONEMERANG ; $9b
+ const REST ; $9c
+ const ROCK_SLIDE ; $9d
+ const HYPER_FANG ; $9e
+ const SHARPEN ; $9f
+ const CONVERSION ; $a0
+ const TRI_ATTACK ; $a1
+ const SUPER_FANG ; $a2
+ const SLASH ; $a3
+ const SUBSTITUTE ; $a4
+ const STRUGGLE ; $a5
+ const SKETCH ; $a6
+ const TRIPLE_KICK ; $a7
+ const THIEF ; $a8
+ const SPIDER_WEB ; $a9
+ const MIND_READER ; $aa
+ const NIGHTMARE ; $ab
+ const FLAME_WHEEL ; $ac
+ const SNORE ; $ad
+ const CURSE ; $ae
+ const FLAIL ; $af
+ const CONVERSION2 ; $b0
+ const AEROBLAST ; $b1
+ const COTTON_SPORE ; $b2
+ const REVERSAL ; $b3
+ const SPITE ; $b4
+ const POWDER_SNOW ; $b5
+ const PROTECT ; $b6
+ const MACH_PUNCH ; $b7
+ const SCARY_FACE ; $b8
+ const FAINT_ATTACK ; $b9
+ const SWEET_KISS ; $ba
+ const BELLY_DRUM ; $bb
+ const SLUDGE_BOMB ; $bc
+ const MUD_SLAP ; $bd
+ const OCTAZOOKA ; $be
+ const SPIKES ; $bf
+ const ZAP_CANNON ; $c0
+ const FORESIGHT ; $c1
+ const DESTINY_BOND ; $c2
+ const PERISH_SONG ; $c3
+ const ICY_WIND ; $c4
+ const DETECT ; $c5
+ const BONE_RUSH ; $c6
+ const LOCK_ON ; $c7
+ const OUTRAGE ; $c8
+ const SANDSTORM ; $c9
+ const GIGA_DRAIN ; $ca
+ const ENDURE ; $cb
+ const CHARM ; $cc
+ const ROLLOUT ; $cd
+ const FALSE_SWIPE ; $ce
+ const SWAGGER ; $cf
+ const MILK_DRINK ; $d0
+ const SPARK ; $d1
+ const FURY_CUTTER ; $d2
+ const STEEL_WING ; $d3
+ const MEAN_LOOK ; $d4
+ const ATTRACT ; $d5
+ const SLEEP_TALK ; $d6
+ const HEAL_BELL ; $d7
+ const RETURN ; $d8
+ const PRESENT ; $d9
+ const FRUSTRATION ; $da
+ const SAFEGUARD ; $db
+ const PAIN_SPLIT ; $dc
+ const SACRED_FIRE ; $dd
+ const MAGNITUDE ; $de
+ const DYNAMICPUNCH ; $df
+ const MEGAHORN ; $e0
+ const DRAGONBREATH ; $e1
+ const BATON_PASS ; $e2
+ const ENCORE ; $e3
+ const PURSUIT ; $e4
+ const RAPID_SPIN ; $e5
+ const SWEET_SCENT ; $e6
+ const IRON_TAIL ; $e7
+ const METAL_CLAW ; $e8
+ const VITAL_THROW ; $e9
+ const MORNING_SUN ; $ea
+ const SYNTHESIS ; $eb
+ const MOONLIGHT ; $ec
+ const HIDDEN_POWER ; $ed
+ const CROSS_CHOP ; $ee
+ const TWISTER ; $ef
+ const RAIN_DANCE ; $f0
+ const SUNNY_DAY ; $f1
+ const CRUNCH ; $f2
+ const MIRROR_COAT ; $f3
+ const PSYCH_UP ; $f4
+ const EXTREMESPEED ; $f5
+ const ANCIENTPOWER ; $f6
+ const SHADOW_BALL ; $f7
+ const FUTURE_SIGHT ; $f8
+ const ROCK_SMASH ; $f9
+ const WHIRLPOOL ; $fa
+ const BEAT_UP ; $fb
const_value SET const_value + -1
- const NUM_ATTACKS
+ const NUM_ATTACKS ; $fb
--- /dev/null
+++ b/constants/type_constants.asm
@@ -1,0 +1,39 @@
+
+ const_def
+
+PHYSICAL EQU const_value
+ const NORMAL
+ const FIGHTING
+ const FLYING
+ const POISON
+ const GROUND
+ const ROCK
+ const BIRD
+ const BUG
+ const GHOST
+ const STEEL
+
+
+UNUSED_TYPES EQU const_value
+ const TYPE_10
+ const TYPE_11
+ const TYPE_12
+ const TYPE_13
+ const TYPE_14
+ const TYPE_15
+ const TYPE_16
+ const TYPE_17
+ const TYPE_18
+ const CURSE_T
+
+
+SPECIAL EQU const_value
+ const FIRE
+ const WATER
+ const GRASS
+ const ELECTRIC
+ const PSYCHIC
+ const ICE
+ const DRAGON
+ const DARK
+
--- a/items/item_effects.asm
+++ b/items/item_effects.asm
@@ -1542,7 +1542,7 @@
res 7, [hl]
.asm_f04f
push bc
- callba Function0x365d7
+ callba Function365d7
pop bc
ret
@@ -2343,7 +2343,7 @@
ld [hBattleTurn], a
ld [AttackMissed], a
ld [$c70d], a
- callba Function0x361ef
+ callba Function361ef
call WaitSFX
callba BattleCommand8c
--- a/main.asm
+++ b/main.asm
@@ -5271,10 +5271,10 @@
push hl
push de
dec a
- ld hl, $5b00
- ld bc, $0007
+ ld hl, Moves + MOVE_PP
+ ld bc, Move2 - Move1
call AddNTimes
- ld a, $10
+ ld a, BANK(Moves)
call GetFarByte
pop de
pop hl
@@ -7793,7 +7793,7 @@
dwb Function5108b, BANK(Function5108b)
dwb Function5120d, BANK(Function5120d)
dwb DecompressPredef, BANK(DecompressPredef) ; $40
- dwb Function0x347d3, BANK(Function0x347d3)
+ dwb Function347d3, BANK(Function347d3)
dwb Functionfb908, BANK(Functionfb908)
dwb Functionfb877, BANK(Functionfb877)
dwb Functiond0000, BANK(Functiond0000)
@@ -11050,7 +11050,7 @@
ld a, 4
call GetItemAttr
bit 7, a
- jr nz, Function0xd47f
+ jr nz, Functiond47f
and a
ret
; d432
@@ -11060,7 +11060,7 @@
ld a, 4
call GetItemAttr
bit 6, a
- jr nz, Function0xd47f
+ jr nz, Functiond47f
and a
ret
; d43d
@@ -11120,7 +11120,7 @@
ret
; d47f
-Function0xd47f: ; d47f
+Functiond47f: ; d47f
ld a, 1
ld [$d142], a
scf
@@ -35591,7 +35591,7 @@
cp $3
jr z, .asm_2c541
jr Function2c545
- callba Function0x377f5
+ callba Function377f5
jr c, .asm_2c541
ld a, [PlayerSubStatus1] ; $c668
bit 7, a
@@ -36789,7 +36789,7 @@
xor a
call ByteFill
- callab Function3d867
+ callab ResetEnemyStatLevels
call Function1fbf
@@ -36913,7 +36913,7 @@
; 38045
Function38045: ; 38045
- callab Function0x34941
+ callab Function34941
ld a, [$c717]
and $f0
jp z, Function38041
@@ -36946,7 +36946,7 @@
; 38083
Function38083: ; 38083
- callab Function0x34941
+ callab Function34941
ld a, [$c717]
and $f0
jp z, Function38041
@@ -36979,7 +36979,7 @@
; 380c1
Function380c1: ; 380c1
- callab Function0x34941
+ callab Function34941
ld a, [$c717]
and $f0
jp z, Function38041
@@ -37438,8 +37438,8 @@
.asm_384a3
ld a, $1
ld [$d264], a
- callab Function3d834
- callab Function3d867
+ callab NewEnemyMonStatus
+ callab ResetEnemyStatLevels
ld hl, PlayerSubStatus1
res 7, [hl]
callba Function3d4e1
@@ -37555,7 +37555,7 @@
push bc
call Function38571
pop bc
- callba Function0x361ef
+ callba Function361ef
jp Function38387
; 38568
@@ -37807,10 +37807,10 @@
push hl
push bc
dec a
- ld hl, $5b00
- ld bc, $0007
+ ld hl, Moves + MOVE_PP
+ ld bc, Move2 - Move1
call AddNTimes
- ld a, $10
+ ld a, BANK(Moves)
call GetFarByte
pop bc
pop hl
@@ -83077,11 +83077,11 @@
ret
.asm_100c63
- ld hl, $4c5b
+ ld hl, BattleText_0x80c5b
jr .asm_100c6b
.asm_100c68
- ld hl, $4c39
+ ld hl, BattleText_0x80c39
.asm_100c6b
call StdBattleTextBox
@@ -86704,7 +86704,7 @@
; check actor ????
push hl
- callba Function0x34548
+ callba Function34548
pop hl
jr nz, .grammar