summaryrefslogtreecommitdiff
path: root/battle
diff options
context:
space:
mode:
Diffstat (limited to 'battle')
-rw-r--r--battle/core.asm172
-rw-r--r--battle/effect_commands.asm30
-rw-r--r--battle/effects/curse.asm4
-rw-r--r--battle/effects/rollout.asm13
4 files changed, 117 insertions, 102 deletions
diff --git a/battle/core.asm b/battle/core.asm
index 1801434db..0c3cb5594 100644
--- a/battle/core.asm
+++ b/battle/core.asm
@@ -57,9 +57,9 @@ Function3c000: ; 3c000
call Function30b4
ld a, [BattleType]
cp $2
- jp z, Function3c0e2
+ jp z, .asm_3c0e2
cp BATTLETYPE_TUTORIAL
- jp z, Function3c0e2
+ jp z, .asm_3c0e2
xor a
ld [CurPartyMon], a
.asm_3c06b
@@ -114,10 +114,9 @@ Function3c000: ; 3c000
.asm_3c0df
jp Function3c12f
-; 3c0e2
-Function3c0e2: ; 3c0e2
- jp Function3e139
+.asm_3c0e2
+ jp BattleMenu
; 3c0e5
@@ -162,9 +161,11 @@ Function3c0e5: ; 3c0e5
; 3c12f
Function3c12f: ; 3c12f
+.loop
call Function3c1bf
call Function3c3f5
- jp c, .asm_3c1be
+ jp c, .quit
+
xor a
ld [wPlayerIsSwitching], a
ld [wEnemyIsSwitching], a
@@ -173,58 +174,62 @@ Function3c12f: ; 3c12f
ld [$c740], a
ld [CurDamage], a
ld [CurDamage + 1], a
+
call Function3c27c
call UpdateBattleMonInParty
callba AIChooseMove
- call Function3d2f1
- jr nz, .asm_3c174
+
+ call IsMobileBattle
+ jr nz, .not_disconnected
callba Function100da5
callba Function100641
callba Function100dd8
- jp c, .asm_3c1be
+ jp c, .quit
+.not_disconnected
-.asm_3c174
call Function3c410
jr c, .asm_3c18a
.asm_3c179
- call Function3e139
- jr c, .asm_3c1be
+ call BattleMenu
+ jr c, .quit
ld a, [BattleEnded]
and a
- jr nz, .asm_3c1be
- ld a, [$d232]
+ jr nz, .quit
+ ld a, [$d232] ; roared/whirlwinded/teleported
and a
- jr nz, .asm_3c1be
-
+ jr nz, .quit
.asm_3c18a
call Function3c434
jr nz, .asm_3c179
+
call Function3c300
- jr c, .asm_3c1be
+ jr c, .quit
+
call Function3c314
jr c, .asm_3c19e
call Function3c5fe
jr .asm_3c1a1
-
.asm_3c19e
call Function3c664
-
.asm_3c1a1
call Function3d2e0
- jr c, .asm_3c1be
+ jr c, .quit
+
ld a, [$d232]
and a
- jr nz, .asm_3c1be
+ jr nz, .quit
+
ld a, [BattleEnded]
and a
- jr nz, .asm_3c1be
+ jr nz, .quit
+
call Function3c1d6
ld a, [BattleEnded]
and a
- jr nz, .asm_3c1be
- jp Function3c12f
+ jr nz, .quit
+ jp .loop
-.asm_3c1be
+.quit
ret
; 3c1bf
@@ -570,7 +575,7 @@ Function3c3f3: ; 3c3f3
Function3c3f5: ; 3c3f5
ld a, [BattleType]
- cp $6
+ cp BATTLETYPE_CONTEST
jr nz, .asm_3c40e
ld a, [$dc79]
and a
@@ -591,16 +596,20 @@ Function3c410: ; 3c410
ld a, [PlayerSubStatus4]
and 1 << SUBSTATUS_RECHARGE
jp nz, .quit
+
ld hl, EnemySubStatus3
res SUBSTATUS_FLINCHED, [hl]
ld hl, PlayerSubStatus3
res SUBSTATUS_FLINCHED, [hl]
+
ld a, [hl]
and 1 << SUBSTATUS_CHARGED | 1 << SUBSTATUS_ROLLOUT
jp nz, .quit
+
ld hl, PlayerSubStatus1
bit SUBSTATUS_ENCORED, [hl]
jp nz, .quit
+
and a
ret
@@ -2445,7 +2454,7 @@ Function3cfa4: ; 3cfa4
callab Function39939
ld hl, BattleText_0x809da
call StdBattleTextBox
- call Function3d2f1
+ call IsMobileBattle
jr z, .asm_3cff5
ld a, [InLinkBattle]
and a
@@ -2945,7 +2954,7 @@ Function3d2e0: ; 3d2e0
ret
; 3d2f1
-Function3d2f1: ; 3d2f1
+IsMobileBattle: ; 3d2f1
ld a, [InLinkBattle]
cp $4
ret
@@ -2971,25 +2980,25 @@ Function3d313: ; 3d313
; 3d329
Function3d329: ; 3d329
- call Function3d2f1
- jr z, .asm_3d335
+ call IsMobileBattle
+ jr z, .mobile
callba PartyMenuSelect
ret
-.asm_3d335
+.mobile
callba Function100cb5
ret
; 3d33c
PickPartyMonInBattle: ; 3d33c
-.asm_3d33c
+.loop
ld a, $2 ; Which PKMN?
ld [PartyMenuActionText], a
call Function3d313
call Function3d329
ret c
call Function3d887
- jr z, .asm_3d33c
+ jr z, .loop
xor a
ret
; 3d34f
@@ -3121,7 +3130,7 @@ LostBattle: ; 3d38e
.asm_3d40a
ld hl, LostAgainstText
- call Function3d2f1
+ call IsMobileBattle
jr z, .asm_3d417
.asm_3d412
@@ -3830,7 +3839,7 @@ Function3d8b3: ; 3d8b3
ld a, [BattleType]
cp $2
jp z, .asm_3d9a2
- cp $6
+ cp BATTLETYPE_CONTEST
jp z, .asm_3d9a2
cp BATTLETYPE_TRAP
jp z, .asm_3d98d
@@ -5075,54 +5084,56 @@ Function3e138: ; 3e138
ret
; 3e139
-Function3e139: ; 3e139
+BattleMenu: ; 3e139
xor a
ld [hBGMapMode], a
call Function30bf
ld a, [BattleType]
cp $2
- jr z, .asm_3e156
+ jr z, .ok
cp BATTLETYPE_TUTORIAL
- jr z, .asm_3e156
+ jr z, .ok
call EmptyBattleTextBox
call UpdateBattleHuds
call EmptyBattleTextBox
call Function309d
-.asm_3e156
+.ok
+.loop
ld a, [BattleType]
- cp $6
- jr nz, .asm_3e165
- callba Function24f13
- jr .asm_3e175
-.asm_3e165
+ cp BATTLETYPE_CONTEST
+ jr nz, .not_contest
+ callba ContestBattleMenu
+ jr .next
+.not_contest
+ ; Auto input: choose "ITEM"
ld a, [InputType]
or a
jr z, .asm_3e171
callba Function1de294
.asm_3e171
- call Function3e19b
+ call LoadBattleMenu2
ret c
-.asm_3e175
+.next
ld a, $1
ld [hBGMapMode], a
ld a, [$d0d2]
cp $1
- jp z, Function3e192
+ jp z, BattleMenu_Fight
cp $3
- jp z, Function3e1c7
+ jp z, BattleMenu_Pack
cp $2
- jp z, Function3e28d
+ jp z, BattleMenu_PKMN
cp $4
- jp z, Function3e489
- jr .asm_3e156
+ jp z, BattleMenu_Run
+ jr .loop
; 3e192
-Function3e192: ; 3e192
+BattleMenu_Fight: ; 3e192
xor a
ld [$d267], a
call Function30b4
@@ -5130,15 +5141,15 @@ Function3e192: ; 3e192
ret
; 3e19b
-Function3e19b: ; 3e19b
- call Function3d2f1
- jr z, .asm_3e1a8
+LoadBattleMenu2: ; 3e19b
+ call IsMobileBattle
+ jr z, .mobile
- callba LoadBattleMenuDataHeader
+ callba LoadBattleMenu
and a
ret
-.asm_3e1a8
+.mobile
callba Function100b12
ld a, [$cd2b]
and a
@@ -5146,44 +5157,47 @@ Function3e19b: ; 3e19b
ld hl, $cd2a
bit 4, [hl]
- jr nz, .asm_3e1c5
+ jr nz, .error
ld hl, BattleText_0x81863
call StdBattleTextBox
ld c, 60
call DelayFrames
-.asm_3e1c5
-
+.error
scf
ret
; 3e1c7
-Function3e1c7: ; 3e1c7
+BattleMenu_Pack: ; 3e1c7
ld a, [InLinkBattle]
and a
- jp nz, Function3e22b
+ jp nz, ItemsCantBeUsed
+
ld a, [$cfc0]
and a
- jp nz, Function3e22b
+ jp nz, ItemsCantBeUsed
+
call Function1d6e
+
ld a, [BattleType]
cp BATTLETYPE_TUTORIAL
- jr z, .asm_3e1f1
- cp $6
- jr z, .asm_3e201
- callba Function10493
+ jr z, .tutorial
+ cp BATTLETYPE_CONTEST
+ jr z, .contest
+
+ callba BattlePack
ld a, [$d0ec]
and a
jr z, .asm_3e20d
jr .asm_3e209
-.asm_3e1f1
+.tutorial
callba Function107bb
ld a, POKE_BALL
ld [CurItem], a
call DoItemEffect
jr .asm_3e209
-.asm_3e201
+.contest
ld a, PARK_BALL
ld [CurItem], a
call DoItemEffect
@@ -5202,13 +5216,13 @@ Function3e1c7: ; 3e1c7
call WaitBGMap
call Function3ee27
call Function309d
- jp Function3e139
+ jp BattleMenu
; 3e22b
-Function3e22b: ; 3e22b
+ItemsCantBeUsed: ; 3e22b
ld hl, BattleText_0x80bf3
call StdBattleTextBox
- jp Function3e139
+ jp BattleMenu
; 3e234
Function3e234: ; 3e234
@@ -5256,7 +5270,7 @@ Function3e234: ; 3e234
ret
; 3e28d
-Function3e28d: ; 3e28d
+BattleMenu_PKMN: ; 3e28d
call Function1d6e
Function3e290:
call Function1c07
@@ -5303,11 +5317,11 @@ Function3e299:
call Function309d
call ClearSGB
call Function32f9
- jp Function3e139
+ jp BattleMenu
; 3e2f5
Function3e2f5: ; 3e2f5
- call Function3d2f1
+ call IsMobileBattle
jr z, .asm_3e301
callba Function24e99
ret
@@ -5506,8 +5520,7 @@ PassedBattleMonEntrance: ; 3e459
; 3e489
-
-Function3e489: ; 3e489
+BattleMenu_Run: ; 3e489
call Function30b4
ld a, $3
ld [$cfa9], a
@@ -5520,11 +5533,10 @@ Function3e489: ; 3e489
ld a, [$d0ec]
and a
ret nz
- jp Function3e139
+ jp BattleMenu
; 3e4a8
-
CheckAmuletCoin: ; 3e4a8
ld a, [BattleMonItem]
ld b, a
@@ -5538,7 +5550,7 @@ CheckAmuletCoin: ; 3e4a8
; 3e4bc
Function3e4bc: ; 3e4bc
- call Function3d2f1
+ call IsMobileBattle
jr nz, .asm_3e4c8
callba Function100b9f
ret
diff --git a/battle/effect_commands.asm b/battle/effect_commands.asm
index 616c22a42..aae82eb96 100644
--- a/battle/effect_commands.asm
+++ b/battle/effect_commands.asm
@@ -6753,7 +6753,7 @@ BattleCommandaf: ; 365a7
; curl
ld a, BATTLE_VARS_SUBSTATUS2
call GetBattleVarAddr
- set 0, [hl]
+ set SUBSTATUS_CURLED, [hl]
ret
; 365af
@@ -7046,20 +7046,20 @@ BattleCommand3d: ; 36751
; No rampage during Sleep Talk.
ld a, BATTLE_VARS_STATUS
call GetBattleVar
- and 7
+ and SLP
ret nz
ld de, PlayerRolloutCount
ld a, [hBattleTurn]
and a
- jr z, .asm_36764 ; 3675f $3
+ jr z, .ok
ld de, EnemyRolloutCount
-.asm_36764
+.ok
ld a, BATTLE_VARS_SUBSTATUS3
call GetBattleVarAddr
- set 1, [hl]
+ set SUBSTATUS_ROLLOUT, [hl]
call BattleRandom
- and $1
+ and 1
inc a
ld [de], a
ld a, 1
@@ -7073,24 +7073,24 @@ BattleCommanda0: ; 36778
ld a, [BattleType]
cp BATTLETYPE_SHINY
- jr z, .asm_367b9
- cp $9
- jr z, .asm_367b9
+ jr z, .failed
+ cp BATTLETYPE_TRAP
+ jr z, .failed
cp BATTLETYPE_CELEBI
- jr z, .asm_367b9
+ jr z, .failed
cp BATTLETYPE_SUICUNE
- jr z, .asm_367b9
+ jr z, .failed
ld a, BATTLE_VARS_SUBSTATUS5_OPP
call GetBattleVar
bit SUBSTATUS_CANT_RUN, a
- jr nz, .asm_367b9
+ jr nz, .failed
ld a, [hBattleTurn]
and a
jr nz, .asm_367bf
ld a, [IsInBattle]
dec a
- jr nz, .asm_367b9
+ jr nz, .failed
ld a, [$d143]
ld b, a
ld a, [BattleMonLevel]
@@ -7108,14 +7108,14 @@ BattleCommanda0: ; 36778
cp b
jr nc, .asm_367df ; 367b7 $26
-.asm_367b9
+.failed
call AnimateFailedMove
jp PrintButItFailed
.asm_367bf
ld a, [IsInBattle]
dec a
- jr nz, .asm_367b9 ; 367c3 $f4
+ jr nz, .failed
ld a, [BattleMonLevel]
ld b, a
ld a, [$d143]
diff --git a/battle/effects/curse.asm b/battle/effects/curse.asm
index f82ed97c5..27f821ffc 100644
--- a/battle/effects/curse.asm
+++ b/battle/effects/curse.asm
@@ -67,10 +67,10 @@ BattleCommand54: ; 37588
ld a, BATTLE_VARS_SUBSTATUS1_OPP
call GetBattleVarAddr
- bit 1, [hl]
+ bit SUBSTATUS_CURSE, [hl]
jr nz, .failed
- set 1, [hl]
+ set SUBSTATUS_CURSE, [hl]
call AnimateCurrentMove
ld hl, GetHalfMaxHP
call CallBattleCore
diff --git a/battle/effects/rollout.asm b/battle/effects/rollout.asm
index 748736fef..f108a9062 100644
--- a/battle/effects/rollout.asm
+++ b/battle/effects/rollout.asm
@@ -1,3 +1,6 @@
+MAX_ROLLOUT_COUNT EQU 5
+
+
BattleCommand5b: ; 37718
; checkcurl
@@ -28,7 +31,7 @@ BattleCommand5c: ; 37734
ld a, BATTLE_VARS_STATUS
call GetBattleVar
- and 7
+ and SLP
ret nz
ld hl, PlayerRolloutCount
@@ -58,23 +61,23 @@ BattleCommand5c: ; 37734
inc [hl]
ld a, [hl]
ld b, a
- cp $5
+ cp MAX_ROLLOUT_COUNT
jr c, .asm_3776e
ld a, BATTLE_VARS_SUBSTATUS1
call GetBattleVarAddr
- res 6, [hl]
+ res SUBSTATUS_ENCORED, [hl]
jr .asm_37775
.asm_3776e
ld a, BATTLE_VARS_SUBSTATUS1
call GetBattleVarAddr
- set 6, [hl]
+ set SUBSTATUS_ENCORED, [hl]
.asm_37775
ld a, BATTLE_VARS_SUBSTATUS2
call GetBattleVar
- bit 0, a
+ bit SUBSTATUS_CURLED, a
jr z, .asm_3777f
inc b
.asm_3777f