diff options
author | yenatch <yenatch@gmail.com> | 2014-06-13 21:18:14 -0700 |
---|---|---|
committer | yenatch <yenatch@gmail.com> | 2014-06-13 21:18:14 -0700 |
commit | eb9fc6676cfed0460d19ce441134dbcdfce49b0d (patch) | |
tree | c848f4046320a1dc1141bf454330f28eac992777 | |
parent | 560b892b2d24dc7d8766d59eb65337a07e7b3235 (diff) |
More battle code cleanup.
- Use more substatus constants.
- Reformat some code to be more atomic.
- Add constants for unused status prevention held item effects.
- Remove pointless or redundant comments.
-rw-r--r-- | battle/core.asm | 447 | ||||
-rw-r--r-- | battle/effect_commands.asm | 953 | ||||
-rw-r--r-- | constants/battle_constants.asm | 4 | ||||
-rw-r--r-- | constants/item_constants.asm | 19 | ||||
-rw-r--r-- | constants/misc_constants.asm | 4 | ||||
-rw-r--r-- | constants/type_constants.asm | 3 | ||||
-rw-r--r-- | main.asm | 4 | ||||
-rw-r--r-- | wram.asm | 12 |
8 files changed, 721 insertions, 725 deletions
diff --git a/battle/core.asm b/battle/core.asm index dda37000d..9df143842 100644 --- a/battle/core.asm +++ b/battle/core.asm @@ -24,7 +24,7 @@ Function3c000: ; 3c000 .asm_3c021 ld a, d - ld [$d430], a + ld [wBattleAction], a ld a, [InLinkBattle] and a jr z, .asm_3c031 @@ -421,9 +421,9 @@ Function3c27c: ; 3c27c ret nz xor a ld [$cfca], a - ld de, $0103 + ld de, ANIM_CONFUSED call Function3ee0f - call Function3c8e4 + call SwitchTurnCore ld hl, BecameConfusedText jp StdBattleTextBox ; 3c300 @@ -432,7 +432,7 @@ Function3c300: ; 3c300 ld a, [InLinkBattle] and a jr z, .asm_3c30d - ld a, [$d430] + ld a, [wBattleAction] cp $f jr z, .asm_3c30f @@ -450,7 +450,7 @@ Function3c314: ; 3c314 ld a, [InLinkBattle] and a jr z, .asm_3c35b - ld a, [$d430] + ld a, [wBattleAction] cp $e jr z, .asm_3c35b cp $d @@ -496,10 +496,10 @@ Function3c314: ; 3c314 callab GetOpponentItem pop de ld a, d - cp $4a + cp HELD_QUICK_CLAW jr nz, .asm_3c391 ld a, b - cp $4a + cp HELD_QUICK_CLAW jr z, .asm_3c39f call BattleRandom cp e @@ -508,7 +508,7 @@ Function3c314: ; 3c314 .asm_3c391 ld a, b - cp $4a + cp HELD_QUICK_CLAW jr nz, .asm_3c3c5 call BattleRandom cp c @@ -589,23 +589,22 @@ Function3c3f5: ; 3c3f5 Function3c410: ; 3c410 ld a, [PlayerSubStatus4] - and $20 - jp nz, Function3c432 + and 1 << SUBSTATUS_RECHARGE + jp nz, .quit ld hl, EnemySubStatus3 - res 3, [hl] + res SUBSTATUS_FLINCHED, [hl] ld hl, PlayerSubStatus3 - res 3, [hl] + res SUBSTATUS_FLINCHED, [hl] ld a, [hl] - and $12 - jp nz, Function3c432 + and 1 << SUBSTATUS_CHARGED | 1 << SUBSTATUS_ROLLOUT + jp nz, .quit ld hl, PlayerSubStatus1 - bit 6, [hl] - jp nz, Function3c432 + bit SUBSTATUS_ENCORED, [hl] + jp nz, .quit and a ret -; 3c432 -Function3c432: ; 3c432 +.quit scf ret ; 3c434 @@ -627,18 +626,18 @@ Function3c434: ; 3c434 and a jr nz, .asm_3c4b5 ld a, [PlayerSubStatus3] - and $1 + and 1 << SUBSTATUS_BIDE jr nz, .asm_3c4ba xor a ld [$d235], a - inc a + inc a ; POUND ld [FXAnimIDLo], a call Function3e4bc push af call Function30b4 call UpdateBattleHuds ld a, [CurPlayerMove] - cp $a5 + cp STRUGGLE jr z, .asm_3c476 call PlayClickSFX @@ -680,7 +679,7 @@ Function3c434: ; 3c434 .asm_3c4b5 ld hl, PlayerSubStatus3 - res 0, [hl] + res SUBSTATUS_BIDE, [hl] .asm_3c4ba xor a @@ -688,7 +687,7 @@ Function3c434: ; 3c434 ld [PlayerProtectCount], a ld [$c72b], a ld hl, PlayerSubStatus4 - res 6, [hl] + res SUBSTATUS_RAGE, [hl] .asm_3c4c9 call Function3e7c1 @@ -701,7 +700,7 @@ Function3c434: ; 3c434 ld [PlayerProtectCount], a ld [$c72b], a ld hl, PlayerSubStatus4 - res 6, [hl] + res SUBSTATUS_RAGE, [hl] xor a ret ; 3c4df @@ -726,7 +725,7 @@ Function3c4df: ; 3c4df ld hl, BattleMonPP ld a, [CurMoveNum] ld c, a - ld b, $0 + ld b, 0 add hl, bc ld a, [hl] and $3f @@ -750,7 +749,7 @@ Function3c4df: ; 3c4df ld hl, EnemyMonPP ld a, [CurEnemyMoveNum] ld c, a - ld b, $0 + ld b, 0 add hl, bc ld a, [hl] and $3f @@ -771,7 +770,7 @@ Function3c543: ; 3c543 jr nz, .Stay ld a, [PlayerSubStatus5] - bit 7, a + bit SUBSTATUS_CANT_RUN, a jr nz, .Stay ld a, [$c731] @@ -1033,20 +1032,20 @@ Function3c6de: ; 3c6de ; 3c6ed Function3c6ed: ; 3c6ed - ld a, $5 + ld a, BATTLE_VARS_SUBSTATUS1_OPP call _GetBattleVar - res 2, [hl] - res 5, [hl] - ld a, $9 + res SUBSTATUS_PROTECT, [hl] + res SUBSTATUS_ENDURE, [hl] + ld a, BATTLE_VARS_SUBSTATUS5_OPP call _GetBattleVar - res 6, [hl] + res SUBSTATUS_DESTINY_BOND, [hl] ret ; 3c6fe Function3c6fe: ; 3c6fe - ld a, $4 + ld a, BATTLE_VARS_SUBSTATUS5 call _GetBattleVar - res 6, [hl] + res SUBSTATUS_DESTINY_BOND, [hl] ret ; 3c706 @@ -1070,18 +1069,20 @@ Function3c713: ; 3c713 Function3c716: ; 3c716 call Function3c706 ret z - ld a, $a + + ld a, BATTLE_VARS_STATUS call GetBattleVar - and $18 + and 1 << PSN | 1 << BRN jr z, .asm_3c768 + ld hl, BattleText_0x807e2 - ld de, $0106 - and $10 + ld de, ANIM_PSN + and 1 << BRN jr z, .asm_3c733 ld hl, BattleText_0x807f8 - ld de, $0105 - + ld de, ANIM_BRN .asm_3c733 + push de call StdBattleTextBox pop de @@ -1096,11 +1097,11 @@ Function3c716: ; 3c716 ld de, $c67c .asm_3c74d - ld a, $4 + ld a, BATTLE_VARS_SUBSTATUS5 call GetBattleVar - bit 0, a + bit SUBSTATUS_TOXIC, a jr z, .asm_3c765 - call Function3cc76 + call GetSixteenthMaxHP ld a, [de] inc a ld [de], a @@ -1118,19 +1119,22 @@ Function3c716: ; 3c716 .asm_3c768 call Function3c706 jp z, .asm_3c7f7 - ld a, $3 + + ld a, BATTLE_VARS_SUBSTATUS4 call _GetBattleVar - bit 7, [hl] + bit SUBSTATUS_LEECH_SEED, [hl] jr z, .asm_3c7a1 - call Function3c8e4 + + call SwitchTurnCore xor a ld [$cfca], a - ld de, $0107 - ld a, $7 + ld de, ANIM_SAP + ld a, BATTLE_VARS_SUBSTATUS3_OPP call GetBattleVar - and $60 + and 1 << SUBSTATUS_FLYING | 1 << SUBSTATUS_UNDERGROUND call z, Function3ee0f - call Function3c8e4 + call SwitchTurnCore + call GetEighthMaxHP call Function3cc3f ld a, $1 @@ -1142,13 +1146,15 @@ Function3c716: ; 3c716 .asm_3c7a1 call Function3c706 jr z, .asm_3c7f7 - ld a, $0 + + ld a, BATTLE_VARS_SUBSTATUS1 call _GetBattleVar - bit 0, [hl] + bit SUBSTATUS_NIGHTMARE, [hl] jr z, .asm_3c7c5 + xor a ld [$cfca], a - ld de, $010c + ld de, ANIM_IN_NIGHTMARE call Function3ee0f call GetQuarterMaxHP call Function3cc3f @@ -1158,13 +1164,15 @@ Function3c716: ; 3c716 .asm_3c7c5 call Function3c706 jr z, .asm_3c7f7 - ld a, $0 + + ld a, BATTLE_VARS_SUBSTATUS1 call _GetBattleVar - bit 1, [hl] + bit SUBSTATUS_CURSE, [hl] jr z, .asm_3c7e9 + xor a ld [$cfca], a - ld de, $010c + ld de, ANIM_IN_NIGHTMARE call Function3ee0f call GetQuarterMaxHP call Function3cc3f @@ -1185,7 +1193,7 @@ Function3c716: ; 3c716 .asm_3c7f7 call RefreshBattleHuds - ld c, $14 + ld c, 20 call DelayFrames xor a ret @@ -1212,9 +1220,9 @@ Function3c801: ; 3c801 ld hl, EnemyPerishCount .asm_3c827 - ld a, $0 + ld a, BATTLE_VARS_SUBSTATUS1 call GetBattleVar - bit 4, a + bit SUBSTATUS_PERISH, a ret z dec [hl] ld a, [hl] @@ -1224,9 +1232,9 @@ Function3c801: ; 3c801 call StdBattleTextBox pop af ret nz - ld a, $0 + ld a, BATTLE_VARS_SUBSTATUS1 call _GetBattleVar - res 4, [hl] + res SUBSTATUS_PERISH, [hl] ld a, [hBattleTurn] and a jr nz, .asm_3c85c @@ -1285,9 +1293,9 @@ Function3c874: ; 3c874 ld a, [hl] and a ret z - ld a, $3 + ld a, BATTLE_VARS_SUBSTATUS4 call GetBattleVar - bit 4, a + bit SUBSTATUS_SUBSTITUTE, a ret nz ld a, [de] ld [$d265], a @@ -1295,20 +1303,20 @@ Function3c874: ; 3c874 call GetMoveName dec [hl] jr z, .asm_3c8de - ld a, $2 + ld a, BATTLE_VARS_SUBSTATUS3 call GetBattleVar - and $60 + and 1 << SUBSTATUS_FLYING | 1 << SUBSTATUS_UNDERGROUND jr nz, .asm_3c8d3 - call Function3c8e4 + call SwitchTurnCore xor a ld [$cfca], a ld [FXAnimIDHi], a ld a, $37 call Predef - call Function3c8e4 + call SwitchTurnCore .asm_3c8d3 - call Function3cc76 + call GetSixteenthMaxHP call Function3cc3f ld hl, BattleText_0x80de2 jr .asm_3c8e1 @@ -1320,9 +1328,9 @@ Function3c874: ; 3c874 jp StdBattleTextBox ; 3c8e4 -Function3c8e4: ; 3c8e4 +SwitchTurnCore: ; 3c8e4 ld a, [hBattleTurn] - xor $1 + xor 1 ld [hBattleTurn], a ret ; 3c8eb @@ -1367,8 +1375,8 @@ Function3c8eb: ; 3c8eb ret z .asm_3c92d - call Function3cc76 - call Function3c8e4 + call GetSixteenthMaxHP + call SwitchTurnCore call Function3ccef ld hl, BattleText_0x80880 jp StdBattleTextBox @@ -1481,7 +1489,7 @@ Function3c93c: ; 3c93c ld a, [EnemySubStatus5] .asm_3c9ee - bit 3, a + bit SUBSTATUS_TRANSFORMED, a jr nz, .asm_3c9f5 ld a, [de] add b @@ -1508,9 +1516,9 @@ Function3c93c: ; 3c93c .asm_3ca14 call GetItemName - call Function3c8e4 + call SwitchTurnCore call Function3ddc8 - call Function3c8e4 + call SwitchTurnCore ld hl, BattleText_0x80899 jp StdBattleTextBox ; 3ca26 @@ -1740,37 +1748,37 @@ FadeReflect: ; 3cb91 ; 3cb9e HandleWeather: ; 3cb9e - ld a, [Weather] - cp 0 + cp WEATHER_NONE ret z ld hl, WeatherCount dec [hl] - jr z, .asm_3cc13 + jr z, .ended ld hl, .WeatherMessages - call .asm_3cc1e + call .PrintWeatherMessage + ld a, [Weather] cp WEATHER_SANDSTORM ret nz + ld a, [$ffcb] cp 1 - jr z, .asm_3cbc7 + jr z, .enemy_first -; Player first +.player_first call SetPlayerTurn - call .asm_3cbd0 + call .SandstormDamage call SetEnemyTurn - jr .asm_3cbd0 + jr .SandstormDamage -.asm_3cbc7 -; Enemy first +.enemy_first call SetEnemyTurn - call .asm_3cbd0 + call .SandstormDamage call SetPlayerTurn -.asm_3cbd0 +.SandstormDamage ld a, BATTLE_VARS_SUBSTATUS3 call GetBattleVar bit SUBSTATUS_UNDERGROUND, a @@ -1779,10 +1787,9 @@ HandleWeather: ; 3cb9e ld hl, BattleMonType1 ld a, [hBattleTurn] and a - jr z, .asm_3cbe3 + jr z, .ok ld hl, EnemyMonType1 - -.asm_3cbe3 +.ok ld a, [hli] cp ROCK ret z @@ -1799,26 +1806,26 @@ HandleWeather: ; 3cb9e cp STEEL ret z - call Function3c8e4 + call SwitchTurnCore xor a ld [$cfca], a - ld de, $010b + ld de, ANIM_IN_SANDSTORM call Function3ee17 - call Function3c8e4 + call SwitchTurnCore call GetEighthMaxHP call Function3cc3f ld hl, BattleText_0x8084d jp StdBattleTextBox -.asm_3cc13 +.ended ld hl, .WeatherEndedMessages - call .asm_3cc1e + call .PrintWeatherMessage xor a ld [Weather], a ret -.asm_3cc1e +.PrintWeatherMessage ld a, [Weather] dec a ld c, a @@ -1852,15 +1859,13 @@ Function3cc3f: ; 3cc3f ; 3cc45 - Function3cc45: ; 3cc45 ld hl, BattleMonHP ld a, [hBattleTurn] and a - jr z, .asm_3cc50 + jr z, .ok ld hl, EnemyMonHP - -.asm_3cc50 +.ok inc hl ld a, [hl] ld [$d1ec], a @@ -1885,16 +1890,17 @@ Function3cc45: ; 3cc45 ret ; 3cc76 -Function3cc76: ; 3cc76 +GetSixteenthMaxHP: ; 3cc76 call GetQuarterMaxHP + ; quarter result srl c srl c + ; round up ld a, c and a - jr nz, .asm_3cc82 + jr nz, .ok inc c - -.asm_3cc82 +.ok ret ; 3cc83 @@ -1940,7 +1946,7 @@ GetHalfMaxHP: ; 3cc9f ; output: bc call GetMaxHP -; halve reslut +; halve result srl b rr c @@ -1957,18 +1963,12 @@ GetHalfMaxHP: ; 3cc9f GetMaxHP: ; 3ccac ; output: bc, Buffer1-2 -; player ld hl, BattleMonMaxHP - -; whose turn? ld a, [hBattleTurn] and a - jr z, .gethp - -; enemy + jr z, .ok ld hl, EnemyMonMaxHP - -.gethp +.ok ld a, [hli] ld [Buffer2], a ld b, a @@ -1983,10 +1983,9 @@ Function3ccc2: ; 3ccc2 ld hl, BattleMonHP ld a, [hBattleTurn] and a - jr z, .asm_3cccd + jr z, .ok ld hl, EnemyMonHP - -.asm_3cccd +.ok ld a, [hli] ld b, a ld a, [hli] @@ -2004,10 +2003,9 @@ Function3ccde: ; 3ccde ld hl, BattleMonHP + 1 ld a, [hBattleTurn] and a - jr z, .asm_3cce9 + jr z, .ok ld hl, EnemyMonHP + 1 - -.asm_3cce9 +.ok ld a, c sub [hl] dec hl @@ -2021,10 +2019,9 @@ Function3ccef: ; 3ccef ld hl, EnemyMonMaxHP ld a, [hBattleTurn] and a - jr z, .asm_3ccfa + jr z, .ok ld hl, BattleMonMaxHP - -.asm_3ccfa +.ok ld a, [hli] ld [Buffer2], a ld a, [hld] @@ -2040,6 +2037,7 @@ Function3ccef: ; 3ccef adc b ld [hli], a ld [$d1ef], a + ld a, [Buffer1] ld c, a ld a, [hld] @@ -2055,11 +2053,11 @@ Function3ccef: ; 3ccef ld a, c ld [hl], a ld [$d1ee], a - .asm_3cd2d - call Function3c8e4 + + call SwitchTurnCore call Function3cd36 - jp Function3c8e4 + jp SwitchTurnCore ; 3cd36 Function3cd36: ; 3cd36 @@ -2072,7 +2070,7 @@ Function3cd3c: ; 3cd3c hlcoord 10, 9 ld a, [hBattleTurn] and a - ld a, $1 + ld a, 1 jr z, .asm_3cd4a hlcoord 2, 2 xor a @@ -2099,31 +2097,38 @@ Function3cd55: ; 3cd55 ld a, d and a jp z, LostBattle + ld hl, BattleMonHP ld a, [hli] or [hl] call nz, Function3df48 + ld a, $1 ld [hBGMapMode], a ld c, 60 call DelayFrames + ld a, [IsInBattle] dec a jr nz, .asm_3cd8c - ld a, $1 + + ld a, 1 ld [BattleEnded], a ret .asm_3cd8c call Function3cf35 jp z, Function3cfa4 + ld hl, BattleMonHP ld a, [hli] or [hl] jr nz, .asm_3cdba + call Function3d1f8 jr nc, .asm_3cda4 - ld a, $1 + + ld a, 1 ld [BattleEnded], a ret @@ -2131,6 +2136,7 @@ Function3cd55: ; 3cd55 call Function3d227 call Function3d2e0 jp c, Function3c0e5 + ld a, $1 ld [$d0ec], a call Function3cf4a @@ -2387,7 +2393,7 @@ Function3cf4a: ; 3cf4a and a jr z, .asm_3cf6d call Function3e8e4 - ld a, [$d430] + ld a, [wBattleAction] cp $f ret z call Function30b4 @@ -2483,7 +2489,7 @@ Function3cfa4: ; 3cfa4 ld c, $3 callba Function11c000 call Functiona80 - ld hl, $c6ec + ld hl, wPayDayMoney ld a, [hli] or [hl] inc hl @@ -2651,7 +2657,7 @@ Function3d0ea: ; 3d0ea call Function3ceaa pop de jr nz, .asm_3d11e - ld hl, $c6ec + ld hl, wPayDayMoney ld a, [hli] or [hl] jr nz, .asm_3d11e @@ -3212,7 +3218,7 @@ Function3d444: ; 3d444 Function3d490: ; 3d490 - ld [hConnectionStripLength], a + ld [$ffaf], a ld c, a .asm_3d493 push bc @@ -3222,7 +3228,7 @@ Function3d490: ; 3d490 push hl call Function3d4ae pop hl - ld de, 20 + ld de, SCREEN_WIDTH add hl, de dec b jr nz, .asm_3d497 @@ -3236,24 +3242,24 @@ Function3d490: ; 3d490 ; 3d4ae Function3d4ae: ; 3d4ae - ld a, [hConnectionStripLength] + ld a, [$ffaf] ld c, a cp $8 - jr nz, .asm_3d4bc -.asm_3d4b5 + jr nz, .back +.forward ld a, [hli] ld [hld], a dec hl dec c - jr nz, .asm_3d4b5 + jr nz, .forward ret -.asm_3d4bc +.back ld a, [hld] ld [hli], a inc hl dec c - jr nz, .asm_3d4bc + jr nz, .back ret ; 3d4c3 @@ -3320,7 +3326,7 @@ Function3d533: ; 3d533 ld a, [InLinkBattle] and a jr z, .asm_3d541 - ld a, [$d430] + ld a, [wBattleAction] sub NUM_MOVES ld b, a jr .asm_3d555 @@ -3868,7 +3874,7 @@ Function3d8b3: ; 3d8b3 ld b, a callab GetItem ld a, b - cp $48 + cp HELD_ESCAPE pop de pop hl jr nz, .asm_3d916 @@ -3977,8 +3983,8 @@ Function3d8b3: ; 3d8b3 call Function3d2e0 jr c, .asm_3d9f5 -; Got away safely - ld a, [$d430] + ; Got away safely + ld a, [wBattleAction] cp $f ld a, $2 jr z, .asm_3d9cf @@ -4076,7 +4082,7 @@ Function3da7c: ; 3da7c Function3da85: ; 3da85 ld hl, BattleMonDVs ld a, [PlayerSubStatus5] - bit 3, a + bit SUBSTATUS_TRANSFORMED, a ret z ld hl, PartyMon1DVs ld a, [CurBattleMon] @@ -4086,7 +4092,7 @@ Function3da85: ; 3da85 Function3da97: ; 3da97 ld hl, EnemyMonDVs ld a, [EnemySubStatus5] - bit 3, a + bit SUBSTATUS_TRANSFORMED, a ret z ld hl, $c6f2 ld a, [IsInBattle] @@ -4205,7 +4211,7 @@ Function3db5f: ; 3db5f ld [LastEnemyCounterMove], a ld [LastPlayerCounterMove], a ld [LastPlayerMove], a - call Function3e4a8 + call CheckAmuletCoin call Function3ee27 xor a ld [$c731], a @@ -4213,13 +4219,13 @@ Function3db5f: ; 3db5f xor a ld [$cfca], a ld [$c689], a - ld de, $0101 + ld de, ANIM_SEND_OUT_MON call Function3ee17 call Function3da74 jr nc, .asm_3dbbc ld a, $1 ld [$c689], a - ld de, $0101 + ld de, ANIM_SEND_OUT_MON call Function3ee17 .asm_3dbbc @@ -4407,7 +4413,7 @@ Function3dce6: ; 3dce6 xor a ld [hBattleTurn], a ld [$cfca], a - ld de, $0102 + ld de, ANIM_RETURN_MON call Function3ee17 pop af ld [hBattleTurn], a @@ -4536,15 +4542,15 @@ Function3ddc8: ; 3ddc8 push de push bc call EmptyBattleTextBox - ld a, $69 + ld a, RECOVER ld [FXAnimIDLo], a - call Function3c8e4 + call SwitchTurnCore xor a ld [$cfca], a ld [FXAnimIDHi], a ld a, $37 call Predef - call Function3c8e4 + call SwitchTurnCore pop bc pop de pop hl @@ -4563,7 +4569,7 @@ Function3dde9: ; 3dde9 jr nz, .asm_3ddf2 dec hl ld b, [hl] - ld a, $b + ld a, BATTLE_VARS_STATUS_OPP call _GetBattleVar and b ret z @@ -4572,20 +4578,20 @@ Function3dde9: ; 3dde9 push bc call UpdateOpponentInParty pop bc - ld a, $9 + ld a, BATTLE_VARS_SUBSTATUS5_OPP call _GetBattleVar and [hl] - res 0, [hl] - ld a, $5 + res SUBSTATUS_TOXIC, [hl] + ld a, BATTLE_VARS_SUBSTATUS1_OPP call _GetBattleVar and [hl] - res 0, [hl] + res SUBSTATUS_NIGHTMARE, [hl] ld a, b cp $7f jr nz, .asm_3de26 - ld a, $7 + ld a, BATTLE_VARS_SUBSTATUS3_OPP call _GetBattleVar - res 7, [hl] + res SUBSTATUS_CONFUSED, [hl] .asm_3de26 ld hl, Function365fd @@ -4595,10 +4601,10 @@ Function3dde9: ; 3dde9 ld hl, Function365d7 .asm_3de31 - call Function3c8e4 + call SwitchTurnCore ld a, BANK(Function365fd) rst FarCall - call Function3c8e4 + call SwitchTurnCore call Function3ddc8 call Function3ddac ld a, $1 @@ -4618,23 +4624,23 @@ Function3dde9: ; 3dde9 Function3de51: ; 3de51 - ld a, $7 + ld a, BATTLE_VARS_SUBSTATUS3_OPP call GetBattleVar - bit 7, a + bit SUBSTATUS_CONFUSED, a ret z callab GetOpponentItem ld a, b - cp $10 + cp HELD_HEAL_CONFUSION jr z, .asm_3de67 - cp $f + cp HELD_HEAL_STATUS ret nz .asm_3de67 ld a, [hl] ld [$d265], a - ld a, $7 + ld a, BATTLE_VARS_SUBSTATUS3_OPP call _GetBattleVar - res 7, [hl] + res SUBSTATUS_CONFUSED, [hl] call GetItemName call Function3ddc8 ld hl, BattleText_0x80dab @@ -4730,13 +4736,13 @@ Function3deb6: ; 3deb6 ; 3defc .data_3defc - dbw $1f, BattleCommand70 - dbw $20, BattleCommand71 - dbw $21, BattleCommand72 - dbw $22, BattleCommand73 - dbw $23, BattleCommand74 - dbw $24, BattleCommand75 - dbw $25, BattleCommand76 + dbw HELD_ATTACK_UP, BattleCommand70 + dbw HELD_DEFENSE_UP, BattleCommand71 + dbw HELD_SPEED_UP, BattleCommand72 + dbw HELD_SP_ATTACK_UP, BattleCommand73 + dbw HELD_SP_DEFENSE_UP, BattleCommand74 + dbw HELD_ACCURACY_UP, BattleCommand75 + dbw HELD_EVASION_UP, BattleCommand76 db $ff ; 3df12 @@ -4793,9 +4799,9 @@ DrawPlayerHUD: ; 3df58 xor a ld [hBGMapMode], a -; Clear the area + ; Clear the area hlcoord 9, 7 - ld bc, $050b + lb bc, 5, 11 call ClearBox callba DrawPlayerExpBar @@ -4804,7 +4810,7 @@ DrawPlayerHUD: ; 3df58 ld [hl], $73 ; vertical bar call PrintPlayerHUD -; HP bar + ; HP bar hlcoord 10, 9 ld b, OTPARTYMON xor a @@ -4812,7 +4818,7 @@ DrawPlayerHUD: ; 3df58 ld a, PREDEF_DRAW_PLAYER_HP call Predef -; Exp bar + ; Exp bar push de ld a, [CurBattleMon] ld hl, PartyMon1Exp + 2 @@ -4837,24 +4843,24 @@ CheckDanger: ; 3df9e ld hl, BattleMonHP ld a, [hli] or [hl] - jr z, .asm_3dfb2 + jr z, .no_danger ld a, [$c6fd] and a - jr nz, .asm_3dfbe + jr nz, .done ld a, [PlayerHPPal] cp $2 - jr z, .asm_3dfb9 + jr z, .danger -.asm_3dfb2 +.no_danger ld hl, Danger res 7, [hl] - jr .asm_3dfbe + jr .done -.asm_3dfb9 +.danger ld hl, Danger set 7, [hl] -.asm_3dfbe +.done ret ; 3dfbf @@ -4893,11 +4899,11 @@ PrintPlayerHUD: ; 3dfbf ld a, $3 ld [MonType], a callab GetGender - ld a, $7f + ld a, " " jr c, .asm_3e013 - ld a, $ef + ld a, "♂" jr nz, .asm_3e013 - ld a, $f5 + ld a, "♀" .asm_3e013 hlcoord 17, 8 @@ -4938,7 +4944,7 @@ Function3e043: ; 3e043 xor a ld [hBGMapMode], a hlcoord 1, 0 - ld bc, $040b + lb bc, 4, 11 call ClearBox callba Function2c0c5 ld a, [TempEnemyMonSpecies] @@ -4955,10 +4961,9 @@ Function3e043: ; 3e043 ld hl, EnemyMonDVs ld de, TempMonDVs ld a, [EnemySubStatus5] - bit 3, a + bit SUBSTATUS_TRANSFORMED, a jr z, .asm_3e080 ld hl, $c6f2 - .asm_3e080 ld a, [hli] ld [de], a @@ -4968,11 +4973,11 @@ Function3e043: ; 3e043 ld a, $3 ld [MonType], a callab GetGender - ld a, $7f + ld a, " " jr c, .asm_3e09a - ld a, $ef + ld a, "♂" jr nz, .asm_3e09a - ld a, $f5 + ld a, "♀" .asm_3e09a hlcoord 9, 1 @@ -5006,13 +5011,13 @@ Function3e043: ; 3e043 jr nz, .asm_3e0d1 ld c, a ld e, a - ld d, $6 + ld d, HP_BAR_LENGTH jp .asm_3e11a .asm_3e0d1 xor a ld [hMultiplicand], a - ld a, $30 + ld a, HP_BAR_LENGTH_PX ld [hMultiplier], a call Multiply ld hl, EnemyMonMaxHP @@ -5050,7 +5055,7 @@ Function3e043: ; 3e043 call Divide ld a, [$ffb6] ld e, a - ld a, $6 + ld a, HP_BAR_LENGTH ld d, a ld c, a .asm_3e11a @@ -5180,13 +5185,13 @@ Function3e1c7: ; 3e1c7 .asm_3e1f1 callba Function107bb - ld a, $5 + ld a, POKE_BALL ld [CurItem], a call DoItemEffect jr .asm_3e209 .asm_3e201 - ld a, $b1 + ld a, PARK_BALL ld [CurItem], a call DoItemEffect @@ -5365,7 +5370,7 @@ Function3e358: ; 3e358 and a jr nz, .asm_3e378 ld a, [EnemySubStatus5] - bit 7, a + bit SUBSTATUS_CANT_RUN, a jr z, .asm_3e381 .asm_3e378 @@ -5414,7 +5419,7 @@ Function3e3ad: ; 3e3ad ret .asm_3e3cf - ld a, [$d430] + ld a, [wBattleAction] cp $e jp z, .asm_3e3ca cp $d @@ -5527,14 +5532,14 @@ Function3e489: ; 3e489 -Function3e4a8: ; 3e4a8 +CheckAmuletCoin: ; 3e4a8 ld a, [BattleMonItem] ld b, a callab GetItem ld a, b - cp $4c + cp HELD_AMULET_COIN ret nz - ld a, $1 + ld a, 1 ld [$c73d], a ret ; 3e4bc @@ -5805,7 +5810,7 @@ Function3e643: ; 3e643 .asm_3e682 ld a, [PlayerSubStatus5] - bit 3, a + bit SUBSTATUS_TRANSFORMED, a jr nz, .asm_3e69e ld hl, PartyMon1Moves ld a, [CurBattleMon] @@ -5813,7 +5818,7 @@ Function3e643: ; 3e643 push hl call .asm_3e6a5 pop hl - ld bc, $0015 + ld bc, PartyMon1PP - PartyMon1Moves add hl, bc call .asm_3e6a5 @@ -6015,7 +6020,7 @@ Function3e7c1: ; 3e7c1 and a call z, Function3e8e4 call Function30b4 - ld a, [$d430] + ld a, [wBattleAction] cp $e jp z, .asm_3e8bd cp $d @@ -6268,9 +6273,8 @@ LoadEnemyMon: ; 3e8eb and a jr z, .InitDVs -; ???? ld a, [EnemySubStatus5] - bit 3, a + bit SUBSTATUS_TRANSFORMED, a jr z, .InitDVs ; Unknown @@ -6478,15 +6482,14 @@ LoadEnemyMon: ; 3e8eb and a jr z, .TreeMon -; ???? ld a, [EnemySubStatus5] - bit 3, a + bit SUBSTATUS_TRANSFORMED, a jp nz, .Moves .TreeMon ; If we're headbutting trees, some monsters enter battle asleep call CheckSleepingTreeMon - ld a, 7 ; Asleep for 7 turns + ld a, SLP ; Asleep for 7 turns jr c, .UpdateStatus ; Otherwise, no status xor a @@ -7588,7 +7591,7 @@ Function3ee3b: ; 3ee3b ld a, [hl] ld [BattleMonLevel], a ld a, [PlayerSubStatus5] - bit 3, a + bit SUBSTATUS_TRANSFORMED, a jr nz, .asm_3f012 ld hl, $0026 add hl, bc @@ -8687,7 +8690,7 @@ Function3f6d0: ; 3f6d0 ; 3f71d Function3f71d: ; 3f71d - ld hl, $c6ec + ld hl, wPayDayMoney ld a, [hli] or [hl] inc hl @@ -8696,7 +8699,7 @@ Function3f71d: ; 3f71d ld a, [$c73d] and a jr z, .asm_3f73d - ld hl, $c6ee + ld hl, wPayDayMoney + 2 sla [hl] dec hl rl [hl] @@ -8709,7 +8712,7 @@ Function3f71d: ; 3f71d ld [hl], a .asm_3f73d - ld hl, $c6ee + ld hl, wPayDayMoney + 2 ld de, Money + 2 call Function3d0be ld hl, BattleText_0x80730 @@ -9426,7 +9429,7 @@ Function3fc30: ; 3fc30 Function3fc5b: ; 3fc5b ld hl, Sprites xor a - ld [hConnectionStripLength], a + ld [$ffaf], a ld b, $6 ld e, $a8 .asm_3fc65 @@ -9437,10 +9440,10 @@ Function3fc5b: ; 3fc5b inc hl ld [hl], e inc hl - ld a, [hConnectionStripLength] + ld a, [$ffaf] ld [hli], a inc a - ld [hConnectionStripLength], a + ld [$ffaf], a ld a, $1 ld [hli], a ld a, d @@ -9448,9 +9451,9 @@ Function3fc5b: ; 3fc5b ld d, a dec c jr nz, .asm_3fc69 - ld a, [hConnectionStripLength] + ld a, [$ffaf] add $3 - ld [hConnectionStripLength], a + ld [$ffaf], a ld a, e add $8 ld e, a @@ -9487,7 +9490,7 @@ BattleStartMessage: ; 3fc8b ld [hBattleTurn], a ld a, 1 ld [$c689], a - ld de, $0101 + ld de, ANIM_SEND_OUT_MON call Function3ee17 .asm_3fcc2 diff --git a/battle/effect_commands.asm b/battle/effect_commands.asm index 9e1b0d8e5..a2332d2bf 100644 --- a/battle/effect_commands.asm +++ b/battle/effect_commands.asm @@ -16,10 +16,10 @@ DoEnemyTurn: ; 3400a and a jr z, DoTurn - ld a, [$d430] + ld a, [wBattleAction] cp $e jr z, DoTurn - cp $4 + cp NUM_MOVES ret nc ; fallthrough @@ -32,7 +32,7 @@ DoTurn: ; 3401d xor a ld [$c6b4], a -; Effect command checkturn is called for every move. + ; Effect command checkturn is called for every move. call CheckTurn ld a, [$c6b4] @@ -146,41 +146,38 @@ BattleCommand01: ; 34084 CheckPlayerTurn: -; check recharge ld hl, PlayerSubStatus4 - bit 5, [hl] - jr z, .CheckSleep - res 5, [hl] + bit SUBSTATUS_RECHARGE, [hl] + jr z, .no_recharge -; 'must recharge!' + res SUBSTATUS_RECHARGE, [hl] ld hl, MustRechargeText call StdBattleTextBox - call CantMove jp Function34385 +.no_recharge + -.CheckSleep ld hl, BattleMonStatus ld a, [hl] - and $7 - jr z, .CheckFrozen + and SLP + jr z, .not_asleep + dec a ld [BattleMonStatus], a - and $7 - jr z, .WokeUp + and SLP + jr z, .woke_up + xor a ld [$cfca], a ld de, ANIM_SLP call FarPlayBattleAnimation - jr .FastAsleep + jr .fast_asleep - -.WokeUp -; 'woke up!' +.woke_up ld hl, WokeUpText call StdBattleTextBox - call CantMove call UpdateBattleMonInParty ld hl, Function3df48 @@ -188,176 +185,167 @@ CheckPlayerTurn: ld a, $1 ld [$ffd4], a ld hl, PlayerSubStatus1 - res 0, [hl] - jr .CheckFrozen - + res SUBSTATUS_NIGHTMARE, [hl] + jr .not_asleep -.FastAsleep -; 'fast asleep!' +.fast_asleep ld hl, FastAsleepText call StdBattleTextBox -; Snore and Sleep Talk bypass sleep. + ; Snore and Sleep Talk bypass sleep. ld a, [CurPlayerMove] cp SNORE - jr z, .CheckFrozen + jr z, .not_asleep cp SLEEP_TALK - jr z, .CheckFrozen + jr z, .not_asleep + call CantMove jp Function34385 +.not_asleep + -.CheckFrozen ld hl, BattleMonStatus - bit 5, [hl] - jr z, .CheckFlinch + bit FRZ, [hl] + jr z, .not_frozen -; Flame Wheel and Sacred Fire thaw the user. + ; Flame Wheel and Sacred Fire thaw the user. ld a, [CurPlayerMove] cp FLAME_WHEEL - jr z, .CheckFlinch + jr z, .not_frozen cp SACRED_FIRE - jr z, .CheckFlinch + jr z, .not_frozen -; 'frozen solid!' ld hl, FrozenSolidText call StdBattleTextBox call CantMove jp Function34385 +.not_frozen -.CheckFlinch - ld hl, PlayerSubStatus3 - bit 3, [hl] ; flinch - jr z, .CheckDisabled - res 3, [hl] + ld hl, PlayerSubStatus3 + bit SUBSTATUS_FLINCHED, [hl] + jr z, .not_flinched -; 'flinched!' + res SUBSTATUS_FLINCHED, [hl] ld hl, FlinchedText call StdBattleTextBox call CantMove jp Function34385 +.not_flinched + -.CheckDisabled ld hl, PlayerDisableCount ld a, [hl] and a - jr z, .CheckConfused + jr z, .not_disabled + dec a ld [hl], a and $f - jr nz, .CheckConfused + jr nz, .not_disabled + ld [hl], a ld [DisabledMove], a - -; 'disabled no more!' ld hl, DisabledNoMoreText call StdBattleTextBox +.not_disabled + -.CheckConfused ld a, [PlayerSubStatus3] add a - jr nc, .CheckAttract + jr nc, .not_confused ld hl, PlayerConfuseCount dec [hl] - jr nz, .Confused + jr nz, .confused ld hl, PlayerSubStatus3 - res 7, [hl] - -; 'confused no more!' + res SUBSTATUS_CONFUSED, [hl] ld hl, ConfusedNoMoreText call StdBattleTextBox + jr .not_confused - jr .CheckAttract - - -.Confused -; 'confused!' +.confused ld hl, IsConfusedText call StdBattleTextBox - xor a ld [$cfca], a ld de, ANIM_CONFUSED call FarPlayBattleAnimation -; 50% chance of hitting itself + ; 50% chance of hitting itself call BattleRandom cp $80 - jr nc, .CheckAttract + jr nc, .not_confused + ; clear confussion-dependent substatus ld hl, PlayerSubStatus3 ld a, [hl] - and $80 + and 1 << SUBSTATUS_CONFUSED ld [hl], a call HitConfusion - call CantMove jp Function34385 +.not_confused + -.CheckAttract ld a, [PlayerSubStatus1] - add a ; check bit 7 - jr nc, .CheckDisabledMove + add a ; bit SUBSTATUS_ATTRACT + jr nc, .not_infatuated -; 'in love with' ld hl, InLoveWithText call StdBattleTextBox - xor a ld [$cfca], a - ld de, ANIM_IN_LOVE call FarPlayBattleAnimation -; 50% chance of infatuation + ; 50% chance of infatuation call BattleRandom cp $80 - jr c, .CheckDisabledMove + jr c, .not_infatuated -; 'infatuation kept it from attacking!' ld hl, InfatuationText call StdBattleTextBox - call CantMove jp Function34385 +.not_infatuated -.CheckDisabledMove -; We can't disable a move that doesn't exist. + + ; We can't disable a move that doesn't exist. ld a, [DisabledMove] and a - jr z, .CheckParalyzed + jr z, .no_disabled_move -; Are we using the disabled move? + ; Are we using the disabled move? ld hl, CurPlayerMove cp [hl] - jr nz, .CheckParalyzed + jr nz, .no_disabled_move call MoveDisabled call CantMove jp Function34385 +.no_disabled_move + -.CheckParalyzed ld hl, BattleMonStatus - bit 6, [hl] + bit PAR, [hl] ret z -; 25% chance to be fully paralyzed + ; 25% chance to be fully paralyzed call BattleRandom cp $3f ret nc -; 'fully paralyzed!' ld hl, FullyParalyzedText call StdBattleTextBox call CantMove @@ -368,12 +356,12 @@ CheckPlayerTurn: CantMove: ; 341f0 ld a, BATTLE_VARS_SUBSTATUS1 call _GetBattleVar - res 6, [hl] + res SUBSTATUS_ENCORED, [hl] ld a, BATTLE_VARS_SUBSTATUS3 call _GetBattleVar ld a, [hl] - and $ec + and $ff ^ (1<<SUBSTATUS_BIDE + 1<<SUBSTATUS_ROLLOUT + 1<<SUBSTATUS_CHARGED) ld [hl], a call ResetFuryCutterCount @@ -383,12 +371,12 @@ CantMove: ; 341f0 cp FLY jr z, .asm_3420f - cp $5b + cp DIG ret nz .asm_3420f - res 5, [hl] - res 6, [hl] + res SUBSTATUS_UNDERGROUND, [hl] + res SUBSTATUS_FLYING, [hl] jp Function37ece ; 34216 @@ -404,41 +392,38 @@ Function34216: ; 34216 CheckEnemyTurn: ; 3421f -; check recharge ld hl, EnemySubStatus4 - bit 5, [hl] - jr z, .CheckSleep - res 5, [hl] + bit SUBSTATUS_RECHARGE, [hl] + jr z, .no_recharge -; 'must recharge!' + res SUBSTATUS_RECHARGE, [hl] ld hl, MustRechargeText call StdBattleTextBox call CantMove jp Function34385 +.no_recharge + -.CheckSleep ld hl, EnemyMonStatus ld a, [hl] - and $7 - jr z, .CheckFrozen + and SLP + jr z, .not_asleep + dec a ld [EnemyMonStatus], a and a - jr z, .WokeUp + jr z, .woke_up -; 'fast asleep!' ld hl, FastAsleepText call StdBattleTextBox xor a ld [$cfca], a ld de, ANIM_SLP call FarPlayBattleAnimation - jr .FastAsleep + jr .fast_asleep - -.WokeUp -; 'woke up!' +.woke_up ld hl, WokeUpText call StdBattleTextBox call CantMove @@ -448,93 +433,88 @@ CheckEnemyTurn: ; 3421f ld a, $1 ld [$ffd4], a ld hl, EnemySubStatus1 - res 0, [hl] - jr .CheckFrozen - + res SUBSTATUS_NIGHTMARE, [hl] + jr .not_asleep -.FastAsleep -; Snore and Sleep Talk bypass sleep. +.fast_asleep + ; Snore and Sleep Talk bypass sleep. ld a, [CurEnemyMove] cp SNORE - jr z, .CheckFrozen + jr z, .not_asleep cp SLEEP_TALK - jr z, .CheckFrozen + jr z, .not_asleep call CantMove jp Function34385 +.not_asleep + -.CheckFrozen ld hl, EnemyMonStatus - bit 5, [hl] - jr z, .CheckFlinch + bit FRZ, [hl] + jr z, .not_frozen ld a, [CurEnemyMove] - cp $ac - jr z, .CheckFlinch - cp $dd - jr z, .CheckFlinch + cp FLAME_WHEEL + jr z, .not_frozen + cp SACRED_FIRE + jr z, .not_frozen -; 'frozen solid!' ld hl, FrozenSolidText call StdBattleTextBox call CantMove jp Function34385 +.not_frozen -.CheckFlinch - ld hl, EnemySubStatus3 - bit 3, [hl] - jr z, .CheckDisabled - res 3, [hl] + ld hl, EnemySubStatus3 + bit SUBSTATUS_FLINCHED, [hl] + jr z, .not_flinched -; 'flinched!' + res SUBSTATUS_FLINCHED, [hl] ld hl, FlinchedText call StdBattleTextBox call CantMove jp Function34385 +.not_flinched + -.CheckDisabled ld hl, EnemyDisableCount ld a, [hl] and a - jr z, .CheckConfused + jr z, .not_disabled dec a ld [hl], a and $f - jr nz, .CheckConfused + jr nz, .not_disabled ld [hl], a ld [EnemyDisabledMove], a -; 'disabled no more!' ld hl, DisabledNoMoreText call StdBattleTextBox +.not_disabled + -.CheckConfused ld a, [EnemySubStatus3] - add a - jr nc, .CheckAttract + add a ; bit SUBSTATUS_CONFUSED + jr nc, .not_confused ld hl, $c67b dec [hl] - jr nz, .Confused + jr nz, .confused ld hl, EnemySubStatus3 - res 7, [hl] - -; 'confused no more!' + res SUBSTATUS_CONFUSED, [hl] ld hl, ConfusedNoMoreText call StdBattleTextBox - - jr .CheckAttract + jr .not_confused -.Confused -; 'confused!' +.confused ld hl, IsConfusedText call StdBattleTextBox @@ -543,104 +523,94 @@ CheckEnemyTurn: ; 3421f ld de, ANIM_CONFUSED call FarPlayBattleAnimation -; 50% chance of hitting itself + ; 50% chance of hitting itself call BattleRandom cp $80 - jr nc, .CheckAttract + jr nc, .not_confused + ; clear confusion-dependent substatus ld hl, EnemySubStatus3 ld a, [hl] - and %10000000 + and 1 << SUBSTATUS_CONFUSED ld [hl], a -; 'hurt itself in its confusion!' ld hl, HurtItselfText call StdBattleTextBox - call Function355dd - call BattleCommand62 - call BattleCommand0a - xor a ld [$cfca], a -; Flicker the monster pic unless flying or underground. - ld de, $0115 + ; Flicker the monster pic unless flying or underground. + ld de, ANIM_HIT_CONFUSION ld a, BATTLE_VARS_SUBSTATUS3_OPP call GetBattleVar - and $60 + and 1 << SUBSTATUS_FLYING | 1 << SUBSTATUS_UNDERGROUND call z, PlayFXAnimID ld c, $1 call Function35d1c - call BattleCommand0c - call CantMove jp Function34385 +.not_confused + -.CheckAttract ld a, [EnemySubStatus1] - add a ; check bit 7 - jr nc, .CheckDisabledMove + add a ; bit SUBSTATUS_ATTRACT + jr nc, .not_infatuated -; 'in love with' ld hl, InLoveWithText call StdBattleTextBox - xor a ld [$cfca], a - ld de, ANIM_IN_LOVE call FarPlayBattleAnimation -; 50% chance of infatuation + ; 50% chance of infatuation call BattleRandom cp $80 - jr c, .CheckDisabledMove + jr c, .not_infatuated -; 'infatuation kept it from attacking!' ld hl, InfatuationText call StdBattleTextBox - call CantMove jp Function34385 +.not_infatuated + -.CheckDisabledMove -; We can't disable a move that doesn't exist. + ; We can't disable a move that doesn't exist. ld a, [EnemyDisabledMove] and a - jr z, .CheckParalyzed + jr z, .no_disabled_move -; Are we using the disabled move? + ; Are we using the disabled move? ld hl, CurEnemyMove cp [hl] - jr nz, .CheckParalyzed + jr nz, .no_disabled_move call MoveDisabled call CantMove jp Function34385 +.no_disabled_move + -.CheckParalyzed ld hl, EnemyMonStatus - bit 6, [hl] + bit PAR, [hl] ret z -; 25% chance to be fully paralyzed + ; 25% chance to be fully paralyzed call BattleRandom cp $3f ret nc -; 'fully paralyzed!' ld hl, FullyParalyzedText call StdBattleTextBox - call CantMove ; fallthrough @@ -656,17 +626,16 @@ Function34385: ; 34385 MoveDisabled: ; 3438d -; Make sure any charged moves fail + ; Make sure any charged moves fail ld a, BATTLE_VARS_SUBSTATUS3 call _GetBattleVar - res 4, [hl] + res SUBSTATUS_CHARGED, [hl] ld a, BATTLE_VARS_MOVE call GetBattleVar ld [$d265], a call GetMoveName -; 'disabled!' ld hl, DisabledMoveText jp StdBattleTextBox ; 343a5 @@ -674,7 +643,6 @@ MoveDisabled: ; 3438d HitConfusion: ; 343a5 -; 'hurt itself in its confusion!' ld hl, HurtItselfText call StdBattleTextBox @@ -682,30 +650,25 @@ HitConfusion: ; 343a5 ld [CriticalHit], a call Function355dd - call BattleCommand62 - call BattleCommand0a xor a ld [$cfca], a -; Flicker the monster pic unless flying or underground. - ld de, $0115 + ; Flicker the monster pic unless flying or underground. + ld de, ANIM_HIT_CONFUSION ld a, BATTLE_VARS_SUBSTATUS3_OPP call GetBattleVar - and $60 + and 1 << SUBSTATUS_FLYING | 1 << SUBSTATUS_UNDERGROUND call z, PlayFXAnimID ld hl, Function3df48 call CallBattleCore - ld a, $1 ld [$ffd4], a - ld c, $1 call Function35d7e - jp BattleCommand0c ; 343db @@ -713,7 +676,7 @@ HitConfusion: ; 343a5 BattleCommand02: ; 343db ; checkobedience -; Enemy can't disobey + ; Enemy can't disobey ld a, [hBattleTurn] and a ret nz @@ -721,7 +684,7 @@ BattleCommand02: ; 343db call Function34548 ret nz -; If we've already checked this turn + ; If we've already checked this turn ld a, [AlreadyDisobeyed] and a ret nz @@ -729,7 +692,8 @@ BattleCommand02: ; 343db xor a ld [AlreadyDisobeyed], a -; No obedience in link battles (since no handling exists for enemy) + ; No obedience in link battles + ; (since no handling exists for enemy) ld a, [InLinkBattle] and a ret nz @@ -738,8 +702,8 @@ BattleCommand02: ; 343db and a ret nz -; If the monster's id doesn't match the player's, -; some conditions need to be met. + ; If the monster's id doesn't match the player's, + ; some conditions need to be met. ld a, PartyMon1ID - PartyMon1 call BattlePartyAttr @@ -753,30 +717,30 @@ BattleCommand02: ; 343db .obeylevel -; The maximum obedience level is constrained by owned badges: + ; The maximum obedience level is constrained by owned badges: ld hl, JohtoBadges -; risingbadge + ; risingbadge bit 7, [hl] - ld a, 101 + ld a, MAX_LEVEL + 1 jr nz, .getlevel -; stormbadge + ; stormbadge bit 5, [hl] ld a, 70 jr nz, .getlevel -; fogbadge + ; fogbadge bit 3, [hl] ld a, 50 jr nz, .getlevel -; hivebadge + ; hivebadge bit 1, [hl] ld a, 30 jr nz, .getlevel -; no badges + ; no badges ld a, 10 @@ -852,12 +816,9 @@ BattleCommand02: ; 343db cp b jr nc, .DoNothing -; 'won't obey!' ld hl, WontObeyText call StdBattleTextBox - call HitConfusion - jp Function3450c @@ -865,12 +826,11 @@ BattleCommand02: ; 343db call BattleRandom add a swap a - and 7 + and SLP jr z, .Nap ld [BattleMonStatus], a -; 'began to nap!' ld hl, BeganToNapText jr .Print @@ -879,22 +839,18 @@ BattleCommand02: ; 343db call BattleRandom and 3 -; 'loafing around!' ld hl, LoafingAroundText and a jr z, .Print -; 'won't obey!' ld hl, WontObeyText dec a jr z, .Print -; 'turned away!' ld hl, TurnedAwayText dec a jr z, .Print -; 'ignored orders!' ld hl, IgnoredOrdersText .Print @@ -965,7 +921,7 @@ BattleCommand02: ; 343db .RandomMove call BattleRandom - and 3 + and 3 ; TODO NUM_MOVES cp b jr nc, .RandomMove @@ -1113,7 +1069,7 @@ BattleCommand04: ; 34555 inc de ld a, [de] - bit 3, a + bit SUBSTATUS_TRANSFORMED, a ret nz ld a, [hBattleTurn] @@ -1147,20 +1103,20 @@ BattleCommand04: ; 34555 .asm_345b8 ld c, a - ld b, $0 + ld b, 0 add hl, bc ld a, [hl] and $3f jr z, .asm_345e3 dec [hl] - ld b, $0 + ld b, 0 ret .asm_345c5 ld hl, EnemyMonMoves ld a, [CurEnemyMoveNum] ld c, a - ld b, $0 + ld b, 0 add hl, bc ld a, [hl] cp MIMIC @@ -1467,12 +1423,12 @@ BattleCommand07: ; 346d2 cp $ff jr z, .end -; foresight + ; foresight cp $fe jr nz, .asm_34757 ld a, BATTLE_VARS_SUBSTATUS1_OPP call GetBattleVar - bit 3, a + bit SUBSTATUS_IDENTIFIED, a jr nz, .end jr .asm_34743 @@ -3448,16 +3404,14 @@ PlayerAttackDamage: ; 352e2 cp SPECIAL jr nc, .special - -; Physical +.physical ld hl, EnemyMonDefense ld a, [hli] ld b, a ld c, [hl] -; Reflect ld a, [EnemyScreens] - bit 4, a + bit SCREENS_REFLECT, a jr z, .physicalcrit sla c rl b @@ -3474,16 +3428,14 @@ PlayerAttackDamage: ; 352e2 ld hl, PlayerStats jr .thickclub - .special ld hl, EnemyMonSpclDef ld a, [hli] ld b, a ld c, [hl] -; Light Screen ld a, [EnemyScreens] - bit 3, a + bit SCREENS_LIGHT_SCREEN, a jr z, .specialcrit sla c rl b @@ -3709,16 +3661,14 @@ EnemyAttackDamage: ; 353f6 cp SPECIAL jr nc, .Special - -; Physical +.physical ld hl, BattleMonDefense ld a, [hli] ld b, a ld c, [hl] -; Reflect ld a, [PlayerScreens] - bit 4, a + bit SCREENS_REFLECT, a jr z, .physicalcrit sla c rl b @@ -3735,16 +3685,14 @@ EnemyAttackDamage: ; 353f6 ld hl, EnemyStats jr .thickclub - .Special ld hl, BattleMonSpclDef ld a, [hli] ld b, a ld c, [hl] -; Light Screen ld a, [PlayerScreens] - bit 3, a + bit SCREENS_LIGHT_SCREEN, a jr z, .specialcrit sla c rl b @@ -3788,14 +3736,14 @@ BattleCommanda1: ; 35461 jp nz, .asm_354ef ld a, [PlayerSubStatus3] bit 2, a - jr nz, .asm_35482 ; 3546f $11 - ld c, $14 + jr nz, .asm_35482 + ld c, 20 call DelayFrames xor a ld [PlayerRolloutCount], a ld [DefaultFlypoint], a ld [$c72d], a - jr .asm_3548d ; 35480 $b + jr .asm_3548d .asm_35482 ld a, [PlayerRolloutCount] ld b, a @@ -3816,7 +3764,7 @@ BattleCommanda1: ; 35461 ld a, [CurBattleMon] cp [hl] ld hl, BattleMonStatus - jr z, .asm_354b2 ; 354ab $5 + jr z, .asm_354b2 ld a, $20 call Function355bd .asm_354b2 @@ -3883,7 +3831,7 @@ BattleCommanda1: ; 35461 ld a, [DefaultFlypoint] ld c, a - ld b, $0 + ld b, 0 ld hl, OTPartySpecies add hl, bc ld a, [hl] @@ -3894,7 +3842,7 @@ BattleCommanda1: ; 35461 .asm_35532 ld a, [DefaultFlypoint] ld hl, OTPartyMonNicknames - ld bc, $000b + ld bc, NAME_LENGTH call AddNTimes ld de, StringBuffer1 call CopyBytes @@ -4018,7 +3966,7 @@ Function355dd: ; 355dd ld b, a ld c, [hl] ld a, [de] - bit 4, a + bit SCREENS_REFLECT, a jr z, .asm_35604 sla c @@ -4078,7 +4026,6 @@ BattleCommand62: ; 35612 ld c, 1 .asm_35631 - xor a ld hl, hDividend ld [hli], a @@ -4125,7 +4072,6 @@ BattleCommand62: ; 35612 ld b, $4 call Divide - ; Item boosts call GetUserItem @@ -4537,13 +4483,13 @@ BattleCommand41: ; 35864 ld a, BATTLE_VARS_LAST_MOVE_OPP call GetBattleVar and a - jp z, Function35923 + jp z, .asm_35923 cp STRUGGLE - jp z, Function35923 + jp z, .asm_35923 cp ENCORE - jp z, Function35923 + jp z, .asm_35923 cp MIRROR_MOVE - jp z, Function35923 + jp z, .asm_35923 ld b, a .asm_3588e @@ -4555,14 +4501,14 @@ BattleCommand41: ; 35864 add hl, bc ld a, [hl] and $3f - jp z, Function35923 + jp z, .asm_35923 ld a, [AttackMissed] and a - jp nz, Function35923 + jp nz, .asm_35923 ld a, BATTLE_VARS_SUBSTATUS5_OPP call _GetBattleVar bit 4, [hl] - jp nz, Function35923 + jp nz, .asm_35923 set 4, [hl] call BattleRandom and $3 @@ -4575,10 +4521,11 @@ BattleCommand41: ; 35864 ld a, [hBattleTurn] and a jr z, .asm_358ef + push hl ld a, [LastPlayerMove] ld b, a - ld c, $0 + ld c, 0 ld hl, BattleMonMoves .asm_358cc ld a, [hli] @@ -4586,15 +4533,16 @@ BattleCommand41: ; 35864 jr z, .asm_358dd inc c ld a, c - cp $4 + cp NUM_MOVES jr c, .asm_358cc pop hl res 4, [hl] xor a ld [de], a - jr Function35923 + jr .asm_35923 .asm_358dd pop hl + ld a, c ld [CurMoveNum], a ld a, b @@ -4603,11 +4551,12 @@ BattleCommand41: ; 35864 ld de, wPlayerMoveStruct call GetMoveData jr .asm_3591a + .asm_358ef push hl ld a, [LastEnemyMove] ld b, a - ld c, $0 + ld c, 0 ld hl, EnemyMonMoves .asm_358f9 ld a, [hli] @@ -4615,15 +4564,16 @@ BattleCommand41: ; 35864 jr z, .asm_3590a inc c ld a, c - cp $4 + cp NUM_MOVES jr c, .asm_358f9 pop hl res 4, [hl] xor a ld [de], a - jr Function35923 + jr .asm_35923 .asm_3590a pop hl + ld a, c ld [CurEnemyMoveNum], a ld a, b @@ -4631,15 +4581,13 @@ BattleCommand41: ; 35864 dec a ld de, wEnemyMoveStruct call GetMoveData + .asm_3591a call AnimateCurrentMove - ld hl, GotAnEncoreText jp StdBattleTextBox -; 35923 - -Function35923: ; 35923 +.asm_35923 jp PrintDidntAffect2 ; 35926 @@ -4766,17 +4714,17 @@ BattleCommand44: ; 359e6 ld a, [AttackMissed] and a - jr nz, .asm_35a50 ; 359ea $64 + jr nz, .asm_35a50 ld hl, BattleMonType1 ld a, [hBattleTurn] and a - jr z, .asm_359f7 ; 359f2 $3 + jr z, .asm_359f7 ld hl, EnemyMonType1 .asm_359f7 ld a, BATTLE_VARS_LAST_COUNTER_MOVE_OPP call GetBattleVar and a - jr z, .asm_35a50 ; 359fd $51 + jr z, .asm_35a50 push hl dec a ld hl, Moves + MOVE_TYPE @@ -4784,19 +4732,19 @@ BattleCommand44: ; 359e6 ld d, a pop hl cp CURSE_T - jr z, .asm_35a50 ; 35a0b $43 + jr z, .asm_35a50 call AnimateCurrentMove - call SwitchTurn + .asm_35a13 call BattleRandom and $1f - cp $a - jr c, .asm_35a24 ; 35a1a $8 - cp $14 - jr c, .asm_35a13 ; 35a1e $f3 - cp $1c - jr nc, .asm_35a13 ; 35a22 $ef + cp UNUSED_TYPES + jr c, .asm_35a24 + cp UNUSED_TYPES_END + jr c, .asm_35a13 + cp TYPES_END + jr nc, .asm_35a13 .asm_35a24 ld [hli], a ld [hld], a @@ -4814,7 +4762,7 @@ BattleCommand44: ; 359e6 pop hl ld a, [$d265] cp $a - jr nc, .asm_35a13 ; 35a3c $d5 + jr nc, .asm_35a13 call SwitchTurn ld a, [hl] @@ -4823,6 +4771,7 @@ BattleCommand44: ; 359e6 call Predef ld hl, TransformedTypeText jp StdBattleTextBox + .asm_35a50 jp Function37354 ; 35a53 @@ -4833,9 +4782,11 @@ BattleCommand45: ; 35a53 call CheckSubstituteOpp jr nz, .asm_35a6e + ld a, [AttackMissed] and a jr nz, .asm_35a6e + ld a, BATTLE_VARS_SUBSTATUS5_OPP call _GetBattleVar set SUBSTATUS_LOCK_ON, [hl] @@ -4854,26 +4805,30 @@ BattleCommand46: ; 35a74 ; sketch call Function372d8 + ld a, [InLinkBattle] and a - jr z, .asm_35a83 ; 35a7b $6 + jr z, .asm_35a83 call AnimateFailedMove jp PrintNothingHappened .asm_35a83 + call CheckSubstituteOpp jp nz, .asm_35b10 + ld a, BATTLE_VARS_SUBSTATUS5_OPP call _GetBattleVar - bit 3, [hl] + bit SUBSTATUS_TRANSFORMED, [hl] jp nz, .asm_35b10 - ld a, $2 + + ld a, PartyMon1Moves - PartyMon1 call UserPartyAttr ld d, h ld e, l ld hl, BattleMonMoves ld a, [hBattleTurn] and a - jr z, .asm_35aa5 ; 35aa0 $3 + jr z, .asm_35aa5 ld hl, EnemyMonMoves .asm_35aa5 ld a, BATTLE_VARS_LAST_COUNTER_MOVE_OPP @@ -4881,23 +4836,23 @@ BattleCommand46: ; 35a74 ld [$d265], a ld b, a and a - jr z, .asm_35b10 ; 35aaf $5f + jr z, .asm_35b10 cp STRUGGLE - jr z, .asm_35b10 ; 35ab3 $5b - ld c, $4 + jr z, .asm_35b10 + ld c, NUM_MOVES .asm_35ab7 ld a, [hli] cp b - jr z, .asm_35b10 ; 35ab9 $55 + jr z, .asm_35b10 dec c - jr nz, .asm_35ab7 ; 35abc $f9 + jr nz, .asm_35ab7 dec hl - ld c, $4 + ld c, NUM_MOVES .asm_35ac1 dec c ld a, [hld] cp SKETCH - jr nz, .asm_35ac1 ; 35ac5 $fa + jr nz, .asm_35ac1 inc hl ld a, b ld [hl], a @@ -4913,26 +4868,26 @@ BattleCommand46: ; 35a74 pop bc ld a, [hBattleTurn] and a - jr z, .asm_35af6 ; 35add $17 + jr z, .asm_35af6 ld a, [IsInBattle] dec a - jr nz, .asm_35af6 ; 35ae3 $11 + jr nz, .asm_35af6 ld a, [hl] push bc ld hl, $c739 - ld b, $0 + ld b, 0 add hl, bc ld [hl], a ld hl, $c735 add hl, bc pop bc ld [hl], b - jr .asm_35b04 ; 35af4 $e + jr .asm_35b04 .asm_35af6 ld a, [hl] push af ld l, c - ld h, $0 + ld h, 0 add hl, de ld a, b ld [hl], a @@ -4955,9 +4910,8 @@ BattleCommand46: ; 35a74 BattleCommand47: ; 35b16 ; defrostopponent - -; If the opponent isn't frozen, raise Attack one stage. -; If the opponent is frozen, thaw them and raise Accuracy two stages. +; Thaw the opponent if frozen, and +; raise the user's Attack one stage. call AnimateCurrentMove @@ -4965,14 +4919,13 @@ BattleCommand47: ; 35b16 call _GetBattleVar call Defrost -; Sharply raise accuracy ld a, BATTLE_VARS_MOVE_EFFECT call _GetBattleVar ld a, [hl] push hl push af - ld a, $a ; meditate, sharpen + ld a, EFFECT_ATTACK_UP ld [hl], a call BattleCommand1c @@ -4989,13 +4942,13 @@ BattleCommand48: ; 35b33 call Function372d8 ld a, [AttackMissed] and a - jr nz, .asm_35ba3 ; 35b3a $67 + jr nz, .asm_35ba3 ld a, [hBattleTurn] and a ld hl, BattleMonMoves + 1 ld a, [DisabledMove] ld d, a - jr z, .asm_35b4f ; 35b46 $7 + jr z, .asm_35b4f ld hl, EnemyMonMoves + 1 ld a, [EnemyDisabledMove] ld d, a @@ -5003,12 +4956,12 @@ BattleCommand48: ; 35b33 ld a, BATTLE_VARS_STATUS call GetBattleVar and SLP - jr z, .asm_35ba3 ; 35b56 $4b + jr z, .asm_35ba3 ld a, [hl] and a - jr z, .asm_35ba3 ; 35b5a $47 + jr z, .asm_35ba3 call .asm_35ba9 - jr c, .asm_35ba3 ; 35b5f $42 + jr c, .asm_35ba3 dec hl .asm_35b62 push hl @@ -5020,23 +4973,23 @@ BattleCommand48: ; 35b33 ld a, [hl] pop hl and a - jr z, .asm_35b62 ; 35b6f $f1 + jr z, .asm_35b62 ld e, a ld a, BATTLE_VARS_MOVE_ANIM call GetBattleVar cp e - jr z, .asm_35b62 ; 35b78 $e8 + jr z, .asm_35b62 ld a, e cp d - jr z, .asm_35b62 ; 35b7c $e4 + jr z, .asm_35b62 call .asm_35bdf - jr z, .asm_35b62 ; 35b81 $df + jr z, .asm_35b62 ld a, BATTLE_VARS_MOVE call _GetBattleVar ld a, e ld [hl], a call Function34548 - jr nz, .asm_35b9a ; 35b8d $b + jr nz, .asm_35b9a ld a, [$c689] push af call BattleCommand0a @@ -5150,22 +5103,22 @@ BattleCommand4a: ; 35c0f ld hl, EnemyMonMoves ld a, [hBattleTurn] and a - jr z, .asm_35c24 ; 35c1f $3 + jr z, .asm_35c24 ld hl, BattleMonMoves .asm_35c24 ld a, BATTLE_VARS_LAST_COUNTER_MOVE_OPP call GetBattleVar and a - jr z, .asm_35c91 ; 35c2a $65 + jr z, .asm_35c91 cp STRUGGLE - jr z, .asm_35c91 ; 35c2e $61 + jr z, .asm_35c91 ld b, a ld c, $ff .asm_35c33 inc c ld a, [hli] cp b - jr nz, .asm_35c33 ; 35c36 $fb + jr nz, .asm_35c33 ld [$d265], a dec hl ld b, $0 @@ -5175,7 +5128,7 @@ BattleCommand4a: ; 35c0f pop bc ld a, [hl] and $3f - jr z, .asm_35c91 ; 35c46 $49 + jr z, .asm_35c91 push bc call GetMoveName call BattleRandom @@ -5186,7 +5139,7 @@ BattleCommand4a: ; 35c0f ld a, [hl] and $3f cp b - jr nc, .asm_35c5b ; 35c58 $1 + jr nc, .asm_35c5b ld b, a .asm_35c5b ld a, [hl] @@ -5202,14 +5155,14 @@ BattleCommand4a: ; 35c0f ld e, a ld a, BATTLE_VARS_SUBSTATUS5_OPP call GetBattleVar - bit 3, a - jr nz, .asm_35c82 ; 35c70 $10 + bit SUBSTATUS_TRANSFORMED, a + jr nz, .asm_35c82 ld a, [hBattleTurn] and a - jr nz, .asm_35c81 ; 35c75 $a + jr nz, .asm_35c81 ld a, [IsInBattle] dec a - jr nz, .asm_35c81 ; 35c7b $4 + jr nz, .asm_35c81 ld hl, $c739 add hl, bc .asm_35c81 @@ -5233,7 +5186,7 @@ BattleCommand4b: ; 35c94 ld hl, EnemyMonHP ld a, [hBattleTurn] and a - jr z, .asm_35c9f ; 35c9a $3 + jr z, .asm_35c9f ld hl, BattleMonHP .asm_35c9f ld de, CurDamage @@ -5243,7 +5196,7 @@ BattleCommand4b: ; 35c94 call StringCmp pop de pop hl - jr c, .asm_35cc7 ; 35cab $1a + jr c, .asm_35cc7 ld a, [hli] ld [de], a inc de @@ -5251,7 +5204,7 @@ BattleCommand4b: ; 35c94 dec a ld [de], a inc a - jr nz, .asm_35cba ; 35cb4 $4 + jr nz, .asm_35cba dec de ld a, [de] dec a @@ -5259,7 +5212,7 @@ BattleCommand4b: ; 35c94 .asm_35cba ld a, [CriticalHit] cp $2 - jr nz, .asm_35cc5 ; 35cbf $4 + jr nz, .asm_35cc5 xor a ld [CriticalHit], a .asm_35cc5 @@ -5280,7 +5233,7 @@ BattleCommand4c: ; 35cc9 ld de, PartyMon1Status ld a, [hBattleTurn] and a - jr z, .asm_35cdb ; 35cd6 $3 + jr z, .asm_35cdb ld de, OTPartyMon1Status .asm_35cdb ld a, BATTLE_VARS_STATUS @@ -5311,10 +5264,9 @@ BattleCommand4c: ; 35cc9 FarPlayBattleAnimation: ; 35d00 ; play animation de -; battle animations disabled? ld a, BATTLE_VARS_SUBSTATUS3 call GetBattleVar - and 1 << 6 | 1 << 5 + and 1 << SUBSTATUS_FLYING | 1 << SUBSTATUS_UNDERGROUND ret nz ; fallthrough @@ -5540,8 +5492,9 @@ BattleCommand14: ; 35e5c call GetOpponentItem ld a, b - cp $17 - jr nz, .asm_35e70 ; 35e62 $c + cp HELD_PREVENT_SLEEP + jr nz, .asm_35e70 + ld a, [hl] ld [$d265], a call GetItemName @@ -5554,7 +5507,7 @@ BattleCommand14: ; 35e5c ld d, h ld e, l ld a, [de] - and 7 + and SLP ld hl, AlreadyAsleepText jr nz, .asm_35ec6 @@ -5608,24 +5561,23 @@ BattleCommand14: ; 35e5c Function35ece: ; 35ece -; Enemy turn + ; Enemy turn ld a, [hBattleTurn] and a jr z, .asm_35eec -; Not in link battle + ; Not in link battle ld a, [InLinkBattle] and a jr nz, .asm_35eec - ld a, [$cfc0] and a jr nz, .asm_35eec -; Not locked-on by the enemy + ; Not locked-on by the enemy ld a, [PlayerSubStatus5] - bit 5, a + bit SUBSTATUS_LOCK_ON, a jr nz, .asm_35eec call BattleRandom @@ -5654,7 +5606,7 @@ BattleCommand13: ; 35eee ret z call GetOpponentItem ld a, b - cp $14 + cp HELD_PREVENT_POISON ret z ld a, [EffectFailed] and a @@ -5662,7 +5614,7 @@ BattleCommand13: ; 35eee call Function37962 ret nz call Function35ff5 - ld de, $0106 + ld de, ANIM_PSN call Function37e54 call RefreshBattleHuds @@ -5681,60 +5633,64 @@ BattleCommand2f: ; 35f2c ld a, [TypeModifier] and $7f jp z, .asm_35fb8 + call Function35fe1 jp z, .asm_35fb8 + ld a, BATTLE_VARS_STATUS_OPP call GetBattleVar ld b, a ld hl, AlreadyPoisonedText - and $8 + and 1 << PSN jp nz, .asm_35fb8 + call GetOpponentItem ld a, b - cp $14 - jr nz, .asm_35f5f ; 35f51 $c + cp HELD_PREVENT_POISON + jr nz, .asm_35f5f ld a, [hl] ld [$d265], a call GetItemName ld hl, ProtectedByText - jr .asm_35fb8 ; 35f5d $59 + jr .asm_35fb8 + .asm_35f5f ld hl, DidntAffect1Text ld a, BATTLE_VARS_STATUS_OPP call GetBattleVar and a - jr nz, .asm_35fb8 ; 35f68 $4e + jr nz, .asm_35fb8 ld a, [hBattleTurn] and a - jr z, .asm_35f89 ; 35f6d $1a + jr z, .asm_35f89 ld a, [InLinkBattle] and a - jr nz, .asm_35f89 ; 35f73 $14 + jr nz, .asm_35f89 ld a, [$cfc0] and a - jr nz, .asm_35f89 ; 35f79 $e + jr nz, .asm_35f89 ld a, [PlayerSubStatus5] - bit 5, a - jr nz, .asm_35f89 ; 35f80 $7 + bit SUBSTATUS_LOCK_ON, a + jr nz, .asm_35f89 call BattleRandom cp $40 - jr c, .asm_35fb8 ; 35f87 $2f + jr c, .asm_35fb8 .asm_35f89 call CheckSubstituteOpp - jr nz, .asm_35fb8 ; 35f8c $2a + jr nz, .asm_35fb8 ld a, [AttackMissed] and a - jr nz, .asm_35fb8 ; 35f92 $24 + jr nz, .asm_35fb8 call Function35fc9 - jr z, .asm_35fa4 ; 35f97 $b + jr z, .asm_35fa4 call Function35fc0 ld hl, WasPoisonedText call StdBattleTextBox - jr .asm_35fb1 ; 35fa2 $d + jr .asm_35fb1 .asm_35fa4 - set 0, [hl] + set SUBSTATUS_TOXIC, [hl] xor a ld [de], a call Function35fc0 @@ -5919,7 +5875,7 @@ BattleCommand17: ; 3608c ret z call GetOpponentItem ld a, b - cp $15 + cp HELD_PREVENT_BURN ret z ld a, [EffectFailed] and a @@ -5928,11 +5884,11 @@ BattleCommand17: ; 3608c ret nz ld a, BATTLE_VARS_STATUS_OPP call _GetBattleVar - set 4, [hl] + set BRN, [hl] call UpdateOpponentInParty ld hl, Function3ec76 call CallBattleCore - ld de, $0105 + ld de, ANIM_BRN call Function37e54 call RefreshBattleHuds @@ -5946,7 +5902,7 @@ BattleCommand17: ; 3608c Defrost: ; 360dd ld a, [hl] - and $20 + and 1 << FRZ ret z xor a @@ -5986,13 +5942,13 @@ BattleCommand18: ; 36102 and $7f ret z ld a, [Weather] - cp $2 + cp WEATHER_SUN ret z call Function36e5b ret z call GetOpponentItem ld a, b - cp $16 + cp HELD_PREVENT_FREEZE ret z ld a, [EffectFailed] and a @@ -6001,9 +5957,9 @@ BattleCommand18: ; 36102 ret nz ld a, BATTLE_VARS_STATUS_OPP call _GetBattleVar - set 5, [hl] + set FRZ, [hl] call UpdateOpponentInParty - ld de, $0108 + ld de, ANIM_FRZ call Function37e54 call RefreshBattleHuds @@ -6017,7 +5973,7 @@ BattleCommand18: ; 36102 ld hl, $c740 ld a, [hBattleTurn] and a - jr z, .asm_36162 ; 3615d $3 + jr z, .asm_36162 ld hl, $c73f .asm_36162 ld [hl], $1 @@ -6041,7 +5997,7 @@ BattleCommand19: ; 36165 ret z call GetOpponentItem ld a, b - cp $18 + cp HELD_PREVENT_PARALYZE ret z ld a, [EffectFailed] and a @@ -6050,11 +6006,11 @@ BattleCommand19: ; 36165 ret nz ld a, BATTLE_VARS_STATUS_OPP call _GetBattleVar - set 6, [hl] + set PAR, [hl] call UpdateOpponentInParty ld hl, Function3ec39 call CallBattleCore - ld de, $0109 + ld de, ANIM_PAR call Function37e54 call RefreshBattleHuds call PrintParalyze @@ -6147,7 +6103,7 @@ Function361ef: ; 361ef ld a, [LoweredStat] and $f ld c, a - ld b, $0 + ld b, 0 add hl, bc ld b, [hl] inc b @@ -6178,7 +6134,7 @@ Function361ef: ; 361ef .asm_36243 push bc sla c - ld b, $0 + ld b, 0 add hl, bc ld a, c add e @@ -6188,10 +6144,10 @@ Function361ef: ; 361ef .asm_3624f pop bc ld a, [hld] - sub $e7 + sub 999 % $100 jr nz, .asm_3625b ; 0x36253 $6 ld a, [hl] - sbc $3 + sbc 999 / $100 jp z, Function3626e .asm_3625b ld a, [hBattleTurn] @@ -7530,7 +7486,7 @@ BattleCommand24: ; 369b6 call BattleRandom and $3 cp $2 - jr c, .asm_36a39 ; 36a32 $5 + jr c, .asm_36a39 call BattleRandom and $3 .asm_36a39 @@ -7539,16 +7495,16 @@ BattleCommand24: ; 369b6 ld [de], a inc a ld [bc], a - jr .asm_36a6b ; 36a3d $2c + jr .asm_36a6b .asm_36a3f ld a, $1 - jr .asm_36a3a ; 36a41 $f7 + jr .asm_36a3a .asm_36a43 ld a, [de] dec a ld [de], a - jr nz, .asm_36a6b ; 36a46 $23 + jr nz, .asm_36a6b .asm_36a48 ld a, BATTLE_VARS_SUBSTATUS3 call _GetBattleVar @@ -7583,7 +7539,7 @@ BattleCommand24: ; 369b6 .asm_36a73 ld a, [hld] cp $5 ; critical - jr nz, .asm_36a73 ; 36a76 $fb + jr nz, .asm_36a73 inc hl ld a, h ld [BattleScriptBufferLoc + 1], a @@ -7597,14 +7553,18 @@ BattleCommand94: ; 36a82 ld a, [AttackMissed] and a ret nz + call CheckSubstituteOpp - jr nz, .asm_36a9a ; 36a8a $e + jr nz, .asm_36a9a + ld a, BATTLE_VARS_STATUS_OPP call GetBattleVar - and $27 - jr nz, .asm_36a9a ; 36a93 $5 + and 1 << FRZ | SLP + jr nz, .asm_36a9a + call Function36abf - jr z, Function36ab5 ; 36a98 $1b + jr z, Function36ab5 + .asm_36a9a ld a, 1 ld [AttackMissed], a @@ -7615,12 +7575,15 @@ BattleCommand94: ; 36a82 BattleCommand25: ; 36aa0 call CheckSubstituteOpp ret nz + ld a, BATTLE_VARS_STATUS_OPP call GetBattleVar - and $27 + and 1 << FRZ | SLP ret nz + call Function36abf ret nz + ld a, [EffectFailed] and a ret nz @@ -7632,7 +7595,7 @@ BattleCommand25: ; 36aa0 Function36ab5: ; 36ab5 ld a, BATTLE_VARS_SUBSTATUS3_OPP call _GetBattleVar - set 3, [hl] + set SUBSTATUS_FLINCHED, [hl] jp EndRechargeOpp ; 36abf @@ -7657,7 +7620,7 @@ BattleCommand4d: ; 36ac9 call GetUserItem ld a, b - cp HELD_TRADE_EVOLVE ; king's rock + cp HELD_TRADE_EVOLVE ; Only King's Rock has this effect ret nz call CheckSubstituteOpp @@ -7673,7 +7636,7 @@ BattleCommand4d: ; 36ac9 call EndRechargeOpp ld a, BATTLE_VARS_SUBSTATUS3_OPP call _GetBattleVar - set 3, [hl] + set SUBSTATUS_FLINCHED, [hl] ret ; 36af3 @@ -7684,13 +7647,13 @@ BattleCommand26: ; 36af3 call ResetDamage ld a, [TypeModifier] and $7f - jr z, .asm_36b2f ; 36afb $32 + jr z, .asm_36b2f ld hl, EnemyMonLevel ld de, BattleMonLevel ld bc, wPlayerMoveStruct + MOVE_ACC ld a, [hBattleTurn] and a - jr z, .asm_36b12 ; 36b09 $7 + jr z, .asm_36b12 push hl ld h, d ld l, e @@ -7699,12 +7662,12 @@ BattleCommand26: ; 36af3 .asm_36b12 ld a, [de] sub [hl] - jr c, .asm_36b2f ; 36b14 $19 + jr c, .asm_36b2f add a ld e, a ld a, [bc] add e - jr nc, .asm_36b1e ; 36b1a $2 + jr nc, .asm_36b1e ld a, $ff .asm_36b1e ld [bc], a @@ -7728,15 +7691,13 @@ BattleCommand26: ; 36af3 BattleCommand3a: ; 36b3a ; checkcharge -; charged? ld a, BATTLE_VARS_SUBSTATUS3 call _GetBattleVar - bit 4, [hl] + bit SUBSTATUS_CHARGED, [hl] ret z -; go to town - res 4, [hl] - res 5, [hl] - res 6, [hl] + res SUBSTATUS_CHARGED, [hl] + res SUBSTATUS_UNDERGROUND, [hl] + res SUBSTATUS_FLYING, [hl] ld b, $39 ; charge jp SkipToBattleCommand ; 36b4d @@ -7748,7 +7709,7 @@ BattleCommand39: ; 36b4d call BattleCommand38 ld a, BATTLE_VARS_STATUS call GetBattleVar - and $7 + and SLP jr z, .asm_36b65 call BattleCommandaa @@ -7759,7 +7720,7 @@ BattleCommand39: ; 36b4d .asm_36b65 ld a, BATTLE_VARS_SUBSTATUS3 call _GetBattleVar - set 4, [hl] + set SUBSTATUS_CHARGED, [hl] ld hl, IgnoredOrders2Text ld a, [AlreadyDisobeyed] @@ -7774,12 +7735,12 @@ BattleCommand39: ; 36b4d call Function37e36 ld a, BATTLE_VARS_MOVE_ANIM call GetBattleVar - cp $13 - jr z, .asm_36b96 ; 36b8b $9 - cp $5b - jr z, .asm_36b96 ; 36b8f $5 + cp FLY + jr z, .asm_36b96 + cp DIG + jr z, .asm_36b96 call BattleCommand0c - jr .asm_36b99 ; 36b94 $3 + jr .asm_36b99 .asm_36b96 call Function37ec0 .asm_36b99 @@ -7788,19 +7749,19 @@ BattleCommand39: ; 36b4d ld a, BATTLE_VARS_MOVE_ANIM call GetBattleVar ld b, a - cp $13 - jr z, .asm_36bb0 ; 36ba6 $8 - cp $5b - jr nz, .asm_36bb2 ; 36baa $6 - set 5, [hl] - jr .asm_36bb2 ; 36bae $2 + cp FLY + jr z, .asm_36bb0 + cp DIG + jr nz, .asm_36bb2 + set SUBSTATUS_UNDERGROUND, [hl] + jr .asm_36bb2 .asm_36bb0 - set 6, [hl] + set SUBSTATUS_FLYING, [hl] .asm_36bb2 call Function34548 - jr nz, .asm_36bc3 ; 36bb5 $c + jr nz, .asm_36bc3 ld a, BATTLE_VARS_LAST_COUNTER_MOVE call _GetBattleVar ld [hl], b @@ -7811,7 +7772,7 @@ BattleCommand39: ; 36b4d .asm_36bc3 call ResetDamage - ld hl, .text_36bdb + ld hl, .UsedText call BattleTextBox ld a, BATTLE_VARS_MOVE_EFFECT @@ -7821,37 +7782,36 @@ BattleCommand39: ; 36b4d jp z, SkipToBattleCommand jp EndMoveEffect -.text_36bdb -; [user] - TX_FAR UnknownText_0x1c0d0e +.UsedText + TX_FAR UnknownText_0x1c0d0e ; "[USER]" start_asm ld a, BATTLE_VARS_MOVE_ANIM call GetBattleVar cp RAZOR_WIND ld hl, .RazorWind - jr z, .asm_36c0d + jr z, .done cp SOLARBEAM ld hl, .Solarbeam - jr z, .asm_36c0d + jr z, .done cp SKULL_BASH ld hl, .SkullBash - jr z, .asm_36c0d + jr z, .done cp SKY_ATTACK ld hl, .SkyAttack - jr z, .asm_36c0d + jr z, .done cp FLY ld hl, .Fly - jr z, .asm_36c0d + jr z, .done cp DIG ld hl, .Dig -.asm_36c0d +.done ret .RazorWind @@ -7912,7 +7872,7 @@ BattleCommand3b: ; 36c2d ret nz ld a, BATTLE_VARS_SUBSTATUS4_OPP call GetBattleVar - bit 4, a + bit SUBSTATUS_SUBSTITUTE, a ret nz call BattleRandom and 3 @@ -7954,9 +7914,9 @@ BattleCommand28: ; 36c7e ld a, BATTLE_VARS_SUBSTATUS4 call _GetBattleVar - bit 1, [hl] - jr nz, .asm_36c92 ; 36c85 $b - set 1, [hl] + bit SUBSTATUS_MIST, [hl] + jr nz, .asm_36c92 + set SUBSTATUS_MIST, [hl] call AnimateCurrentMove ld hl, MistText jp StdBattleTextBox @@ -7971,9 +7931,9 @@ BattleCommand29: ; 36c98 ld a, BATTLE_VARS_SUBSTATUS4 call _GetBattleVar - bit 2, [hl] - jr nz, .asm_36cac ; 36c9f $b - set 2, [hl] + bit SUBSTATUS_FOCUS_ENERGY, [hl] + jr nz, .asm_36cac + set SUBSTATUS_FOCUS_ENERGY, [hl] call AnimateCurrentMove ld hl, GettingPumpedText jp StdBattleTextBox @@ -7989,7 +7949,7 @@ BattleCommand27: ; 36cb2 ld hl, BattleMonMaxHP ld a, [hBattleTurn] and a - jr z, .asm_36cbd ; 36cb8 $3 + jr z, .asm_36cbd ld hl, EnemyMonMaxHP .asm_36cbd ld a, BATTLE_VARS_MOVE_ANIM @@ -8005,7 +7965,7 @@ BattleCommand27: ; 36cb2 rr c ld a, b or c - jr nz, .asm_36cd8 ; 36cd5 $1 + jr nz, .asm_36cd8 inc c .asm_36cd8 ld a, [hli] @@ -8024,7 +7984,7 @@ BattleCommand27: ; 36cb2 sbc b ld [hl], a ld [$d1ef], a - jr nc, .asm_36cfe ; 36cf4 $8 + jr nc, .asm_36cfe xor a ld [hli], a ld [hl], a @@ -8036,7 +7996,7 @@ BattleCommand27: ; 36cb2 ld a, [hBattleTurn] and a ld a, $1 - jr z, .asm_36d0c ; 36d06 $4 + jr z, .asm_36d0c hlcoord 2, 2 xor a .asm_36d0c @@ -8054,7 +8014,7 @@ BattleCommand2b: ; 36d1d call GetOpponentItem ld a, b - cp $19 + cp HELD_PREVENT_CONFUSE ret z ld a, [EffectFailed] and a @@ -8065,7 +8025,7 @@ BattleCommand2b: ; 36d1d ret nz ld a, BATTLE_VARS_SUBSTATUS3_OPP call _GetBattleVar - bit 7, [hl] + bit SUBSTATUS_CONFUSED, [hl] ret nz jr Function36d70 @@ -8075,7 +8035,7 @@ BattleCommand2a: ; 36d3b call GetOpponentItem ld a, b - cp $19 + cp HELD_PREVENT_CONFUSE jr nz, .asm_36d53 ld a, [hl] ld [$d265], a @@ -8087,7 +8047,7 @@ BattleCommand2a: ; 36d3b .asm_36d53 ld a, BATTLE_VARS_SUBSTATUS3_OPP call _GetBattleVar - bit 7, [hl] + bit SUBSTATUS_CONFUSED, [hl] jr z, .asm_36d65 call AnimateFailedMove ld hl, AlreadyConfusedText @@ -8112,7 +8072,7 @@ Function36d70: ; 36d70 ld bc, PlayerConfuseCount .asm_36d7b - set 7, [hl] + set SUBSTATUS_CONFUSED, [hl] call BattleRandom and 3 inc a @@ -8130,7 +8090,7 @@ Function36d70: ; 36d70 call AnimateCurrentMove .asm_36d99 - ld de, $0103 + ld de, ANIM_CONFUSED call Function37e54 ld hl, BecameConfusedText @@ -8138,9 +8098,9 @@ Function36d70: ; 36d70 call GetOpponentItem ld a, b - cp $f + cp HELD_HEAL_STATUS jr z, .asm_36db0 - cp $10 + cp HELD_HEAL_CONFUSION ret nz .asm_36db0 ld hl, Function3de51 @@ -8165,55 +8125,56 @@ BattleCommand30: ; 36dc7 ld a, BATTLE_VARS_STATUS_OPP call GetBattleVar - bit 6, a - jr nz, .asm_36e49 ; 36dce $79 + bit PAR, a + jr nz, .asm_36e49 ld a, [TypeModifier] and $7f - jr z, .asm_36e55 ; 36dd5 $7e + jr z, .asm_36e55 call GetOpponentItem ld a, b - cp $18 - jr nz, .asm_36def ; 36ddd $10 + cp HELD_PREVENT_PARALYZE + jr nz, .asm_36def ld a, [hl] ld [$d265], a call GetItemName call AnimateFailedMove ld hl, ProtectedByText jp StdBattleTextBox + .asm_36def ld a, [hBattleTurn] and a - jr z, .asm_36e0e ; 36df2 $1a + jr z, .asm_36e0e ld a, [InLinkBattle] and a - jr nz, .asm_36e0e ; 36df8 $14 + jr nz, .asm_36e0e ld a, [$cfc0] and a - jr nz, .asm_36e0e ; 36dfe $e + jr nz, .asm_36e0e ld a, [PlayerSubStatus5] - bit 5, a - jr nz, .asm_36e0e ; 36e05 $7 + bit SUBSTATUS_LOCK_ON, a + jr nz, .asm_36e0e call BattleRandom cp $40 - jr c, .asm_36e52 ; 36e0c $44 + jr c, .asm_36e52 .asm_36e0e ld a, BATTLE_VARS_STATUS_OPP call _GetBattleVar and a - jr nz, .asm_36e52 ; 36e14 $3c + jr nz, .asm_36e52 ld a, [AttackMissed] and a - jr nz, .asm_36e52 ; 36e1a $36 + jr nz, .asm_36e52 call CheckSubstituteOpp - jr nz, .asm_36e52 ; 36e1f $31 - ld c, $1e + jr nz, .asm_36e52 + ld c, 30 call DelayFrames call AnimateCurrentMove ld a, $1 ld [$ffd4], a ld a, BATTLE_VARS_STATUS_OPP call _GetBattleVar - set 6, [hl] + set PAR, [hl] call UpdateOpponentInParty ld hl, Function3ec39 call CallBattleCore @@ -8234,8 +8195,9 @@ BattleCommand30: ; 36dc7 Function36e5b: ; 36e5b -; Compare move type to user type. -; Return z if matching the user type (unless the move is Normal). +; Compare move type to opponent type. +; Return z if matching the opponent type, +; unless the move is Normal (Tri Attack). push hl @@ -8285,7 +8247,7 @@ BattleCommand31: ; 36e7c ld a, BATTLE_VARS_SUBSTATUS4 call GetBattleVar bit SUBSTATUS_SUBSTITUTE, a - jr nz, .asm_36ef4 ; 36e97 $5b + jr nz, .asm_36ef4 ld a, [hli] ld b, [hl] @@ -8303,10 +8265,10 @@ BattleCommand31: ; 36e7c ld a, [hl] sbc 0 ld d, a - jr c, .asm_36eff ; 36eae $4f + jr c, .asm_36eff ld a, d or e - jr z, .asm_36eff ; 36eb2 $4b + jr z, .asm_36eff ld [hl], d inc hl ld [hl], e @@ -8328,15 +8290,15 @@ BattleCommand31: ; 36e7c ld [hl], a ld [de], a call Function37ed5 - jr c, .asm_36ee8 ; 36ed5 $11 + jr c, .asm_36ee8 xor a ld [$cfca], a ld [FXAnimIDHi], a ld [$c689], a - ld a, $a4 + ld a, SUBSTITUTE call Function37e44 - jr .asm_36eeb ; 36ee6 $3 + jr .asm_36eeb .asm_36ee8 call BattleCommanda6 @@ -8430,34 +8392,34 @@ BattleCommand33: ; 36f46 call BattleCommandaa ld a, [AttackMissed] and a - jr nz, .asm_36f9a ; 36f50 $48 + jr nz, .asm_36f9a ld hl, BattleMonMoves ld a, [hBattleTurn] and a - jr z, .asm_36f5d ; 36f58 $3 + jr z, .asm_36f5d ld hl, EnemyMonMoves .asm_36f5d call CheckHiddenOpponent - jr nz, .asm_36f9a ; 36f60 $38 + jr nz, .asm_36f9a ld a, BATTLE_VARS_LAST_COUNTER_MOVE_OPP call GetBattleVar and a - jr z, .asm_36f9a ; 36f68 $30 + jr z, .asm_36f9a cp STRUGGLE - jr z, .asm_36f9a ; 36f6c $2c + jr z, .asm_36f9a ld b, a ld c, NUM_MOVES .asm_36f71 ld a, [hli] cp b - jr z, .asm_36f9a ; 36f73 $25 + jr z, .asm_36f9a dec c - jr nz, .asm_36f71 ; 36f76 $f9 + jr nz, .asm_36f71 dec hl .asm_36f79 ld a, [hld] cp MIMIC - jr nz, .asm_36f79 ; 36f7c $fb + jr nz, .asm_36f79 inc hl ld a, BATTLE_VARS_LAST_COUNTER_MOVE_OPP call GetBattleVar @@ -8530,27 +8492,27 @@ BattleCommand37: ; 36fed ld a, [AttackMissed] and a - jr nz, .asm_37059 ; 36ff1 $66 + jr nz, .asm_37059 ld de, EnemyDisableCount ld hl, EnemyMonMoves ld a, [hBattleTurn] and a - jr z, .asm_37004 ; 36ffc $6 + jr z, .asm_37004 ld de, PlayerDisableCount ld hl, BattleMonMoves .asm_37004 ld a, [de] and a - jr nz, .asm_37059 ; 37006 $51 + jr nz, .asm_37059 ld a, BATTLE_VARS_LAST_COUNTER_MOVE_OPP call GetBattleVar and a - jr z, .asm_37059 ; 3700e $49 + jr z, .asm_37059 cp STRUGGLE - jr z, .asm_37059 ; 37012 $45 + jr z, .asm_37059 ld b, a ld c, $ff @@ -8558,23 +8520,23 @@ BattleCommand37: ; 36fed inc c ld a, [hli] cp b - jr nz, .asm_37017 ; 3701a $fb + jr nz, .asm_37017 ld a, [hBattleTurn] and a ld hl, EnemyMonPP - jr z, .asm_37027 ; 37022 $3 + jr z, .asm_37027 ld hl, BattleMonPP .asm_37027 ld b, 0 add hl, bc ld a, [hl] and a - jr z, .asm_37059 ; 3702c $2b + jr z, .asm_37059 .asm_3702e call BattleRandom and 7 - jr z, .asm_3702e ; 37033 $f9 + jr z, .asm_3702e inc a inc c swap c @@ -8584,7 +8546,7 @@ BattleCommand37: ; 36fed ld hl, DisabledMove ld a, [hBattleTurn] and a - jr nz, .asm_37047 ; 37044 $1 + jr nz, .asm_37047 inc hl .asm_37047 ld a, BATTLE_VARS_LAST_COUNTER_MOVE_OPP @@ -8614,7 +8576,7 @@ BattleCommand1e: ; 3705c .ok add a - ld hl, $c6ee + ld hl, wPayDayMoney + 2 add [hl] ld [hld], a jr nc, .done @@ -8640,11 +8602,11 @@ BattleCommand1f: ; 3707f ld de, EnemyMonType1 .asm_37090 push de - ld c, $0 + ld c, 0 ld de, StringBuffer1 .asm_37096 push hl - ld b, $0 + ld b, 0 add hl, bc ld a, [hl] pop hl @@ -8702,17 +8664,17 @@ BattleCommand1f: ; 3707f add hl, bc ld a, [hl] cp $ff - jr z, .asm_370d9_b ; 370e8 $ef + jr z, .asm_370d9_b cp CURSE_T - jr z, .asm_370d9_b ; 370ec $eb + jr z, .asm_370d9_b ld a, [de] cp [hl] - jr z, .asm_370d9_b ; 370f0 $e7 + jr z, .asm_370d9_b inc de ld a, [de] dec de cp [hl] - jr z, .asm_370d9_b ; 370f6 $e1 + jr z, .asm_370d9_b ld a, [hl] ld [de], a inc de @@ -8767,7 +8729,7 @@ BattleCommand2c: ; 3713e ld hl, BattleMonMaxHP ld a, [hBattleTurn] and a - jr z, .asm_3714f ; 37147 $6 + jr z, .asm_3714f ld de, EnemyMonHP ld hl, EnemyMonMaxHP .asm_3714f @@ -8785,7 +8747,7 @@ BattleCommand2c: ; 3713e jp z, .asm_371c4 ld a, b cp REST - jr nz, .asm_37199 ; 37166 $31 + jr nz, .asm_37199 push hl push de push af @@ -8797,17 +8759,17 @@ BattleCommand2c: ; 3713e call _GetBattleVar ld a, [hl] and a - ld [hl], 3 + ld [hl], REST_TURNS + 1 ld hl, WentToSleepText - jr z, .asm_37186 ; 37181 $3 + jr z, .asm_37186 ld hl, RestedText .asm_37186 call StdBattleTextBox ld a, [hBattleTurn] and a - jr nz, .asm_37193 ; 3718c $5 + jr nz, .asm_37193 call Function365d7 - jr .asm_37196 ; 37191 $3 + jr .asm_37196 .asm_37193 call Function365fd .asm_37196 @@ -8815,10 +8777,10 @@ BattleCommand2c: ; 3713e pop de pop hl .asm_37199 - jr z, .asm_371a3 ; 37199 $8 + jr z, .asm_371a3 ld hl, GetHalfMaxHP call CallBattleCore - jr .asm_371a9 ; 371a1 $6 + jr .asm_371a9 .asm_371a3 ld hl, GetMaxHP call CallBattleCore @@ -8846,7 +8808,7 @@ BattleCommand2d: ; 371cd call Function372d8 ld a, BATTLE_VARS_SUBSTATUS5_OPP call _GetBattleVar - bit 3, [hl] + bit SUBSTATUS_TRANSFORMED, [hl] jp nz, Function372d2 call CheckHiddenOpponent jp nz, Function372d2 @@ -8859,21 +8821,21 @@ BattleCommand2d: ; 371cd call _GetBattleVar bit SUBSTATUS_SUBSTITUTE, [hl] push af - jr z, .asm_37200 ; 371f4 $a + jr z, .asm_37200 call Function34548 - jr nz, .asm_37200 ; 371f9 $5 + jr nz, .asm_37200 ld a, SUBSTITUTE call Function37e44 .asm_37200 ld a, BATTLE_VARS_SUBSTATUS5 call _GetBattleVar - set 3, [hl] + set SUBSTATUS_TRANSFORMED, [hl] call ResetActorDisable ld hl, BattleMonSpecies ld de, EnemyMonSpecies ld a, [hBattleTurn] and a - jr nz, .asm_3721f ; 37213 $a + jr nz, .asm_3721f ld hl, EnemyMonSpecies ld de, BattleMonSpecies xor a @@ -8889,7 +8851,7 @@ BattleCommand2d: ; 371cd call CopyBytes ld a, [hBattleTurn] and a - jr z, .asm_3723a ; 3722e $a + jr z, .asm_3723a ld a, [de] ld [$c6f2], a inc de @@ -8927,15 +8889,15 @@ BattleCommand2d: ; 371cd ld a, [de] inc de and a - jr z, .asm_3726c ; 37262 $8 + jr z, .asm_3726c cp SKETCH ld a, 1 - jr z, .asm_3726c ; 37268 $2 + jr z, .asm_3726c ld a, 5 .asm_3726c ld [hli], a dec b - jr nz, .asm_3725f ; 3726e $ef + jr nz, .asm_3725f pop hl ld a, [hl] ld [$d265], a @@ -8949,17 +8911,17 @@ BattleCommand2d: ; 371cd ld bc, $0008 call BattleSideCopy call Function37ed5 - jr c, .asm_372a8 ; 37293 $13 + jr c, .asm_372a8 ld a, [hBattleTurn] and a ld a, [$c6fe] - jr z, .asm_372a0 ; 3729b $3 + jr z, .asm_372a0 ld a, [$c6fa] .asm_372a0 and a - jr nz, .asm_372a8 ; 372a1 $5 + jr nz, .asm_372a8 call Function37e36 - jr .asm_372ae ; 372a6 $6 + jr .asm_372ae .asm_372a8 call BattleCommandaa call BattleCommanda6 @@ -9062,7 +9024,7 @@ BattleCommand2e: ; 372fc jr nz, .failed set SCREENS_REFLECT, [hl] -; LightScreenCount -> ReflectCount + ; LightScreenCount -> ReflectCount inc bc ld a, 5 @@ -9431,10 +9393,9 @@ Function377f5: ; 377f5 ld [CurPartySpecies], a ld hl, EnemyMonDVs ld a, [EnemySubStatus5] - bit 3, a + bit SUBSTATUS_TRANSFORMED, a jr z, .asm_37829 ld hl, $c6f2 - .asm_37829 ld a, [hli] ld [$d123], a @@ -9828,18 +9789,18 @@ BatonPass_LinkEnemySwitch: ; 37a82 call CallBattleCore ld a, [OTPartyCount] - add 4 + add NUM_MOVES ld b, a - ld a, [$d430] - cp 4 + ld a, [wBattleAction] + cp NUM_MOVES jr c, .asm_37aa0 cp b jr c, .asm_37aa8 .asm_37aa0 ld a, [CurOTMon] - add 4 - ld [$d430], a + add NUM_MOVES + ld [wBattleAction], a .asm_37aa8 jp Function1c17 ; 37aab @@ -9877,7 +9838,7 @@ ResetBatonPassStatus: ; 37ab1 ld a, BATTLE_VARS_SUBSTATUS5 call _GetBattleVar - res 3, [hl] + res SUBSTATUS_TRANSFORMED, [hl] res 4, [hl] ; New mon hasn't used a move yet. diff --git a/constants/battle_constants.asm b/constants/battle_constants.asm index d4a5abb14..88a2fd27d 100644 --- a/constants/battle_constants.asm +++ b/constants/battle_constants.asm @@ -1,6 +1,8 @@ MAX_LEVEL EQU 100 NUM_MOVES EQU 4 +REST_TURNS EQU 2 + ATTACK EQU 0 DEFENSE EQU 1 SPEED EQU 2 @@ -110,6 +112,7 @@ SUBSTATUS_UNLEASH EQU 0 SUBSTATUS_CANT_RUN EQU 7 SUBSTATUS_DESTINY_BOND EQU 6 SUBSTATUS_LOCK_ON EQU 5 +SUBSTATUS_TRANSFORMED EQU 3 SUBSTATUS_TOXIC EQU 0 ; environmental @@ -119,6 +122,7 @@ SCREENS_SAFEGUARD EQU 2 SCREENS_SPIKES EQU 0 ; weather +WEATHER_NONE EQU 0 WEATHER_RAIN EQU 1 WEATHER_SUN EQU 2 WEATHER_SANDSTORM EQU 3 diff --git a/constants/item_constants.asm b/constants/item_constants.asm index 06e15fa34..e790d1650 100644 --- a/constants/item_constants.asm +++ b/constants/item_constants.asm @@ -267,6 +267,7 @@ HELD_BERRY EQU $01 HELD_LEFTOVERS EQU $03 HELD_RESTORE_PP EQU $06 HELD_CLEANSE_TAG EQU $08 + HELD_HEAL_POISON EQU $0a HELD_HEAL_FREEZE EQU $0b HELD_HEAL_BURN EQU $0c @@ -274,7 +275,24 @@ HELD_HEAL_SLEEP EQU $0d HELD_HEAL_PARALYZE EQU $0e HELD_HEAL_STATUS EQU $0f HELD_HEAL_CONFUSION EQU $10 + +HELD_PREVENT_POISON EQU $14 +HELD_PREVENT_BURN EQU $15 +HELD_PREVENT_FREEZE EQU $16 +HELD_PREVENT_SLEEP EQU $17 +HELD_PREVENT_PARALYZE EQU $18 +HELD_PREVENT_CONFUSE EQU $19 + +HELD_ATTACK_UP EQU $1f +HELD_DEFENSE_UP EQU $20 +HELD_SPEED_UP EQU $21 +HELD_SP_ATTACK_UP EQU $22 +HELD_SP_DEFENSE_UP EQU $23 +HELD_ACCURACY_UP EQU $24 +HELD_EVASION_UP EQU $25 + HELD_METAL_POWDER EQU $2a + HELD_NORMAL_BOOST EQU $32 HELD_FIGHTING_BOOST EQU $33 HELD_FLYING_BOOST EQU $34 @@ -292,6 +310,7 @@ HELD_ICE_BOOST EQU $3f HELD_DRAGON_BOOST EQU $40 HELD_DARK_BOOST EQU $41 HELD_STEEL_BOOST EQU $42 + HELD_ESCAPE EQU $48 HELD_CRITICAL_UP EQU $49 HELD_QUICK_CLAW EQU $4a diff --git a/constants/misc_constants.asm b/constants/misc_constants.asm index 605344478..bf56c15a1 100644 --- a/constants/misc_constants.asm +++ b/constants/misc_constants.asm @@ -72,9 +72,9 @@ D_DOWN EQU %10000000 ; screen HP_BAR_LENGTH EQU 6 -HP_BAR_LENGTH_PX EQU 48 +HP_BAR_LENGTH_PX EQU HP_BAR_LENGTH * 8 EXP_BAR_LENGTH EQU 8 -EXP_BAR_LENGTH_PX EQU 64 +EXP_BAR_LENGTH_PX EQU EXP_BAR_LENGTH * 8 SCREEN_WIDTH EQU 20 SCREEN_HEIGHT EQU 18 diff --git a/constants/type_constants.asm b/constants/type_constants.asm index 764f41453..87b1e316a 100644 --- a/constants/type_constants.asm +++ b/constants/type_constants.asm @@ -25,7 +25,7 @@ UNUSED_TYPES EQU const_value const TYPE_17 const TYPE_18 const CURSE_T - +UNUSED_TYPES_END EQU const_value SPECIAL EQU const_value const FIRE @@ -37,3 +37,4 @@ SPECIAL EQU const_value const DRAGON const DARK +TYPES_END EQU const_value @@ -57004,7 +57004,7 @@ StatsScreenInit: ; 4dc8a jr StatsScreenInit_gotaddress Function4dc8f: ; 4dc8f - ld hl, Function4dcf7 + ld hl, StatsScreenBattle jr StatsScreenInit_gotaddress StatsScreenInit_gotaddress: ; 4dc94 @@ -57063,7 +57063,7 @@ StatsScreenMain: ; 0x4dcd2 ret ; 0x4dcf7 -Function4dcf7: ; 4dcf7 +StatsScreenBattle: ; 4dcf7 xor a ld [$cf63], a ld [$cf64], a @@ -552,7 +552,11 @@ LinkBattleRNCount:: ; c6e5 CurEnemyMoveNum:: ; c6e9 ds 1 - ds 10 + ds 2 + +wPayDayMoney:: ds 3 ; c6ec + + ds 5 AlreadyDisobeyed:: ; c6f4 ds 1 @@ -1176,8 +1180,12 @@ OTPartyMon6:: party_struct OTPartyMon6 ; d378 OTPartyMonOT:: ds NAME_LENGTH * PARTY_LENGTH ; d3a8 OTPartyMonNicknames:: ds PKMN_NAME_LENGTH * PARTY_LENGTH ; d3ea + ds 4 + +wBattleAction:: ds 1 ; d430 + + ds 1 -SECTION "Map Events", WRAMX[$d432], BANK[1] MapStatus:: ; d432 ds 1 MapEventStatus:: ; d433 |