diff options
Diffstat (limited to 'engine/battle')
-rwxr-xr-x | engine/battle/1.asm | 35 | ||||
-rwxr-xr-x | engine/battle/14.asm | 42 | ||||
-rwxr-xr-x | engine/battle/15.asm | 137 | ||||
-rwxr-xr-x | engine/battle/16.asm | 32 | ||||
-rwxr-xr-x | engine/battle/1a.asm | 10 | ||||
-rwxr-xr-x | engine/battle/1c.asm | 748 | ||||
-rwxr-xr-x | engine/battle/4.asm | 31 | ||||
-rwxr-xr-x | engine/battle/4_2.asm | 156 | ||||
-rwxr-xr-x | engine/battle/5.asm | 6 | ||||
-rwxr-xr-x | engine/battle/9.asm | 12 | ||||
-rwxr-xr-x | engine/battle/a.asm | 10 | ||||
-rwxr-xr-x | engine/battle/animations.asm | 374 | ||||
-rwxr-xr-x | engine/battle/b.asm | 2 | ||||
-rwxr-xr-x | engine/battle/b_2.asm | 11 | ||||
-rwxr-xr-x | engine/battle/c.asm | 18 | ||||
-rwxr-xr-x | engine/battle/core.asm | 2531 | ||||
-rwxr-xr-x | engine/battle/d.asm | 18 | ||||
-rwxr-xr-x | engine/battle/e.asm | 278 | ||||
-rwxr-xr-x | engine/battle/e_2.asm | 73 | ||||
-rwxr-xr-x | engine/battle/safari_zone.asm | 8 |
20 files changed, 2187 insertions, 2345 deletions
diff --git a/engine/battle/1.asm b/engine/battle/1.asm index 91f7d3b1..04546313 100755 --- a/engine/battle/1.asm +++ b/engine/battle/1.asm @@ -1,5 +1,5 @@ DrainHPEffect_: ; 783f (1:783f) - ld hl, W_DAMAGE ; $d0d7 + ld hl, W_DAMAGE ; W_DAMAGE ld a, [hl] srl a ; divide damage by 2 ld [hli], a @@ -11,13 +11,13 @@ DrainHPEffect_: ; 783f (1:783f) inc hl inc [hl] .asm_784f - ld hl, W_PLAYERMONCURHP ; $d015 - ld de, W_PLAYERMONMAXHP ; $d023 + ld hl, wBattleMonHP ; wd015 + ld de, wBattleMonMaxHP ; wd023 ld a, [H_WHOSETURN] ; $fff3 and a jp z, Func_7861 - ld hl, W_ENEMYMONCURHP ; $cfe6 - ld de, W_ENEMYMONMAXHP ; $cff4 + ld hl, wEnemyMonHP ; wEnemyMonHP + ld de, wEnemyMonMaxHP ; wEnemyMonMaxHP Func_7861: ; 7861 (1:7861) ld bc, wHPBarOldHP+1 @@ -33,12 +33,12 @@ Func_7861: ; 7861 (1:7861) ld a, [de] dec bc ld [bc], a - ld a, [$d0d8] + ld a, [wd0d8] ld b, [hl] add b ld [hld], a ld [wHPBarNewHP], a - ld a, [W_DAMAGE] ; $d0d7 + ld a, [W_DAMAGE] ; W_DAMAGE ld b, [hl] adc b ld [hli], a @@ -67,28 +67,23 @@ Func_7861: ; 7861 (1:7861) .asm_789c ld a, [H_WHOSETURN] ; $fff3 and a - FuncCoord 10, 9 ; $c45e - ld hl, Coord + hlCoord 10, 9 ld a, $1 jr z, .asm_78aa - FuncCoord 2, 2 ; $c3ca - ld hl, Coord + hlCoord 2, 2 xor a .asm_78aa - ld [wListMenuID], a ; $cf94 - ld a, $48 - call Predef ; indirect jump to UpdateHPBar (fa1d (3:7a1d)) - ld a, $0 - call Predef ; indirect jump to Func_3cd60 (3cd60 (f:4d60)) - ld a, $49 - call Predef ; indirect jump to Func_3cdec (3cdec (f:4dec)) + ld [wListMenuID], a ; wListMenuID + predef UpdateHPBar2 + predef Func_3cd60 + predef Func_3cdec callab ReadPlayerMonCurHPAndStatus ld hl, SuckedHealthText ; $78dc ld a, [H_WHOSETURN] ; $fff3 and a - ld a, [W_PLAYERMOVEEFFECT] ; $cfd3 + ld a, [W_PLAYERMOVEEFFECT] ; wcfd3 jr z, .asm_78d2 - ld a, [W_ENEMYMOVEEFFECT] ; $cfcd + ld a, [W_ENEMYMOVEEFFECT] ; W_ENEMYMOVEEFFECT .asm_78d2 cp DREAM_EATER_EFFECT jr nz, .asm_78d9 diff --git a/engine/battle/14.asm b/engine/battle/14.asm index 209135af..01d115a6 100755 --- a/engine/battle/14.asm +++ b/engine/battle/14.asm @@ -1,52 +1,52 @@ Func_525af: ; 525af (14:65af) ld a, [$ffd7] - ld [$d0d4], a + ld [wd0d4], a xor a - ld [$cd6a], a - ld [$cf0b], a - ld hl, $cc2b + ld [wcd6a], a + ld [wcf0b], a + ld hl, wcc2b ld [hli], a ld [hli], a ld [hli], a ld [hl], a - ld [wListScrollOffset], a ; $cc36 - ld [$d05e], a - ld [W_PLAYERMONID], a - ld [W_PLAYERMONSALIVEFLAGS], a - ld [wPlayerMonNumber], a ; $cc2f - ld [$d078], a - ld [$d35d], a - ld hl, $cf1d + ld [wListScrollOffset], a ; wcc36 + ld [wd05e], a + ld [wBattleMonSpecies], a + ld [wPartyAliveFlags], a + ld [wPlayerMonNumber], a ; wPlayerMonNumber + ld [wd078], a + ld [wd35d], a + ld hl, wcf1d ld [hli], a ld [hl], a - ld hl, $ccd3 + ld hl, wccd3 ld b, $3c .asm_525e1 ld [hli], a dec b jr nz, .asm_525e1 inc a - ld [$ccd9], a - ld a, [W_CURMAP] ; $d35e + ld [wccd9], a + ld a, [W_CURMAP] ; W_CURMAP cp SAFARI_ZONE_EAST jr c, .asm_525f9 cp SAFARI_ZONE_REST_HOUSE_1 jr nc, .asm_525f9 ld a, $2 - ld [W_BATTLETYPE], a ; $d05a + ld [W_BATTLETYPE], a ; wd05a .asm_525f9 ld hl, PlayBattleMusic ld b, BANK(PlayBattleMusic) jp Bankswitch ParalyzeEffect_: ; 52601 (14:6601) - ld hl, W_ENEMYMONSTATUS ; $cfe9 - ld de, W_PLAYERMOVETYPE ; $cfd5 + ld hl, wEnemyMonStatus ; wcfe9 + ld de, W_PLAYERMOVETYPE ; wcfd5 ld a, [H_WHOSETURN] ; $fff3 and a jp z, .asm_52613 - ld hl, W_PLAYERMONSTATUS ; $d018 - ld de, W_ENEMYMOVETYPE ; $cfcf + ld hl, wBattleMonStatus ; wBattleMonStatus + ld de, W_ENEMYMOVETYPE ; wcfcf .asm_52613 ld a, [hl] @@ -69,7 +69,7 @@ ParalyzeEffect_: ; 52601 (14:6601) push hl callab MoveHitTest pop hl - ld a, [W_MOVEMISSED] ; $d05f + ld a, [W_MOVEMISSED] ; W_MOVEMISSED and a jr nz, .asm_52659 set 6, [hl] diff --git a/engine/battle/15.asm b/engine/battle/15.asm index d2e93ab1..69d8ff3f 100755 --- a/engine/battle/15.asm +++ b/engine/battle/15.asm @@ -1,11 +1,11 @@ GainExperience: ; 5524f (15:524f) - ld a, [W_ISLINKBATTLE] ; $d12b + ld a, [W_ISLINKBATTLE] cp $4 ret z call Func_5546c - ld hl, W_PARTYMON1_NUM ; $d16b (aliases: W_PARTYMON1DATA) + ld hl, wPartyMons xor a - ld [wWhichPokemon], a ; $cf92 + ld [wWhichPokemon], a Func_5525f: ; 5525f (15:525f) inc hl @@ -13,12 +13,11 @@ Func_5525f: ; 5525f (15:525f) or [hl] jp z, Func_55436 push hl - ld hl, W_PLAYERMONSALIVEFLAGS - ld a, [wWhichPokemon] ; $cf92 + ld hl, wPartyAliveFlags + ld a, [wWhichPokemon] ld c, a ld b, $2 - ld a, $10 - call Predef ; indirect jump to HandleBitArray (f666 (3:7666)) + predef FlagActionPredef ld a, c and a pop hl @@ -27,7 +26,7 @@ Func_5525f: ; 5525f (15:525f) add hl, de ld d, h ld e, l - ld hl, $d002 + ld hl, wd002 ld c, $5 .asm_55285 ld a, [hli] @@ -56,26 +55,26 @@ Func_5525f: ; 5525f (15:525f) jr .asm_55285 .asm_552a1 xor a - ld [H_NUMTOPRINT], a ; $ff96 (aliases: H_MULTIPLICAND) - ld [$ff97], a - ld a, [$d008] - ld [$ff98], a - ld a, [W_ENEMYMONLEVEL] ; $cff3 - ld [H_REMAINDER], a ; $ff99 (aliases: H_DIVISOR, H_MULTIPLIER, H_POWEROFTEN) + ld [H_MULTIPLICAND], a + ld [H_MULTIPLICAND + 1], a + ld a, [wd008] + ld [H_MULTIPLICAND + 2], a + ld a, [wEnemyMonLevel] + ld [H_MULTIPLIER], a call Multiply - ld a, $7 - ld [H_REMAINDER], a ; $ff99 (aliases: H_DIVISOR, H_MULTIPLIER, H_POWEROFTEN) - ld b, $4 + ld a, 7 + ld [H_DIVISOR], a + ld b, 4 call Divide ld hl, $fff2 add hl, de ld b, [hl] inc hl - ld a, [wPlayerID] ; $d359 + ld a, [wPlayerID] cp b jr nz, .asm_552d1 ld b, [hl] - ld a, [wPlayerID + 1] ; $d35a + ld a, [wPlayerID + 1] cp b ld a, $0 jr z, .asm_552d6 @@ -83,8 +82,8 @@ Func_5525f: ; 5525f (15:525f) call Func_5549f ld a, $1 .asm_552d6 - ld [$cf4d], a - ld a, [W_ISINBATTLE] ; $d057 + ld [wcf4d], a + ld a, [W_ISINBATTLE] dec a call nz, Func_5549f inc hl @@ -92,12 +91,12 @@ Func_5525f: ; 5525f (15:525f) inc hl ld b, [hl] ld a, [$ff98] - ld [$cf4c], a + ld [wcf4c], a add b ld [hld], a ld b, [hl] ld a, [$ff97] - ld [$cf4b], a + ld [wcf4b], a adc b ld [hl], a jr nc, .asm_552f8 @@ -107,17 +106,17 @@ Func_5525f: ; 5525f (15:525f) .asm_552f8 inc hl push hl - ld a, [wWhichPokemon] ; $cf92 + ld a, [wWhichPokemon] ld c, a - ld b, $0 - ld hl, W_PARTYMON1 ; $d164 + ld b, 0 + ld hl, wPartySpecies add hl, bc ld a, [hl] - ld [$d0b5], a + ld [wd0b5], a call GetMonHeader - ld d, $64 + ld d, MAX_LEVEL callab CalcExperience - ld a, [H_NUMTOPRINT] ; $ff96 (aliases: H_MULTIPLICAND) + ld a, [$ff96] ld b, a ld a, [$ff97] ld c, a @@ -140,13 +139,13 @@ Func_5525f: ; 5525f (15:525f) dec hl .asm_5532e push hl - ld a, [wWhichPokemon] ; $cf92 - ld hl, W_PARTYMON1NAME ; $d2b5 + ld a, [wWhichPokemon] + ld hl, wPartyMonNicks call GetPartyMonName ld hl, GainedText call PrintText xor a - ld [$cc49], a + ld [wcc49], a call LoadMonData pop hl ld bc, $13 @@ -157,17 +156,17 @@ Func_5525f: ; 5525f (15:525f) ld a, [hl] cp d jp z, Func_55436 - ld a, [W_CURENEMYLVL] ; $d127 + ld a, [W_CURENEMYLVL] push af push hl ld a, d - ld [W_CURENEMYLVL], a ; $d127 + ld [W_CURENEMYLVL], a ld [hl], a ld bc, $ffdf add hl, bc ld a, [hl] - ld [$d0b5], a - ld [$d11e], a + ld [wd0b5], a + ld [wd11e], a call GetMonHeader ld bc, $23 add hl, bc @@ -198,12 +197,12 @@ Func_5525f: ; 5525f (15:525f) ld a, [hl] adc b ld [hl], a - ld a, [wPlayerMonNumber] ; $cc2f + ld a, [wPlayerMonNumber] ld b, a - ld a, [wWhichPokemon] ; $cf92 + ld a, [wWhichPokemon] cp b jr nz, .asm_553f7 - ld de, W_PLAYERMONCURHP ; $d015 + ld de, wBattleMonHP ld a, [hli] ld [de], a inc de @@ -212,19 +211,19 @@ Func_5525f: ; 5525f (15:525f) ld bc, $1f add hl, bc push hl - ld de, W_PLAYERMONLEVEL ; $d022 + ld de, wBattleMonLevel ; wBattleMonLevel ld bc, $b call CopyData pop hl - ld a, [W_PLAYERBATTSTATUS3] ; $d064 + ld a, [W_PLAYERBATTSTATUS3] ; W_PLAYERBATTSTATUS3 bit 3, a jr nz, .asm_553c8 - ld de, $cd0f + ld de, wcd0f ld bc, $b call CopyData .asm_553c8 xor a - ld [$d11e], a + ld [wd11e], a callab Func_3ed99 callab Func_3ed1a callab Func_3ee19 @@ -235,59 +234,55 @@ Func_5525f: ; 5525f (15:525f) ld hl, GrewLevelText call PrintText xor a - ld [$cc49], a + ld [wcc49], a call LoadMonData ld d, $1 callab PrintStatsBox call WaitForTextScrollButtonPress call LoadScreenTilesFromBuffer1 xor a - ld [$cc49], a - ld a, [$d0b5] - ld [$d11e], a - ld a, $1a - call Predef ; indirect jump to Func_3af5b (3af5b (e:6f5b)) - ld hl, $ccd3 - ld a, [wWhichPokemon] ; $cf92 + ld [wcc49], a + ld a, [wd0b5] + ld [wd11e], a + predef Func_3af5b + ld hl, wccd3 + ld a, [wWhichPokemon] ; wWhichPokemon ld c, a ld b, $1 - ld a, $10 - call Predef ; indirect jump to HandleBitArray (f666 (3:7666)) + predef FlagActionPredef pop hl pop af - ld [W_CURENEMYLVL], a ; $d127 + ld [W_CURENEMYLVL], a ; W_CURENEMYLVL Func_55436: ; 55436 (15:5436) - ld a, [W_NUMINPARTY] ; $d163 + ld a, [wPartyCount] ; wPartyCount ld b, a - ld a, [wWhichPokemon] ; $cf92 + ld a, [wWhichPokemon] ; wWhichPokemon inc a cp b jr z, .asm_55450 - ld [wWhichPokemon], a ; $cf92 + ld [wWhichPokemon], a ; wWhichPokemon ld bc, $2c - ld hl, W_PARTYMON1_NUM ; $d16b (aliases: W_PARTYMON1DATA) + ld hl, wPartyMon1Species ; wPartyMon1Species (aliases: wPartyMon1) call AddNTimes jp Func_5525f .asm_55450 - ld hl, W_PLAYERMONSALIVEFLAGS + ld hl, wPartyAliveFlags xor a ld [hl], a - ld a, [wPlayerMonNumber] ; $cc2f + ld a, [wPlayerMonNumber] ; wPlayerMonNumber ld c, a ld b, $1 push bc - ld a, $10 - call Predef ; indirect jump to HandleBitArray (f666 (3:7666)) - ld hl, $ccf5 + predef FlagActionPredef + ld hl, wccf5 xor a ld [hl], a pop bc - ld a, $10 - jp Predef ; indirect jump to HandleBitArray (f666 (3:7666)) + predef_jump FlagActionPredef Func_5546c: ; 5546c (15:546c) - ld a, [W_PLAYERMONSALIVEFLAGS] + ld a, [wPartyAliveFlags] ld b, a xor a ld c, $8 @@ -301,15 +296,15 @@ Func_5546c: ; 5546c (15:546c) jr nz, .asm_55475 cp $2 ret c - ld [$d11e], a - ld hl, $d002 + ld [wd11e], a + ld hl, wd002 ld c, $7 .asm_55488 xor a ld [H_DIVIDEND], a ; $ff95 (aliases: H_PRODUCT, H_PASTLEADINGZEROES, H_QUOTIENT) ld a, [hl] ld [H_NUMTOPRINT], a ; $ff96 (aliases: H_MULTIPLICAND) - ld a, [$d11e] + ld a, [wd11e] ld [H_REMAINDER], a ; $ff99 (aliases: H_DIVISOR, H_MULTIPLIER, H_POWEROFTEN) ld b, $2 call Divide @@ -336,12 +331,12 @@ Func_5549f: ; 5549f (15:549f) GainedText: ; 554b2 (15:54b2) TX_FAR _GainedText db $08 ; asm - ld a, [$cc5b] + ld a, [wcc5b] ld hl, WithExpAllText and a ret nz ld hl, ExpPointsText - ld a, [$cf4d] + ld a, [wcf4d] and a ret z ld hl, BoostedText diff --git a/engine/battle/16.asm b/engine/battle/16.asm index f2f4ada9..1500d003 100755 --- a/engine/battle/16.asm +++ b/engine/battle/16.asm @@ -1,17 +1,17 @@ PrintBeginningBattleText: ; 58d99 (16:4d99) - ld a, [W_ISINBATTLE] ; $d057 + ld a, [W_ISINBATTLE] ; W_ISINBATTLE dec a jr nz, .trainerBattle - ld a, [W_CURMAP] ; $d35e + ld a, [W_CURMAP] ; W_CURMAP cp POKEMONTOWER_3 jr c, .notPokemonTower cp LAVENDER_HOUSE_1 jr c, .pokemonTower .notPokemonTower - ld a, [W_ENEMYMONID] + ld a, [wEnemyMonSpecies2] call PlayCry ld hl, WildMonAppearedText - ld a, [W_MOVEMISSED] ; $d05f + ld a, [W_MOVEMISSED] ; W_MOVEMISSED and a jr z, .notFishing ld hl, HookedMonAttackedText @@ -31,8 +31,8 @@ PrintBeginningBattleText: ; 58d99 (16:4d99) .pokemonTower ld b, SILPH_SCOPE call IsItemInBag - ld a, [W_ENEMYMONID] - ld [$cf91], a + ld a, [wEnemyMonSpecies2] + ld [wcf91], a cp MAROWAK jr z, .isMarowak ld a, b @@ -61,9 +61,9 @@ PrintBeginningBattleText: ; 58d99 (16:4d99) .playSFX xor a - ld [$c0f1], a + ld [wc0f1], a ld a, $80 - ld [$c0f2], a + ld [wc0f2], a ld a, (SFX_08_77 - SFX_Headers_08) / 3 call PlaySound jp WaitForSoundToFinish @@ -95,24 +95,24 @@ GhostCantBeIDdText: ; 58e54 (16:4e54) db "@" SendOutMon: ; 58e59 (16:4e59) - ld hl, W_ENEMYMONCURHP ; $cfe6 + ld hl, wEnemyMonHP ; wEnemyMonHP ld a, [hli] or [hl] ld hl, GoText jr z, .printText xor a ld [H_NUMTOPRINT], a ; $ff96 (aliases: H_MULTIPLICAND) - ld hl, W_ENEMYMONCURHP ; $cfe6 + ld hl, wEnemyMonHP ; wEnemyMonHP ld a, [hli] - ld [$cce3], a + ld [wcce3], a ld [$ff97], a ld a, [hl] - ld [$cce4], a + ld [wcce4], a ld [$ff98], a ld a, $19 ld [H_REMAINDER], a ; $ff99 (aliases: H_DIVISOR, H_MULTIPLIER, H_POWEROFTEN) call Multiply - ld hl, W_ENEMYMONMAXHP ; $cff4 + ld hl, wEnemyMonMaxHP ; wEnemyMonMaxHP ld a, [hli] ld b, [hl] srl a @@ -173,8 +173,8 @@ PlayerMon2Text: ; 58ed7 (16:4ed7) db $08 ; asm push de push bc - ld hl, $cfe7 - ld de, $cce4 + ld hl, wEnemyMonHP + 1 + ld de, wcce4 ld b, [hl] dec hl ld a, [de] @@ -188,7 +188,7 @@ PlayerMon2Text: ; 58ed7 (16:4ed7) ld a, $19 ld [H_POWEROFTEN], a call Multiply - ld hl, W_ENEMYMONMAXHP + ld hl, wEnemyMonMaxHP ld a, [hli] ld b, [hl] srl a diff --git a/engine/battle/1a.asm b/engine/battle/1a.asm index 2770a459..6b502a31 100755 --- a/engine/battle/1a.asm +++ b/engine/battle/1a.asm @@ -11,10 +11,10 @@ DecrementPP: ; 68000 (1a:4000) ret nz ; if any of these statuses are true, don't decrement PP bit 6, [hl] ; check 6th bit status flag on W_PLAYERBATTSTATUS2 ret nz ; and return if it is set - ld hl, $D02D ; PP of first move (in battle) + ld hl, wBattleMonPP ; PP of first move (in battle) call .DecrementPP - ld a, [$D064] ; load pokemon status bits? + ld a, [W_PLAYERBATTSTATUS3] ; load pokemon status bits? bit 3, a ; XXX transform status? ret nz ; If it is, return. Pokemon Red stores the "current pokemon's" PP ; separately from the "Pokemon in your party's" PP. This is @@ -26,12 +26,12 @@ DecrementPP: ; 68000 (1a:4000) ; its opponent, which is *not* the same as its real PP as part of your ; party. So we return, and don't do that part. - ld hl, $D188 ; PP of first move (in party) - ld a, [$CC2F] ; which mon in party is active + ld hl, wPartyMon1PP ; PP of first move (in party) + ld a, [wPlayerMonNumber] ; which mon in party is active ld bc, $2C ; XXX probably size of party pokemon's data structure call AddNTimes ; calculate address of the mon to modify .DecrementPP - ld a, [$CC2E] ; which move (0, 1, 2, 3) did we use? + ld a, [wPlayerMoveListIndex] ; which move (0, 1, 2, 3) did we use? ld c, a ld b, 0 add hl ,bc ; calculate the address in memory of the PP we need to decrement diff --git a/engine/battle/1c.asm b/engine/battle/1c.asm index 1f07807a..b3b24007 100755 --- a/engine/battle/1c.asm +++ b/engine/battle/1c.asm @@ -2,15 +2,14 @@ Func_708ca: ; 708ca (1c:48ca) ld a, $e4 ld [rOBP1], a ; $ff49 call Func_7092a - FuncCoord 12, 0 ; $c3ac - ld hl, Coord + hlCoord 12, 0 ld bc, $707 call ClearScreenArea call Delay3 xor a ld [H_AUTOBGTRANSFERENABLED], a ; $ffba ld a, $91 - ld [$cee9], a + ld [wHPBarMaxHP], a ld a, $1 ld [H_WHOSETURN], a ; $fff3 callab Func_79793 @@ -24,7 +23,7 @@ Func_708ca: ; 708ca (1c:48ca) sla a ld [rOBP1], a ; $ff49 jr nz, .asm_708f6 - call CleanLCD_OAM + call ClearSprites call Func_7092a ld b, $e4 .asm_7090d @@ -42,30 +41,30 @@ Func_708ca: ; 708ca (1c:48ca) ld a, $1 ld [H_AUTOBGTRANSFERENABLED], a ; $ffba call Delay3 - jp CleanLCD_OAM + jp ClearSprites Func_7092a: ; 7092a (1c:492a) - ld de, $9000 - ld hl, $8000 - ld bc, $31 + ld de, vFrontPic + ld hl, vSprites + ld bc, 7 * 7 call CopyVideoData ld a, $10 - ld [W_BASECOORDY], a ; $d082 + ld [W_BASECOORDY], a ; wd082 ld a, $70 - ld [W_BASECOORDX], a ; $d081 + ld [W_BASECOORDX], a ; wd081 ld hl, wOAMBuffer ld bc, $606 ld d, $8 .asm_70948 push bc - ld a, [W_BASECOORDY] ; $d082 + ld a, [W_BASECOORDY] ; wd082 ld e, a .asm_7094d ld a, e add $8 ld e, a ld [hli], a - ld a, [W_BASECOORDX] ; $d081 + ld a, [W_BASECOORDX] ; wd081 ld [hli], a ld a, d ld [hli], a @@ -75,44 +74,44 @@ Func_7092a: ; 7092a (1c:492a) dec c jr nz, .asm_7094d inc d - ld a, [W_BASECOORDX] ; $d081 + ld a, [W_BASECOORDX] ; wd081 add $8 - ld [W_BASECOORDX], a ; $d081 + ld [W_BASECOORDX], a ; wd081 pop bc dec b jr nz, .asm_70948 ret -Func_7096d: ; 7096d (1c:496d) +BattleTransition: ; 7096d (1c:496d) ld a, $1 - ld [H_AUTOBGTRANSFERENABLED], a ; $ffba + ld [H_AUTOBGTRANSFERENABLED], a call Delay3 xor a ld [$ffb0], a dec a - ld [$cfcb], a + ld [wcfcb], a call DelayFrame - ld hl, $c102 - ld a, [H_DOWNARROWBLINKCNT2] ; $ff8c + ld hl, wSpriteStateData1 + 2 + ld a, [H_DOWNARROWBLINKCNT2] ld c, a ld b, $0 ld de, $10 -.asm_70989 +.loop1 ld a, [hl] cp $ff - jr z, .asm_7098f + jr z, .skip1 inc b -.asm_7098f +.skip1 add hl, de dec c - jr nz, .asm_70989 - ld hl, $c310 + jr nz, .loop1 + ld hl, wOAMBuffer + $10 ld c, $9 -.asm_70998 +.loop2 ld a, b swap a cp l - jr z, .asm_709a9 + jr z, .skip2 push hl push bc ld bc, $10 @@ -120,22 +119,22 @@ Func_7096d: ; 7096d (1c:496d) call FillMemory pop bc pop hl -.asm_709a9 +.skip2 ld de, $10 add hl, de dec c - jr nz, .asm_70998 + jr nz, .loop2 call Delay3 call LoadBattleTransitionTile ld bc, $0 - ld a, [W_ISLINKBATTLE] ; $d12b + ld a, [W_ISLINKBATTLE] cp $4 - jr z, .asm_709c9 - call Func_709e2 - call Func_709ef - call Func_70a19 -.asm_709c9 - ld hl, PointerTable_709d2 ; $49d2 + jr z, .linkBattle + call GetBattleTransitionID_WildOrTrainer + call GetBattleTransitionID_CompareLevels + call GetBattleTransitionID_IsDungeonMap +.linkBattle + ld hl, BattleTransitions add hl, bc add hl, bc ld a, [hli] @@ -143,94 +142,105 @@ Func_7096d: ; 7096d (1c:496d) ld l, a jp [hl] -PointerTable_709d2: ; 709d2 (1c:49d2) - dw Func_70d24 - dw Func_70a72 - dw Func_70ce4 - dw Func_70a72 - dw Func_70cb4 - dw Func_70b7f - dw Func_70c7e - dw Func_70bca - -Func_709e2: ; 709e2 (1c:49e2) - ld a, [W_CUROPPONENT] ; $d059 +; the three GetBattleTransitionID functions set the first +; three bits of c, which determines what transition animation +; to play at the beginning of a battle +; bit 0: set if trainer battle +; bit 1: set if enemy is at least 3 levels higher than player +; bit 2: set if dungeon map +BattleTransitions: ; 709d2 (1c:49d2) + dw BattleTransition_DoubleCircle ; %000 + dw BattleTransition_Spiral ; %001 + dw BattleTransition_Circle ; %010 + dw BattleTransition_Spiral ; %011 + dw BattleTransition_HorizontalStripes ; %100 + dw BattleTransition_Shrink ; %101 + dw BattleTransition_VerticalStripes ; %110 + dw BattleTransition_Split ; %111 + +GetBattleTransitionID_WildOrTrainer: ; 709e2 (1c:49e2) + ld a, [W_CUROPPONENT] cp $c8 - jr nc, .asm_709ec + jr nc, .trainer res 0, c ret -.asm_709ec +.trainer set 0, c ret -Func_709ef: ; 709ef (1c:49ef) - ld hl, W_PARTYMON1_HP ; $d16c -.asm_709f2 +GetBattleTransitionID_CompareLevels: ; 709ef (1c:49ef) + ld hl, wPartyMon1HP +.faintedLoop ld a, [hli] or [hl] - jr nz, .asm_709fc - ld de, $2b + jr nz, .notFainted + ld de, wPartyMon2 - (wPartyMon1 + 1) add hl, de - jr .asm_709f2 -.asm_709fc - ld de, $1f + jr .faintedLoop +.notFainted + ld de, wPartyMon1Level - (wPartyMon1HP + 1) add hl, de ld a, [hl] add $3 ld e, a - ld a, [W_CURENEMYLVL] ; $d127 + ld a, [W_CURENEMYLVL] sub e - jr nc, .asm_70a12 + jr nc, .highLevelEnemy res 1, c ld a, $1 - ld [$cd47], a + ld [wcd47], a ret -.asm_70a12 +.highLevelEnemy set 1, c xor a - ld [$cd47], a + ld [wcd47], a ret -Func_70a19: ; 70a19 (1c:4a19) - ld a, [W_CURMAP] ; $d35e +; fails to recognize VICTORY_ROAD_2, VICTORY_ROAD_3, all ROCKET_HIDEOUT maps, +; MANSION_1, SEAFOAM_ISLANDS_[2-5], POWER_PLANT, DIGLETTS_CAVE +; and SILPH_CO_[9-11]F as dungeon maps +GetBattleTransitionID_IsDungeonMap: ; 70a19 (1c:4a19) + ld a, [W_CURMAP] ld e, a - ld hl, MapIDList_70a3f ; $4a3f -.asm_70a20 + ld hl, DungeonMaps1 +.loop1 ld a, [hli] cp $ff - jr z, .asm_70a2b + jr z, .noMatch1 cp e - jr nz, .asm_70a20 -.asm_70a28 + jr nz, .loop1 +.match set 2, c ret -.asm_70a2b - ld hl, MapIDList_70a44 ; $4a44 -.asm_70a2e +.noMatch1 + ld hl, DungeonMaps2 +.loop2 ld a, [hli] cp $ff - jr z, .asm_70a3c + jr z, .noMatch2 ld d, a ld a, [hli] cp e - jr c, .asm_70a2e + jr c, .loop2 ld a, e cp d - jr nc, .asm_70a28 -.asm_70a3c + jr nc, .match +.noMatch2 res 2, c ret -; Func_70a19 checks if W_CURMAP is equal to one of these maps -MapIDList_70a3f: ; 70a3f (1c:4a3f) +; GetBattleTransitionID_IsDungeonMap checks if W_CURMAP +; is equal to one of these maps +DungeonMaps1: ; 70a3f (1c:4a3f) db VIRIDIAN_FOREST db ROCK_TUNNEL_1 db SEAFOAM_ISLANDS_1 db ROCK_TUNNEL_2 db $FF -; Func_70a19 checks if W_CURMAP is in between or equal to each pair of maps -MapIDList_70a44: ; 70a44 (1c:4a44) +; GetBattleTransitionID_IsDungeonMap checks if W_CURMAP +; is in between or equal to each pair of maps +DungeonMaps2: ; 70a44 (1c:4a44) ; all MT_MOON maps db MT_MOON_1 db MT_MOON_3 @@ -243,282 +253,274 @@ MapIDList_70a44: ; 70a44 (1c:4a44) db LAVENDER_POKECENTER db LAVENDER_HOUSE_2 - ; all SILPH_CO, MANSION, SAFARI_ZONE, and UNKNOWN_DUNGEON maps, + ; SILPH_CO_[2-8]F, MANSION[2-4], SAFARI_ZONE, and UNKNOWN_DUNGEON maps, ; except for SILPH_CO_1F db SILPH_CO_2F db UNKNOWN_DUNGEON_1 db $FF LoadBattleTransitionTile: ; 70a4d (1c:4a4d) - ld hl, $8ff0 - ld de, BattleTransitionTile ; $4a59 + ld hl, vChars1 + $7f0 + ld de, BattleTransitionTile ld bc, (BANK(BattleTransitionTile) << 8) + $01 jp CopyVideoData BattleTransitionTile: ; 70a59 (1c:4a59) INCBIN "gfx/battle_transition.2bpp" -Func_70a69: ; 70a69 (1c:4a69) +BattleTransition_BlackScreen: ; 70a69 (1c:4a69) ld a, $ff ld [rBGP], a ; $ff47 ld [rOBP0], a ; $ff48 ld [rOBP1], a ; $ff49 ret -Func_70a72: ; 70a72 (1c:4a72) - ld a, [$cd47] +; for non-dungeon trainer battles +; called regardless of mon levels, but does an +; outward spiral if enemy is at least 3 levels +; higher than player and does an inward spiral otherwise +BattleTransition_Spiral: ; 70a72 (1c:4a72) + ld a, [wcd47] and a - jr z, .asm_70a7d - call Func_70aaa - jr .asm_70a9f -.asm_70a7d - FuncCoord 10, 10 ; $c472 - ld hl, Coord + jr z, .outwardSpiral + call BattleTransition_InwardSpiral + jr .done +.outwardSpiral + hlCoord 10, 10 ld a, $3 - ld [$d09f], a + ld [wd09f], a ld a, l - ld [$d09b], a + ld [wd09b], a ld a, h - ld [$d09a], a + ld [wd09a], a ld b, $78 -.asm_70a8f +.loop1 ld c, $3 -.asm_70a91 +.loop2 push bc - call Func_70af9 + call BattleTransition_OutwardSpiral_ pop bc dec c - jr nz, .asm_70a91 + jr nz, .loop2 call DelayFrame dec b - jr nz, .asm_70a8f -.asm_70a9f - call Func_70a69 + jr nz, .loop1 +.done + call BattleTransition_BlackScreen xor a - ld [$d09b], a - ld [$d09a], a + ld [wd09b], a + ld [wd09a], a ret -Func_70aaa: ; 70aaa (1c:4aaa) +BattleTransition_InwardSpiral: ; 70aaa (1c:4aaa) ld a, $7 - ld [wWhichTrade], a ; $cd3d + ld [wWhichTrade], a ld hl, wTileMap ld c, $11 ld de, $14 - call Func_70ae0 + call BattleTransition_InwardSpiral_ inc c - jr .asm_70ac3 -.asm_70abd + jr .skip +.loop ld de, $14 - call Func_70ae0 -.asm_70ac3 + call BattleTransition_InwardSpiral_ +.skip inc c ld de, $1 - call Func_70ae0 + call BattleTransition_InwardSpiral_ dec c dec c ld de, $ffec - call Func_70ae0 + call BattleTransition_InwardSpiral_ inc c - ld de, rIE ; $ffff - call Func_70ae0 + ld de, rIE + call BattleTransition_InwardSpiral_ dec c dec c ld a, c and a - jr nz, .asm_70abd + jr nz, .loop ret -Func_70ae0: ; 70ae0 (1c:4ae0) +BattleTransition_InwardSpiral_: ; 70ae0 (1c:4ae0) push bc -.asm_70ae1 +.loop ld [hl], $ff add hl, de push bc - ld a, [wWhichTrade] ; $cd3d + ld a, [wWhichTrade] dec a - jr nz, .asm_70af0 - call Func_70d19 + jr nz, .skip + call BattleTransition_TransferDelay3 ld a, $7 -.asm_70af0 - ld [wWhichTrade], a ; $cd3d +.skip + ld [wWhichTrade], a pop bc dec c - jr nz, .asm_70ae1 + jr nz, .loop pop bc ret -Func_70af9: ; 70af9 (1c:4af9) +BattleTransition_OutwardSpiral_: ; 70af9 (1c:4af9) ld bc, $ffec ld de, $14 - ld a, [$d09b] + ld a, [wd09b] ld l, a - ld a, [$d09a] + ld a, [wd09a] ld h, a - ld a, [$d09f] + ld a, [wd09f] cp $0 - jr z, .asm_70b25 + jr z, .zero cp $1 - jr z, .asm_70b2f + jr z, .one cp $2 - jr z, .asm_70b39 + jr z, .two cp $3 - jr z, .asm_70b43 -.asm_70b1a + jr z, .three +.done1 ld [hl], $ff -.asm_70b1c +.done2_ ld a, l - ld [$d09b], a + ld [wd09b], a ld a, h - ld [$d09a], a + ld [wd09a], a ret -.asm_70b25 +.zero dec hl ld a, [hl] cp $ff - jr nz, .asm_70b4d + jr nz, .done2 inc hl add hl, bc - jr .asm_70b1a -.asm_70b2f + jr .done1 +.one add hl, de ld a, [hl] cp $ff - jr nz, .asm_70b4d + jr nz, .done2 add hl, bc dec hl - jr .asm_70b1a -.asm_70b39 + jr .done1 +.two inc hl ld a, [hl] cp $ff - jr nz, .asm_70b4d + jr nz, .done2 dec hl add hl, de - jr .asm_70b1a -.asm_70b43 + jr .done1 +.three add hl, bc ld a, [hl] cp $ff - jr nz, .asm_70b4d + jr nz, .done2 add hl, de inc hl - jr .asm_70b1a -.asm_70b4d + jr .done1 +.done2 ld [hl], $ff - ld a, [$d09f] + ld a, [wd09f] inc a cp $4 - jr nz, .asm_70b58 + jr nz, .skip xor a -.asm_70b58 - ld [$d09f], a - jr .asm_70b1c - -Func_70b5d: ; 70b5d (1c:4b5d) - ld hl, DataTable_70b72 ; $4b72 -.asm_70b60 +.skip + ld [wd09f], a + jr .done2_ + +FlashScreen: +BattleTransition_FlashScreen_: ; 70b5d (1c:4b5d) + ld hl, BattleTransition_FlashScreenPalettes +.loop ld a, [hli] cp $1 - jr z, .asm_70b6e - ld [rBGP], a ; $ff47 + jr z, .done + ld [rBGP], a ld c, $2 call DelayFrames - jr .asm_70b60 -.asm_70b6e + jr .loop +.done dec b - jr nz, Func_70b5d + jr nz, BattleTransition_FlashScreen_ ret -DataTable_70b72: ; 70b72 (1c:4b72) +BattleTransition_FlashScreenPalettes: ; 70b72 (1c:4b72) db $F9,$FE,$FF,$FE,$F9,$E4,$90,$40,$00,$40,$90,$E4 db $01 ; terminator -Func_70b7f: ; 70b7f (1c:4b7f) +; used for low level trainer dungeon battles +BattleTransition_Shrink: ; 70b7f (1c:4b7f) ld c, $9 -.asm_70b81 +.loop push bc xor a - ld [H_AUTOBGTRANSFERENABLED], a ; $ffba - FuncCoord 0, 7 ; $c42c - ld hl, Coord - FuncCoord 0, 8 ; $c440 - ld de, Coord + ld [H_AUTOBGTRANSFERENABLED], a + hlCoord 0, 7 + deCoord 0, 8 ld bc, $ffd8 - call Func_70c12 - FuncCoord 0, 10 ; $c468 - ld hl, Coord - FuncCoord 0, 9 ; $c454 - ld de, Coord + call BattleTransition_CopyTiles1 + hlCoord 0, 10 + deCoord 0, 9 ld bc, $28 - call Func_70c12 - FuncCoord 8, 0 ; $c3a8 - ld hl, Coord - FuncCoord 9, 0 ; $c3a9 - ld de, Coord + call BattleTransition_CopyTiles1 + hlCoord 8, 0 + deCoord 9, 0 ld bc, $fffe - call Func_70c3f - FuncCoord 11, 0 ; $c3ab - ld hl, Coord - FuncCoord 10, 0 ; $c3aa - ld de, Coord + call BattleTransition_CopyTiles2 + hlCoord 11, 0 + deCoord 10, 0 ld bc, $2 - call Func_70c3f + call BattleTransition_CopyTiles2 ld a, $1 - ld [H_AUTOBGTRANSFERENABLED], a ; $ffba + ld [H_AUTOBGTRANSFERENABLED], a ld c, $6 call DelayFrames pop bc dec c - jr nz, .asm_70b81 - call Func_70a69 + jr nz, .loop + call BattleTransition_BlackScreen ld c, $a jp DelayFrames -Func_70bca: ; 70bca (1c:4bca) +; used for high level trainer dungeon battles +BattleTransition_Split: ; 70bca (1c:4bca) ld c, $9 xor a - ld [H_AUTOBGTRANSFERENABLED], a ; $ffba -.asm_70bcf + ld [H_AUTOBGTRANSFERENABLED], a +.loop push bc - FuncCoord 0, 16 ; $c4e0 - ld hl, Coord - FuncCoord 0, 17 ; $c4f4 - ld de, Coord + hlCoord 0, 16 + deCoord 0, 17 ld bc, $ffd8 - call Func_70c12 - FuncCoord 0, 1 ; $c3b4 - ld hl, Coord + call BattleTransition_CopyTiles1 + hlCoord 0, 1 ld de, wTileMap ld bc, $28 - call Func_70c12 - FuncCoord 18, 0 ; $c3b2 - ld hl, Coord - FuncCoord 19, 0 ; $c3b3 - ld de, Coord + call BattleTransition_CopyTiles1 + hlCoord 18, 0 + deCoord 19, 0 ld bc, $fffe - call Func_70c3f - FuncCoord 1, 0 ; $c3a1 - ld hl, Coord + call BattleTransition_CopyTiles2 + hlCoord 1, 0 ld de, wTileMap ld bc, $2 - call Func_70c3f - call Func_70d19 + call BattleTransition_CopyTiles2 + call BattleTransition_TransferDelay3 call Delay3 pop bc dec c - jr nz, .asm_70bcf - call Func_70a69 + jr nz, .loop + call BattleTransition_BlackScreen ld c, $a jp DelayFrames -Func_70c12: ; 70c12 (1c:4c12) +BattleTransition_CopyTiles1: ; 70c12 (1c:4c12) ld a, c - ld [wWhichTrade], a ; $cd3d + ld [wWhichTrade], a ld a, b - ld [$cd3e], a + ld [wTrainerEngageDistance], a ld c, $8 -.asm_70c1c +.loop1 push bc push hl push de @@ -526,89 +528,89 @@ Func_70c12: ; 70c12 (1c:4c12) call CopyData pop hl pop de - ld a, [wWhichTrade] ; $cd3d + ld a, [wWhichTrade] ld c, a - ld a, [$cd3e] + ld a, [wTrainerEngageDistance] ld b, a add hl, bc pop bc dec c - jr nz, .asm_70c1c + jr nz, .loop1 ld l, e ld h, d ld a, $ff ld c, $14 -.asm_70c3a +.loop2 ld [hli], a dec c - jr nz, .asm_70c3a + jr nz, .loop2 ret -Func_70c3f: ; 70c3f (1c:4c3f) +BattleTransition_CopyTiles2: ; 70c3f (1c:4c3f) ld a, c - ld [wWhichTrade], a ; $cd3d + ld [wWhichTrade], a ld a, b - ld [$cd3e], a + ld [wTrainerEngageDistance], a ld c, $9 -.asm_70c49 +.loop1 push bc push hl push de ld c, $12 -.asm_70c4e +.loop2 ld a, [hl] ld [de], a ld a, e add $14 - jr nc, .asm_70c56 + jr nc, .noCarry1 inc d -.asm_70c56 +.noCarry1 ld e, a ld a, l add $14 - jr nc, .asm_70c5d + jr nc, .noCarry2 inc h -.asm_70c5d +.noCarry2 ld l, a dec c - jr nz, .asm_70c4e + jr nz, .loop2 pop hl pop de - ld a, [wWhichTrade] ; $cd3d + ld a, [wWhichTrade] ld c, a - ld a, [$cd3e] + ld a, [wTrainerEngageDistance] ld b, a add hl, bc pop bc dec c - jr nz, .asm_70c49 + jr nz, .loop1 ld l, e ld h, d ld de, $14 ld c, $12 -.asm_70c77 +.loop3 ld [hl], $ff add hl, de dec c - jr nz, .asm_70c77 + jr nz, .loop3 ret -Func_70c7e: ; 70c7e (1c:4c7e) +; used for high level wild dungeon battles +BattleTransition_VerticalStripes: ; 70c7e (1c:4c7e) ld c, $12 ld hl, wTileMap - FuncCoord 1, 17 ; $c4f5 - ld de, Coord + deCoord 1, 17 xor a - ld [H_AUTOBGTRANSFERENABLED], a ; $ffba -.asm_70c89 + ld [H_AUTOBGTRANSFERENABLED], a +.loop push bc push hl push de push de - call Func_70caa + call BattleTransition_VerticalStripes_ pop hl - call Func_70caa - call Func_70d19 + call BattleTransition_VerticalStripes_ + call BattleTransition_TransferDelay3 pop hl ld bc, $ffec add hl, bc @@ -619,109 +621,115 @@ Func_70c7e: ; 70c7e (1c:4c7e) add hl, bc pop bc dec c - jr nz, .asm_70c89 - jp Func_70a69 + jr nz, .loop + jp BattleTransition_BlackScreen -Func_70caa: ; 70caa (1c:4caa) +BattleTransition_VerticalStripes_: ; 70caa (1c:4caa) ld c, $a -.asm_70cac +.loop ld [hl], $ff inc hl inc hl dec c - jr nz, .asm_70cac + jr nz, .loop ret -Func_70cb4: ; 70cb4 (1c:4cb4) +; used for low level wild dungeon battles +BattleTransition_HorizontalStripes: ; 70cb4 (1c:4cb4) ld c, $14 ld hl, wTileMap - FuncCoord 19, 1 ; $c3c7 - ld de, Coord + deCoord 19, 1 xor a - ld [H_AUTOBGTRANSFERENABLED], a ; $ffba -.asm_70cbf + ld [H_AUTOBGTRANSFERENABLED], a +.loop push bc push hl push de push de - call Func_70cd8 + call BattleTransition_HorizontalStripes_ pop hl - call Func_70cd8 - call Func_70d19 + call BattleTransition_HorizontalStripes_ + call BattleTransition_TransferDelay3 pop de pop hl pop bc inc hl dec de dec c - jr nz, .asm_70cbf - jp Func_70a69 + jr nz, .loop + jp BattleTransition_BlackScreen -Func_70cd8: ; 70cd8 (1c:4cd8) +BattleTransition_HorizontalStripes_: ; 70cd8 (1c:4cd8) ld c, $9 ld de, $28 -.asm_70cdd +.loop ld [hl], $ff add hl, de dec c - jr nz, .asm_70cdd + jr nz, .loop ret -Func_70ce4: ; 70ce4 (1c:4ce4) - call Func_70cfd +; used for high level wild non-dungeon battles +; makes one full circle around the screen +; by animating each half circle one at a time +BattleTransition_Circle: ; 70ce4 (1c:4ce4) + call BattleTransition_FlashScreen ld bc, $000a - ld hl, Unknown_70d61 - call Func_70d06 + ld hl, BattleTransition_HalfCircle1 + call BattleTransition_Circle_Sub1 ld c, $a ld b, $1 - ld hl, Unknown_70d93 - call Func_70d06 - jp Func_70a69 + ld hl, BattleTransition_HalfCircle2 + call BattleTransition_Circle_Sub1 + jp BattleTransition_BlackScreen -Func_70cfd: ; 70cfd (1c:4cfd) +BattleTransition_FlashScreen: ; 70cfd (1c:4cfd) ld b, $3 - call Func_70b5d + call BattleTransition_FlashScreen_ xor a - ld [H_AUTOBGTRANSFERENABLED], a ; $ffba + ld [H_AUTOBGTRANSFERENABLED], a ret -Func_70d06: ; 70d06 (1c:4d06) +BattleTransition_Circle_Sub1: ; 70d06 (1c:4d06) push bc push hl ld a, b - call Func_70d50 + call BattleTransition_Circle_Sub2 pop hl ld bc, $0005 add hl, bc - call Func_70d19 + call BattleTransition_TransferDelay3 pop bc dec c - jr nz, Func_70d06 + jr nz, BattleTransition_Circle_Sub1 ret -Func_70d19: ; 70d19 (1c:4d19) +BattleTransition_TransferDelay3: ; 70d19 (1c:4d19) ld a, $1 - ld [H_AUTOBGTRANSFERENABLED], a ; $ffba + ld [H_AUTOBGTRANSFERENABLED], a call Delay3 xor a - ld [H_AUTOBGTRANSFERENABLED], a ; $ffba + ld [H_AUTOBGTRANSFERENABLED], a ret -Func_70d24: ; 70d24 (1c:4d24) - call Func_70cfd +; used for low level wild non-dungeon battles +; makes two half circles around the screen +; by animating both half circles at the same time +BattleTransition_DoubleCircle: ; 70d24 (1c:4d24) + call BattleTransition_FlashScreen ld c, $a - ld hl, Unknown_70d61 ; $4d61 - ld de, Unknown_70d93 ; $4d93 -.asm_70d2f + ld hl, BattleTransition_HalfCircle1 + ld de, BattleTransition_HalfCircle2 +.loop push bc push hl push de push de xor a - call Func_70d50 + call BattleTransition_Circle_Sub2 pop hl ld a, $1 - call Func_70d50 + call BattleTransition_Circle_Sub2 pop hl ld bc, $5 add hl, bc @@ -729,16 +737,16 @@ Func_70d24: ; 70d24 (1c:4d24) ld d, h pop hl add hl, bc - call Func_70d19 + call BattleTransition_TransferDelay3 pop bc dec c - jr nz, .asm_70d2f - jp Func_70a69 + jr nz, .loop + jp BattleTransition_BlackScreen -Func_70d50: ; 70d50 (1c:4d50) - ld [wWhichTrade], a ; $cd3d +BattleTransition_Circle_Sub2: ; 70d50 (1c:4d50) + ld [wWhichTrade], a ld a, [hli] - ld [$cd3e], a + ld [wTrainerEngageDistance], a ld a, [hli] ld e, a ld a, [hli] @@ -746,166 +754,146 @@ Func_70d50: ; 70d50 (1c:4d50) ld a, [hli] ld h, [hl] ld l, a - jp Func_70dc5 + jp BattleTransition_Circle_Sub3 -Unknown_70d61: ; 70d61 (1c:4d61) +BattleTransition_HalfCircle1: ; 70d61 (1c:4d61) db $01 - dw Unknown_70dfe - FuncCoord 18, 6 - dw Coord + dw BattleTransition_CircleData1 + dwCoord 18, 6 db $01 - dw Unknown_70e04 - FuncCoord 19, 3 - dw Coord + dw BattleTransition_CircleData2 + dwCoord 19, 3 db $01 - dw Unknown_70e0e - FuncCoord 18, 0 - dw Coord + dw BattleTransition_CircleData3 + dwCoord 18, 0 db $01 - dw Unknown_70e20 - FuncCoord 14, 0 - dw Coord + dw BattleTransition_CircleData4 + dwCoord 14, 0 db $01 - dw Unknown_70e2e - FuncCoord 10, 0 - dw Coord + dw BattleTransition_CircleData5 + dwCoord 10, 0 db $00 - dw Unknown_70e2e - FuncCoord 9, 0 - dw Coord + dw BattleTransition_CircleData5 + dwCoord 9, 0 db $00 - dw Unknown_70e20 - FuncCoord 5, 0 - dw Coord + dw BattleTransition_CircleData4 + dwCoord 5, 0 db $00 - dw Unknown_70e0e - FuncCoord 1, 0 - dw Coord + dw BattleTransition_CircleData3 + dwCoord 1, 0 db $00 - dw Unknown_70e04 - FuncCoord 0, 3 - dw Coord + dw BattleTransition_CircleData2 + dwCoord 0, 3 db $00 - dw Unknown_70dfe - FuncCoord 1, 6 - dw Coord + dw BattleTransition_CircleData1 + dwCoord 1, 6 -Unknown_70d93: ; 70d93 (1c:4d93) +BattleTransition_HalfCircle2: ; 70d93 (1c:4d93) db $00 - dw Unknown_70dfe - FuncCoord 1, 11 - dw Coord + dw BattleTransition_CircleData1 + dwCoord 1, 11 db $00 - dw Unknown_70e04 - FuncCoord 0, 14 - dw Coord + dw BattleTransition_CircleData2 + dwCoord 0, 14 db $00 - dw Unknown_70e0e - FuncCoord 1, 17 - dw Coord + dw BattleTransition_CircleData3 + dwCoord 1, 17 db $00 - dw Unknown_70e20 - FuncCoord 5, 17 - dw Coord + dw BattleTransition_CircleData4 + dwCoord 5, 17 db $00 - dw Unknown_70e2e - FuncCoord 9, 17 - dw Coord + dw BattleTransition_CircleData5 + dwCoord 9, 17 db $01 - dw Unknown_70e2e - FuncCoord 10, 17 - dw Coord + dw BattleTransition_CircleData5 + dwCoord 10, 17 db $01 - dw Unknown_70e20 - FuncCoord 14, 17 - dw Coord + dw BattleTransition_CircleData4 + dwCoord 14, 17 db $01 - dw Unknown_70e0e - FuncCoord 18, 17 - dw Coord + dw BattleTransition_CircleData3 + dwCoord 18, 17 db $01 - dw Unknown_70e04 - FuncCoord 19, 14 - dw Coord + dw BattleTransition_CircleData2 + dwCoord 19, 14 db $01 - dw Unknown_70dfe - FuncCoord 18, 11 - dw Coord + dw BattleTransition_CircleData1 + dwCoord 18, 11 -Func_70dc5: ; 70dc5 (1c:4dc5) +BattleTransition_Circle_Sub3: ; 70dc5 (1c:4dc5) push hl ld a, [de] ld c, a inc de -.asm_70dc9 +.loop1 ld [hl], $ff - ld a, [$cd3e] + ld a, [wTrainerEngageDistance] and a - jr z, .asm_70dd4 + jr z, .skip1 inc hl - jr .asm_70dd5 -.asm_70dd4 + jr .skip2 +.skip1 dec hl -.asm_70dd5 +.skip2 dec c - jr nz, .asm_70dc9 + jr nz, .loop1 pop hl - ld a, [wWhichTrade] ; $cd3d + ld a, [wWhichTrade] and a ld bc, $14 - jr z, .asm_70de5 + jr z, .skip3 ld bc, $ffec -.asm_70de5 +.skip3 add hl, bc ld a, [de] inc de cp $ff ret z and a - jr z, Func_70dc5 + jr z, BattleTransition_Circle_Sub3 ld c, a -.asm_70def - ld a, [$cd3e] +.loop2 + ld a, [wTrainerEngageDistance] and a - jr z, .asm_70df8 + jr z, .skip4 dec hl - jr .asm_70df9 -.asm_70df8 + jr .skip5 +.skip4 inc hl -.asm_70df9 +.skip5 dec c - jr nz, .asm_70def - jr Func_70dc5 + jr nz, .loop2 + jr BattleTransition_Circle_Sub3 -Unknown_70dfe: ; 70dfe (1c:4dfe) +BattleTransition_CircleData1: ; 70dfe (1c:4dfe) db $02,$03,$05,$04,$09,$FF -Unknown_70e04: ; 70e04 (1c:4e04) +BattleTransition_CircleData2: ; 70e04 (1c:4e04) db $01,$01,$02,$02,$04,$02,$04,$02,$03,$FF -Unknown_70e0e: ; 70e0e (1c:4e0e) +BattleTransition_CircleData3: ; 70e0e (1c:4e0e) db $02,$01,$03,$01,$04,$01,$04,$01,$04,$01,$03,$01,$02,$01,$01,$01,$01,$FF -Unknown_70e20: ; 70e20 (1c:4e20) +BattleTransition_CircleData4: ; 70e20 (1c:4e20) db $04,$01,$04,$00,$03,$01,$03,$00,$02,$01,$02,$00,$01,$FF -Unknown_70e2e: ; 70e2e (1c:4e2e) +BattleTransition_CircleData5: ; 70e2e (1c:4e2e) db $04,$00,$03,$00,$03,$00,$02,$00,$02,$00,$01,$00,$01,$00,$01,$FF diff --git a/engine/battle/4.asm b/engine/battle/4.asm index b19b3b49..db6614cc 100755 --- a/engine/battle/4.asm +++ b/engine/battle/4.asm @@ -1,12 +1,12 @@ Func_128d8: ; 128d8 (4:68d8) - ld a, [W_YCOORD] ; $d361 + ld a, [W_YCOORD] ; wd361 ld b, a - ld a, [W_CURMAPHEIGHT] ; $d368 + ld a, [W_CURMAPHEIGHT] ; wd368 call Func_128ea ret z - ld a, [W_XCOORD] ; $d362 + ld a, [W_XCOORD] ; wd362 ld b, a - ld a, [W_CURMAPWIDTH] ; $d369 + ld a, [W_CURMAPWIDTH] ; wd369 Func_128ea: ; 128ea (4:68ea) add a @@ -15,20 +15,20 @@ Func_128ea: ; 128ea (4:68ea) inc b ret -Func_128ef: ; 128ef (4:68ef) - call Load16BitRegisters +DrawHP: ; 128ef (4:68ef) + call GetPredefRegisters ld a, $1 jr asm_128fb Func_128f6: ; 128f6 (4:68f6) - call Load16BitRegisters + call GetPredefRegisters ld a, $2 asm_128fb: ; 128fb (4:68fb) - ld [wListMenuID], a ; $cf94 + ld [wListMenuID], a ; wListMenuID push hl - ld a, [$cf99] + ld a, [wcf99] ld b, a - ld a, [$cf9a] + ld a, [wcf9a] ld c, a or b jr nz, .asm_12913 @@ -39,12 +39,11 @@ asm_128fb: ; 128fb (4:68fb) ld d, a jp Func_12924 .asm_12913 - ld a, [$cfba] + ld a, [wcfba] ld d, a - ld a, [$cfbb] + ld a, [wcfbb] ld e, a - ld a, $26 - call Predef ; indirect jump to UpdateHPBar_LoadRegisters (f9dc (3:79dc)) + predef HPBarLength ld a, $6 ld d, a ld c, a @@ -65,12 +64,12 @@ Func_12924: ; 12924 (4:6924) ld bc, $15 .asm_1293a add hl, bc - ld de, $cf99 + ld de, wcf99 ld bc, $203 call PrintNumber ld a, "/" ld [hli], a - ld de, $cfba + ld de, wcfba ld bc, $203 call PrintNumber pop hl diff --git a/engine/battle/4_2.asm b/engine/battle/4_2.asm index de9aa7be..c5c62796 100755 --- a/engine/battle/4_2.asm +++ b/engine/battle/4_2.asm @@ -1,16 +1,16 @@ Func_137aa: ; 137aa (4:77aa) - ld a, [W_ISLINKBATTLE] ; $d12b + ld a, [W_ISLINKBATTLE] ; W_ISLINKBATTLE cp $4 jr nz, .asm_137eb - ld a, [W_ENEMYMONNUMBER] ; $cfe8 - ld hl, $d8a8 - ld bc, $2c + ld a, [wEnemyMonPartyPos] + ld hl, wEnemyMon1Status + ld bc, wEnemyMon2 - wEnemyMon1 call AddNTimes - ld a, [W_ENEMYMONSTATUS] ; $cfe9 + ld a, [wEnemyMonStatus] ; wcfe9 ld [hl], a call ClearScreen callab Func_372d6 - ld a, [$cf0b] + ld a, [wcf0b] cp $1 ld de, YouWinText jr c, .asm_137de @@ -18,62 +18,59 @@ Func_137aa: ; 137aa (4:77aa) jr z, .asm_137de ld de, DrawText .asm_137de - FuncCoord 6, 8 ; $c446 - ld hl, Coord + hlCoord 6, 8 call PlaceString ld c, $c8 call DelayFrames jr .asm_1380a .asm_137eb - ld a, [$cf0b] + ld a, [wcf0b] and a jr nz, .asm_13813 - ld hl, $cce5 + ld hl, wcce5 ld a, [hli] or [hl] inc hl or [hl] jr z, .asm_1380a - ld de, wPlayerMoney + 2 ; $d349 + ld de, wPlayerMoney + 2 ; wd349 ld c, $3 - ld a, $b - call Predef ; indirect jump to Func_f81d (f81d (3:781d)) + predef AddBCDPredef ld hl, PickUpPayDayMoneyText call PrintText .asm_1380a xor a - ld [$ccd4], a - ld a, $2a - call Predef ; indirect jump to Func_3ad1c (3ad1c (e:6d1c)) + ld [wccd4], a + predef Func_3ad1c .asm_13813 xor a - ld [$d083], a - ld [$c02a], a - ld [W_ISINBATTLE], a ; $d057 - ld [W_BATTLETYPE], a ; $d05a - ld [W_MOVEMISSED], a ; $d05f - ld [W_CUROPPONENT], a ; $d059 - ld [$d11f], a - ld [$d120], a - ld [$d078], a - ld hl, $cc2b + ld [wd083], a + ld [wc02a], a + ld [W_ISINBATTLE], a ; W_ISINBATTLE + ld [W_BATTLETYPE], a ; wd05a + ld [W_MOVEMISSED], a ; W_MOVEMISSED + ld [W_CUROPPONENT], a ; wd059 + ld [wd11f], a + ld [wd120], a + ld [wd078], a + ld hl, wcc2b ld [hli], a ld [hli], a ld [hli], a ld [hl], a - ld [wListScrollOffset], a ; $cc36 - ld hl, $d060 + ld [wListScrollOffset], a ; wcc36 + ld hl, wd060 ld b, $18 .asm_1383e ld [hli], a dec b jr nz, .asm_1383e - ld hl, $d72c + ld hl, wd72c set 0, [hl] call WaitForSoundToFinish call GBPalWhiteOut ld a, $ff - ld [$d42f], a + ld [wd42f], a ret YouWinText: ; 13853 (4:7853) @@ -90,10 +87,10 @@ PickUpPayDayMoneyText: ; 1386b (4:786b) db "@" Func_13870: ; 13870 (4:7870) - ld a, [$cc57] + ld a, [wcc57] and a ret nz - ld a, [$d736] + ld a, [wd736] and a ret nz callab Func_c49d @@ -105,37 +102,36 @@ Func_13870: ; 13870 (4:7870) .asm_13888 callab Func_128d8 jr z, .asm_13884 - ld a, [$d0db] + ld a, [wd0db] and a jr z, .asm_1389e dec a jr z, .asm_13905 - ld [$d0db], a + ld [wd0db], a .asm_1389e - FuncCoord 9, 9 ; $c45d - ld hl, Coord + hlCoord 9, 9 ld c, [hl] ld a, [W_GRASSTILE] cp c - ld a, [W_GRASSRATE] ; $d887 + ld a, [W_GRASSRATE] ; W_GRASSRATE jr z, .asm_138c4 ld a, $14 cp c - ld a, [W_WATERRATE] ; $d8a4 + ld a, [W_WATERRATE] ; wEnemyMon1Species jr z, .asm_138c4 - ld a, [W_CURMAP] ; $d35e + ld a, [W_CURMAP] ; W_CURMAP cp REDS_HOUSE_1F jr c, .asm_13912 - ld a, [W_CURMAPTILESET] ; $d367 + ld a, [W_CURMAPTILESET] ; W_CURMAPTILESET cp FOREST ; Viridian Forest/Safari Zone jr z, .asm_13912 - ld a, [W_GRASSRATE] ; $d887 + ld a, [W_GRASSRATE] ; W_GRASSRATE .asm_138c4 ld b, a - ld a, [H_RAND1] ; $ffd3 + ld a, [hRandomAdd] cp b jr nc, .asm_13912 - ld a, [H_RAND2] ; $ffd4 + ld a, [hRandomSub] ld b, a ld hl, WildMonEncounterSlotChances ; $7918 .asm_138d0 @@ -146,31 +142,30 @@ Func_13870: ; 13870 (4:7870) jr .asm_138d0 .asm_138d7 ld c, [hl] - ld hl, W_GRASSMONS ; $d888 - FuncCoord 8, 9 ; $c45c - ld a, [Coord] + ld hl, W_GRASSMONS ; wd888 + aCoord 8, 9 cp $14 jr nz, .asm_138e5 - ld hl, W_WATERMONS ; $d8a5 (aliases: W_ENEMYMON1HP) + ld hl, W_WATERMONS ; wd8a5 (aliases: wEnemyMon1HP) .asm_138e5 ld b, $0 add hl, bc ld a, [hli] - ld [W_CURENEMYLVL], a ; $d127 + ld [W_CURENEMYLVL], a ; W_CURENEMYLVL ld a, [hl] - ld [$cf91], a - ld [W_ENEMYMONID], a - ld a, [$d0db] + ld [wcf91], a + ld [wEnemyMonSpecies2], a + ld a, [wd0db] and a jr z, .asm_13916 - ld a, [W_PARTYMON1_LEVEL] ; $d18c + ld a, [wPartyMon1Level] ; wPartyMon1Level ld b, a - ld a, [W_CURENEMYLVL] ; $d127 + ld a, [W_CURENEMYLVL] ; W_CURENEMYLVL cp b jr c, .asm_13912 jr .asm_13916 .asm_13905 - ld [$d0db], a + ld [wd0db], a ld a, $d2 ld [H_DOWNARROWBLINKCNT2], a ; $ff8c call EnableAutoTextBoxDrawing @@ -202,14 +197,14 @@ WildMonEncounterSlotChances: ; 13918 (4:7918) RecoilEffect_: ; 1392c (4:792c) ld a, [H_WHOSETURN] ; $fff3 and a - ld a, [W_PLAYERMOVENUM] ; $cfd2 - ld hl, W_PLAYERMONMAXHP ; $d023 + ld a, [W_PLAYERMOVENUM] ; wcfd2 + ld hl, wBattleMonMaxHP ; wd023 jr z, .asm_1393d - ld a, [W_ENEMYMOVENUM] ; $cfcc - ld hl, W_ENEMYMONMAXHP ; $cff4 + ld a, [W_ENEMYMOVENUM] ; W_ENEMYMOVENUM + ld hl, wEnemyMonMaxHP ; wEnemyMonMaxHP .asm_1393d ld d, a - ld a, [W_DAMAGE] ; $d0d7 + ld a, [W_DAMAGE] ; W_DAMAGE ld b, a ld a, [W_DAMAGE + 1] ld c, a @@ -252,19 +247,16 @@ RecoilEffect_: ; 1392c (4:792c) ld [hli], a ld [hl], a .asm_13982 - FuncCoord 10, 9 ; $c45e - ld hl, Coord + hlCoord 10, 9 ld a, [H_WHOSETURN] ; $fff3 and a ld a, $1 jr z, .asm_13990 - FuncCoord 2, 2 ; $c3ca - ld hl, Coord + hlCoord 2, 2 xor a .asm_13990 - ld [wListMenuID], a ; $cf94 - ld a, $48 - call Predef ; indirect jump to UpdateHPBar (fa1d (3:7a1d)) + ld [wListMenuID], a ; wListMenuID + predef UpdateHPBar2 ld hl, HitWithRecoilText ; $799e jp PrintText HitWithRecoilText: ; 1399e (4:799e) @@ -272,8 +264,8 @@ HitWithRecoilText: ; 1399e (4:799e) db "@" ConversionEffect_: ; 139a3 (4:79a3) - ld hl, W_ENEMYMONTYPE1 - ld de, W_PLAYERMONTYPE1 + ld hl, wEnemyMonType1 + ld de, wBattleMonType1 ld a, [H_WHOSETURN] and a ld a, [W_ENEMYBATTSTATUS1] @@ -312,18 +304,18 @@ HazeEffect_: ; 139da (4:79da) call Func_13a43 ld hl, wEnemyMonAttackMod call Func_13a43 - ld hl, $cd12 - ld de, W_PLAYERMONATK + ld hl, wcd12 + ld de, wBattleMonAttack call Func_13a4a - ld hl, $cd26 - ld de, W_ENEMYMONATTACK + ld hl, wcd26 + ld de, wEnemyMonAttack call Func_13a4a - ld hl, W_ENEMYMONSTATUS + ld hl, wEnemyMonStatus ld de, wEnemySelectedMove ld a, [H_WHOSETURN] and a jr z, .asm_13a09 - ld hl, W_PLAYERMONSTATUS + ld hl, wBattleMonStatus dec de .asm_13a09 @@ -338,7 +330,7 @@ HazeEffect_: ; 139da (4:79da) xor a ld [W_PLAYERDISABLEDMOVE], a ld [W_ENEMYDISABLEDMOVE], a - ld hl, $ccee + ld hl, wccee ld [hli], a ld [hl], a ld hl, W_PLAYERBATTSTATUS1 @@ -384,25 +376,25 @@ StatusChangesEliminatedText: ; 13a53 (4:7a53) db "@" GetTrainerName_: ; 13a58 (4:7a58) - ld hl, W_GRASSRATE ; $d887 - ld a, [W_ISLINKBATTLE] ; $d12b + ld hl, W_GRASSRATE ; W_GRASSRATE + ld a, [W_ISLINKBATTLE] ; W_ISLINKBATTLE and a jr nz, .rival - ld hl, W_RIVALNAME ; $d34a - ld a, [W_TRAINERCLASS] ; $d031 + ld hl, W_RIVALNAME ; wd34a + ld a, [W_TRAINERCLASS] ; wd031 cp SONY1 jr z, .rival cp SONY2 jr z, .rival cp SONY3 jr z, .rival - ld [$d0b5], a + ld [wd0b5], a ld a, TRAINER_NAME ld [W_LISTTYPE], a ld a, $e - ld [$d0b7], a + ld [wPredefBank], a call GetName - ld hl, $cd6d + ld hl, wcd6d .rival ld de, W_TRAINERNAME ld bc, $d diff --git a/engine/battle/5.asm b/engine/battle/5.asm index 4dbfb4df..6c7a642e 100755 --- a/engine/battle/5.asm +++ b/engine/battle/5.asm @@ -1,13 +1,13 @@ SubstituteEffectHandler: ; 17dad (5:7dad) ld c, 50 call DelayFrames - ld hl, W_PLAYERMONMAXHP + ld hl, wBattleMonMaxHP ld de, wPlayerSubstituteHP ld bc, W_PLAYERBATTSTATUS2 ld a, [$fff3] ;whose turn? and a jr z, .notEnemy - ld hl, W_ENEMYMONMAXHP + ld hl, wEnemyMonMaxHP ld de, wEnemySubstituteHP ld bc, W_ENEMYBATTSTATUS2 .notEnemy @@ -42,7 +42,7 @@ SubstituteEffectHandler: ; 17dad (5:7dad) ld h, b ld l, c set 4, [hl] ;set bit 4 of flags, user now has substitute - ld a, [$d355] ;load options + ld a, [W_OPTIONS] ;load options bit 7, a ;battle animation is enabled? ld hl, Func_3fba8 ; $7ba8 ;animation enabled: 0F:7BA8 ld b, BANK(Func_3fba8) diff --git a/engine/battle/9.asm b/engine/battle/9.asm index 79624d34..dc72825c 100755 --- a/engine/battle/9.asm +++ b/engine/battle/9.asm @@ -1,5 +1,5 @@ Func_27d6b: ; 27d6b (9:7d6b) - call Load16BitRegisters + call GetPredefRegisters push hl call GetMonHeader pop hl @@ -26,9 +26,9 @@ asm_27d8c: ; 27d8c (9:7d8c) jp FillMemory Func_27d98: ; 27d98 (9:7d98) - call Load16BitRegisters + call GetPredefRegisters push hl - ld a, [W_PLAYERMOVETYPE] ; $cfd5 + ld a, [W_PLAYERMOVETYPE] ; wcfd5 asm_27d9f: ; 27d9f (9:7d9f) add a ld hl, TypeNamePointers ; $7dae @@ -54,7 +54,7 @@ SaveTrainerName: ; 27e4a (9:7e4a) ld a,[hli] ld h,[hl] ld l,a - ld de,$CD6D + ld de,wcd6d .CopyCharacter ld a,[hli] ld [de],a @@ -157,11 +157,11 @@ CooltrainerFName: ; 27f79 (9:7f79) db "COOLTRAINER♀@" FocusEnergyEffect_: ; 27f86 (9:7f86) - ld hl, W_PLAYERBATTSTATUS2 ; $d063 + ld hl, W_PLAYERBATTSTATUS2 ; W_PLAYERBATTSTATUS2 ld a, [H_WHOSETURN] ; $fff3 and a jr z, .asm_27f91 - ld hl, W_ENEMYBATTSTATUS2 ; $d068 + ld hl, W_ENEMYBATTSTATUS2 ; W_ENEMYBATTSTATUS2 .asm_27f91 bit 2, [hl] ; is mon already using focus energy? jr nz, .asm_27fa5 diff --git a/engine/battle/a.asm b/engine/battle/a.asm index 2e409b57..fd3ef40b 100755 --- a/engine/battle/a.asm +++ b/engine/battle/a.asm @@ -1,15 +1,15 @@ LeechSeedEffect_: ; 2bea9 (a:7ea9) callab MoveHitTest - ld a, [W_MOVEMISSED] ; $d05f + ld a, [W_MOVEMISSED] ; W_MOVEMISSED and a jr nz, .asm_2bee7 - ld hl, W_ENEMYBATTSTATUS2 ; $d068 - ld de, W_ENEMYMONTYPE1 ; $cfea (aliases: W_ENEMYMONTYPES) + ld hl, W_ENEMYBATTSTATUS2 ; W_ENEMYBATTSTATUS2 + ld de, wEnemyMonType1 ; wcfea (aliases: wEnemyMonType) ld a, [H_WHOSETURN] ; $fff3 and a jr z, .asm_2bec8 - ld hl, W_PLAYERBATTSTATUS2 ; $d063 - ld de, W_PLAYERMONTYPE1 ; $d019 (aliases: W_PLAYERMONTYPES) + ld hl, W_PLAYERBATTSTATUS2 ; W_PLAYERBATTSTATUS2 + ld de, wBattleMonType1 ; wd019 (aliases: wBattleMonType) .asm_2bec8 ld a, [de] cp GRASS diff --git a/engine/battle/animations.asm b/engine/battle/animations.asm index aaa65bbb..cc598de4 100755 --- a/engine/battle/animations.asm +++ b/engine/battle/animations.asm @@ -223,7 +223,7 @@ PlayAnimation: ; 780f1 (1e:40f1) rla sla c rla - ld [$D09F],a ; tile select + ld [wd09f],a ; tile select ld a,[hli] ; sound ld [wAnimSoundID],a ; store sound ld a,[hli] ; subanimation ID @@ -243,7 +243,7 @@ PlayAnimation: ; 780f1 (1e:40f1) push hl ld a,[rOBP0] push af - ld a,[$CC79] + ld a,[wcc79] ld [rOBP0],a call LoadAnimationTileset call LoadSubanimation @@ -328,7 +328,7 @@ GetSubanimationTransform2: ; 781ca (1e:41ca) ; loads tile patterns for battle animations LoadAnimationTileset: ; 781d2 (1e:41d2) - ld a,[$D09F] ; tileset select + ld a,[wd09f] ; tileset select add a add a ld hl,AnimationTilesetPointers @@ -336,14 +336,14 @@ LoadAnimationTileset: ; 781d2 (1e:41d2) ld d,0 add hl,de ld a,[hli] - ld [$D07D],a ; number of tiles + ld [wd07d],a ; number of tiles ld a,[hli] ld e,a ld a,[hl] ld d,a ; de = address of tileset - ld hl,$8310 ; destination address in VRAM + ld hl,vSprites + $310 ld b, BANK(AnimationTileset1) ; ROM bank - ld a,[$D07D] + ld a,[wd07d] ld c,a ; number of tiles jp CopyVideoData ; load tileset @@ -394,7 +394,7 @@ MoveAnimation: ; 78d5e (1e:4d5e) .MoveAnimation ; check if battle animations are disabled in the options - ld a,[$D355] + ld a,[W_OPTIONS] bit 7,a jr nz,.AnimationsDisabled call ShareMoveAnimations @@ -408,11 +408,11 @@ MoveAnimation: ; 78d5e (1e:4d5e) .AnimationFinished call WaitForSoundToFinish xor a - ld [$D096],a - ld [$D09B],a - ld [$D08B],a + ld [W_SUBANIMSUBENTRYADDR],a + ld [wd09b],a + ld [W_SUBANIMTRANSFORM],a dec a - ld [$CF07],a + ld [wAnimSoundID],a pop af pop bc pop de @@ -443,7 +443,7 @@ ShareMoveAnimations: ; 78da6 (1e:4da6) ret Func_78dbd: ; 78dbd (1e:4dbd) - ld a,[$CC5B] + ld a,[wcc5b] and a ret z dec a @@ -517,14 +517,14 @@ Func_78e01: ; 78e01 (1e:4e01) ret Func_78e23: ; 78e23 (1e:4e23) - ld a, [$cf1b] + ld a, [wcf1b] and a ld a, $e4 jr z, .asm_78e47 ld a, $f0 - ld [$cc79], a + ld [wcc79], a ld b, $e4 - ld a, [W_ANIMATIONID] ; $d07c + ld a, [W_ANIMATIONID] ; W_ANIMATIONID cp $aa jr c, .asm_78e3f cp $ae @@ -538,7 +538,7 @@ Func_78e23: ; 78e23 (1e:4e23) ret .asm_78e47 ld a, $e4 - ld [$cc79], a + ld [wcc79], a ld [rOBP0], a ; $ff48 ld a, $6c ld [rOBP1], a ; $ff49 @@ -616,7 +616,7 @@ AnimationCleanOAM: ; 78ec8 (1e:4ec8) push bc push af call DelayFrame - call CleanLCD_OAM + call ClearSprites pop af pop bc pop de @@ -724,7 +724,7 @@ AnimationIdSpecialEffects: ; 78ef5 (1e:4ef5) db $FF ; terminator DoBallTossSpecialEffects: ; 78f3e (1e:4f3e) - ld a,[$CF91] + ld a,[wcf91] cp a,3 ; is it a Master Ball or Ultra Ball? jr nc,.skipFlashingEffect .flashingEffect ; do a flashing effect if it's Master Ball or Ultra Ball @@ -742,7 +742,7 @@ DoBallTossSpecialEffects: ; 78f3e (1e:4f3e) ld a,[W_ISINBATTLE] cp a,02 ; is it a trainer battle? jr z,.isTrainerBattle - ld a,[$d11e] + ld a,[wd11e] cp a,$10 ; is the enemy pokemon the Ghost Marowak? ret nz ; if the enemy pokemon is the Ghost Marowak, make it dodge during the last 3 frames @@ -754,8 +754,7 @@ DoBallTossSpecialEffects: ; 78f3e (1e:4f3e) cp a,1 ret nz .moveGhostMarowakLeft - FuncCoord 17,0 - ld hl,Coord + hlCoord 17, 0 ld de,20 ld bc,$0707 ; 7 rows and 7 columns .loop @@ -792,9 +791,9 @@ DoBallShakeSpecialEffects: ; 78f96 (1e:4f96) dec a ret nz ; if it's the end of the ball shaking subanimation, check if more shakes are left and restart the subanimation - ld a,[$cd3d] ; number of shakes + ld a,[wWhichTrade] ; number of shakes dec a ; decrement number of shakes - ld [$cd3d],a + ld [wWhichTrade],a ret z ; if there are shakes left, restart the subanimation ld a,[W_SUBANIMSUBENTRYADDR] @@ -831,11 +830,9 @@ DoRockSlideSpecialEffects: ; 78fd9 (1e:4fd9) ; if the subaninmation counter is between 8 and 11, shake the screen horizontally and vertically .shakeScreen ld b,1 - ld a,$24 - call Predef ; shake horizontally + predef Func_48125 ; shake horizontally ld b,1 - ld a,$21 - jp Predef ; shake vertically + predef_jump Func_480ff ; shake vertically FlashScreenEveryEightFrameBlocks: ; 78ff7 (1e:4ff7) ld a,[W_SUBANIMCOUNTER] @@ -856,8 +853,7 @@ DoExplodeSpecialEffects: ; 79009 (1e:5009) cp a,1 ; is it the end of the subanimation? jr nz,FlashScreenEveryFourFrameBlocks ; if it's the end of the subanimation, make the attacking pokemon disappear - FuncCoord 1, 5 ; $c405 - ld hl,Coord + hlCoord 1, 5 jp AnimationHideMonPic ; make pokemon disappear ; flashes the screen when subanimation counter is 1 modulo 4 @@ -975,7 +971,7 @@ BallMoveDistances2: ; 790b3 (1e:50b3) ; so that there are two musical notes flying towards the defending pokemon DoGrowlSpecialEffects: ; 790bc (1e:50bc) ld hl,wOAMBuffer ; OAM buffer - ld de,$c310 + ld de,wOAMBuffer + $10 ld bc,$10 call CopyData ; copy the musical note graphic ld a,[W_SUBANIMCOUNTER] @@ -1094,8 +1090,8 @@ CallWithTurnFlipped: ; 79155 (1e:5155) ; flashes the screen for an extended period (48 frames) AnimationFlashScreenLong: ; 79165 (1e:5165) ld a,3 ; cycle through the palettes 3 times - ld [$D08A],a - ld a,[$cf1b] ; running on SGB? + ld [wd08a],a + ld a,[wcf1b] ; running on SGB? and a ld hl,FlashScreenLongMonochrome jr z,.loop @@ -1110,9 +1106,9 @@ AnimationFlashScreenLong: ; 79165 (1e:5165) call FlashScreenLongDelay jr .innerLoop .endOfPalettes - ld a,[$D08A] + ld a,[wd08a] dec a - ld [$D08A],a + ld [wd08a],a pop hl jr nz,.loop ret @@ -1152,8 +1148,8 @@ FlashScreenLongSGB: ; 7919b (1e:519b) ; causes a delay of 2 frames for the first cycle ; causes a delay of 1 frame for the second and third cycles FlashScreenLongDelay: ; 791a8 (1e:51a8) - ld a,[$D08A] - cp a,4 ; never true since [$D08A] starts at 3 + ld a,[wd08a] + cp a,4 ; never true since [wd08a] starts at 3 ld c,4 jr z,.delayFrames cp a,3 @@ -1215,7 +1211,7 @@ Func_791f9: ; 791f9 (1e:51f9) ld bc, $4040 Func_791fc: ; 791fc (1e:51fc) - ld a, [$cf1b] + ld a, [wcf1b] and a ld a, b jr z, .asm_79204 @@ -1227,39 +1223,37 @@ Func_791fc: ; 791fc (1e:51fc) ld b, $5 Func_79209: ; 79209 (1e:5209) - ld a, $21 - jp Predef ; indirect jump to Func_480ff (480ff (12:40ff)) + predef_jump Func_480ff AnimationShakeScreen: ; 7920e (1e:520e) ; Shakes the screen for a while. Used in Earthquake/Fissure/etc. animations. ld b, $8 Func_79210: ; 79210 (1e:5210) - ld a, $24 - jp Predef ; indirect jump to Func_48125 (48125 (12:4125)) + predef_jump Func_48125 AnimationWaterDropletsEverywhere: ; 79215 (1e:5215) ; Draws water droplets all over the screen and makes them ; scroll. It's hard to describe, but it's the main animation ; in Surf/Mist/Toxic. xor a - ld [$d09f], a + ld [wd09f], a call LoadAnimationTileset ld d, $20 ld a, $f0 - ld [W_BASECOORDX], a ; $d081 + ld [W_BASECOORDX], a ; wd081 ld a, $71 - ld [$d09f], a + ld [wd09f], a .asm_79228 ld a, $10 - ld [W_BASECOORDY], a ; $d082 + ld [W_BASECOORDY], a ; wd082 ld a, $0 - ld [$d08a], a + ld [wd08a], a call Func_79246 ld a, $18 - ld [W_BASECOORDY], a ; $d082 + ld [W_BASECOORDY], a ; wd082 ld a, $20 - ld [$d08a], a + ld [wd08a], a call Func_79246 dec d jr nz, .asm_79228 @@ -1268,24 +1262,24 @@ AnimationWaterDropletsEverywhere: ; 79215 (1e:5215) Func_79246: ; 79246 (1e:5246) ld hl, wOAMBuffer .asm_79249 - ld a, [W_BASECOORDY] ; $d082 + ld a, [W_BASECOORDY] ; wd082 ld [hli], a - ld a, [W_BASECOORDX] ; $d081 + ld a, [W_BASECOORDX] ; wd081 add $1b - ld [W_BASECOORDX], a ; $d081 + ld [W_BASECOORDX], a ; wd081 ld [hli], a - ld a, [$d09f] + ld a, [wd09f] ld [hli], a xor a ld [hli], a - ld a, [W_BASECOORDX] ; $d081 + ld a, [W_BASECOORDX] ; wd081 cp $90 jr c, .asm_79249 sub $a8 - ld [W_BASECOORDX], a ; $d081 - ld a, [W_BASECOORDY] ; $d082 + ld [W_BASECOORDX], a ; wd081 + ld a, [W_BASECOORDY] ; wd082 add $10 - ld [W_BASECOORDY], a ; $d082 + ld [W_BASECOORDY], a ; wd082 cp $70 jr c, .asm_79249 call AnimationCleanOAM @@ -1296,15 +1290,15 @@ AnimationSlideMonUp: ; 7927a (1e:527a) ld c, $7 ld a, [H_WHOSETURN] and a - ld hl, $c419 - ld de, $c405 + ld hl, wTileMap + $79 + ld de, wTileMap + $65 ld a, $30 jr z, .asm_79291 - ld hl, $c3c0 - ld de, $c3ac + ld hl, wTileMap + $20 + ld de, wTileMap + $c ld a, $ff .asm_79291 - ld [$d09f], a + ld [wd09f], a jp Func_792bf AnimationSlideMonDown: ; 79297 (1e:5297) @@ -1328,7 +1322,7 @@ AnimationSlideMonOut: ; 792af (1e:52af) ; Slides the mon's sprite out of the screen horizontally. ld e, $8 ld a, $3 - ld [W_SUBANIMTRANSFORM], a ; $d08b + ld [W_SUBANIMTRANSFORM], a ; W_SUBANIMTRANSFORM jp Func_795f8 AnimationSlideEnemyMonOut: ; 792b9 (1e:52b9) @@ -1356,13 +1350,13 @@ Func_792bf: ; 792bf (1e:52bf) jr nz, .asm_792c4 ld a, [H_WHOSETURN] and a - ld hl, $c47d + ld hl, wTileMap + $dd jr z, .asm_792e2 - ld hl, $c424 + ld hl, wTileMap + $84 .asm_792e2 - ld a, [$d09f] + ld a, [wd09f] inc a - ld [$d09f], a + ld [wd09f], a ld c, $7 .asm_792eb ld [hli], a @@ -1409,7 +1403,7 @@ Func_79329: ; 79329 (1e:5329) add $8 ld e, a ld [hli], a - ld a, [W_BASECOORDX] ; $d081 + ld a, [W_BASECOORDX] ; wd081 ld [hli], a ld a, d ld [hli], a @@ -1424,7 +1418,7 @@ Func_79337: ; 79337 (1e:5337) Func_79339: ; 79339 (1e:5339) ld de, $4 .asm_7933c - ld a, [$d08a] + ld a, [wd08a] ld b, a ld a, [hl] add b @@ -1447,7 +1441,7 @@ Func_79350: ; 79350 (1e:5350) Func_79352: ; 79352 (1e:5352) ld de, $4 .asm_79355 - ld a, [$d08a] + ld a, [wd08a] ld b, a ld a, [hl] add b @@ -1488,10 +1482,10 @@ AnimationBlinkMon: ; 7936f (1e:536f) AnimationFlashMonPic: ; 79389 (1e:5389) ; Flashes the mon's sprite on and off - ld a, [W_PLAYERMONID] - ld [$ceea], a - ld a, [$cfe5] - ld [$cee9], a + ld a, [wBattleMonSpecies] + ld [wHPBarMaxHP + 1], a + ld a, [wEnemyMonSpecies] + ld [wHPBarMaxHP], a jp Func_79793 AnimationFlashEnemyMonPic: ; 79398 (1e:5398) @@ -1517,11 +1511,11 @@ AnimationShakeBackAndForth: ; 793b1 (1e:53b1) ; The mon's sprite disappears after this animation. ld a, [H_WHOSETURN] and a - ld hl, $c404 - ld de, $c406 + ld hl, wTileMap + $64 + ld de, wTileMap + $66 jr z, .asm_793c2 - ld hl, $c3ab - ld de, $c3ad + ld hl, wTileMap + $b + ld de, wTileMap + $d .asm_793c2 xor a @@ -1565,11 +1559,9 @@ AnimationMoveMonHorizontally: ; 793f9 (1e:53f9) call AnimationHideMonPic ld a, [H_WHOSETURN] ; $fff3 and a - FuncCoord 2, 5 ; $c406 - ld hl, Coord + hlCoord 2, 5 jr z, .asm_79407 - FuncCoord 11, 0 ; $c3ab - ld hl, Coord + hlCoord 11, 0 .asm_79407 xor a push hl @@ -1597,14 +1589,14 @@ AnimationSpiralBallsInward: ; 79424 (1e:5424) and a jr z, .asm_79435 ld a, $d8 - ld [$d08a], a + ld [wd08a], a ld a, $50 - ld [W_SUBANIMTRANSFORM], a ; $d08b + ld [W_SUBANIMTRANSFORM], a ; W_SUBANIMTRANSFORM jr .asm_7943c .asm_79435 xor a - ld [$d08a], a - ld [W_SUBANIMTRANSFORM], a ; $d08b + ld [wd08a], a + ld [W_SUBANIMTRANSFORM], a ; W_SUBANIMTRANSFORM .asm_7943c ld d, $7a ld c, $3 @@ -1619,12 +1611,12 @@ AnimationSpiralBallsInward: ; 79424 (1e:5424) ld a, [hl] cp $ff jr z, .asm_7946f - ld a, [$d08a] + ld a, [wd08a] add [hl] ld [de], a inc de inc hl - ld a, [W_SUBANIMTRANSFORM] ; $d08b + ld a, [W_SUBANIMTRANSFORM] ; W_SUBANIMTRANSFORM add [hl] ld [de], a inc hl @@ -1680,24 +1672,20 @@ AnimationSquishMonPic: ; 794a1 (1e:54a1) ld a, [H_WHOSETURN] ; $fff3 and a jr z, .asm_794b1 - FuncCoord 16, 0 ; $c3b0 - ld hl, Coord - FuncCoord 14, 0 ; $c3ae - ld de, Coord + hlCoord 16, 0 + deCoord 14, 0 jr .asm_794b7 .asm_794b1 - FuncCoord 5, 5 ; $c409 - ld hl, Coord - FuncCoord 3, 5 ; $c407 - ld de, Coord + hlCoord 5, 5 + deCoord 3, 5 .asm_794b7 push de xor a - ld [$d09f], a + ld [wd09f], a call Func_794d4 pop hl ld a, $1 - ld [$d09f], a + ld [wd09f], a call Func_794d4 pop bc dec c @@ -1712,7 +1700,7 @@ Func_794d4: ; 794d4 (1e:54d4) push bc push hl ld c, $3 - ld a, [$d09f] + ld a, [wd09f] cp $0 jr nz, .asm_794e7 call Func_7985b @@ -1743,9 +1731,9 @@ AnimationShootBallsUpward: ; 794f9 (1e:54f9) ld bc, $3028 .asm_79506 ld a, b - ld [W_BASECOORDY], a ; $d082 + ld [W_BASECOORDY], a ; wd082 ld a, c - ld [W_BASECOORDX], a ; $d081 + ld [W_BASECOORDX], a ; wd081 ld bc, $501 call Func_79517 jp AnimationCleanOAM @@ -1753,13 +1741,13 @@ AnimationShootBallsUpward: ; 794f9 (1e:54f9) Func_79517: ; 79517 (1e:5517) push bc xor a - ld [$d09f], a + ld [wd09f], a call LoadAnimationTileset pop bc ld d, $7a ld hl, wOAMBuffer push bc - ld a, [W_BASECOORDY] ; $d082 + ld a, [W_BASECOORDY] ; wd082 ld e, a .asm_7952a call Func_79329 @@ -1768,12 +1756,12 @@ Func_79517: ; 79517 (1e:5517) call DelayFrame pop bc ld a, b - ld [$d08a], a + ld [wd08a], a .asm_79538 push bc ld hl, wOAMBuffer .asm_7953c - ld a, [W_BASECOORDY] ; $d082 + ld a, [W_BASECOORDY] ; wd082 add $8 ld e, a ld a, [hl] @@ -1784,9 +1772,9 @@ Func_79517: ; 79517 (1e:5517) jr .asm_79554 .asm_7954b ld [hl], $0 - ld a, [$d08a] + ld a, [wd08a] dec a - ld [$d08a], a + ld [wd08a], a .asm_79554 ld de, $4 add hl, de @@ -1794,7 +1782,7 @@ Func_79517: ; 79517 (1e:5517) jr nz, .asm_7953c call DelayFrames pop bc - ld a, [$d08a] + ld a, [wd08a] and a jr nz, .asm_79538 ret @@ -1838,7 +1826,7 @@ UpwardBallsAnimXCoordinatesEnemyTurn: ; 79598 (1e:5598) AnimationMinimizeMon: ; 7959f (1e:559f) ; Changes the mon's sprite to a mini black sprite. Used by the ; Minimize animation. - ld hl, $c6e8 + ld hl, wTempPic push hl xor a ld bc, $310 @@ -1883,7 +1871,7 @@ AnimationSlideMonDownAndHide: ; 795c9 (1e:55c9) dec c jr nz, .asm_795cd call AnimationHideMonPic - ld hl, $c6e8 + ld hl, wTempPic ld bc, $0310 xor a call FillMemory @@ -1893,12 +1881,10 @@ Func_795f8: ; 795f8 (1e:55f8) ld a, [H_WHOSETURN] ; $fff3 and a jr z, .asm_79602 - FuncCoord 12, 0 ; $c3ac - ld hl, Coord + hlCoord 12, 0 jr .asm_79605 .asm_79602 - FuncCoord 0, 5 ; $c404 - ld hl, Coord + hlCoord 0, 5 .asm_79605 ld d, $8 .asm_79607 @@ -1924,7 +1910,7 @@ Func_795f8: ; 795f8 (1e:55f8) pop de dec b jr nz, .asm_7960a - ld a, [W_SUBANIMTRANSFORM] ; $d08b + ld a, [W_SUBANIMTRANSFORM] ; W_SUBANIMTRANSFORM ld c, a call DelayFrames pop hl @@ -1960,17 +1946,17 @@ AnimationSlideMonHalfLeft: ; 79645 (1e:5645) Func_79652: ; 79652 (1e:5652) ld a, [H_WHOSETURN] ; $fff3 and a - ld hl, $9310 + ld hl, vBackPic jr z, .asm_7965d - ld hl, $9000 + ld hl, vFrontPic .asm_7965d - ld de, $c6e8 - ld bc, $31 + ld de, wTempPic + ld bc, 7 * 7 jp CopyVideoData AnimationWavyScreen: ; 79666 (1e:5666) ; used in Psywave/Psychic etc. - ld hl, $9800 + ld hl, vBGMap0 call Func_79e0d call Delay3 xor a @@ -2005,7 +1991,7 @@ AnimationWavyScreen: ; 79666 (1e:5666) ld [H_AUTOBGTRANSFERENABLED], a call Delay3 call LoadScreenTilesFromBuffer2 - ld hl, $9c00 + ld hl, vBGMap1 call Func_79e0d ret @@ -2031,38 +2017,38 @@ WavyScreenLineOffsets: ; 796bf (1e:56bf) AnimationSubstitute: ; 796e0 (1e:56e0) ; Changes the pokemon's sprite to the mini sprite - ld hl, $c6e8 + ld hl, wTempPic xor a ld bc, $0310 call FillMemory ld a, [$fff3] and a jr z, .asm_79715 ; 0x796ed $26 - ld hl, SlowbroSprite ; $4780 ; facing down sprite - ld de, $c808 + ld hl, SlowbroSprite ; facing down sprite + ld de, wTempPic + $120 call CopySlowbroSpriteData - ld hl, SlowbroSprite + $10 ; $4790 - ld de, $c878 + ld hl, SlowbroSprite + $10 + ld de, wTempPic + $120 + $70 call CopySlowbroSpriteData - ld hl, SlowbroSprite + $20 ; $47a0 - ld de, $c818 + ld hl, SlowbroSprite + $20 + ld de, wTempPic + $120 + $10 call CopySlowbroSpriteData - ld hl, SlowbroSprite + $30 ; $47b0 - ld de, $c888 + ld hl, SlowbroSprite + $30 + ld de, wTempPic + $120 + $10 + $70 call CopySlowbroSpriteData - jr .asm_79739 ; 0x79713 $24 + jr .asm_79739 .asm_79715 - ld hl, SlowbroSprite + $40 ; $47c0 ; facing up sprite - ld de, $c878 + ld hl, SlowbroSprite + $40 ; facing up sprite + ld de, wTempPic + $120 + $70 call CopySlowbroSpriteData - ld hl, SlowbroSprite + $50 ; $47d0 - ld de, $c8e8 + ld hl, SlowbroSprite + $50 + ld de, wTempPic + $120 + $e0 call CopySlowbroSpriteData - ld hl, SlowbroSprite + $60 ; $47e0 - ld de, $c888 + ld hl, SlowbroSprite + $60 + ld de, wTempPic + $120 + $80 call CopySlowbroSpriteData - ld hl, SlowbroSprite + $70 ; $47f0 - ld de, $c8f8 + ld hl, SlowbroSprite + $70 + ld de, wTempPic + $120 + $f0 call CopySlowbroSpriteData .asm_79739 call Func_79652 @@ -2076,11 +2062,11 @@ CopySlowbroSpriteData: ; 7973f (1e:573f) Func_79747: ; 79747 (1e:5747) ld a, [H_WHOSETURN] ; $fff3 and a - ld hl, $ccf7 - ld a, [W_PLAYERBATTSTATUS2] ; $d063 + ld hl, wccf7 + ld a, [W_PLAYERBATTSTATUS2] ; W_PLAYERBATTSTATUS2 jr z, .asm_79758 - ld hl, $ccf3 - ld a, [W_ENEMYBATTSTATUS2] ; $d068 + ld hl, wccf3 + ld a, [W_ENEMYBATTSTATUS2] ; W_ENEMYBATTSTATUS2 .asm_79758 push hl bit 4, a @@ -2117,40 +2103,38 @@ AnimationBoundUpAndDown: ; 7977a (1e:577a) AnimationTransformMon: ; 79787 (1e:5787) ; Redraws this mon's sprite as the back/front sprite of the opposing mon. ; Used in Transform. - ld a, [$cfe5] - ld [$ceea], a - ld a, [W_PLAYERMONID] - ld [$cee9], a + ld a, [wEnemyMonSpecies] + ld [wHPBarMaxHP + 1], a + ld a, [wBattleMonSpecies] + ld [wHPBarMaxHP], a Func_79793: ; 79793 (1e:5793) ld a, [H_WHOSETURN] ; $fff3 and a jr z, .asm_797b0 - ld a, [$cee9] - ld [$cf91], a - ld [$d0b5], a + ld a, [wHPBarMaxHP] + ld [wcf91], a + ld [wd0b5], a xor a ld [W_SPRITEFLIPPED], a call GetMonHeader - FuncCoord 12, 0 ; $c3ac - ld hl, Coord + hlCoord 12, 0 call LoadFrontSpriteByMonIndex jr .asm_797d3 .asm_797b0 - ld a, [$cfd9] + ld a, [wBattleMonSpecies2] push af - ld a, [$ceea] - ld [$cfd9], a - ld [$d0b5], a + ld a, [wHPBarMaxHP + 1] + ld [wBattleMonSpecies2], a + ld [wd0b5], a call GetMonHeader - ld a, $4 - call Predef ; indirect jump to LoadMonBackSprite (3f103 (f:7103)) + predef LoadMonBackPic xor a call Func_79842 call Func_79820 call Func_79aae pop af - ld [$cfd9], a + ld [wBattleMonSpecies2], a .asm_797d3 ld b, $1 jp GoPAL_SET @@ -2168,13 +2152,13 @@ AnimationHideEnemyMonPic: ; 797d8 (1e:57d8) Func_797e8: ; 797e8 (1e:57e8) push bc push de - ld [$d09f], a + ld [wd09f], a call LoadAnimationTileset pop de pop bc xor a ld e, a - ld [W_BASECOORDX], a ; $d081 + ld [W_BASECOORDX], a ; wd081 ld hl, wOAMBuffer .asm_797fa call Func_79329 @@ -2291,28 +2275,28 @@ Func_7986f: ; 7986f (1e:586f) ld a,[H_WHOSETURN] and a jr nz,.next - ld a,[W_PLAYERMONID] ; get number of current monster + ld a,[wBattleMonSpecies] ; get number of current monster jr .Continue .next - ld a,[$CFE5] + ld a,[wEnemyMonSpecies] .Continue push hl call GetCryData ld b,a pop hl - ld a,[$C0F1] + ld a,[wc0f1] add [hl] - ld [$C0F1],a + ld [wc0f1],a inc hl - ld a,[$C0F2] + ld a,[wc0f2] add [hl] - ld [$C0F2],a + ld [wc0f2],a jr .done .NotCryMove ld a,[hli] - ld [$C0F1],a + ld [wc0f1],a ld a,[hli] - ld [$C0F2],a + ld [wc0f2],a .done ld a,b ret @@ -2509,8 +2493,8 @@ Func_79aae: ; 79aae (1e:5aae) jr asm_79acb Func_79aba: ; 79aba (1e:5aba) - call Load16BitRegisters - ld a, [$cd6c] + call GetPredefRegisters + ld a, [wcd6c] and a jr nz, .asm_79ac8 ld de, Unknown_79b02 ; $5b02 @@ -2599,7 +2583,7 @@ AnimationLeavesFalling: ; 79c74 (1e:5c74) ; in Razor Leaf's animation. ld a, [$ff48] push af - ld a, [$cc79] + ld a, [wcc79] ld [$ff48], a ld d, $37 ld a, $3 @@ -2616,7 +2600,7 @@ AnimationPetalsFalling: ; 79c8a (1e:5c8a) ld a, $14 ld [W_SUBANIMTRANSFORM], a call Func_79c97 - jp CleanLCD_OAM + jp ClearSprites Func_79c97: ; 79c97 (1e:5c97) ld c, a @@ -2636,7 +2620,7 @@ Func_79c97: ; 79c97 (1e:5c97) push hl push de ld a, [hl] - ld [$d08a], a + ld [wd08a], a call Func_79d16 call Func_79cdb pop de @@ -2645,7 +2629,7 @@ Func_79c97: ; 79c97 (1e:5c97) ld e, l ld d, h pop hl - ld a, [$d08a] + ld a, [wd08a] ld [hli], a pop bc dec c @@ -2668,7 +2652,7 @@ Func_79cdb: ; 79cdb (1e:5cdb) ld a, $a0 .asm_79ce8 ld [hli], a - ld a, [$d08a] + ld a, [wd08a] ld b, a ld de, Unknown_79d0d and $7f @@ -2702,7 +2686,7 @@ Unknown_79d0d: ; 79d0d (1e:5d0d) db $00,$01,$03,$05,$07,$09,$0B,$0D,$0F Func_79d16: ; 79d16 (1e:5d16) - ld a, [$d08a] + ld a, [wd08a] inc a ld b, a and $7f @@ -2712,11 +2696,11 @@ Func_79d16: ; 79d16 (1e:5d16) and $80 xor $80 .asm_79d26 - ld [$d08a], a + ld [wd08a], a ret Func_79d2a: ; 79d2a (1e:5d2a) - ld hl, $c301 + ld hl, wOAMBuffer + $01 ld de, Unknown_79d3e ld a, [W_SUBANIMTRANSFORM] ld c, a @@ -2751,46 +2735,46 @@ Unknown_79d63: ; 79d63 (1e:5d63) db $00,$84,$06,$81,$02,$88,$01,$83,$05,$89,$09,$80,$07,$87,$03,$82,$04,$85,$08,$86 AnimationShakeEnemyHUD: ; 79d77 (1e:5d77) - ld de, $9310 - ld hl, $8000 - ld bc, $0031 + ld de, vBackPic + ld hl, vSprites + ld bc, 7 * 7 call CopyVideoData xor a ld [$ffae], a - ld hl, $9800 + ld hl, vBGMap0 call Func_79e0d ld a, $90 ld [$ffb0], a - ld hl, $9b20 + ld hl, vBGMap0 + $320 call Func_79e0d ld a, $38 ld [$ffb0], a call Func_792fd - ld hl, $9800 + ld hl, vBGMap0 call Func_79e0d call AnimationHideMonPic call Delay3 ld de, $0208 call Func_79de9 call AnimationShowMonPic - call CleanLCD_OAM + call ClearSprites ld a, $90 ld [$ffb0], a - ld hl, $9c00 + ld hl, vBGMap1 call Func_79e0d xor a ld [$ffb0], a call SaveScreenTilesToBuffer1 - ld hl, $9800 + ld hl, vBGMap0 call Func_79e0d call ClearScreen call Delay3 call LoadScreenTilesFromBuffer1 - ld hl, $9c00 + ld hl, vBGMap1 jp Func_79e0d Func_79dda: ; 79dda (1e:5dda) - call Load16BitRegisters + call GetPredefRegisters ld a, c ld [H_DOWNARROWBLINKCNT1], a ; $ff8b ld a, b @@ -2830,7 +2814,7 @@ TossBallAnimation: ; 79e16 (1e:5e16) ld a,[W_ISINBATTLE] cp a,2 jr z,.BlockBall ; if in trainer battle, play different animation - ld a,[$D11E] + ld a,[wd11e] ld b,a ; upper nybble: how many animations (from PokeBallAnimations) to play @@ -2843,11 +2827,11 @@ TossBallAnimation: ; 79e16 (1e:5e16) ; store these for later ld a,b and a,$F - ld [$CD3D],a + ld [wWhichTrade],a ld hl,.PokeBallAnimations ; choose which toss animation to use - ld a,[$CF91] + ld a,[wcf91] cp a,POKE_BALL ld b,TOSS_ANIM jr z,.done @@ -2885,7 +2869,7 @@ TossBallAnimation: ; 79e16 (1e:5e16) Func_79e6a: ; 79e6a (1e:5e6a) call WaitForSoundToFinish - ld a, [$d05b] + ld a, [wd05b] and $7f ret z cp $a @@ -2901,8 +2885,8 @@ Func_79e6a: ; 79e6a (1e:5e6a) ld b, $1 ld c, (SFX_08_51 - SFX_Headers_08) / 3 .asm_79e8b - ld [$c0f1], a + ld [wc0f1], a ld a, b - ld [$c0f2], a + ld [wc0f2], a ld a, c jp PlaySound diff --git a/engine/battle/b.asm b/engine/battle/b.asm index 7269e48c..24a75af4 100755 --- a/engine/battle/b.asm +++ b/engine/battle/b.asm @@ -1,5 +1,5 @@ DisplayEffectiveness: ; 2fb7b (b:7b7b) - ld a, [$D05B] + ld a, [wd05b] and a, $7F cp a, $0A ret z diff --git a/engine/battle/b_2.asm b/engine/battle/b_2.asm index b71ca40d..e343f1aa 100755 --- a/engine/battle/b_2.asm +++ b/engine/battle/b_2.asm @@ -86,13 +86,13 @@ DuplicateBitsTable: ; 2fea8 (b:7ea8) PayDayEffect_ ; 2feb8 (b:7eb8) xor a - ld hl, $cd6d + ld hl, wcd6d ld [hli], a ld a, [$fff3] and a - ld a, [$d022] + ld a, [wBattleMonLevel] jr z, .asm_2fec8 ; 0x2fec3 $3 - ld a, [$cff3] + ld a, [wEnemyMonLevel] .asm_2fec8 add a ld [$ff98], a @@ -118,10 +118,9 @@ PayDayEffect_ ; 2feb8 (b:7eb8) ld a, [$ff99] add b ld [hl], a - ld de, $cce7 + ld de, wcce7 ld c, $3 - ld a, $b - call Predef + predef AddBCDPredef ld hl, CoinsScatteredText ; $7f04 jp PrintText diff --git a/engine/battle/c.asm b/engine/battle/c.asm index b93cc273..c1347d24 100755 --- a/engine/battle/c.asm +++ b/engine/battle/c.asm @@ -21,19 +21,19 @@ ShroudedInMistText: ; 33f52 (c:7f52) db "@" OneHitKOEffect_: ; 33f57 (c:7f57) - ld hl, W_DAMAGE ; $d0d7 + ld hl, W_DAMAGE ; W_DAMAGE xor a ld [hli], a ld [hl], a ; set the damage output to zero dec a - ld [$d05e], a - ld hl, $d02a - ld de, $cffb + ld [wd05e], a + ld hl, wBattleMonSpeed + 1 + ld de, wEnemyMonSpeed + 1 ld a, [H_WHOSETURN] ; $fff3 and a jr z, .asm_33f72 - ld hl, $cffb - ld de, $d02a + ld hl, wEnemyMonSpeed + 1 + ld de, wBattleMonSpeed + 1 .asm_33f72 ld a, [de] dec de @@ -45,14 +45,14 @@ OneHitKOEffect_: ; 33f57 (c:7f57) ld a, [hl] sbc b jr c, .asm_33f8a - ld hl, W_DAMAGE ; $d0d7 + ld hl, W_DAMAGE ; W_DAMAGE ld a, $ff ld [hli], a ld [hl], a ld a, $2 - ld [$d05e], a + ld [wd05e], a ret .asm_33f8a ld a, $1 - ld [W_MOVEMISSED], a ; $d05f + ld [W_MOVEMISSED], a ; W_MOVEMISSED ret diff --git a/engine/battle/core.asm b/engine/battle/core.asm index a19919f4..b3495a29 100755 --- a/engine/battle/core.asm +++ b/engine/battle/core.asm @@ -94,16 +94,15 @@ EffectsArray5B: ; 3c049 (f:4049) Func_3c04c: ; 3c04c (f:404c) call Func_3ec92 ld a, $1 - ld [$d125], a + ld [wd125], a call DisplayTextBoxID - FuncCoord 1, 5 ; $c405 - ld hl, Coord + hlCoord 1, 5 ld bc, $307 call ClearScreenArea call DisableLCD call LoadFontTilePatterns call Func_3ee58 - ld hl, $9800 + ld hl, vBGMap0 ld bc, $400 .asm_3c06f ld a, $7f @@ -113,7 +112,7 @@ Func_3c04c: ; 3c04c (f:404c) or c jr nz, .asm_3c06f ld hl, wTileMap - ld de, $9800 + ld de, vBGMap0 ld b, $12 .asm_3c07f ld c, $14 @@ -139,7 +138,7 @@ Func_3c04c: ; 3c04c (f:404c) ld [$ffd7], a ld [$ffaf], a dec a - ld [$cfcb], a + ld [wcfcb], a call Delay3 xor a ld [H_AUTOBGTRANSFERENABLED], a ; $ffba @@ -171,10 +170,8 @@ Func_3c04c: ; 3c04c (f:404c) ld [H_AUTOBGTRANSFERENABLED], a ; $ffba ld a, $31 ld [$ffe1], a - FuncCoord 1, 5 ; $c405 - ld hl, Coord - ld a, $1 - call Predef ; indirect jump to Func_3f0c6 (3f0c6 (f:70c6)) + hlCoord 1, 5 + predef Func_3f0c6 xor a ld [$ffb0], a ld [rWY], a ; $ff4a @@ -183,14 +180,14 @@ Func_3c04c: ; 3c04c (f:404c) call Delay3 ld b, $1 call GoPAL_SET - call ResetLCD_OAM + call HideSprites ld hl, PrintBeginningBattleText ld b, BANK(PrintBeginningBattleText) jp Bankswitch Func_3c0ff: ; 3c0ff (f:40ff) push bc - ld hl, $c301 + ld hl, wOAMBuffer + $01 ld c, $15 ld de, $4 .asm_3c108 @@ -216,12 +213,12 @@ Func_3c110: ; 3c110 (f:4110) Func_3c11e: ; 3c11e (f:411e) xor a - ld [W_PLAYERMONSALIVEFLAGS], a - ld [$ccf5], a - ld [$cd6a], a + ld [wPartyAliveFlags], a + ld [wccf5], a + ld [wcd6a], a inc a - ld [$d11d], a - ld hl, W_ENEMYMON1HP ; $d8a5 + ld [wd11d], a + ld hl, wEnemyMon1HP ; wd8a5 ld bc, $2b ld d, $3 .asm_3c134 @@ -233,29 +230,29 @@ Func_3c11e: ; 3c11e (f:411e) jr .asm_3c134 .asm_3c13c ld a, d - ld [$cc3e], a - ld a, [W_ISINBATTLE] ; $d057 + ld [wcc3e], a + ld a, [W_ISINBATTLE] ; W_ISINBATTLE dec a call nz, Func_3c92a ld c, $28 call DelayFrames call SaveScreenTilesToBuffer1 .asm_3c14f - call AnyPlayerPokemonAliveCheck + call AnyPartyAlive ld a, d and a jp z, HandlePlayerBlackOut call LoadScreenTilesFromBuffer1 - ld a, [W_BATTLETYPE] ; $d05a + ld a, [W_BATTLETYPE] ; wd05a and a jp z, Func_3c1ad .asm_3c161 call InitBattleMenu ret c - ld a, [$cd6a] + ld a, [wcd6a] and a jr z, .asm_3c161 - ld a, [W_NUMSAFARIBALLS] ; $da47 + ld a, [W_NUMSAFARIBALLS] ; W_NUMSAFARIBALLS and a jr nz, .asm_3c17a call LoadScreenTilesFromBuffer1 @@ -263,24 +260,24 @@ Func_3c11e: ; 3c11e (f:411e) jp PrintText .asm_3c17a callab PrintSafariZoneBattleText - ld a, [$cffb] + ld a, [wEnemyMonSpeed + 1] add a ld b, a jp c, asm_3c202 - ld a, [$cce9] + ld a, [wcce9] and a jr z, .asm_3c194 srl b srl b .asm_3c194 - ld a, [$cce8] + ld a, [wcce8] and a jr z, .asm_3c1a0 sla b jr nc, .asm_3c1a0 ld b, $ff .asm_3c1a0 - call GenRandom + call Random cp b jr nc, .asm_3c14f jr asm_3c202 @@ -291,53 +288,50 @@ OutOfSafariBallsText: ; 3c1a8 (f:41a8) Func_3c1ad: ; 3c1ad (f:41ad) xor a - ld [wWhichPokemon], a ; $cf92 + ld [wWhichPokemon], a ; wWhichPokemon .asm_3c1b1 call Func_3ca97 jr nz, .asm_3c1bc - ld hl, wWhichPokemon ; $cf92 + ld hl, wWhichPokemon ; wWhichPokemon inc [hl] jr .asm_3c1b1 .asm_3c1bc - ld a, [wWhichPokemon] ; $cf92 - ld [wPlayerMonNumber], a ; $cc2f + ld a, [wWhichPokemon] ; wWhichPokemon + ld [wPlayerMonNumber], a ; wPlayerMonNumber inc a - ld hl, W_NUMINPARTY ; $d163 + ld hl, wPartyCount ; wPartyCount ld c, a ld b, $0 add hl, bc ld a, [hl] - ld [$cf91], a - ld [$cfd9], a + ld [wcf91], a + ld [wBattleMonSpecies2], a call LoadScreenTilesFromBuffer1 - FuncCoord 1, 5 ; $c405 - ld hl, Coord + hlCoord 1, 5 ld a, $9 call Func_3c8df call SaveScreenTilesToBuffer1 - ld a, [wWhichPokemon] ; $cf92 + ld a, [wWhichPokemon] ; wWhichPokemon ld c, a ld b, $1 push bc - ld hl, W_PLAYERMONSALIVEFLAGS - ld a, $10 - call Predef ; indirect jump to HandleBitArray (f666 (3:7666)) - ld hl, $ccf5 + ld hl, wPartyAliveFlags + predef FlagActionPredef + ld hl, wccf5 pop bc - ld a, $10 - call Predef ; indirect jump to HandleBitArray (f666 (3:7666)) + predef FlagActionPredef call Func_3cba6 call LoadScreenTilesFromBuffer1 call Func_3cc91 jr MainInBattleLoop asm_3c202: ; 3c202 (f:4202) call LoadScreenTilesFromBuffer1 - ld a, [W_ISLINKBATTLE] ; $d12b + ld a, [W_ISLINKBATTLE] ; W_ISLINKBATTLE cp $4 ld hl, WildRanText jr nz, .asm_3c216 xor a - ld [$cf0b], a + ld [wcf0b], a ld hl, EnemyRanText .asm_3c216 call PrintText @@ -359,53 +353,53 @@ EnemyRanText: ; 3c22e (f:422e) MainInBattleLoop: ; 3c233 (f:4233) call ReadPlayerMonCurHPAndStatus - ld hl, W_PLAYERMONCURHP + ld hl, wBattleMonHP ld a, [hli] or [hl] jp z, HandlePlayerMonFainted ; test if current player mon is fainted - ld hl, $cfe6 + ld hl, wEnemyMonHP ld a, [hli] or [hl] jp z, HandleEnemyMonFainted call SaveScreenTilesToBuffer1 xor a - ld [$d11d], a - ld a, [$d063] + ld [wd11d], a + ld a, [W_PLAYERBATTSTATUS2] and $60 jr nz, .asm_3c2a6 ; 0x3c252 $52 - ld hl, $d067 + ld hl, W_ENEMYBATTSTATUS1 res 3, [hl] - ld hl, $d062 + ld hl, W_PLAYERBATTSTATUS1 res 3, [hl] ld a, [hl] and $12 jr nz, .asm_3c2a6 ; 0x3c261 $43 call InitBattleMenu ; show battle menu ret c - ld a, [$d078] + ld a, [wd078] and a ret nz - ld a, [$d018] + ld a, [wBattleMonStatus] and $27 jr nz, .asm_3c2a6 ; 0x3c271 $33 - ld a, [$d062] + ld a, [W_PLAYERBATTSTATUS1] and $21 jr nz, .asm_3c2a6 ; 0x3c278 $2c - ld a, [$d067] + ld a, [W_ENEMYBATTSTATUS1] bit 5, a jr z, .asm_3c288 ; 0x3c27f $7 ld a, $ff - ld [$ccdc], a + ld [wPlayerSelectedMove], a jr .asm_3c2a6 ; 0x3c286 $1e .asm_3c288 - ld a, [$cd6a] + ld a, [wcd6a] and a jr nz, .asm_3c2a6 ; 0x3c28c $18 - ld [$ccdb], a + ld [wMoveMenuType], a inc a - ld [$d07c], a + ld [W_ANIMATIONID], a xor a - ld [$cc35], a + ld [wcc35], a call MoveSelectionMenu push af call LoadScreenTilesFromBuffer1 @@ -417,7 +411,7 @@ MainInBattleLoop: ; 3c233 (f:4233) ld a, [W_ISLINKBATTLE] cp $4 jr nz, .noLinkBattle - ld a, [$cc3e] + ld a, [wcc3e] cp $f jp z, asm_3c202 cp $e @@ -426,11 +420,11 @@ MainInBattleLoop: ; 3c233 (f:4233) jr z, .noLinkBattle sub $4 jr c, .noLinkBattle - ld a, [$d062] + ld a, [W_PLAYERBATTSTATUS1] bit 5, a jr z, .asm_3c2dd ; 0x3c2c9 $12 - ld a, [$cc2e] - ld hl, W_PLAYERMONMOVES + ld a, [wPlayerMoveListIndex] + ld hl, wBattleMonMoves ld c, a ld b, $0 add hl, bc @@ -464,8 +458,8 @@ MainInBattleLoop: ; 3c233 (f:4233) cp COUNTER jr z, .playerMovesFirst .compareSpeed - ld de, W_PLAYERMONSPEED ; player speed value - ld hl, W_ENEMYMONSPEED ; enemy speed value + ld de, wBattleMonSpeed ; player speed value + ld hl, wEnemyMonSpeed ; enemy speed value ld c, $2 call StringCmp ; compare speed values jr z, .speedEqual @@ -475,12 +469,12 @@ MainInBattleLoop: ; 3c233 (f:4233) ld a, [$ffaa] cp $2 jr z, .invertOutcome - call GenRandomInBattle + call BattleRandom cp $80 jr c, .playerMovesFirst jr .enemyMovesFirst .invertOutcome - call GenRandomInBattle + call BattleRandom cp $80 jr c, .enemyMovesFirst jr .playerMovesFirst @@ -490,7 +484,7 @@ MainInBattleLoop: ; 3c233 (f:4233) callab TrainerAI jr c, .AIActionUsedEnemyFirst call Func_3e6bc ; execute enemy move - ld a, [$d078] + ld a, [wd078] and a ret nz ld a, b @@ -501,7 +495,7 @@ MainInBattleLoop: ; 3c233 (f:4233) jp z, HandleEnemyMonFainted call Func_3cd5a call Func_3d65e ; execute player move - ld a, [$d078] + ld a, [wd078] and a ret nz ld a, b @@ -514,7 +508,7 @@ MainInBattleLoop: ; 3c233 (f:4233) jp MainInBattleLoop .playerMovesFirst call Func_3d65e ; execute player move - ld a, [$d078] + ld a, [wd078] and a ret nz ld a, b @@ -528,7 +522,7 @@ MainInBattleLoop: ; 3c233 (f:4233) callab TrainerAI jr c, .AIActionUsedPlayerFirst call Func_3e6bc ; execute enemy move - ld a, [$d078] + ld a, [wd078] and a ret nz ld a, b @@ -542,13 +536,13 @@ MainInBattleLoop: ; 3c233 (f:4233) jp MainInBattleLoop HandlePoisonBurnLeechSeed: ; 3c3bd (f:43bd) - ld hl, W_PLAYERMONCURHP ; $d015 - ld de, W_PLAYERMONSTATUS ; $d018 + ld hl, wBattleMonHP ; wd015 + ld de, wBattleMonStatus ; wBattleMonStatus ld a, [H_WHOSETURN] ; $fff3 and a jr z, .playersTurn - ld hl, W_ENEMYMONCURHP ; $cfe6 - ld de, W_ENEMYMONSTATUS ; $cfe9 + ld hl, wEnemyMonHP ; wEnemyMonHP + ld de, wEnemyMonStatus ; wcfe9 .playersTurn ld a, [de] and (1 << BRN) | (1 << PSN) @@ -562,17 +556,17 @@ HandlePoisonBurnLeechSeed: ; 3c3bd (f:43bd) .poisoned call PrintText xor a - ld [$cc5b], a + ld [wcc5b], a ld a,BURN_PSN_ANIM call PlayMoveAnimation ; play burn/poison animation pop hl call HandlePoisonBurnLeechSeed_DecreaseOwnHP .notBurnedOrPoisoned - ld de, W_PLAYERBATTSTATUS2 ; $d063 + ld de, W_PLAYERBATTSTATUS2 ; W_PLAYERBATTSTATUS2 ld a, [H_WHOSETURN] ; $fff3 and a jr z, .playersTurn2 - ld de, W_ENEMYBATTSTATUS2 ; $d068 + ld de, W_ENEMYBATTSTATUS2 ; W_ENEMYBATTSTATUS2 .playersTurn2 ld a, [de] add a @@ -583,7 +577,7 @@ HandlePoisonBurnLeechSeed: ; 3c3bd (f:43bd) xor $1 ld [H_WHOSETURN], a ; $fff3 xor a - ld [$cc5b], a + ld [wcc5b], a ld a,ABSORB call PlayMoveAnimation ; play leech seed animation (from opposing mon) pop af @@ -643,13 +637,13 @@ HandlePoisonBurnLeechSeed_DecreaseOwnHP: ; 3c43d (f:443d) jr nz, .nonZeroDamage inc c ; damage is at least 1 .nonZeroDamage - ld hl, W_PLAYERBATTSTATUS3 ; $d064 - ld de, W_PLAYERTOXICCOUNTER ; $d06c + ld hl, W_PLAYERBATTSTATUS3 ; W_PLAYERBATTSTATUS3 + ld de, W_PLAYERTOXICCOUNTER ; wd06c ld a, [H_WHOSETURN] ; $fff3 and a jr z, .playersTurn - ld hl, W_ENEMYBATTSTATUS3 ; $d069 - ld de, W_ENEMYTOXICCOUNTER ; $d071 + ld hl, W_ENEMYBATTSTATUS3 ; W_ENEMYBATTSTATUS3 + ld de, W_ENEMYTOXICCOUNTER ; wd071 .playersTurn bit 0, [hl] jr z, .noToxic @@ -690,11 +684,11 @@ HandlePoisonBurnLeechSeed_DecreaseOwnHP: ; 3c43d (f:443d) ; adds bc to enemy HP HandlePoisonBurnLeechSeed_IncreaseEnemyHP: ; 3c4a3 (f:44a3) push hl - ld hl, W_ENEMYMONMAXHP ; $cff4 + ld hl, wEnemyMonMaxHP ; wEnemyMonMaxHP ld a, [H_WHOSETURN] ; $fff3 and a jr z, .playersTurn - ld hl, W_PLAYERMONMAXHP ; $d023 + ld hl, wBattleMonMaxHP ; wd023 .playersTurn ld a, [hli] ld [wHPBarMaxHP+1], a @@ -739,55 +733,52 @@ HandlePoisonBurnLeechSeed_IncreaseEnemyHP: ; 3c4a3 (f:44a3) ret UpdateCurMonHPBar: ; 3c4f6 (f:44f6) - FuncCoord 10, 9 ; $c45e - ld hl, Coord ; tile pointer to player HP bar + hlCoord 10, 9 ; tile pointer to player HP bar ld a, [H_WHOSETURN] ; $fff3 and a ld a, $1 jr z, .playersTurn - FuncCoord 2, 2 ; $c3ca - ld hl, Coord ; tile pointer to enemy HP bar + hlCoord 2, 2 ; tile pointer to enemy HP bar xor a .playersTurn push bc - ld [wListMenuID], a ; $cf94 - ld a, $48 - call Predef ; indirect jump to UpdateHPBar (fa1d (3:7a1d)) + ld [wListMenuID], a ; wListMenuID + predef UpdateHPBar2 pop bc ret Func_3c50f: ; 3c50f (f:450f) - ld a, [$d06a] + ld a, [wd06a] and a jr nz, .asm_3c51a - ld hl, W_PLAYERBATTSTATUS1 ; $d062 + ld hl, W_PLAYERBATTSTATUS1 ; W_PLAYERBATTSTATUS1 res 5, [hl] .asm_3c51a - ld a, [$d06f] + ld a, [wd06f] and a ret nz - ld hl, W_ENEMYBATTSTATUS1 ; $d067 + ld hl, W_ENEMYBATTSTATUS1 ; W_ENEMYBATTSTATUS1 res 5, [hl] ret HandleEnemyMonFainted: ; 3c525 (f:4525) xor a - ld [$ccf0], a + ld [wccf0], a call FaintEnemyPokemon - call AnyPlayerPokemonAliveCheck + call AnyPartyAlive ld a, d and a jp z, HandlePlayerBlackOut - ld hl, W_PLAYERMONCURHP ; $d015 + ld hl, wBattleMonHP ; wd015 ld a, [hli] or [hl] call nz, Func_3cd60 - ld a, [W_ISINBATTLE] ; $d057 + ld a, [W_ISINBATTLE] ; W_ISINBATTLE dec a ret z call AnyEnemyPokemonAliveCheck jp z, TrainerBattleVictory - ld hl, W_PLAYERMONCURHP ; $d015 + ld hl, wBattleMonHP ; wd015 ld a, [hli] or [hl] jr nz, .asm_3c555 @@ -796,60 +787,58 @@ HandleEnemyMonFainted: ; 3c525 (f:4525) call Func_3c7d8 .asm_3c555 ld a, $1 - ld [$cd6a], a + ld [wcd6a], a call Func_3c664 jp z, asm_3c202 xor a - ld [$cd6a], a + ld [wcd6a], a jp MainInBattleLoop FaintEnemyPokemon ; 0x3c567 call ReadPlayerMonCurHPAndStatus - ld a, [W_ISINBATTLE] ; $d057 + ld a, [W_ISINBATTLE] ; W_ISINBATTLE dec a jr z, .wild - ld a, [W_ENEMYMONNUMBER] ; $cfe8 - ld hl, W_ENEMYMON1HP + ld a, [wEnemyMonPartyPos] + ld hl, wEnemyMon1HP ld bc, $2c ; mon struct len call AddNTimes xor a ld [hli], a ld [hl], a .wild - ld hl, W_PLAYERBATTSTATUS1 ; $d062 + ld hl, W_PLAYERBATTSTATUS1 ; W_PLAYERBATTSTATUS1 res 2, [hl] xor a - ld [W_NUMHITS], a ; $d074 - ld hl, $d065 ; enemy statuses + ld [W_NUMHITS], a ; wd074 + ld hl, wd065 ; enemy statuses ld [hli], a ld [hli], a ld [hli], a ld [hli], a ld [hl], a - ld [W_ENEMYDISABLEDMOVE], a ; $d072 - ld [$ccef], a - ld [$ccf3], a - ld hl, $ccf1 + ld [W_ENEMYDISABLEDMOVE], a ; W_ENEMYDISABLEDMOVE + ld [wccef], a + ld [wccf3], a + ld hl, wccf1 ld [hli], a ld [hl], a - FuncCoord 12, 5 ; $c410 - ld hl, Coord - FuncCoord 12, 6 ; $c424 - ld de, Coord + hlCoord 12, 5 + deCoord 12, 6 call Func_3c893 ld hl, wTileMap ld bc, $40b call ClearScreenArea - ld a, [W_ISINBATTLE] ; $d057 + ld a, [W_ISINBATTLE] ; W_ISINBATTLE dec a jr z, .wild_win xor a - ld [$c0f1], a - ld [$c0f2], a + ld [wc0f1], a + ld [wc0f2], a ld a, (SFX_08_48 - SFX_Headers_08) / 3 ; SFX_FALL? call PlaySoundWaitForCurrent .sfxwait - ld a, [$c02a] + ld a, [wc02a] cp (SFX_08_48 - SFX_Headers_08) / 3 jr z, .sfxwait ld a, (SFX_08_43 - SFX_Headers_08) / 3 ; SFX_DROP @@ -861,16 +850,16 @@ FaintEnemyPokemon ; 0x3c567 ld a, MUSIC_DEFEATED_WILD_MON call PlayBattleVictoryMusic .sfxplayed - ld hl, W_PLAYERMONCURHP ; $d015 + ld hl, wBattleMonHP ; wd015 ld a, [hli] or [hl] jr nz, .playermonnotfaint - ld a, [$ccf0] + ld a, [wccf0] and a jr nz, .playermonnotfaint call Func_3c741 .playermonnotfaint - call AnyPlayerPokemonAliveCheck + call AnyPartyAlive ld a, d and a ret z @@ -879,12 +868,12 @@ FaintEnemyPokemon ; 0x3c567 call Func_3ee94 call SaveScreenTilesToBuffer1 xor a - ld [$cf0b], a + ld [wcf0b], a ld b, EXP__ALL call IsItemInBag push af jr z, .no_exp_all - ld hl, $d002 + ld hl, wd002 ld b, $7 .exp_all_loop srl [hl] @@ -893,13 +882,13 @@ FaintEnemyPokemon ; 0x3c567 jr nz, .exp_all_loop .no_exp_all xor a - ld [$cc5b], a + ld [wcc5b], a callab GainExperience pop af ret z ld a, $1 - ld [$cc5b], a - ld a, [W_NUMINPARTY] ; $d163 + ld [wcc5b], a + ld a, [wPartyCount] ; wPartyCount ld b, $0 .asm_3c62c scf @@ -907,7 +896,7 @@ FaintEnemyPokemon ; 0x3c567 dec a jr nz, .asm_3c62c ld a, b - ld [W_PLAYERMONSALIVEFLAGS], a + ld [wPartyAliveFlags], a ld hl, GainExperience ld b, BANK(GainExperience) jp Bankswitch @@ -918,17 +907,17 @@ EnemyMonFaintedText: ; 0x3c63e Func_3c643: ; 3c643 (f:4643) xor a - ld [$d083], a - ld [$c02a], a + ld [wd083], a + ld [wc02a], a inc a - ld [$ccf6], a + ld [wccf6], a ret AnyEnemyPokemonAliveCheck: ; 3c64f (f:464f) - ld a, [wEnemyPartyCount] ; $d89c + ld a, [wEnemyPartyCount] ; wEnemyPartyCount ld b, a xor a - ld hl, W_ENEMYMON1HP ; $d8a5 + ld hl, wEnemyMon1HP ; wd8a5 ld de, $2c .asm_3c65a or [hl] @@ -942,49 +931,49 @@ AnyEnemyPokemonAliveCheck: ; 3c64f (f:464f) ret Func_3c664: ; 3c664 (f:4664) - ld hl, $cf1e + ld hl, wcf1e ld e, $30 call GetBattleHealthBarColor callab DrawEnemyPokeballs - ld a, [W_ISLINKBATTLE] ; $d12b + ld a, [W_ISLINKBATTLE] ; W_ISLINKBATTLE cp $4 jr nz, .asm_3c687 call Func_3d605 - ld a, [$cc3e] + ld a, [wcc3e] cp $f ret z call LoadScreenTilesFromBuffer1 .asm_3c687 call EnemySendOut xor a - ld [W_ENEMYMOVENUM], a ; $cfcc - ld [$cd6a], a - ld [$ccd5], a + ld [W_ENEMYMOVENUM], a ; W_ENEMYMOVENUM + ld [wcd6a], a + ld [wccd5], a inc a ret TrainerBattleVictory: ; 3c696 (f:4696) call Func_3c643 ld b, MUSIC_DEFEATED_GYM_LEADER - ld a, [W_GYMLEADERNO] ; $d05c + ld a, [W_GYMLEADERNO] ; W_GYMLEADERNO and a jr nz, .gymleader ld b, MUSIC_DEFEATED_TRAINER .gymleader - ld a, [W_TRAINERCLASS] ; $d031 + ld a, [W_TRAINERCLASS] ; wd031 cp SONY3 ; final battle against rival jr nz, .notrival ld b, MUSIC_DEFEATED_GYM_LEADER ld hl, W_FLAGS_D733 set 1, [hl] .notrival - ld a, [W_ISLINKBATTLE] ; $d12b + ld a, [W_ISLINKBATTLE] ; W_ISLINKBATTLE cp $4 ld a, b call nz, PlayBattleVictoryMusic ld hl, TrainerDefeatedText call PrintText - ld a, [W_ISLINKBATTLE] ; $d12b + ld a, [W_ISLINKBATTLE] ; W_ISLINKBATTLE cp $4 ret z call ScrollTrainerPicAfterBattle @@ -993,11 +982,10 @@ TrainerBattleVictory: ; 3c696 (f:4696) call Func_3381 ld hl, MoneyForWinningText call PrintText - ld de, wPlayerMoney + 2 ; $d349 - ld hl, $d07b + ld de, wPlayerMoney + 2 ; wd349 + ld hl, wd07b ld c, $3 - ld a, $b - jp Predef ; indirect jump to Func_f81d (f81d (3:781d)) + predef_jump AddBCDPredef MoneyForWinningText: ; 3c6e4 (f:46e4) TX_FAR _MoneyForWinningText @@ -1010,7 +998,7 @@ TrainerDefeatedText: ; 3c6e9 (f:46e9) PlayBattleVictoryMusic: ; 3c6ee (f:46ee) push af ld a, $ff - ld [$c0ee], a + ld [wc0ee], a call PlaySoundWaitForCurrent ld c, BANK(Music_DefeatedTrainer) pop af @@ -1019,18 +1007,18 @@ PlayBattleVictoryMusic: ; 3c6ee (f:46ee) HandlePlayerMonFainted: ; 3c700 (f:4700) ld a, $1 - ld [$ccf0], a + ld [wccf0], a call Func_3c741 - call AnyPlayerPokemonAliveCheck ; test if any more mons are alive + call AnyPartyAlive ; test if any more mons are alive ld a, d and a jp z, HandlePlayerBlackOut - ld hl, W_ENEMYMONCURHP ; $cfe6 + ld hl, wEnemyMonHP ; wEnemyMonHP ld a, [hli] or [hl] jr nz, .enemyMonNotFainted call FaintEnemyPokemon - ld a, [W_ISINBATTLE] ; $d057 + ld a, [W_ISINBATTLE] ; W_ISINBATTLE dec a ret z ; if wild encounter, battle is over call AnyEnemyPokemonAliveCheck @@ -1041,49 +1029,45 @@ HandlePlayerMonFainted: ; 3c700 (f:4700) call Func_3c7d8 jp nz, MainInBattleLoop ld a, $1 - ld [$cd6a], a + ld [wcd6a], a call Func_3c664 jp z, asm_3c202 xor a - ld [$cd6a], a + ld [wcd6a], a jp MainInBattleLoop Func_3c741: ; 3c741 (f:4741) - ld a, [wPlayerMonNumber] ; $cc2f + ld a, [wPlayerMonNumber] ; wPlayerMonNumber ld c, a - ld hl, W_PLAYERMONSALIVEFLAGS ; clear fainted mon's alive flag + ld hl, wPartyAliveFlags ; clear fainted mon's alive flag ld b, $0 - ld a, $10 - call Predef ; indirect jump to HandleBitArray (f666 (3:7666)) - ld hl, W_ENEMYBATTSTATUS1 ; $d067 + predef FlagActionPredef + ld hl, W_ENEMYBATTSTATUS1 ; W_ENEMYBATTSTATUS1 res 2, [hl] ; reset "attacking multiple times" flag - ld a, [$d083] + ld a, [wd083] bit 7, a ; skip sound flag (red bar (?)) jr z, .skipWaitForSound ld a, $ff - ld [$d083], a + ld [wd083], a call WaitForSoundToFinish .skipWaitForSound - ld hl, $cd05 + ld hl, wcd05 ld [hli], a ld [hl], a - ld [W_PLAYERMONSTATUS], a ; $d018 + ld [wBattleMonStatus], a ; wBattleMonStatus call ReadPlayerMonCurHPAndStatus - FuncCoord 9, 7 ; $c435 - ld hl, Coord + hlCoord 9, 7 ld bc, $50b call ClearScreenArea - FuncCoord 1, 10 ; $c469 - ld hl, Coord - FuncCoord 1, 11 ; $c47d - ld de, Coord + hlCoord 1, 10 + deCoord 1, 11 call Func_3c893 ld a, $1 - ld [$cf0b], a - ld a, [$ccf0] + ld [wcf0b], a + ld a, [wccf0] and a ret z - ld a, [W_PLAYERMONID] + ld a, [wBattleMonSpecies] call PlayCry ld hl, PlayerMonFaintedText jp PrintText @@ -1095,30 +1079,29 @@ PlayerMonFaintedText: ; 3c796 (f:4796) Func_3c79b: ; 3c79b (f:479b) call Func_3ee94 call SaveScreenTilesToBuffer1 - ld a, [W_ISINBATTLE] ; $d057 + ld a, [W_ISINBATTLE] ; W_ISINBATTLE and a dec a ret nz ld hl, UseNextMonText call PrintText .asm_3c7ad - FuncCoord 13, 9 ; $c461 - ld hl, Coord + hlCoord 13, 9 ld bc, $a0e ld a, $14 - ld [$d125], a + ld [wd125], a call DisplayTextBoxID - ld a, [$d12e] + ld a, [wd12e] cp $2 jr z, .asm_3c7c4 and a ret .asm_3c7c4 - ld a, [wCurrentMenuItem] ; $cc26 + ld a, [wCurrentMenuItem] ; wCurrentMenuItem and a jr z, .asm_3c7ad - ld hl, W_PARTYMON1_SPEED ; $d193 - ld de, W_ENEMYMONSPEED + ld hl, wPartyMon1Speed + ld de, wEnemyMonSpeed jp Func_3cab9 UseNextMonText: ; 3c7d3 (f:47d3) @@ -1127,7 +1110,7 @@ UseNextMonText: ; 3c7d3 (f:47d3) Func_3c7d8: ; 3c7d8 (f:47d8) ld a, $2 - ld [$d07d], a + ld [wd07d], a call DisplayPartyMenu .asm_3c7e0 jr nc, .asm_3c7e7 @@ -1137,28 +1120,26 @@ Func_3c7d8: ; 3c7d8 (f:47d8) .asm_3c7e7 call Func_3ca97 jr z, .asm_3c7e2 - ld a, [W_ISLINKBATTLE] ; $d12b + ld a, [W_ISLINKBATTLE] ; W_ISLINKBATTLE cp $4 jr nz, .asm_3c7fa inc a - ld [$cd6a], a + ld [wcd6a], a call Func_3d605 .asm_3c7fa xor a - ld [$cd6a], a - call CleanLCD_OAM - ld a, [wWhichPokemon] ; $cf92 - ld [wPlayerMonNumber], a ; $cc2f + ld [wcd6a], a + call ClearSprites + ld a, [wWhichPokemon] ; wWhichPokemon + ld [wPlayerMonNumber], a ; wPlayerMonNumber ld c, a - ld hl, W_PLAYERMONSALIVEFLAGS + ld hl, wPartyAliveFlags ld b, $1 push bc - ld a, $10 - call Predef ; indirect jump to HandleBitArray (f666 (3:7666)) + predef FlagActionPredef pop bc - ld hl, $ccf5 - ld a, $10 - call Predef ; indirect jump to HandleBitArray (f666 (3:7666)) + ld hl, wccf5 + predef FlagActionPredef call Func_3cba6 call GBPalWhiteOut call Func_3ee5b @@ -1166,7 +1147,7 @@ Func_3c7d8: ; 3c7d8 (f:47d8) call GoPAL_SET_CF1C call GBPalNormal call Func_3cc91 - ld hl, W_ENEMYMONCURHP ; $cfe6 + ld hl, wEnemyMonHP ; wEnemyMonHP ld a, [hli] or [hl] ret @@ -1174,10 +1155,10 @@ Func_3c7d8: ; 3c7d8 (f:47d8) ; called when player is out of usable mons. ; prints approriate lose message, sets carry flag if player blacked out (special case for initial rival fight) HandlePlayerBlackOut: ; 3c837 (f:4837) - ld a, [W_ISLINKBATTLE] ; $d12b + ld a, [W_ISLINKBATTLE] ; W_ISLINKBATTLE cp $4 jr z, .notSony1Battle - ld a, [W_CUROPPONENT] ; $d059 + ld a, [W_CUROPPONENT] ; wd059 cp $c8 + SONY1 jr nz, .notSony1Battle ld hl, wTileMap ; sony 1 battle @@ -1195,15 +1176,15 @@ HandlePlayerBlackOut: ; 3c837 (f:4837) ld b, $0 call GoPAL_SET ld hl, PlayerBlackedOutText2 - ld a, [W_ISLINKBATTLE] ; $d12b + ld a, [W_ISLINKBATTLE] ; W_ISLINKBATTLE cp $4 jr nz, .noLinkBattle ld hl, LinkBattleLostText .noLinkBattle call PrintText - ld a, [$d732] + ld a, [wd732] res 5, a - ld [$d732], a + ld [wd732], a call ClearScreen scf ret @@ -1221,10 +1202,10 @@ LinkBattleLostText: ; 3c88e (f:488e) db "@" Func_3c893: ; 3c893 (f:4893) - ld a, [$d730] + ld a, [wd730] push af set 6, a - ld [$d730], a + ld [wd730], a ld b, $7 .asm_3c89e push bc @@ -1263,7 +1244,7 @@ Func_3c893: ; 3c893 (f:4893) dec b jr nz, .asm_3c89e pop af - ld [$d730], a + ld [wd730], a ret SevenSpacesText: ; 3c8d7 (f:48d7) @@ -1310,49 +1291,46 @@ Func_3c8df: ; 3c8df (f:48df) ; XXX this needs cleaning up. it's what runs when a juggler switches pokemon EnemySendOut: ; 3c90e (f:490e) - ld hl,W_PLAYERMONSALIVEFLAGS + ld hl,wPartyAliveFlags xor a ld [hl],a - ld a,[$CC2F] + ld a,[wPlayerMonNumber] ld c,a ld b,1 push bc - ld a,$10 - call Predef - ld hl,$CCF5 + predef FlagActionPredef + ld hl,wccf5 xor a ld [hl],a pop bc - ld a,$10 - call Predef + predef FlagActionPredef Func_3c92a: ; 3c92a (f:492a) xor a - ld hl,$D065 + ld hl,wd065 ld [hli],a ld [hli],a ld [hli],a ld [hli],a ld [hl],a - ld [$D072],a - ld [$CCEF],a - ld [$CCF3],a - ld hl,$CCF1 + ld [W_ENEMYDISABLEDMOVE],a + ld [wccef],a + ld [wccf3],a + ld hl,wccf1 ld [hli],a ld [hl],a dec a ld [wAICount],a ld hl,W_PLAYERBATTSTATUS1 res 5,[hl] - FuncCoord 18, 0 ; $c3b2 - ld hl,Coord + hlCoord 18, 0 ld a,8 call Func_3c8df call Func_3ee94 call SaveScreenTilesToBuffer1 - ld a,[$D12B] + ld a,[W_ISLINKBATTLE] cp 4 jr nz,.next - ld a,[$CC3E] + ld a,[wcc3e] sub 4 ld [wWhichPokemon],a jr .next3 @@ -1360,14 +1338,14 @@ Func_3c92a: ; 3c92a (f:492a) ld b,$FF .next2 inc b - ld a,[$CFE8] + ld a,[wEnemyMonPartyPos] cp b jr z,.next2 - ld hl,$D8A4 + ld hl,wEnemyMon1 ld a,b ld [wWhichPokemon],a push bc - ld bc,$2C + ld bc,wEnemyMon2 - wEnemyMon1 call AddNTimes pop bc inc hl @@ -1378,59 +1356,58 @@ Func_3c92a: ; 3c92a (f:492a) jr z,.next2 .next3 ld a,[wWhichPokemon] - ld hl,$D8C5 - ld bc,$2C + ld hl,wEnemyMon1Level + ld bc,wEnemyMon2 - wEnemyMon1 call AddNTimes ld a,[hl] - ld [$D127],a + ld [W_CURENEMYLVL],a ld a,[wWhichPokemon] inc a - ld hl,$D89C + ld hl,wEnemyPartyCount ld c,a ld b,0 add hl,bc ld a,[hl] - ld [W_ENEMYMONID],a - ld [$CF91],a + ld [wEnemyMonSpecies2],a + ld [wcf91],a call Func_3eb01 - ld hl,$CFE6 + ld hl,wEnemyMonHP ld a,[hli] - ld [$CCE3],a + ld [wcce3],a ld a,[hl] - ld [$CCE4],a + ld [wcce4],a ld a,1 - ld [$CC26],a - ld a,[$D11D] + ld [wCurrentMenuItem],a + ld a,[wd11d] dec a jr z,.next4 - ld a,[W_NUMINPARTY] + ld a,[wPartyCount] dec a jr z,.next4 - ld a,[$D12B] + ld a,[W_ISLINKBATTLE] cp 4 jr z,.next4 - ld a,[$D355] + ld a,[W_OPTIONS] bit 6,a jr nz,.next4 ld hl, TrainerAboutToUseText call PrintText - FuncCoord 0, 7 ; $c42c - ld hl,Coord + hlCoord 0, 7 ld bc,$0801 ld a,$14 - ld [$D125],a + ld [wd125],a call DisplayTextBoxID - ld a,[$CC26] + ld a,[wCurrentMenuItem] and a jr nz,.next4 ld a,2 - ld [$D07D],a + ld [wd07d],a call DisplayPartyMenu .next9 ld a,1 - ld [$CC26],a + ld [wCurrentMenuItem],a jr c,.next7 - ld hl,$CC2F + ld hl,wPlayerMonNumber ld a,[wWhichPokemon] cp [hl] jr nz,.next6 @@ -1443,13 +1420,13 @@ Func_3c92a: ; 3c92a (f:492a) call Func_3ca97 jr z,.next8 xor a - ld [$CC26],a + ld [wCurrentMenuItem],a .next7 call GBPalWhiteOut call Func_3ee5b call LoadScreenTilesFromBuffer1 .next4 - call CleanLCD_OAM + call ClearSprites ld hl,wTileMap ld bc,$040B call ClearScreenArea @@ -1458,27 +1435,25 @@ Func_3c92a: ; 3c92a (f:492a) call GBPalNormal ld hl,TrainerSentOutText call PrintText - ld a,[W_ENEMYMONID] - ld [$CF91],a - ld [$D0B5],a + ld a,[wEnemyMonSpecies2] + ld [wcf91],a + ld [wd0b5],a call GetMonHeader - ld de,$9000 + ld de,vFrontPic call LoadMonFrontSprite ld a,$CF ld [$FFE1],a - FuncCoord 15, 6 ; $c427 - ld hl,Coord - ld a,2 - call Predef - ld a,[W_ENEMYMONID] + hlCoord 15, 6 + predef Func_3f073 + ld a,[wEnemyMonSpecies2] call PlayCry call Func_3cdec - ld a,[$CC26] + ld a,[wCurrentMenuItem] and a ret nz xor a - ld [W_PLAYERMONSALIVEFLAGS],a - ld [$CCF5],a + ld [wPartyAliveFlags],a + ld [wccf5],a call SaveScreenTilesToBuffer1 jp Func_3d1ba @@ -1492,12 +1467,12 @@ TrainerSentOutText: ; 3ca7e (f:4a7e) ; tests if the player has any pokemon that are not fainted ; sets d = 0 if all fainted, d != 0 if some mons are still alive -AnyPlayerPokemonAliveCheck: ; 3ca83 (f:4a83) - ld a, [W_NUMINPARTY] ; $d163 +AnyPartyAlive: ; 3ca83 (f:4a83) + ld a, [wPartyCount] ; wPartyCount ld e, a xor a - ld hl, W_PARTYMON1_HP ; $d16c - ld bc, W_PARTYMON2DATA - W_PARTYMON1DATA - 1 + ld hl, wPartyMon1HP ; wd16c + ld bc, wPartyMon2 - wPartyMon1 - 1 .partyMonsLoop or [hl] inc hl @@ -1509,14 +1484,14 @@ AnyPlayerPokemonAliveCheck: ; 3ca83 (f:4a83) ret Func_3ca97: ; 3ca97 (f:4a97) - ld a, [wWhichPokemon] ; $cf92 - ld hl, W_PARTYMON1_HP ; $d16c + ld a, [wWhichPokemon] ; wWhichPokemon + ld hl, wPartyMon1HP ; wd16c ld bc, $2c call AddNTimes ld a, [hli] or [hl] ret nz - ld a, [$d11d] + ld a, [wd11d] and a jr nz, .asm_3cab2 ld hl, NoWillText @@ -1532,18 +1507,18 @@ NoWillText: ; 3cab4 (f:4ab4) Func_3cab9: ; 3cab9 (f:4ab9) call IsGhostBattle jp z, .asm_3cb5c - ld a, [W_BATTLETYPE] ; $d05a + ld a, [W_BATTLETYPE] ; wd05a cp $2 jp z, .asm_3cb5c - ld a, [W_ISLINKBATTLE] ; $d12b + ld a, [W_ISLINKBATTLE] ; W_ISLINKBATTLE cp $4 jp z, .asm_3cb5c - ld a, [W_ISINBATTLE] ; $d057 + ld a, [W_ISINBATTLE] ; W_ISINBATTLE dec a jr nz, .asm_3cb4c - ld a, [$d120] + ld a, [wd120] inc a - ld [$d120], a + ld [wd120], a ld a, [hli] ld [$ff97], a ld a, [hl] @@ -1583,7 +1558,7 @@ Func_3cab9: ; 3cab9 (f:4ab9) ld a, [$ff97] and a jr nz, .asm_3cb5c - ld a, [$d120] + ld a, [wd120] ld c, a .asm_3cb2b dec c @@ -1595,13 +1570,13 @@ Func_3cab9: ; 3cab9 (f:4ab9) jr c, .asm_3cb5c jr .asm_3cb2b .asm_3cb39 - call GenRandomInBattle + call BattleRandom ld b, a ld a, [$ff98] cp b jr nc, .asm_3cb5c ld a, $1 - ld [$cd6a], a + ld [wcd6a], a ld hl, CantEscapeText jr .asm_3cb4f .asm_3cb4c @@ -1609,29 +1584,29 @@ Func_3cab9: ; 3cab9 (f:4ab9) .asm_3cb4f call PrintText ld a, $1 - ld [$d11f], a + ld [wd11f], a call SaveScreenTilesToBuffer1 and a ret .asm_3cb5c - ld a, [W_ISLINKBATTLE] ; $d12b + ld a, [W_ISLINKBATTLE] ; W_ISLINKBATTLE cp $4 ld a, $2 jr nz, .asm_3cb81 call SaveScreenTilesToBuffer1 xor a - ld [$cd6a], a + ld [wcd6a], a ld a, $f - ld [wPlayerMoveListIndex], a ; $cc2e + ld [wPlayerMoveListIndex], a ; wPlayerMoveListIndex call Func_3d605 call LoadScreenTilesFromBuffer1 - ld a, [$cc3e] + ld a, [wcc3e] cp $f ld a, $2 jr z, .asm_3cb81 dec a .asm_3cb81 - ld [$cf0b], a + ld [wcf0b], a ld a, (SFX_08_44 - SFX_Headers_08) / 3 call PlaySoundWaitForCurrent ld hl, GotAwayText @@ -1654,42 +1629,42 @@ GotAwayText: ; 3cba1 (f:4ba1) db "@" Func_3cba6: ; 3cba6 (f:4ba6) - ld a, [wWhichPokemon] ; $cf92 + ld a, [wWhichPokemon] ; wWhichPokemon ld bc, $2c - ld hl, W_PARTYMON1_NUM ; $d16b (aliases: W_PARTYMON1DATA) + ld hl, wPartyMon1Species ; wPartyMon1Species (aliases: wPartyMon1) call AddNTimes - ld de, W_PLAYERMONID + ld de, wBattleMonSpecies ld bc, $c call CopyData ld bc, $f add hl, bc - ld de, W_PLAYERMONIVS + ld de, wBattleMonDVs ld bc, $2 call CopyData - ld de, W_PLAYERMONPP ; $d02d + ld de, wBattleMonPP ; wBattleMonPP ld bc, $4 call CopyData - ld de, W_PLAYERMONLEVEL ; $d022 + ld de, wBattleMonLevel ; wBattleMonLevel ld bc, $b call CopyData - ld a, [$cfd9] - ld [$d0b5], a + ld a, [wBattleMonSpecies2] + ld [wd0b5], a call GetMonHeader - ld hl, W_PARTYMON1NAME ; $d2b5 - ld a, [wPlayerMonNumber] ; $cc2f + ld hl, wPartyMonNicks ; wPartyMonNicks + ld a, [wPlayerMonNumber] ; wPlayerMonNumber call SkipFixedLengthTextEntries - ld de, W_PLAYERMONNAME + ld de, wBattleMonNick ld bc, $b call CopyData - ld hl, W_PLAYERMONLEVEL ; $d022 - ld de, $cd0f + ld hl, wBattleMonLevel ; wBattleMonLevel + ld de, wcd0f ld bc, $b call CopyData call Func_3ed1a call Func_3ee19 ld a, $7 ld b, $8 - ld hl, wPlayerMonAttackMod ; $cd1a + ld hl, wPlayerMonAttackMod ; wcd1a .asm_3cc0e ld [hli], a dec b @@ -1697,40 +1672,40 @@ Func_3cba6: ; 3cba6 (f:4ba6) ret Func_3cc13: ; 3cc13 (f:4c13) - ld a, [wWhichPokemon] ; $cf92 + ld a, [wWhichPokemon] ; wWhichPokemon ld bc, $2c - ld hl, wEnemyMons ; $d8a4 + ld hl, wEnemyMons ; wEnemyMon1Species call AddNTimes - ld de, $cfe5 + ld de, wEnemyMonSpecies ld bc, $c call CopyData ld bc, $f add hl, bc - ld de, $cff1 + ld de, wEnemyMonDVs ld bc, $2 call CopyData - ld de, W_ENEMYMONPP ; $cffe + ld de, wEnemyMonPP ; wcffe ld bc, $4 call CopyData - ld de, W_ENEMYMONLEVEL ; $cff3 + ld de, wEnemyMonLevel ; wEnemyMonLevel ld bc, $b call CopyData - ld a, [$cfe5] - ld [$d0b5], a + ld a, [wEnemyMonSpecies] + ld [wd0b5], a call GetMonHeader - ld hl, $d9ee - ld a, [wWhichPokemon] ; $cf92 + ld hl, wEnemyMonNicks + ld a, [wWhichPokemon] ; wWhichPokemon call SkipFixedLengthTextEntries - ld de, W_ENEMYMONNAME + ld de, wEnemyMonNick ld bc, $b call CopyData - ld hl, W_ENEMYMONLEVEL ; $cff3 - ld de, $cd23 + ld hl, wEnemyMonLevel ; wEnemyMonLevel + ld de, wcd23 ld bc, $b call CopyData call Func_3ed1e ld hl, W_MONHBASESTATS - ld de, $d002 + ld de, wd002 ld b, $5 .asm_3cc79 ld a, [hli] @@ -1740,18 +1715,18 @@ Func_3cc13: ; 3cc13 (f:4c13) jr nz, .asm_3cc79 ld a, $7 ld b, $8 - ld hl, wEnemyMonStatMods ; $cd2e + ld hl, wEnemyMonStatMods ; wcd2e .asm_3cc86 ld [hli], a dec b jr nz, .asm_3cc86 - ld a, [wWhichPokemon] ; $cf92 - ld [W_ENEMYMONNUMBER], a ; $cfe8 + ld a, [wWhichPokemon] ; wWhichPokemon + ld [wEnemyMonPartyPos], a ret Func_3cc91: ; 3cc91 (f:4c91) callab SendOutMon - ld hl, W_ENEMYMONCURHP ; $cfe6 + ld hl, wEnemyMonHP ; wEnemyMonHP ld a, [hli] or [hl] jp z, Func_3cca4 @@ -1759,91 +1734,81 @@ Func_3cc91: ; 3cc91 (f:4c91) Func_3cca4: ; 3cca4 (f:4ca4) call Func_3cd60 - ld a, $4 - call Predef ; indirect jump to LoadMonBackSprite (3f103 (f:7103)) + predef LoadMonBackPic xor a ld [$ffe1], a - ld hl, $cc2d + ld hl, wcc2d ld [hli], a ld [hl], a - ld [$cc5b], a - ld [$d05b], a - ld [W_PLAYERMOVENUM], a ; $cfd2 - ld hl, $ccf1 + ld [wcc5b], a + ld [wd05b], a + ld [W_PLAYERMOVENUM], a ; wcfd2 + ld hl, wccf1 ld [hli], a ld [hl], a - ld hl, $d060 + ld hl, wd060 ld [hli], a ld [hli], a ld [hli], a ld [hli], a ld [hl], a - ld [W_PLAYERDISABLEDMOVE], a ; $d06d - ld [$ccee], a - ld [$ccf7], a + ld [W_PLAYERDISABLEDMOVE], a ; W_PLAYERDISABLEDMOVE + ld [wccee], a + ld [wccf7], a ld b, $1 call GoPAL_SET - ld hl, W_ENEMYBATTSTATUS1 ; $d067 + ld hl, W_ENEMYBATTSTATUS1 ; W_ENEMYBATTSTATUS1 res 5, [hl] ld a, $1 ld [H_WHOSETURN], a ; $fff3 ld a, POOF_ANIM call PlayMoveAnimation - FuncCoord 4, 11 ; $c480 - ld hl, Coord - ld a, $2 - call Predef ; indirect jump to Func_3f073 (3f073 (f:7073)) - ld a, [$cf91] + hlCoord 4, 11 + predef Func_3f073 + ld a, [wcf91] call PlayCry call Func_3ee94 jp SaveScreenTilesToBuffer1 Func_3ccfa: ; 3ccfa (f:4cfa) - FuncCoord 1, 5 ; $c405 - ld hl, Coord + hlCoord 1, 5 ld bc, $707 call ClearScreenArea - FuncCoord 3, 7 ; $c42f - ld hl, Coord + hlCoord 3, 7 ld bc, $505 xor a - ld [$cd6c], a + ld [wcd6c], a ld [H_DOWNARROWBLINKCNT1], a ; $ff8b - ld a, $5 - call Predef ; indirect jump to Func_79aba (79aba (1e:5aba)) + predef Func_79aba ld c, $4 call DelayFrames call Func_3cd3a - FuncCoord 4, 9 ; $c458 - ld hl, Coord + hlCoord 4, 9 ld bc, $303 ld a, $1 - ld [$cd6c], a + ld [wcd6c], a xor a ld [H_DOWNARROWBLINKCNT1], a ; $ff8b - ld a, $5 - call Predef ; indirect jump to Func_79aba (79aba (1e:5aba)) + predef Func_79aba call Delay3 call Func_3cd3a ld a, $4c - FuncCoord 5, 11 ; $c481 - ld [Coord], a + Coorda 5, 11 Func_3cd3a: ; 3cd3a (f:4d3a) - FuncCoord 1, 5 ; $c405 - ld hl, Coord + hlCoord 1, 5 ld bc, $707 jp ClearScreenArea -; reads player's current mon's HP into W_PLAYERMONCURHP +; reads player's current mon's HP into wBattleMonHP ReadPlayerMonCurHPAndStatus: ; 3cd43 (f:4d43) - ld a, [wPlayerMonNumber] ; $cc2f - ld hl, W_PARTYMON1_HP ; $d16c - ld bc, W_PARTYMON2DATA - W_PARTYMON1DATA + ld a, [wPlayerMonNumber] ; wPlayerMonNumber + ld hl, wPartyMon1HP ; wd16c + ld bc, wPartyMon2 - wPartyMon1 call AddNTimes ld d, h ld e, l - ld hl, W_PLAYERMONCURHP ; $d015 + ld hl, wBattleMonHP ; wd015 ld bc, $4 ; 2 bytes HP, 1 byte unknown (unused?), 1 byte status jp CopyData @@ -1854,67 +1819,61 @@ Func_3cd5a: ; 3cd5a (f:4d5a) Func_3cd60: ; 3cd60 (f:4d60) xor a ld [H_AUTOBGTRANSFERENABLED], a ; $ffba - FuncCoord 9, 7 ; $c435 - ld hl, Coord + hlCoord 9, 7 ld bc, $50b call ClearScreenArea callab PlacePlayerHUDTiles - FuncCoord 18, 9 ; $c466 - ld hl, Coord + hlCoord 18, 9 ld [hl], $73 - ld de, W_PLAYERMONNAME - FuncCoord 10, 7 ; $c436 - ld hl, Coord + ld de, wBattleMonNick + hlCoord 10, 7 call Func_3ce9c call PlaceString - ld hl, W_PLAYERMONID - ld de, $cf98 + ld hl, wBattleMonSpecies + ld de, wcf98 ld bc, $c call CopyData - ld hl, W_PLAYERMONLEVEL ; $d022 - ld de, $cfb9 + ld hl, wBattleMonLevel ; wBattleMonLevel + ld de, wcfb9 ld bc, $b call CopyData - FuncCoord 14, 8 ; $c44e - ld hl, Coord + hlCoord 14, 8 push hl inc hl - ld de, $cf9c + ld de, wcf9c call PrintStatusConditionNotFainted pop hl jr nz, .asm_3cdae call PrintLevel .asm_3cdae - ld a, [$cf98] - ld [$cf91], a - FuncCoord 10, 9 ; $c45e - ld hl, Coord - ld a, $5f - call Predef ; indirect jump to Func_128ef (128ef (4:68ef)) + ld a, [wcf98] + ld [wcf91], a + hlCoord 10, 9 + predef DrawHP ld a, $1 ld [H_AUTOBGTRANSFERENABLED], a ; $ffba - ld hl, $cf1d + ld hl, wcf1d call GetBattleHealthBarColor - ld hl, W_PLAYERMONCURHP ; $d015 + ld hl, wBattleMonHP ; wd015 ld a, [hli] or [hl] jr z, .asm_3cdd9 - ld a, [$ccf6] + ld a, [wccf6] and a ret nz - ld a, [$cf1d] + ld a, [wcf1d] cp $2 jr z, .asm_3cde6 .asm_3cdd9 - ld hl, $d083 + ld hl, wd083 bit 7, [hl] ld [hl], $0 ret z xor a - ld [$c02a], a + ld [wc02a], a ret .asm_3cde6 - ld hl, $d083 + ld hl, wd083 set 7, [hl] ret @@ -1925,24 +1884,22 @@ Func_3cdec: ; 3cdec (f:4dec) ld bc, $40c call ClearScreenArea callab PlaceEnemyHUDTiles - ld de, W_ENEMYMONNAME - FuncCoord 1, 0 ; $c3a1 - ld hl, Coord + ld de, wEnemyMonNick + hlCoord 1, 0 call Func_3ce9c call PlaceString - FuncCoord 4, 1 ; $c3b8 - ld hl, Coord + hlCoord 4, 1 push hl inc hl - ld de, W_ENEMYMONSTATUS ; $cfe9 + ld de, wEnemyMonStatus ; wcfe9 call PrintStatusConditionNotFainted pop hl jr nz, .asm_3ce23 - ld a, [W_ENEMYMONLEVEL] ; $cff3 - ld [$cfb9], a + ld a, [wEnemyMonLevel] ; wEnemyMonLevel + ld [wcfb9], a call PrintLevel .asm_3ce23 - ld hl, W_ENEMYMONCURHP ; $cfe6 + ld hl, wEnemyMonHP ; wEnemyMonHP ld a, [hli] ld [$ff97], a ld a, [hld] @@ -1959,7 +1916,7 @@ Func_3cdec: ; 3cdec (f:4dec) ld a, $30 ld [H_REMAINDER], a ; $ff99 (aliases: H_DIVISOR, H_MULTIPLIER, H_POWEROFTEN) call Multiply - ld hl, W_ENEMYMONMAXHP ; $cff4 + ld hl, wEnemyMonMaxHP ; wEnemyMonMaxHP ld a, [hli] ld b, a ld a, [hl] @@ -1999,13 +1956,12 @@ Func_3cdec: ; 3cdec (f:4dec) Func_3ce7f: ; 3ce7f (f:4e7f) xor a - ld [wListMenuID], a ; $cf94 - FuncCoord 2, 2 ; $c3ca - ld hl, Coord + ld [wListMenuID], a ; wListMenuID + hlCoord 2, 2 call DrawHPBar ld a, $1 ld [H_AUTOBGTRANSFERENABLED], a ; $ffba - ld hl, $cf1e + ld hl, wcf1e GetBattleHealthBarColor: ; 3ce90 (f:4e90) ld b, [hl] @@ -2039,27 +1995,27 @@ Func_3ce9c: ; 3ce9c (f:4e9c) InitBattleMenu: ; 3ceb3 (f:4eb3) call LoadScreenTilesFromBuffer1 ; restore saved screen - ld a, [W_BATTLETYPE] ; $d05a + ld a, [W_BATTLETYPE] ; wd05a and a jr nz, .nonstandardbattle call Func_3cd5a ; redraw names and HP bars? call Func_3ee94 call SaveScreenTilesToBuffer1 .nonstandardbattle - ld a, [W_BATTLETYPE] ; $d05a + ld a, [W_BATTLETYPE] ; wd05a cp $2 ; safari ld a, $b ; safari menu id jr nz, .menuselected ld a, $1b ; regular menu id .menuselected - ld [$d125], a + ld [wd125], a call DisplayTextBoxID - ld a, [W_BATTLETYPE] ; $d05a + ld a, [W_BATTLETYPE] ; wd05a dec a jp nz, RegularBattleMenu ; regular battle ; the following happens for the old man tutorial - ld hl, W_PLAYERNAME ; $d158 - ld de, W_GRASSRATE ; $d887 + ld hl, wPlayerName ; wd158 + ld de, W_GRASSRATE ; W_GRASSRATE ld bc, $b call CopyData ; temporarily save the player name in unused space, ; which is supposed to get overwritten when entering a @@ -2067,18 +2023,16 @@ InitBattleMenu: ; 3ceb3 (f:4eb3) ; may not get overwritten (cinnabar) and the infamous ; missingno. glitch can show up. ld hl, OldManName ; $4f12 - ld de, W_PLAYERNAME ; $d158 + ld de, wPlayerName ; wd158 ld bc, $b call CopyData ; the following simulates the keystrokes by drawing menus on screen - FuncCoord 9, 14 ; $c4c1 - ld hl, Coord + hlCoord 9, 14 ld [hl], "▶" ld c, $50 call DelayFrames ld [hl], $7f - FuncCoord 9, 16 ; $c4e9 - ld hl, Coord + hlCoord 9, 16 ld [hl], "▶" ld c, $32 call DelayFrames @@ -2090,38 +2044,33 @@ OldManName: ; 3cf12 (f:4f12) db "OLD MAN@" RegularBattleMenu: ; 3cf1a (f:4f1a) - ld a, [$cc2d] - ld [wCurrentMenuItem], a ; $cc26 - ld [wLastMenuItem], a ; $cc2a + ld a, [wcc2d] + ld [wCurrentMenuItem], a ; wCurrentMenuItem + ld [wLastMenuItem], a ; wLastMenuItem sub $2 jr c, .leftcolumn - ld [wCurrentMenuItem], a ; $cc26 - ld [wLastMenuItem], a ; $cc2a + ld [wCurrentMenuItem], a ; wCurrentMenuItem + ld [wLastMenuItem], a ; wLastMenuItem jr .rightcolumn .leftcolumn - ld a, [W_BATTLETYPE] ; $d05a + ld a, [W_BATTLETYPE] ; wd05a cp $2 ld a, " " jr z, .safaribattle - FuncCoord 15, 14 ; $c4c7 - ld [Coord], a - FuncCoord 15, 16 ; $c4ef - ld [Coord], a + Coorda 15, 14 + Coorda 15, 16 ld b, $9 jr .notsafari .safaribattle - FuncCoord 13, 14 ; $c4c5 - ld [Coord], a - FuncCoord 13, 16 ; $c4ed - ld [Coord], a - FuncCoord 7, 14 ; $c4bf - ld hl, Coord - ld de, W_NUMSAFARIBALLS ; $da47 + Coorda 13, 14 + Coorda 13, 16 + hlCoord 7, 14 + ld de, W_NUMSAFARIBALLS ; W_NUMSAFARIBALLS ld bc, $102 call PrintNumber ld b, $1 .notsafari - ld hl, wTopMenuItemY ; $cc24 + ld hl, wTopMenuItemY ; wTopMenuItemY ld a, $e ld [hli], a ld a, b @@ -2136,29 +2085,24 @@ RegularBattleMenu: ; 3cf1a (f:4f1a) jr nz, .rightcolumn jr .selection .rightcolumn - ld a, [W_BATTLETYPE] ; $d05a + ld a, [W_BATTLETYPE] ; wd05a cp $2 ld a, " " jr z, .safarirightcolumn - FuncCoord 9, 14 ; $c4c1 - ld [Coord], a - FuncCoord 9, 16 ; $c4e9 - ld [Coord], a + Coorda 9, 14 + Coorda 9, 16 ld b, $f jr .notsafarirightcolumn .safarirightcolumn - FuncCoord 1, 14 ; $c4b9 - ld [Coord], a - FuncCoord 1, 16 ; $c4e1 - ld [Coord], a - FuncCoord 7, 14 ; $c4bf - ld hl, Coord - ld de, W_NUMSAFARIBALLS ; $da47 + Coorda 1, 14 + Coorda 1, 16 + hlCoord 7, 14 + ld de, W_NUMSAFARIBALLS ; W_NUMSAFARIBALLS ld bc, $102 call PrintNumber ld b, $d .notsafarirightcolumn - ld hl, wTopMenuItemY ; $cc24 + ld hl, wTopMenuItemY ; wTopMenuItemY ld a, $e ld [hli], a ld a, b @@ -2172,15 +2116,15 @@ RegularBattleMenu: ; 3cf1a (f:4f1a) call HandleMenuInput bit 5, a jr nz, .leftcolumn - ld a, [wCurrentMenuItem] ; $cc26 + ld a, [wCurrentMenuItem] ; wCurrentMenuItem add $2 ; if we're in the right column, the actual id is +2 - ld [wCurrentMenuItem], a ; $cc26 + ld [wCurrentMenuItem], a ; wCurrentMenuItem .selection call PlaceUnfilledArrowMenuCursor - ld a, [W_BATTLETYPE] ; $d05a + ld a, [W_BATTLETYPE] ; wd05a cp $2 - ld a, [wCurrentMenuItem] ; $cc26 - ld [$cc2d], a + ld a, [wCurrentMenuItem] ; wCurrentMenuItem + ld [wcc2d], a jr z, .asm_3cfd0 cp $1 jr nz, .asm_3cfcb @@ -2194,21 +2138,21 @@ RegularBattleMenu: ; 3cf1a (f:4f1a) and a jr nz, Func_3cfe8 ; first option was selected... - ld a, [W_BATTLETYPE] ; $d05a + ld a, [W_BATTLETYPE] ; wd05a cp $2 jr z, .safari1 xor a - ld [$d120], a + ld [wd120], a jp LoadScreenTilesFromBuffer1 ; restore saved screen and return?? .safari1 ; safari first option?? ld a, SAFARI_BALL - ld [$cf91], a + ld [wcf91], a jr asm_3d05f Func_3cfe8: ; 3cfe8 (f:4fe8) cp $2 jp nz, Func_3d0ca - ld a, [W_ISLINKBATTLE] ; $d12b + ld a, [W_ISLINKBATTLE] ; W_ISLINKBATTLE cp $4 jr nz, .asm_3cffd ld hl, ItemsCantBeUsedHereText @@ -2216,83 +2160,83 @@ Func_3cfe8: ; 3cfe8 (f:4fe8) jp InitBattleMenu .asm_3cffd ; bag? call SaveScreenTilesToBuffer2 ; copy bg? - ld a, [W_BATTLETYPE] ; $d05a + ld a, [W_BATTLETYPE] ; wd05a cp $2 jr nz, asm_3d00e ld a, SAFARI_BAIT - ld [$cf91], a + ld [wcf91], a jr asm_3d05f asm_3d00e: ; 3d00e (f:500e) call LoadScreenTilesFromBuffer1 - ld a, [W_BATTLETYPE] ; $d05a + ld a, [W_BATTLETYPE] ; wd05a and a jr nz, .asm_3d01a call Func_3cd5a .asm_3d01a - ld a, [W_BATTLETYPE] ; $d05a + ld a, [W_BATTLETYPE] ; wd05a dec a jr nz, Func_3d031 ld hl, OldManItemList ld a, l - ld [$cf8b], a + ld [wcf8b], a ld a, h - ld [$cf8c], a + ld [wcf8c], a jr Func_3d03c OldManItemList: ; 3d02d (f:502d) db $01, POKE_BALL, 50, $ff Func_3d031 - ld hl, wNumBagItems ; $d31d + ld hl, wNumBagItems ; wNumBagItems ld a, l - ld [$cf8b], a + ld [wcf8b], a ld a, h - ld [$cf8c], a + ld [wcf8c], a Func_3d03c xor a - ld [$cf93], a + ld [wcf93], a ld a, $3 - ld [wListMenuID], a ; $cf94 - ld a, [$cc2c] - ld [wCurrentMenuItem], a ; $cc26 + ld [wListMenuID], a ; wListMenuID + ld a, [wcc2c] + ld [wCurrentMenuItem], a ; wCurrentMenuItem call DisplayListMenuID - ld a, [wCurrentMenuItem] ; $cc26 - ld [$cc2c], a + ld a, [wCurrentMenuItem] ; wCurrentMenuItem + ld [wcc2c], a ld a, $0 - ld [$cc37], a - ld [$cc35], a + ld [wcc37], a + ld [wcc35], a jp c, InitBattleMenu asm_3d05f: ; 3d05f (f:505f) - ld a, [$cf91] - ld [$d11e], a + ld a, [wcf91] + ld [wd11e], a call GetItemName call CopyStringToCF4B ; copy name xor a - ld [$d152], a + ld [wd152], a call UseItem call Func_3ee5b - call CleanLCD_OAM + call ClearSprites xor a - ld [wCurrentMenuItem], a ; $cc26 - ld a, [W_BATTLETYPE] ; $d05a + ld [wCurrentMenuItem], a ; wCurrentMenuItem + ld a, [W_BATTLETYPE] ; wd05a cp $2 jr z, .asm_3d09c - ld a, [$cd6a] + ld a, [wcd6a] and a jp z, asm_3d00e - ld a, [W_PLAYERBATTSTATUS1] ; $d062 + ld a, [W_PLAYERBATTSTATUS1] ; W_PLAYERBATTSTATUS1 bit 5, a jr z, .asm_3d09c - ld hl, $d06a + ld hl, wd06a dec [hl] jr nz, .asm_3d09c - ld hl, W_PLAYERBATTSTATUS1 ; $d062 + ld hl, W_PLAYERBATTSTATUS1 ; W_PLAYERBATTSTATUS1 res 5, [hl] .asm_3d09c - ld a, [$d11c] + ld a, [wd11c] and a jr nz, .asm_3d0b7 - ld a, [W_BATTLETYPE] ; $d05a + ld a, [W_BATTLETYPE] ; wd05a cp $2 jr z, .asm_3d0b2 call LoadScreenTilesFromBuffer1 @@ -2305,9 +2249,9 @@ asm_3d05f: ; 3d05f (f:505f) .asm_3d0b7 call GBPalNormal xor a - ld [$d11c], a + ld [wd11c], a ld a, $2 - ld [$cf0b], a + ld [wcf0b], a scf ret @@ -2319,23 +2263,23 @@ Func_3d0ca: ; 3d0ca (f:50ca) dec a jp nz, Func_3d1fa call SaveScreenTilesToBuffer2 - ld a, [W_BATTLETYPE] ; $d05a + ld a, [W_BATTLETYPE] ; wd05a cp $2 jr nz, Func_3d0e0 ld a, SAFARI_ROCK - ld [$cf91], a + ld [wcf91], a jp asm_3d05f Func_3d0e0: ; 3d0e0 (f:50e0) call LoadScreenTilesFromBuffer1 xor a - ld [$d07d], a - ld [$cc35], a + ld [wd07d], a + ld [wcc35], a call DisplayPartyMenu asm_3d0ed: ; 3d0ed (f:50ed) jp nc, Func_3d119 asm_3d0f0: ; 3d0f0 (f:50f0) - call CleanLCD_OAM + call ClearSprites call GBPalWhiteOut call Func_3ee5b call LoadScreenTilesFromBuffer2 @@ -2344,21 +2288,20 @@ asm_3d0f0: ; 3d0f0 (f:50f0) jp InitBattleMenu Func_3d105: ; 3d105 (f:5105) - FuncCoord 11, 11 ; $c487 - ld hl, Coord + hlCoord 11, 11 ld bc, $81 ld a, $7f call FillMemory xor a - ld [$d07d], a + ld [wd07d], a call GoBackToPartyMenu jr asm_3d0ed Func_3d119: ; 3d119 (f:5119) ld a, $c - ld [$d125], a + ld [wd125], a call DisplayTextBoxID - ld hl, wTopMenuItemY ; $cc24 + ld hl, wTopMenuItemY ; wTopMenuItemY ld a, $c ld [hli], a ld [hli], a @@ -2375,32 +2318,30 @@ Func_3d119: ; 3d119 (f:5119) bit 1, a jr nz, Func_3d105 call PlaceUnfilledArrowMenuCursor - ld a, [wCurrentMenuItem] ; $cc26 + ld a, [wCurrentMenuItem] ; wCurrentMenuItem cp $2 jr z, asm_3d0f0 and a jr z, .asm_3d18a xor a - ld [$cc49], a - ld hl, W_PARTYMON1_NUM ; $d16b (aliases: W_PARTYMON1DATA) - call CleanLCD_OAM - ld a, $36 - call Predef ; indirect jump to StatusScreen (12953 (4:6953)) - ld a, $37 - call Predef ; indirect jump to StatusScreen2 (12b57 (4:6b57)) - ld a, [W_ENEMYBATTSTATUS2] ; $d068 + ld [wcc49], a + ld hl, wPartyMon1Species ; wPartyMon1Species (aliases: wPartyMon1) + call ClearSprites + predef StatusScreen + predef StatusScreen2 + ld a, [W_ENEMYBATTSTATUS2] ; W_ENEMYBATTSTATUS2 bit 4, a ld hl, AnimationSubstitute jr nz, .asm_3d182 - ld a, [$ccf3] + ld a, [wccf3] and a ld hl, AnimationMinimizeMon jr nz, .asm_3d182 - ld a, [$cfe5] - ld [$cf91], a - ld [$d0b5], a + ld a, [wEnemyMonSpecies] + ld [wcf91], a + ld [wd0b5], a call GetMonHeader - ld de, $9000 + ld de, vFrontPic call LoadMonFrontSprite jr .asm_3d187 .asm_3d182 @@ -2409,9 +2350,9 @@ Func_3d119: ; 3d119 (f:5119) .asm_3d187 jp Func_3d0e0 .asm_3d18a - ld a, [wPlayerMonNumber] ; $cc2f + ld a, [wPlayerMonNumber] ; wPlayerMonNumber ld d, a - ld a, [wWhichPokemon] ; $cf92 + ld a, [wWhichPokemon] ; wWhichPokemon cp d jr nz, .asm_3d19d ld hl, AlreadyOutText @@ -2421,9 +2362,9 @@ Func_3d119: ; 3d119 (f:5119) call Func_3ca97 jp z, Func_3d105 ld a, $1 - ld [$cd6a], a + ld [wcd6a], a call GBPalWhiteOut - call CleanLCD_OAM + call ClearSprites call Func_3ee5b call LoadScreenTilesFromBuffer1 call GoPAL_SET_CF1C @@ -2434,23 +2375,21 @@ Func_3d1ba: ; 3d1ba (f:51ba) ld c, $32 call DelayFrames call Func_3ccfa - ld a, [wWhichPokemon] ; $cf92 - ld [wPlayerMonNumber], a ; $cc2f + ld a, [wWhichPokemon] ; wWhichPokemon + ld [wPlayerMonNumber], a ; wPlayerMonNumber ld c, a ld b, $1 push bc - ld hl, W_PLAYERMONSALIVEFLAGS - ld a, $10 - call Predef ; indirect jump to HandleBitArray (f666 (3:7666)) + ld hl, wPartyAliveFlags + predef FlagActionPredef pop bc - ld hl, $ccf5 - ld a, $10 - call Predef ; indirect jump to HandleBitArray (f666 (3:7666)) + ld hl, wccf5 + predef FlagActionPredef call Func_3cba6 call Func_3cc91 call SaveScreenTilesToBuffer1 ld a, $2 - ld [wCurrentMenuItem], a ; $cc26 + ld [wCurrentMenuItem], a ; wCurrentMenuItem and a ret @@ -2461,14 +2400,14 @@ AlreadyOutText: ; 3d1f5 (f:51f5) Func_3d1fa: ; 3d1fa (f:51fa) call LoadScreenTilesFromBuffer1 ld a, $3 - ld [wCurrentMenuItem], a ; $cc26 - ld hl, W_PLAYERMONSPEED - ld de, W_ENEMYMONSPEED + ld [wCurrentMenuItem], a ; wCurrentMenuItem + ld hl, wBattleMonSpeed + ld de, wEnemyMonSpeed call Func_3cab9 ld a, $0 - ld [$d11f], a + ld [wd11f], a ret c - ld a, [$cd6a] + ld a, [wcd6a] and a ret nz jp InitBattleMenu @@ -2482,14 +2421,14 @@ MoveSelectionMenu: ; 3d219 (f:5219) jr .regularmenu .loadmoves - ld de, $d0dc + ld de, wd0dc ld bc, $4 call CopyData callab Func_39b87 ret .writemoves - ld de, $d0e1 + ld de, wd0e1 ld a, [$fff6] set 2, a ld [$fff6], a @@ -2502,59 +2441,51 @@ MoveSelectionMenu: ; 3d219 (f:5219) .regularmenu call Func_3d3f5 ret z - ld hl, W_PLAYERMONMOVES + ld hl, wBattleMonMoves call .loadmoves - FuncCoord 4, 12 ; $c494 - ld hl, Coord + hlCoord 4, 12 ld b, $4 ld c, $e di call TextBoxBorder - FuncCoord 4, 12 ; $c494 - ld hl, Coord + hlCoord 4, 12 ld [hl], $7a - FuncCoord 10, 12 ; $c49a - ld hl, Coord + hlCoord 10, 12 ld [hl], $7e ei - FuncCoord 6, 13 ; $c4aa - ld hl, Coord + hlCoord 6, 13 call .writemoves ld b, $5 ld a, $c jr .menuset .mimicmenu - ld hl, W_ENEMYMONMOVES + ld hl, wEnemyMonMoves call .loadmoves - FuncCoord 0, 7 ; $c42c - ld hl, Coord + hlCoord 0, 7 ld b, $4 ld c, $e call TextBoxBorder - FuncCoord 2, 8 ; $c442 - ld hl, Coord + hlCoord 2, 8 call .writemoves ld b, $1 ld a, $7 jr .menuset .relearnmenu - ld a, [wWhichPokemon] ; $cf92 - ld hl, W_PARTYMON1_MOVE1 ; $d173 + ld a, [wWhichPokemon] ; wWhichPokemon + ld hl, wPartyMon1Moves ; wPartyMon1Moves ld bc, $2c call AddNTimes call .loadmoves - FuncCoord 4, 7 ; $c430 - ld hl, Coord + hlCoord 4, 7 ld b, $4 ld c, $e call TextBoxBorder - FuncCoord 6, 8 ; $c446 - ld hl, Coord + hlCoord 6, 8 call .writemoves ld b, $5 ld a, $7 .menuset - ld hl, wTopMenuItemY ; $cc24 + ld hl, wTopMenuItemY ; wTopMenuItemY ld [hli], a ld a, b ld [hli], a ; wTopMenuItemX @@ -2563,12 +2494,12 @@ MoveSelectionMenu: ; 3d219 (f:5219) jr z, .selectedmoveknown ld a, $1 jr nc, .selectedmoveknown - ld a, [wPlayerMoveListIndex] ; $cc2e + ld a, [wPlayerMoveListIndex] ; wPlayerMoveListIndex inc a .selectedmoveknown ld [hli], a ; wCurrentMenuItem inc hl ; wTileBehindCursor untouched - ld a, [$cd6c] + ld a, [wcd6c] inc a inc a ld [hli], a ; wMaxMenuItem @@ -2579,7 +2510,7 @@ MoveSelectionMenu: ; 3d219 (f:5219) dec a ld b, $c3 jr z, .matchedkeyspicked - ld a, [W_ISLINKBATTLE] ; $d12b + ld a, [W_ISLINKBATTLE] ; W_ISLINKBATTLE cp $4 jr z, .matchedkeyspicked ld a, [W_FLAGS_D733] @@ -2593,7 +2524,7 @@ MoveSelectionMenu: ; 3d219 (f:5219) ld a, [wMoveMenuType] cp $1 jr z, .movelistindex1 - ld a, [wPlayerMoveListIndex] ; $cc2e + ld a, [wPlayerMoveListIndex] ; wPlayerMoveListIndex inc a .movelistindex1 ld [hl], a ; wLastMenuItem @@ -2604,8 +2535,7 @@ Func_3d2fe: ; 3d2fe (f:52fe) jr z, .battleselect dec a jr nz, .select - FuncCoord 1, 14 ; $c4b9 - ld hl, Coord + hlCoord 1, 14 ld de, WhichTechniqueString ; $53b8 call PlaceString jr .select @@ -2614,11 +2544,10 @@ Func_3d2fe: ; 3d2fe (f:52fe) bit 0, a jr nz, .select call Func_3d4b6 - ld a, [$cc35] + ld a, [wcc35] and a jr z, .select - FuncCoord 5, 13 ; $c4a9 - ld hl, Coord + hlCoord 5, 13 dec a ld bc, $14 call AddNTimes @@ -2638,10 +2567,10 @@ Func_3d2fe: ; 3d2fe (f:52fe) bit 1, a ; B, but was it reset above? push af xor a - ld [$cc35], a - ld a, [wCurrentMenuItem] ; $cc26 + ld [wcc35], a + ld a, [wCurrentMenuItem] ; wCurrentMenuItem dec a - ld [wCurrentMenuItem], a ; $cc26 + ld [wCurrentMenuItem], a ; wCurrentMenuItem ld b, a ld a, [wMoveMenuType] dec a ; if not mimic @@ -2651,38 +2580,38 @@ Func_3d2fe: ; 3d2fe (f:52fe) .nob dec a ld a, b - ld [wPlayerMoveListIndex], a ; $cc2e + ld [wPlayerMoveListIndex], a ; wPlayerMoveListIndex jr nz, .moveselected pop af ret .moveselected pop af ret nz - ld hl, W_PLAYERMONPP ; $d02d - ld a, [wCurrentMenuItem] ; $cc26 + ld hl, wBattleMonPP ; wBattleMonPP + ld a, [wCurrentMenuItem] ; wCurrentMenuItem ld c, a ld b, $0 add hl, bc ld a, [hl] and $3f jr z, .nopp - ld a, [W_PLAYERDISABLEDMOVE] ; $d06d + ld a, [W_PLAYERDISABLEDMOVE] ; W_PLAYERDISABLEDMOVE swap a and $f dec a cp c jr z, .disabled - ld a, [W_PLAYERBATTSTATUS3] ; $d064 + ld a, [W_PLAYERBATTSTATUS3] ; W_PLAYERBATTSTATUS3 bit 3, a ; transformed jr nz, .dummy ; game freak derp .dummy - ld a, [wCurrentMenuItem] ; $cc26 - ld hl, W_PLAYERMONMOVES + ld a, [wCurrentMenuItem] ; wCurrentMenuItem + ld hl, wBattleMonMoves ld c, a ld b, $0 add hl, bc ld a, [hl] - ld [wPlayerSelectedMove], a ; $ccdc + ld [wPlayerSelectedMove], a ; wPlayerSelectedMove xor a ret .disabled @@ -2707,34 +2636,34 @@ WhichTechniqueString: ; 3d3b8 (f:53b8) db "WHICH TECHNIQUE?@" Func_3d3c9: ; 3d3c9 (f:53c9) - ld a, [wCurrentMenuItem] ; $cc26 + ld a, [wCurrentMenuItem] ; wCurrentMenuItem and a jp nz, Func_3d2fe call EraseMenuCursor - ld a, [$cd6c] + ld a, [wcd6c] inc a - ld [wCurrentMenuItem], a ; $cc26 + ld [wCurrentMenuItem], a ; wCurrentMenuItem jp Func_3d2fe Func_3d3dd: ; 3d3dd (f:53dd) - ld a, [wCurrentMenuItem] ; $cc26 + ld a, [wCurrentMenuItem] ; wCurrentMenuItem ld b, a - ld a, [$cd6c] + ld a, [wcd6c] inc a inc a cp b jp nz, Func_3d2fe call EraseMenuCursor ld a, $1 - ld [wCurrentMenuItem], a ; $cc26 + ld [wCurrentMenuItem], a ; wCurrentMenuItem jp Func_3d2fe Func_3d3f5: ; 3d3f5 (f:53f5) ld a, $a5 - ld [wPlayerSelectedMove], a ; $ccdc - ld a, [W_PLAYERDISABLEDMOVE] ; $d06d + ld [wPlayerSelectedMove], a ; wPlayerSelectedMove + ld a, [W_PLAYERDISABLEDMOVE] ; W_PLAYERDISABLEDMOVE and a - ld hl, W_PLAYERMONPP ; $d02d + ld hl, wBattleMonPP ; wBattleMonPP jr nz, .asm_3d40e ld a, [hli] or [hl] @@ -2776,43 +2705,43 @@ NoMovesLeftText: ; 3d430 (f:5430) db "@" Func_3d435: ; 3d435 (f:5435) - ld a, [$cc35] + ld a, [wcc35] and a jr z, asm_3d4ad - ld hl, W_PLAYERMONMOVES + ld hl, wBattleMonMoves call Func_3d493 - ld hl, W_PLAYERMONPP ; $d02d + ld hl, wBattleMonPP ; wBattleMonPP call Func_3d493 - ld hl, W_PLAYERDISABLEDMOVE ; $d06d + ld hl, W_PLAYERDISABLEDMOVE ; W_PLAYERDISABLEDMOVE ld a, [hl] swap a and $f ld b, a - ld a, [wCurrentMenuItem] ; $cc26 + ld a, [wCurrentMenuItem] ; wCurrentMenuItem cp b jr nz, .asm_3d463 ld a, [hl] and $f ld b, a - ld a, [$cc35] + ld a, [wcc35] swap a add b ld [hl], a jr .asm_3d474 .asm_3d463 - ld a, [$cc35] + ld a, [wcc35] cp b jr nz, .asm_3d474 ld a, [hl] and $f ld b, a - ld a, [wCurrentMenuItem] ; $cc26 + ld a, [wCurrentMenuItem] ; wCurrentMenuItem swap a add b ld [hl], a .asm_3d474 - ld hl, W_PARTYMON1_MOVE1 ; $d173 - ld a, [wPlayerMonNumber] ; $cc2f + ld hl, wPartyMon1Moves ; wPartyMon1Moves + ld a, [wPlayerMonNumber] ; wPlayerMonNumber ld bc, $2c call AddNTimes push hl @@ -2822,12 +2751,12 @@ Func_3d435: ; 3d435 (f:5435) add hl, bc call Func_3d493 xor a - ld [$cc35], a + ld [wcc35], a jp MoveSelectionMenu Func_3d493: ; 3d493 (f:5493) push hl - ld a, [$cc35] + ld a, [wcc35] dec a ld c, a ld b, $0 @@ -2835,7 +2764,7 @@ Func_3d493: ; 3d493 (f:5493) ld d, h ld e, l pop hl - ld a, [wCurrentMenuItem] ; $cc26 + ld a, [wCurrentMenuItem] ; wCurrentMenuItem dec a ld c, a ld b, $0 @@ -2847,83 +2776,74 @@ Func_3d493: ; 3d493 (f:5493) ld [de], a ret asm_3d4ad: ; 3d4ad (f:54ad) - ld a, [wCurrentMenuItem] ; $cc26 - ld [$cc35], a + ld a, [wCurrentMenuItem] ; wCurrentMenuItem + ld [wcc35], a jp MoveSelectionMenu Func_3d4b6: ; 3d4b6 (f:54b6) xor a ld [H_AUTOBGTRANSFERENABLED], a ; $ffba - FuncCoord 0, 8 ; $c440 - ld hl, Coord + hlCoord 0, 8 ld b, $3 ld c, $9 call TextBoxBorder - ld a, [W_PLAYERDISABLEDMOVE] ; $d06d + ld a, [W_PLAYERDISABLEDMOVE] ; W_PLAYERDISABLEDMOVE and a jr z, .asm_3d4df swap a and $f ld b, a - ld a, [wCurrentMenuItem] ; $cc26 + ld a, [wCurrentMenuItem] ; wCurrentMenuItem cp b jr nz, .asm_3d4df - FuncCoord 1, 10 ; $c469 - ld hl, Coord + hlCoord 1, 10 ld de, DisabledText call PlaceString jr .asm_3d54e .asm_3d4df - ld hl, wCurrentMenuItem ; $cc26 + ld hl, wCurrentMenuItem ; wCurrentMenuItem dec [hl] xor a ld [H_WHOSETURN], a ; $fff3 - ld hl, W_PLAYERMONMOVES - ld a, [wCurrentMenuItem] ; $cc26 + ld hl, wBattleMonMoves + ld a, [wCurrentMenuItem] ; wCurrentMenuItem ld c, a ld b, $0 add hl, bc ld a, [hl] - ld [wPlayerSelectedMove], a ; $ccdc - ld a, [wPlayerMonNumber] ; $cc2f - ld [wWhichPokemon], a ; $cf92 + ld [wPlayerSelectedMove], a ; wPlayerSelectedMove + ld a, [wPlayerMonNumber] ; wPlayerMonNumber + ld [wWhichPokemon], a ; wWhichPokemon ld a, $4 - ld [$cc49], a + ld [wcc49], a callab GetMaxPP - ld hl, wCurrentMenuItem ; $cc26 + ld hl, wCurrentMenuItem ; wCurrentMenuItem ld c, [hl] inc [hl] ld b, $0 - ld hl, W_PLAYERMONPP ; $d02d + ld hl, wBattleMonPP ; wBattleMonPP add hl, bc ld a, [hl] and $3f - ld [$cd6d], a - FuncCoord 1, 9 ; $c455 - ld hl, Coord + ld [wcd6d], a + hlCoord 1, 9 ld de, TypeText call PlaceString - FuncCoord 7, 11 ; $c483 - ld hl, Coord + hlCoord 7, 11 ld [hl], "/" - FuncCoord 5, 9 ; $c459 - ld hl, Coord + hlCoord 5, 9 ld [hl], "/" - FuncCoord 5, 11 ; $c481 - ld hl, Coord - ld de, $cd6d + hlCoord 5, 11 + ld de, wcd6d ld bc, $102 call PrintNumber - FuncCoord 8, 11 ; $c484 - ld hl, Coord - ld de, $d11e + hlCoord 8, 11 + ld de, wd11e ld bc, $102 call PrintNumber call GetCurrentMove - FuncCoord 2, 10 ; $c46a - ld hl, Coord - ld a, $5d - call Predef ; indirect jump to Func_27d98 (27d98 (9:7d98)) + hlCoord 2, 10 + predef Func_27d98 .asm_3d54e ld a, $1 ld [H_AUTOBGTRANSFERENABLED], a ; $ffba @@ -2942,16 +2862,16 @@ SelectEnemyMove: ; 3d564 (f:5564) call SaveScreenTilesToBuffer1 call Func_3d605 call LoadScreenTilesFromBuffer1 - ld a, [$cc3e] + ld a, [wcc3e] cp $e jp z, .asm_3d601 cp $d jr z, .unableToMove cp $4 ret nc - ld [$cce2], a + ld [wEnemyMoveListIndex], a ld c, a - ld hl, W_ENEMYMONMOVES + ld hl, wEnemyMonMoves ld b, $0 add hl, bc ld a, [hl] @@ -2964,7 +2884,7 @@ SelectEnemyMove: ; 3d564 (f:5564) ld a, [hl] and $12 ; using multi-turn move or bide ret nz - ld a, [W_ENEMYMONSTATUS] + ld a, [wEnemyMonStatus] and SLP | 1 << FRZ ; sleeping or frozen ret nz ld a, [W_ENEMYBATTSTATUS1] @@ -2977,7 +2897,7 @@ SelectEnemyMove: ; 3d564 (f:5564) ld a, $ff jr .done .notCaughtInWrap - ld hl, W_ENEMYMONMOVES+1 ; 2nd enemy move + ld hl, wEnemyMonMoves+1 ; 2nd enemy move ld a, [hld] and a jr nz, .atLeastTwoMovesAvailable @@ -2992,7 +2912,7 @@ SelectEnemyMove: ; 3d564 (f:5564) callab AIEnemyTrainerChooseMoves .chooseRandomMove push hl - call GenRandomInBattle ; get random + call BattleRandom ld b, $1 cp $3f ; select move 1 in [0,3e] (63/256 chance) jr c, .moveChosen @@ -3028,35 +2948,35 @@ SelectEnemyMove: ; 3d564 (f:5564) Func_3d605: ; 3d605 (f:5605) ld a, $ff - ld [$cc3e], a - ld a, [wPlayerMoveListIndex] ; $cc2e + ld [wcc3e], a + ld a, [wPlayerMoveListIndex] ; wPlayerMoveListIndex cp $f jr z, .asm_3d630 - ld a, [$cd6a] + ld a, [wcd6a] and a jr nz, .asm_3d629 - ld a, [wPlayerSelectedMove] ; $ccdc + ld a, [wPlayerSelectedMove] ; wPlayerSelectedMove cp $a5 ld b, $e jr z, .asm_3d62f dec b inc a jr z, .asm_3d62f - ld a, [wPlayerMoveListIndex] ; $cc2e + ld a, [wPlayerMoveListIndex] ; wPlayerMoveListIndex jr .asm_3d630 .asm_3d629 - ld a, [wWhichPokemon] ; $cf92 + ld a, [wWhichPokemon] ; wWhichPokemon add $4 ld b, a .asm_3d62f ld a, b .asm_3d630 - ld [$cc42], a + ld [wcc42], a callab PrintWaitingText .asm_3d63b call Func_22c3 call DelayFrame - ld a, [$cc3e] + ld a, [wcc3e] inc a jr z, .asm_3d63b ld b, $a @@ -3076,16 +2996,16 @@ Func_3d605: ; 3d605 (f:5605) Func_3d65e: ; 3d65e (f:565e) xor a ld [H_WHOSETURN], a ; $fff3 - ld a, [wPlayerSelectedMove] ; $ccdc + ld a, [wPlayerSelectedMove] ; wPlayerSelectedMove inc a jp z, Func_3d80a xor a - ld [W_MOVEMISSED], a ; $d05f - ld [$cced], a - ld [$ccf4], a + ld [W_MOVEMISSED], a ; W_MOVEMISSED + ld [wcced], a + ld [wccf4], a ld a, $a - ld [$d05b], a - ld a, [$cd6a] + ld [wd05b], a + ld a, [wcd6a] and a jp nz, Func_3d80a call PrintGhostText @@ -3095,14 +3015,14 @@ Func_3d65e: ; 3d65e (f:565e) jp [hl] .asm_3d68a call GetCurrentMove - ld hl, W_PLAYERBATTSTATUS1 ; $d062 + ld hl, W_PLAYERBATTSTATUS1 ; W_PLAYERBATTSTATUS1 bit 4, [hl] jr nz, asm_3d6a9 call Func_3dc88 jp z, Func_3d80a Func_3d69a: ; 3d69a (f:569a) - ld a, [W_PLAYERMOVEEFFECT] ; $cfd3 + ld a, [W_PLAYERMOVEEFFECT] ; wcfd3 cp CHARGE_EFFECT jp z, Func_3f132 cp FLY_EFFECT @@ -3117,7 +3037,7 @@ asm_3d6a9: ; 3d6a9 (f:56a9) asm_3d6b0: ; 3d6b0 (f:56b0) call PrintMonName1Text ld hl,DecrementPP - ld de,$CCDC ; pointer to the move just used + ld de,wPlayerSelectedMove ; pointer to the move just used ld b,BANK(DecrementPP) call Bankswitch ld a,[W_PLAYERMOVEEFFECT] ; effect of the move just used @@ -3168,7 +3088,7 @@ asm_3d71e ld b,BANK(Func_79747) call nz,Bankswitch pop af - ld [$CC5B],a + ld [wcc5b],a ld a,[W_PLAYERMOVENUM] call PlayMoveAnimation call Func_3eed3 @@ -3190,7 +3110,7 @@ asm_3d74b jr asm_3d766 .next5 xor a - ld [$CC5B],a + ld [wcc5b],a ld a,STATUS_AFFECTED_ANIM call PlayMoveAnimation asm_3d766 @@ -3200,7 +3120,7 @@ asm_3d766 call MirrorMoveCopyMove jp z,Func_3d80a xor a - ld [$CCED],a + ld [wcced],a jp Func_3d69a .next6 cp a,METRONOME_EFFECT @@ -3226,14 +3146,14 @@ asm_3d766 call Func_3dc5c callab DisplayEffectiveness ld a,1 - ld [$CCF4],a + ld [wccf4],a .next9 ld a,[W_PLAYERMOVEEFFECT] ld hl,EffectsArray4 ld de,1 call IsInArray call c,Func_3f132 - ld hl,$CFE6 + ld hl,wEnemyMonHP ld a,[hli] ld b,[hl] or b @@ -3243,9 +3163,9 @@ asm_3d766 ld hl,W_PLAYERBATTSTATUS1 bit 2,[hl] jr z,.next10 ; 57EF - ld a,[$D06A] + ld a,[wd06a] dec a - ld [$D06A],a + ld [wd06a],a jp nz,asm_3d714 res 2,[hl] @@ -3269,7 +3189,7 @@ MultiHitText: ; 3d805 (f:5805) Func_3d80a: ; 3d80a (f:580a) xor a - ld [$CD6A],a + ld [wcd6a],a ld b,1 ret @@ -3280,7 +3200,7 @@ PrintGhostText: ; 3d811 (f:5811) ld a,[H_WHOSETURN] and a jr nz,.Ghost - ld a,[W_PLAYERMONSTATUS] ; player’s turn + ld a,[wBattleMonStatus] ; player’s turn and a,SLP | (1 << FRZ) ret nz ld hl,ScaredText @@ -3319,18 +3239,18 @@ IsGhostBattle: ; 3d83a (f:583a) ret Func_3d854: ; 3d854 (f:5854) - ld hl,W_PLAYERMONSTATUS + ld hl,wBattleMonStatus ld a,[hl] and a,SLP jr z,.FrozenCheck ; to 5884 dec a - ld [W_PLAYERMONSTATUS],a ; decrement sleep count + ld [wBattleMonStatus],a ; decrement sleep count and a jr z,.WakeUp ; to 5874 xor a - ld [$CC5B],a + ld [wcc5b],a ld a,SLP_ANIM - 1 call PlayMoveAnimation ld hl,FastAsleepText @@ -3341,7 +3261,7 @@ Func_3d854: ; 3d854 (f:5854) call PrintText .sleepDone xor a - ld [$CCF1],a + ld [wccf1],a ld hl,Func_3d80a jp Func_3da37 @@ -3351,7 +3271,7 @@ Func_3d854: ; 3d854 (f:5854) ld hl,IsFrozenText call PrintText xor a - ld [$CCF1],a + ld [wccf1],a ld hl,Func_3d80a jp Func_3da37 @@ -3384,7 +3304,7 @@ HyperBeamCheck: ; 3d8c2 (f:58c2) ld hl,Func_3d80a ; $580a jp Func_3da37 .next - ld hl,$D06D + ld hl,W_PLAYERDISABLEDMOVE ld a,[hl] and a jr z,.next2 ; 58EE @@ -3393,14 +3313,14 @@ HyperBeamCheck: ; 3d8c2 (f:58c2) and a,$F jr nz,.next2 ld [hl],a - ld [$CCEE],a + ld [wccee],a ld hl,DisabledNoMoreText call PrintText .next2 ld a,[W_PLAYERBATTSTATUS1] add a jr nc,.next3 ; 5929 - ld hl,$D06B + ld hl,wd06b dec [hl] jr nz,.next4 ; 5907 ld hl,W_PLAYERBATTSTATUS1 @@ -3412,10 +3332,10 @@ HyperBeamCheck: ; 3d8c2 (f:58c2) ld hl,IsConfusedText call PrintText xor a - ld [$CC5B],a + ld [wcc5b],a ld a,CONF_ANIM - 1 call PlayMoveAnimation - call GenRandomInBattle + call BattleRandom cp a,$80 jr c,.next3 ld hl,W_PLAYERBATTSTATUS1 @@ -3425,20 +3345,20 @@ HyperBeamCheck: ; 3d8c2 (f:58c2) call PrintHurtItselfText jr .next5 ; 5952 .next3 - ld a,[$CCEE] + ld a,[wccee] and a jr z,.ParalysisCheck ; 593E - ld hl,$CCDC + ld hl,wPlayerSelectedMove cp [hl] jr nz,.ParalysisCheck call PrintMoveIsDisabledText ld hl,Func_3d80a ; $580a jp Func_3da37 .ParalysisCheck - ld hl,W_PLAYERMONSTATUS + ld hl,wBattleMonStatus bit PAR,[hl] jr z,.next7 ; 5975 - call GenRandomInBattle ; random number + call BattleRandom cp a,$3F jr nc,.next7 ld hl,FullyParalyzedText @@ -3456,7 +3376,7 @@ HyperBeamCheck: ; 3d8c2 (f:58c2) jr .next9 ; 596F .next8 xor a - ld [$CC5B],a + ld [wcc5b],a ld a,STATUS_AFFECTED_ANIM call PlayMoveAnimation .next9 @@ -3468,18 +3388,18 @@ HyperBeamCheck: ; 3d8c2 (f:58c2) jr z,.next10 ; 59D0 xor a ld [W_PLAYERMOVENUM],a - ld hl,$D0D7 + ld hl,W_DAMAGE ld a,[hli] ld b,a ld c,[hl] - ld hl,$D075 + ld hl,wd075 ld a,[hl] add c ld [hld],a ld a,[hl] adc b ld [hl],a - ld hl,$D06A + ld hl,wd06a dec [hl] jr z,.next11 ; 599B ld hl,Func_3d80a ; $580a @@ -3490,15 +3410,15 @@ HyperBeamCheck: ; 3d8c2 (f:58c2) ld hl,UnleashedEnergyText call PrintText ld a,1 - ld [$CFD4],a - ld hl,$D075 + ld [W_PLAYERMOVEPOWER],a + ld hl,wd075 ld a,[hld] add a ld b,a - ld [$D0D8],a + ld [wd0d8],a ld a,[hl] rl a - ld [$D0D7],a + ld [W_DAMAGE],a or b jr nz,.next12 ; 59C2 ld a,1 @@ -3518,7 +3438,7 @@ HyperBeamCheck: ; 3d8c2 (f:58c2) ld [W_PLAYERMOVENUM],a ld hl,ThrashingAboutText call PrintText - ld hl,$D06A + ld hl,wd06a dec [hl] ld hl,asm_3d6dc ; $56dc jp nz,Func_3da37 @@ -3526,11 +3446,11 @@ HyperBeamCheck: ; 3d8c2 (f:58c2) ld hl,W_PLAYERBATTSTATUS1 res 1,[hl] set 7,[hl] - call GenRandomInBattle ; random number + call BattleRandom and a,3 inc a inc a - ld [$D06B],a + ld [wd06b],a pop hl jp Func_3da37 .next13 @@ -3538,23 +3458,23 @@ HyperBeamCheck: ; 3d8c2 (f:58c2) jp z,Func_3da1a ld hl,AttackContinuesText call PrintText - ld a,[$D06A] + ld a,[wd06a] dec a - ld [$D06A],a + ld [wd06a],a ld hl,asm_3d714 ; $5714 jp nz,Func_3da37 jp Func_3da37 Func_3da1a: ; 3da1a (f:5a1a) - ld a, [W_PLAYERBATTSTATUS2] ; $d063 + ld a, [W_PLAYERBATTSTATUS2] ; W_PLAYERBATTSTATUS2 bit 6, a jp z, Func_3da39 ld a, RAGE - ld [$d11e], a + ld [wd11e], a call GetMoveName call CopyStringToCF4B xor a - ld [W_PLAYERMOVEEFFECT], a ; $cfd3 + ld [W_PLAYERMOVEEFFECT], a ; wcfd3 ld hl, asm_3d6b0 ; $56b0 jp Func_3da37 @@ -3628,19 +3548,19 @@ CantMoveText: ; 3da83 (f:5a83) db "@" PrintMoveIsDisabledText: ; 3da88 (f:5a88) - ld hl, wPlayerSelectedMove ; $ccdc - ld de, W_PLAYERBATTSTATUS1 ; $d062 + ld hl, wPlayerSelectedMove ; wPlayerSelectedMove + ld de, W_PLAYERBATTSTATUS1 ; W_PLAYERBATTSTATUS1 ld a, [H_WHOSETURN] ; $fff3 and a jr z, .asm_3da97 inc hl - ld de, W_ENEMYBATTSTATUS1 ; $d067 + ld de, W_ENEMYBATTSTATUS1 ; W_ENEMYBATTSTATUS1 .asm_3da97 ld a, [de] res 4, a ld [de], a ld a, [hl] - ld [$d11e], a + ld [wd11e], a call GetMoveName ld hl, MoveIsDisabledText jp PrintText @@ -3652,22 +3572,22 @@ MoveIsDisabledText: ; 3daa8 (f:5aa8) PrintHurtItselfText: ; 3daad (f:5aad) ld hl, HurtItselfText call PrintText - ld hl, W_ENEMYMONDEFENSE ; $cff8 + ld hl, wEnemyMonDefense ; wcff8 ld a, [hli] push af ld a, [hld] push af - ld a, [W_PLAYERMONDEF] + ld a, [wBattleMonDefense] ld [hli], a - ld a, [$d028] + ld a, [wBattleMonDefense + 1] ld [hl], a - ld hl, W_PLAYERMOVEEFFECT ; $cfd3 + ld hl, W_PLAYERMOVEEFFECT ; wcfd3 push hl ld a, [hl] push af xor a ld [hli], a - ld [$d05e], a + ld [wd05e], a ld a, $28 ld [hli], a xor a @@ -3677,13 +3597,13 @@ PrintHurtItselfText: ; 3daad (f:5aad) pop af pop hl ld [hl], a - ld hl, $cff9 + ld hl, wEnemyMonDefense + 1 pop af ld [hld], a pop af ld [hl], a xor a - ld [$cc5b], a + ld [wcc5b], a inc a ld [H_WHOSETURN], a ; $fff3 call PlayMoveAnimation @@ -3701,20 +3621,20 @@ MonName1Text: ; 3dafb (f:5afb) db $08 ; asm ld a, [H_WHOSETURN] ; $fff3 and a - ld a, [W_PLAYERMOVENUM] ; $cfd2 - ld hl, $ccf1 + ld a, [W_PLAYERMOVENUM] ; wcfd2 + ld hl, wccf1 jr z, .asm_3db11 - ld a, [W_ENEMYMOVENUM] ; $cfcc - ld hl, $ccf2 + ld a, [W_ENEMYMOVENUM] ; W_ENEMYMOVENUM + ld hl, wccf2 .asm_3db11 ld [hl], a - ld [$d11e], a + ld [wd11e], a call Func_3db85 - ld a, [$cced] + ld a, [wcced] and a ld hl, Used2Text ret nz - ld a, [$d11e] + ld a, [wd11e] cp DOUBLESLAP ld hl, Used2Text ret c @@ -3731,7 +3651,7 @@ Used2Text: ; 3db34 (f:5b34) db $08 ; asm PrintInsteadText: ; 3db39 (f:5b39) - ld a, [$cced] + ld a, [wcced] and a jr z, PrintCF4BText ld hl, InsteadText @@ -3749,7 +3669,7 @@ CF4BText: ; 3db4c (f:5b4c) TX_FAR _CF4BText db $08 ; asm ld hl, ExclamationPointPointerTable - ld a, [$d11e] + ld a, [wd11e] add a push bc ld b, $0 @@ -3790,7 +3710,7 @@ ExclamationPoint5Text: ; 3db80 (f:5b80) Func_3db85: ; 3db85 (f:5b85) push bc - ld a, [$d11e] ; move number + ld a, [wd11e] ; move number ld c, a ld b, $0 ld hl, UnknownMovesList_3dba3 ; $5ba3 @@ -3806,7 +3726,7 @@ Func_3db85: ; 3db85 (f:5b85) jr .asm_3db8f .asm_3db9d ld a, b - ld [$d11e], a + ld [wd11e], a pop bc ret @@ -3826,18 +3746,18 @@ UnknownMovesList_3dba3: ; 3dba3 (f:5ba3) db $FF ; terminator PrintMoveFailureText: ; 3dbe2 (f:5be2) - ld de, W_PLAYERMOVEEFFECT ; $cfd3 + ld de, W_PLAYERMOVEEFFECT ; wcfd3 ld a, [H_WHOSETURN] ; $fff3 and a jr z, .asm_3dbed - ld de, W_ENEMYMOVEEFFECT ; $cfcd + ld de, W_ENEMYMOVEEFFECT ; W_ENEMYMOVEEFFECT .asm_3dbed ld hl, DoesntAffectMonText ; $5c57 - ld a, [$d05b] + ld a, [wd05b] and $7f jr z, .asm_3dc04 ld hl, AttackMissedText ; $5c42 - ld a, [$d05e] + ld a, [wd05e] cp $ff jr nz, .asm_3dc04 ld hl, UnaffectedText ; $5c4c @@ -3845,14 +3765,14 @@ PrintMoveFailureText: ; 3dbe2 (f:5be2) push de call PrintText xor a - ld [$d05e], a + ld [wd05e], a pop de ld a, [de] cp JUMP_KICK_EFFECT ret nz ; if you get here, the mon used hi jump kick and missed - ld hl, W_DAMAGE ; $d0d7 + ld hl, W_DAMAGE ; W_DAMAGE ld a, [hli] ld b, [hl] srl a @@ -3872,8 +3792,7 @@ PrintMoveFailureText: ; 3dbe2 (f:5be2) ld hl, KeptGoingAndCrashedText ; $5c47 call PrintText ld b, $4 - ld a, $24 - call Predef ; indirect jump to Func_48125 (48125 (12:4125)) + predef Func_48125 ld a, [H_WHOSETURN] ; $fff3 and a jr nz, .asm_3dc3f @@ -3902,7 +3821,7 @@ DoesntAffectMonText: ; 3dc57 (f:5c57) db "@" Func_3dc5c: ; 3dc5c (f:5c5c) - ld a, [$d05e] + ld a, [wd05e] and a jr z, .asm_3dc75 dec a @@ -3916,7 +3835,7 @@ Func_3dc5c: ; 3dc5c (f:5c5c) ld l, a call PrintText xor a - ld [$d05e], a + ld [wd05e], a .asm_3dc75 ld c, $14 jp DelayFrames @@ -3935,23 +3854,23 @@ OHKOText: ; 3dc83 (f:5c83) Func_3dc88: ; 3dc88 (f:5c88) xor a - ld [$cced], a - ld a, [W_ISLINKBATTLE] ; $d12b + ld [wcced], a + ld a, [W_ISLINKBATTLE] ; W_ISLINKBATTLE cp $4 jr nz, .asm_3dc97 ld a, $1 and a ret .asm_3dc97 - ld hl, W_PARTYMON1_OTID ; $d177 + ld hl, wPartyMon1OTID ; wPartyMon1OTID ld bc, $2c - ld a, [wPlayerMonNumber] ; $cc2f + ld a, [wPlayerMonNumber] ; wPlayerMonNumber call AddNTimes - ld a, [wPlayerID] ; $d359 + ld a, [wPlayerID] ; wPlayerID cp [hl] jr nz, .asm_3dcb1 inc hl - ld a, [wPlayerID + 1] ; $d35a + ld a, [wPlayerID + 1] ; wd35a cp [hl] jp z, Func_3ddb0 .asm_3dcb1 @@ -3973,7 +3892,7 @@ Func_3dc88: ; 3dc88 (f:5c88) .asm_3dcce ld b, a ld c, a - ld a, [W_PLAYERMONLEVEL] ; $d022 + ld a, [wBattleMonLevel] ; wBattleMonLevel ld d, a add b ld b, a @@ -3984,14 +3903,14 @@ Func_3dc88: ; 3dc88 (f:5c88) cp d jp nc, Func_3ddb0 .asm_3dcdf - call GenRandomInBattle + call BattleRandom swap a cp b jr nc, .asm_3dcdf cp c jp c, Func_3ddb0 .asm_3dceb - call GenRandomInBattle + call BattleRandom cp b jr nc, .asm_3dceb cp c @@ -3999,7 +3918,7 @@ Func_3dc88: ; 3dc88 (f:5c88) ld a, d sub c ld b, a - call GenRandomInBattle + call BattleRandom swap a sub b jr c, .asm_3dd0e @@ -4010,16 +3929,16 @@ Func_3dc88: ; 3dc88 (f:5c88) call PrintHurtItselfText jp Func_3ddb4 .asm_3dd0e - call GenRandomInBattle + call BattleRandom add a swap a and $7 jr z, .asm_3dd0e - ld [W_PLAYERMONSTATUS], a ; $d018 + ld [wBattleMonStatus], a ; wBattleMonStatus ld hl, BeganToNapText jr .asm_3dd3a .asm_3dd20 - call GenRandomInBattle + call BattleRandom and $3 ld hl, LoafingAroundText and a @@ -4035,16 +3954,16 @@ Func_3dc88: ; 3dc88 (f:5c88) call PrintText jr Func_3ddb4 .asm_3dd3f - ld a, [$d01d] + ld a, [wBattleMonMoves + 1] and a jr z, .asm_3dd20 - ld a, [$ccee] + ld a, [wccee] and a jr nz, .asm_3dd20 - ld a, [wPlayerSelectedMove] ; $ccdc + ld a, [wPlayerSelectedMove] ; wPlayerSelectedMove cp $a5 jr z, .asm_3dd20 - ld hl, W_PLAYERMONPP ; $d02d + ld hl, wBattleMonPP ; wBattleMonPP push hl ld a, [hli] and $3f @@ -4062,7 +3981,7 @@ Func_3dc88: ; 3dc88 (f:5c88) add b pop hl push af - ld a, [wCurrentMenuItem] ; $cc26 + ld a, [wCurrentMenuItem] ; wCurrentMenuItem ld c, a ld b, $0 add hl, bc @@ -4073,33 +3992,33 @@ Func_3dc88: ; 3dc88 (f:5c88) cp b jr z, .asm_3dd20 ld a, $1 - ld [$cced], a - ld a, [wMaxMenuItem] ; $cc28 + ld [wcced], a + ld a, [wMaxMenuItem] ; wMaxMenuItem ld b, a - ld a, [wCurrentMenuItem] ; $cc26 + ld a, [wCurrentMenuItem] ; wCurrentMenuItem ld c, a .asm_3dd86 - call GenRandomInBattle + call BattleRandom and $3 cp b jr nc, .asm_3dd86 cp c jr z, .asm_3dd86 - ld [wCurrentMenuItem], a ; $cc26 - ld hl, W_PLAYERMONPP ; $d02d + ld [wCurrentMenuItem], a ; wCurrentMenuItem + ld hl, wBattleMonPP ; wBattleMonPP ld e, a ld d, $0 add hl, de ld a, [hl] and a jr z, .asm_3dd86 - ld a, [wCurrentMenuItem] ; $cc26 + ld a, [wCurrentMenuItem] ; wCurrentMenuItem ld c, a ld b, $0 - ld hl, W_PLAYERMONMOVES + ld hl, wBattleMonMoves add hl, bc ld a, [hl] - ld [wPlayerSelectedMove], a ; $ccdc + ld [wPlayerSelectedMove], a ; wPlayerSelectedMove call GetCurrentMove Func_3ddb0: ; 3ddb0 (f:5db0) @@ -4145,7 +4064,7 @@ CalculateDamage: ; 3ddcf (f:5dcf) cp a, $14 ;types >= $14 are all special jr nc, .specialAttack .physicalAttack - ld hl, W_ENEMYMONDEFENSE ;opponent defense + ld hl, wEnemyMonDefense ;opponent defense ld a, [hli] ;*BC = opponent defense used later ld b, a ld c, [hl] @@ -4156,8 +4075,8 @@ CalculateDamage: ; 3ddcf (f:5dcf) sla c ;x2 defense if bit2 of D069 is set rl b .next - ld hl, W_PLAYERMONATK ;attack pointer - ld a, [$d05e] + ld hl, wBattleMonAttack ;attack pointer + ld a, [wd05e] and a jr z, .next3 ld c, 3 @@ -4167,14 +4086,14 @@ CalculateDamage: ; 3ddcf (f:5dcf) ld a, [$ff98] ld c, a push bc - ld hl, $d18f + ld hl, wPartyMon1Attack ld a, [wPlayerMonNumber] - ld bc, $002c + ld bc, wPartyMon2 - wPartyMon1 call AddNTimes pop bc jr .next3 .specialAttack - ld hl, W_ENEMYMONSPECIAL ;opponent special + ld hl, wEnemyMonSpecial ;opponent special ld a, [hli] ;*BC = opponent special defense used later ld b, a ld c, [hl] @@ -4185,8 +4104,8 @@ CalculateDamage: ; 3ddcf (f:5dcf) sla c ;x2 special defense if bit1 of D069 set rl b .next2 - ld hl, W_PLAYERMONSPECIAL - ld a, [$d05e] ;XXX + ld hl, wBattleMonSpecial + ld a, [wd05e] ;XXX and a jr z, .next3 ;skip portion of code that pulls up inactive pokemon .loadOtherPoke @@ -4197,9 +4116,9 @@ CalculateDamage: ; 3ddcf (f:5dcf) ld a, [$ff98] ld c, a push bc - ld hl, $d195 + ld hl, wPartyMon1Special ld a, [wPlayerMonNumber] - ld bc, $002c + ld bc, wPartyMon2 - wPartyMon1 call AddNTimes pop bc .next3 @@ -4222,9 +4141,9 @@ CalculateDamage: ; 3ddcf (f:5dcf) inc l ;minimum HL = 1 .next4 ld b, l ;*B = attack [possibly scaled] [C contains defense] - ld a, [$d022] ;*E = level + ld a, [wBattleMonLevel] ;*E = level ld e, a - ld a, [$d05e] ;critical hit? + ld a, [wd05e] ;critical hit? and a jr z, .next5 sla e ;double level if it was a critical hit @@ -4234,11 +4153,11 @@ CalculateDamage: ; 3ddcf (f:5dcf) ret Func_3de75: ; 3de75 (f:5e75) - ld hl, W_DAMAGE ; $d0d7 + ld hl, W_DAMAGE ; W_DAMAGE xor a ld [hli], a ld [hl], a - ld hl, W_ENEMYMOVEPOWER ; $cfce + ld hl, W_ENEMYMOVEPOWER ; wcfce ld a, [hli] ld d, a and a @@ -4246,22 +4165,22 @@ Func_3de75: ; 3de75 (f:5e75) ld a, [hl] cp $14 jr nc, .asm_3debc - ld hl, W_PLAYERMONDEF + ld hl, wBattleMonDefense ld a, [hli] ld b, a ld c, [hl] - ld a, [W_PLAYERBATTSTATUS3] ; $d064 + ld a, [W_PLAYERBATTSTATUS3] ; W_PLAYERBATTSTATUS3 bit 2, a jr z, .asm_3de98 sla c rl b .asm_3de98 - ld hl, W_ENEMYMONATTACK - ld a, [$d05e] + ld hl, wEnemyMonAttack + ld a, [wd05e] and a jr z, .asm_3deef - ld hl, W_PARTYMON1_DEFENSE ; $d191 - ld a, [wPlayerMonNumber] ; $cc2f + ld hl, wPartyMon1Defense + ld a, [wPlayerMonNumber] ; wPlayerMonNumber ld bc, $2c call AddNTimes ld a, [hli] @@ -4274,22 +4193,22 @@ Func_3de75: ; 3de75 (f:5e75) pop bc jr .asm_3deef .asm_3debc - ld hl, W_PLAYERMONSPECIAL + ld hl, wBattleMonSpecial ld a, [hli] ld b, a ld c, [hl] - ld a, [W_PLAYERBATTSTATUS3] ; $d064 + ld a, [W_PLAYERBATTSTATUS3] ; W_PLAYERBATTSTATUS3 bit 1, a jr z, .asm_3decd sla c rl b .asm_3decd - ld hl, W_ENEMYMONSPECIAL ; $cffc - ld a, [$d05e] + ld hl, wEnemyMonSpecial ; wcffc + ld a, [wd05e] and a jr z, .asm_3deef - ld hl, W_PARTYMON1_SPECIAL ; $d195 - ld a, [wPlayerMonNumber] ; $cc2f + ld hl, wPartyMon1Special ; wPartyMon1Special + ld a, [wPlayerMonNumber] ; wPlayerMonNumber ld bc, $2c call AddNTimes ld a, [hli] @@ -4320,9 +4239,9 @@ Func_3de75: ; 3de75 (f:5e75) inc l .asm_3df0a ld b, l - ld a, [W_ENEMYMONLEVEL] ; $cff3 + ld a, [wEnemyMonLevel] ; wEnemyMonLevel ld e, a - ld a, [$d05e] + ld a, [wd05e] and a jr z, .asm_3df17 sla e @@ -4335,16 +4254,16 @@ Func_3de75: ; 3de75 (f:5e75) Func_3df1c: ; 3df1c (f:5f1c) push de push bc - ld a, [W_ISLINKBATTLE] ; $d12b + ld a, [W_ISLINKBATTLE] ; W_ISLINKBATTLE cp $4 jr nz, .asm_3df40 - ld hl, $d8c6 + ld hl, wEnemyMon1Stats dec c sla c ld b, $0 add hl, bc - ld a, [W_ENEMYMONNUMBER] ; $cfe8 - ld bc, $2c + ld a, [wEnemyMonPartyPos] + ld bc, wEnemyMon2 - wEnemyMon1 call AddNTimes ld a, [hli] ld [$ff97], a @@ -4354,13 +4273,13 @@ Func_3df1c: ; 3df1c (f:5f1c) pop de ret .asm_3df40 - ld a, [W_ENEMYMONLEVEL] ; $cff3 - ld [W_CURENEMYLVL], a ; $d127 - ld a, [$cfe5] - ld [$d0b5], a + ld a, [wEnemyMonLevel] ; wEnemyMonLevel + ld [W_CURENEMYLVL], a ; W_CURENEMYLVL + ld a, [wEnemyMonSpecies] + ld [wd0b5], a call GetMonHeader - ld hl, $cff1 - ld de, $cfaf + ld hl, wEnemyMonDVs + ld de, wcfaf ld a, [hli] ld [de], a inc de @@ -4368,7 +4287,7 @@ Func_3df1c: ; 3df1c (f:5f1c) ld [de], a pop bc ld b, $0 - ld hl, $cfa4 + ld hl, wcfa4 call CalcStat pop de ret @@ -4384,7 +4303,7 @@ MoreCalculateDamage: ; 3df65 (f:5f65) and a ld a, [W_PLAYERMOVEEFFECT] jr z, .effect - ld a, [$cfcd] + ld a, [W_ENEMYMOVEEFFECT] .effect ; EXPLODE_EFFECT halves defense. @@ -4534,7 +4453,7 @@ MoreCalculateDamage: ; 3df65 (f:5f65) Func_3e016: ; 3e016 (f:6016) call Func_3f132 - ld a, [W_MOVEMISSED] ; $d05f + ld a, [W_MOVEMISSED] ; W_MOVEMISSED dec a ret @@ -4552,25 +4471,25 @@ UnusedHighCriticalMoves: ; 3e01e (f:601e) ; among the most popular) tend to CH about 20 to 25% of the time." CriticalHitTest: ; 3e023 (f:6023) xor a - ld [$d05e], a + ld [wd05e], a ld a, [H_WHOSETURN] ; $fff3 and a - ld a, [$cfe5] + ld a, [wEnemyMonSpecies] jr nz, .asm_3e032 - ld a, [W_PLAYERMONID] + ld a, [wBattleMonSpecies] .asm_3e032 - ld [$d0b5], a + ld [wd0b5], a call GetMonHeader ld a, [W_MONHBASESPEED] ld b, a srl b ; (effective (base speed/2)) ld a, [H_WHOSETURN] ; $fff3 and a - ld hl, W_PLAYERMOVEPOWER ; $cfd4 - ld de, W_PLAYERBATTSTATUS2 ; $d063 + ld hl, W_PLAYERMOVEPOWER ; W_PLAYERMOVEPOWER + ld de, W_PLAYERBATTSTATUS2 ; W_PLAYERBATTSTATUS2 jr z, .calcCriticalHitProbability - ld hl, W_ENEMYMOVEPOWER ; $cfce - ld de, W_ENEMYBATTSTATUS2 ; $d068 + ld hl, W_ENEMYMOVEPOWER ; wcfce + ld de, W_ENEMYBATTSTATUS2 ; W_ENEMYBATTSTATUS2 .calcCriticalHitProbability ; 0x3e04f ld a, [hld] ; read base power from RAM and a @@ -4606,14 +4525,14 @@ CriticalHitTest: ; 3e023 (f:6023) jr nc, .SkipHighCritical ld b, $ff .SkipHighCritical - call GenRandomInBattle ; generates a random value, in "a" + call BattleRandom ; generates a random value, in "a" rlc a rlc a rlc a cp b ; check a against calculated crit rate ret nc ; no critical hit if no borrow ld a, $1 - ld [$d05e], a ; set critical hit flag + ld [wd05e], a ; set critical hit flag ret ; high critical hit moves @@ -4697,7 +4616,7 @@ ApplyAttackToEnemyPokemon: ; 3e0df (f:60df) jr ApplyDamageToEnemyPokemon .superFangEffect ; set the damage to half the target's HP - ld hl,W_ENEMYMONCURHP + ld hl,wEnemyMonHP ld de,W_DAMAGE ld a,[hli] srl a @@ -4714,7 +4633,7 @@ ApplyAttackToEnemyPokemon: ; 3e0df (f:60df) ld [de],a jr ApplyDamageToEnemyPokemon .specialDamage - ld hl,W_PLAYERMONLEVEL + ld hl,wBattleMonLevel ld a,[hl] ld b,a ld a,[W_PLAYERMOVENUM] @@ -4736,7 +4655,7 @@ ApplyAttackToEnemyPokemon: ; 3e0df (f:60df) ld b,a ; b = level * 1.5 ; loop until a random number in the range [1, b) is found .loop - call GenRandomInBattle ; random number + call BattleRandom and a jr z,.loop cp b @@ -4763,16 +4682,16 @@ ApplyDamageToEnemyPokemon: ; 3e142 (f:6142) ; also, save the current HP at wHPBarOldHP ld a,[hld] ld b,a - ld a,[W_ENEMYMONCURHP + 1] + ld a,[wEnemyMonHP + 1] ld [wHPBarOldHP],a sub b - ld [W_ENEMYMONCURHP + 1],a + ld [wEnemyMonHP + 1],a ld a,[hl] ld b,a - ld a,[W_ENEMYMONCURHP] + ld a,[wEnemyMonHP] ld [wHPBarOldHP+1],a sbc b - ld [W_ENEMYMONCURHP],a + ld [wEnemyMonHP],a jr nc,.animateHpBar ; if more damage was done than the current HP, zero the HP and set the damage ; equal to how much HP the pokemon had before the attack @@ -4781,26 +4700,24 @@ ApplyDamageToEnemyPokemon: ; 3e142 (f:6142) ld a,[wHPBarOldHP] ld [hl],a xor a - ld hl,W_ENEMYMONCURHP + ld hl,wEnemyMonHP ld [hli],a ld [hl],a .animateHpBar - ld hl,W_ENEMYMONMAXHP + ld hl,wEnemyMonMaxHP ld a,[hli] ld [wHPBarMaxHP+1],a ld a,[hl] ld [wHPBarMaxHP],a - ld hl,W_ENEMYMONCURHP + ld hl,wEnemyMonHP ld a,[hli] ld [wHPBarNewHP+1],a ld a,[hl] ld [wHPBarNewHP],a - FuncCoord 2, 2 ; $c3ca - ld hl,Coord + hlCoord 2, 2 xor a - ld [$cf94],a - ld a,$48 - call Predef ; animate the HP bar shortening + ld [wListMenuID],a + predef UpdateHPBar2 ; animate the HP bar shortening ApplyAttackToEnemyPokemonDone: ; 3e19d (f:619d) jp Func_3cd5a ; redraw pokemon names and HP bars @@ -4818,7 +4735,7 @@ ApplyAttackToPlayerPokemon: ; 3e1a0 (f:61a0) jr ApplyDamageToPlayerPokemon .superFangEffect ; set the damage to half the target's HP - ld hl,W_PLAYERMONCURHP + ld hl,wBattleMonHP ld de,W_DAMAGE ld a,[hli] srl a @@ -4835,7 +4752,7 @@ ApplyAttackToPlayerPokemon: ; 3e1a0 (f:61a0) ld [de],a jr ApplyDamageToPlayerPokemon .specialDamage - ld hl,W_ENEMYMONLEVEL + ld hl,wEnemyMonLevel ld a,[hl] ld b,a ld a,[W_ENEMYMOVENUM] @@ -4859,7 +4776,7 @@ ApplyAttackToPlayerPokemon: ; 3e1a0 (f:61a0) ; this differs from the range when the player attacks, which is [1, b) ; it's possible for the enemy to do 0 damage with Psywave, but the player always does at least 1 damage .loop - call GenRandomInBattle ; random number + call BattleRandom cp b jr nc,.loop ld b,a @@ -4884,16 +4801,16 @@ ApplyDamageToPlayerPokemon: ; 3e200 (f:6200) ; also, save the current HP at wHPBarOldHP and the new HP at wHPBarNewHP ld a,[hld] ld b,a - ld a,[W_PLAYERMONCURHP + 1] + ld a,[wBattleMonHP + 1] ld [wHPBarOldHP],a sub b - ld [W_PLAYERMONCURHP + 1],a + ld [wBattleMonHP + 1],a ld [wHPBarNewHP],a ld b,[hl] - ld a,[W_PLAYERMONCURHP] + ld a,[wBattleMonHP] ld [wHPBarOldHP+1],a sbc b - ld [W_PLAYERMONCURHP],a + ld [wBattleMonHP],a ld [wHPBarNewHP+1],a jr nc,.animateHpBar ; if more damage was done than the current HP, zero the HP and set the damage @@ -4903,24 +4820,22 @@ ApplyDamageToPlayerPokemon: ; 3e200 (f:6200) ld a,[wHPBarOldHP] ld [hl],a xor a - ld hl,W_PLAYERMONCURHP + ld hl,wBattleMonHP ld [hli],a ld [hl],a ld hl,wHPBarNewHP ld [hli],a ld [hl],a .animateHpBar - ld hl,W_PLAYERMONMAXHP + ld hl,wBattleMonMaxHP ld a,[hli] ld [wHPBarMaxHP+1],a ld a,[hl] ld [wHPBarMaxHP],a - FuncCoord 10, 9 ; $c45e - ld hl,Coord + hlCoord 10, 9 ld a,$01 - ld [$cf94],a - ld a,$48 - call Predef ; animate the HP bar shortening + ld [wListMenuID],a + predef UpdateHPBar2 ; animate the HP bar shortening ApplyAttackToPlayerPokemonDone jp Func_3cd5a ; redraw pokemon names and HP bars @@ -5031,12 +4946,12 @@ MirrorMoveCopyMove: ; 3e2fd (f:62fd) ld a,[H_WHOSETURN] and a ; values for player turn - ld a,[$ccf2] + ld a,[wccf2] ld hl,wPlayerSelectedMove ld de,W_PLAYERMOVENUM jr z,.next ; values for enemy turn - ld a,[$ccf1] + ld a,[wccf1] ld de,W_ENEMYMOVENUM ld hl,wEnemySelectedMove .next @@ -5058,7 +4973,7 @@ MirrorMoveFailedText: ; 3e324 (f:6324) ; function used to reload move data for moves like Mirror Move and Metronome ReloadMoveData: ; 3e329 (f:6329) - ld [$d11e],a + ld [wd11e],a dec a ld hl,Moves ld bc,$0006 @@ -5076,7 +4991,7 @@ ReloadMoveData: ; 3e329 (f:6329) ; function that picks a random move for metronome MetronomePickMove: ; 3e348 (f:6348) xor a - ld [$cc5b],a + ld [wcc5b],a ld a,METRONOME call PlayMoveAnimation ; play Metronome's animation ; values for player turn @@ -5090,10 +5005,10 @@ MetronomePickMove: ; 3e348 (f:6348) ld hl,wEnemySelectedMove ; loop to pick a random number in the range [1, $a5) to be the move used by Metronome .pickMoveLoop - call GenRandomInBattle ; random number + call BattleRandom and a jr z,.pickMoveLoop - cp a,NUM_MOVES + 1 ; max normal move number + 1 (this is Struggle's move number) + cp a,NUM_ATTACKS + 1 ; max normal move number + 1 (this is Struggle's move number) jr nc,.pickMoveLoop cp a,METRONOME jr z,.pickMoveLoop @@ -5107,13 +5022,13 @@ IncrementMovePP: ; 3e373 (f:6373) ld a,[H_WHOSETURN] and a ; values for player turn - ld hl,W_PLAYERMONPP - ld de,W_PARTYMON1_MOVE1PP + ld hl,wBattleMonPP + ld de,wPartyMon1PP ld a,[wPlayerMoveListIndex] jr z,.next ; values for enemy turn - ld hl,W_ENEMYMONPP - ld de,$d8c1 ; enemy party pokemon 1 PP + ld hl,wEnemyMonPP + ld de,wEnemyMon1PP ld a,[wEnemyMoveListIndex] .next ld b,$00 @@ -5127,9 +5042,9 @@ IncrementMovePP: ; 3e373 (f:6373) and a ld a,[wPlayerMonNumber] ; value for player turn jr z,.next2 - ld a,[W_ENEMYMONNUMBER] ; value for enemy turn + ld a,[wEnemyMonPartyPos] ; value for enemy turn .next2 - ld bc,$002c + ld bc,wEnemyMon2 - wEnemyMon1 call AddNTimes inc [hl] ; increment PP in the party memory location ret @@ -5137,32 +5052,32 @@ IncrementMovePP: ; 3e373 (f:6373) ; function to adjust the base damage of an attack to account for type effectiveness AdjustDamageForMoveType: ; 3e3a5 (f:63a5) ; values for player turn - ld hl,W_PLAYERMONTYPES + ld hl,wBattleMonType ld a,[hli] ld b,a ; b = type 1 of attacker ld c,[hl] ; c = type 2 of attacker - ld hl,W_ENEMYMONTYPES + ld hl,wEnemyMonType ld a,[hli] ld d,a ; d = type 1 of defender ld e,[hl] ; e = type 2 of defender ld a,[W_PLAYERMOVETYPE] - ld [$d11e],a + ld [wd11e],a ld a,[H_WHOSETURN] and a jr z,.next ; values for enemy turn - ld hl,W_ENEMYMONTYPES + ld hl,wEnemyMonType ld a,[hli] ld b,a ; b = type 1 of attacker ld c,[hl] ; c = type 2 of attacker - ld hl,W_PLAYERMONTYPES + ld hl,wBattleMonType ld a,[hli] ld d,a ; d = type 1 of defender ld e,[hl] ; e = type 2 of defender ld a,[W_ENEMYMOVETYPE] - ld [$d11e],a + ld [wd11e],a .next - ld a,[$d11e] ; move type + ld a,[wd11e] ; move type cp b ; does the move type match type 1 of the attacker? jr z,.sameTypeAttackBonus cp c ; does the move type match type 2 of the attacker? @@ -5184,10 +5099,10 @@ AdjustDamageForMoveType: ; 3e3a5 (f:63a5) ld [W_DAMAGE],a ld a,l ld [W_DAMAGE + 1],a - ld hl,$d05b + ld hl,wd05b set 7,[hl] .skipSameTypeAttackBonus - ld a,[$d11e] + ld a,[wd11e] ld b,a ; b = move type ld hl,TypeEffects .loop @@ -5207,13 +5122,13 @@ AdjustDamageForMoveType: ; 3e3a5 (f:63a5) push hl push bc inc hl - ld a,[$d05b] + ld a,[wd05b] and a,$80 ld b,a ld a,[hl] ; a = damage multiplier ld [H_MULTIPLIER],a add b - ld [$d05b],a + ld [wd05b],a xor a ld [H_MULTIPLICAND],a ld hl,W_DAMAGE @@ -5250,18 +5165,18 @@ AdjustDamageForMoveType: ; 3e3a5 (f:63a5) ; function to tell how effective the type of an enemy attack is on the player's current pokemon ; this doesn't take into account the effects that dual types can have ; (e.g. 4x weakness / resistance, weaknesses and resistances canceling) -; the result is stored in [$D11E] +; the result is stored in [wd11e] ; ($05 is not very effective, $10 is neutral, $14 is super effective) ; as far is can tell, this is only used once in some AI code to help decide which move to use AIGetTypeEffectiveness: ; 3e449 (f:6449) ld a,[W_ENEMYMOVETYPE] ld d,a ; d = type of enemy move - ld hl,W_PLAYERMONTYPES + ld hl,wBattleMonType ld b,[hl] ; b = type 1 of player's pokemon inc hl ld c,[hl] ; c = type 2 of player's pokemon ld a,$10 - ld [$d11e],a ; initialize [$D11E] to neutral effectiveness + ld [wd11e],a ; initialize [wd11e] to neutral effectiveness ld hl,TypeEffects .loop ld a,[hli] @@ -5282,7 +5197,7 @@ AIGetTypeEffectiveness: ; 3e449 (f:6449) jr .loop .done ld a,[hl] - ld [$d11e],a ; store damage multiplier + ld [wd11e],a ; store damage multiplier ret INCLUDE "data/type_effects.asm" @@ -5292,14 +5207,14 @@ MoveHitTest: ; 3e56b (f:656b) ; player's turn ld hl,W_ENEMYBATTSTATUS1 ld de,W_PLAYERMOVEEFFECT - ld bc,W_ENEMYMONSTATUS + ld bc,wEnemyMonStatus ld a,[H_WHOSETURN] and a jr z,.dreamEaterCheck ; enemy's turn ld hl,W_PLAYERBATTSTATUS1 ld de,W_ENEMYMOVEEFFECT - ld bc,W_PLAYERMONSTATUS + ld bc,wBattleMonStatus .dreamEaterCheck ld a,[de] cp a,DREAM_EATER_EFFECT @@ -5385,7 +5300,7 @@ MoveHitTest: ; 3e56b (f:656b) .doAccuracyCheck ; if the random number generated is greater than or equal to the scaled accuracy, the move misses ; note that this means that even the highest accuracy is still just a 255/256 chance, not 100% - call GenRandomInBattle ; random number + call BattleRandom cp b jr nc,.moveMissed ret @@ -5478,7 +5393,7 @@ CalcHitChance: ; 3e624 (f:6624) ret Func_3e687: ; 3e687 (f:6687) - ld hl, W_DAMAGE ; $d0d7 + ld hl, W_DAMAGE ; W_DAMAGE ld a, [hli] and a jr nz, .asm_3e692 @@ -5494,7 +5409,7 @@ Func_3e687: ; 3e687 (f:6687) ld a, [hl] ld [$ff98], a .asm_3e69c - call GenRandomInBattle + call BattleRandom rrca cp $d9 jr c, .asm_3e69c @@ -5505,81 +5420,81 @@ Func_3e687: ; 3e687 (f:6687) ld b, $4 call Divide ld a, [$ff97] - ld hl, W_DAMAGE ; $d0d7 + ld hl, W_DAMAGE ; W_DAMAGE ld [hli], a ld a, [$ff98] ld [hl], a ret Func_3e6bc: ; 3e6bc (f:66bc) - ld a, [wEnemySelectedMove] ; $ccdd + ld a, [wEnemySelectedMove] ; wccdd inc a jp z, Func_3e88c call PrintGhostText jp z, Func_3e88c - ld a, [W_ISLINKBATTLE] ; $d12b + ld a, [W_ISLINKBATTLE] ; W_ISLINKBATTLE cp $4 jr nz, .asm_3e6dc ld b, $1 - ld a, [$cc3e] + ld a, [wcc3e] cp $e jr z, .asm_3e6dc cp $4 ret nc .asm_3e6dc - ld hl, $ccd5 + ld hl, wccd5 inc [hl] xor a - ld [W_MOVEMISSED], a ; $d05f - ld [$ccf4], a + ld [W_MOVEMISSED], a ; W_MOVEMISSED + ld [wccf4], a ld a, $a - ld [$d05b], a + ld [wd05b], a call Func_3e88f jr nz, .asm_3e6f2 jp [hl] .asm_3e6f2 - ld hl, W_ENEMYBATTSTATUS1 ; $d067 + ld hl, W_ENEMYBATTSTATUS1 ; W_ENEMYBATTSTATUS1 bit 4, [hl] jr nz, asm_3e70b call GetCurrentMove Func_3e6fc: ; 3e6fc (f:66fc) - ld a, [W_ENEMYMOVEEFFECT] ; $cfcd + ld a, [W_ENEMYMOVEEFFECT] ; W_ENEMYMOVEEFFECT cp CHARGE_EFFECT jp z, Func_3f132 cp FLY_EFFECT jp z, Func_3f132 jr asm_3e72b asm_3e70b: ; 3e70b (f:670b) - ld hl, W_ENEMYBATTSTATUS1 ; $d067 + ld hl, W_ENEMYBATTSTATUS1 ; W_ENEMYBATTSTATUS1 res 4, [hl] ; no longer charging up for attack res 6, [hl] ; no longer invulnerable to typcial attacks - ld a, [W_ENEMYMOVENUM] ; $cfcc - ld [$d0b5], a + ld a, [W_ENEMYMOVENUM] ; W_ENEMYMOVENUM + ld [wd0b5], a ld a, $2c - ld [$d0b7], a + ld [wPredefBank], a ld a, MOVE_NAME ld [W_LISTTYPE], a call GetName - ld de, $cd6d + ld de, wcd6d call CopyStringToCF4B asm_3e72b: ; 3e72b (f:672b) xor a - ld [$cced], a + ld [wcced], a call PrintMonName1Text - ld a, [W_ENEMYMOVEEFFECT] ; $cfcd + ld a, [W_ENEMYMOVEEFFECT] ; W_ENEMYMOVEEFFECT ld hl, EffectsArray1 ; $4000 ld de, $1 call IsInArray jp c, Func_3f132 - ld a, [W_ENEMYMOVEEFFECT] ; $cfcd + ld a, [W_ENEMYMOVEEFFECT] ; W_ENEMYMOVEEFFECT ld hl, EffectsArray5B ; $4049 ld de, $1 call IsInArray call c, Func_3f132 asm_3e750: ; 3e750 (f:6750) call Func_3ec81 - ld a, [W_ENEMYMOVEEFFECT] ; $cfcd + ld a, [W_ENEMYMOVEEFFECT] ; W_ENEMYMOVEEFFECT ld hl, EffectsArray2 ; $4011 ld de, $1 call IsInArray @@ -5598,10 +5513,10 @@ asm_3e750: ; 3e750 (f:6750) Func_3e77f: ; 3e77f (f:677f) call MoveHitTest asm_3e782: ; 3e782 (f:6782) - ld a, [W_MOVEMISSED] ; $d05f + ld a, [W_MOVEMISSED] ; W_MOVEMISSED and a jr z, .asm_3e791 - ld a, [W_ENEMYMOVEEFFECT] ; $cfcd + ld a, [W_ENEMYMOVEEFFECT] ; W_ENEMYMOVEEFFECT cp EXPLODE_EFFECT jr z, asm_3e7a0 jr Func_3e7d1 @@ -5609,7 +5524,7 @@ asm_3e782: ; 3e782 (f:6782) call Func_3ec81 Func_3e794: ; 3e794 (f:6794) - ld a, [W_ENEMYMOVEEFFECT] ; $cfcd + ld a, [W_ENEMYMOVEEFFECT] ; W_ENEMYMOVEEFFECT and a ld a, $1 jr z, asm_3e7a4 @@ -5620,18 +5535,18 @@ asm_3e7a0: ; 3e7a0 (f:67a0) xor a asm_3e7a4: ; 3e7a4 (f:67a4) push af - ld a, [W_ENEMYBATTSTATUS2] ; $d068 + ld a, [W_ENEMYBATTSTATUS2] ; W_ENEMYBATTSTATUS2 bit 4, a ; does mon have a substitute? ld hl, Func_79747 ld b, BANK(Func_79747) call nz, Bankswitch pop af - ld [$cc5b], a - ld a, [W_ENEMYMOVENUM] ; $cfcc + ld [wcc5b], a + ld a, [W_ENEMYMOVENUM] ; W_ENEMYMOVENUM call PlayMoveAnimation call Func_3eed3 call Func_3cdec - ld a, [W_ENEMYBATTSTATUS2] ; $d068 + ld a, [W_ENEMYBATTSTATUS2] ; W_ENEMYBATTSTATUS2 bit 4, a ; does mon have a substitute? ld hl, Func_79771 ld b, BANK(Func_79771) @@ -5642,7 +5557,7 @@ Func_3e7d1: ; 3e7d1 (f:67d1) call Func_3ec81 ld c, $1e call DelayFrames - ld a, [W_ENEMYMOVEEFFECT] ; $cfcd + ld a, [W_ENEMYMOVEEFFECT] ; W_ENEMYMOVEEFFECT cp FLY_EFFECT jr z, .asm_3e7e6 cp CHARGE_EFFECT @@ -5650,11 +5565,11 @@ Func_3e7d1: ; 3e7d1 (f:67d1) jr asm_3e7ef .asm_3e7e6 xor a - ld [$cc5b], a + ld [wcc5b], a ld a,STATUS_AFFECTED_ANIM call PlayMoveAnimation asm_3e7ef: ; 3e7ef (f:67ef) - ld a, [W_ENEMYMOVEEFFECT] ; $cfcd + ld a, [W_ENEMYMOVEEFFECT] ; W_ENEMYMOVEEFFECT cp MIRROR_MOVE_EFFECT jr nz, .notMirrorMoveEffect call MirrorMoveCopyMove @@ -5666,16 +5581,16 @@ asm_3e7ef: ; 3e7ef (f:67ef) call MetronomePickMove jp Func_3e6fc .notMetronomeEffect - ld a, [W_ENEMYMOVEEFFECT] ; $cfcd + ld a, [W_ENEMYMOVEEFFECT] ; W_ENEMYMOVEEFFECT ld hl, EffectsArray3 ; $4014 ld de, $1 call IsInArray jp c, Func_3f132 - ld a, [W_MOVEMISSED] ; $d05f + ld a, [W_MOVEMISSED] ; W_MOVEMISSED and a jr z, .asm_3e82b call PrintMoveFailureText - ld a, [W_ENEMYMOVEEFFECT] ; $cfcd + ld a, [W_ENEMYMOVEEFFECT] ; W_ENEMYMOVEEFFECT cp EXPLODE_EFFECT jr z, .asm_3e83e jp Func_3e88c @@ -5684,24 +5599,24 @@ asm_3e7ef: ; 3e7ef (f:67ef) call Func_3dc5c callab DisplayEffectiveness ld a, $1 - ld [$ccf4], a + ld [wccf4], a .asm_3e83e - ld a, [W_ENEMYMOVEEFFECT] ; $cfcd + ld a, [W_ENEMYMOVEEFFECT] ; W_ENEMYMOVEEFFECT ld hl, EffectsArray4 ; $4030 ld de, $1 call IsInArray call c, Func_3f132 - ld hl, W_PLAYERMONCURHP ; $d015 + ld hl, wBattleMonHP ; wd015 ld a, [hli] ld b, [hl] or b ret z call HandleBuildingRage - ld hl, W_ENEMYBATTSTATUS1 ; $d067 + ld hl, W_ENEMYBATTSTATUS1 ; W_ENEMYBATTSTATUS1 bit 2, [hl] ; is mon hitting multiple times? (example: double kick) jr z, .asm_3e873 push hl - ld hl, $d06f + ld hl, wd06f dec [hl] pop hl jp nz, Func_3e794 @@ -5709,9 +5624,9 @@ asm_3e7ef: ; 3e7ef (f:67ef) ld hl, HitXTimesText ; $6887 call PrintText xor a - ld [$cd05], a + ld [wcd05], a .asm_3e873 - ld a, [W_ENEMYMOVEEFFECT] ; $cfcd + ld a, [W_ENEMYMOVEEFFECT] ; W_ENEMYMOVEEFFECT and a jr z, Func_3e88c ld hl, EffectsArray5 ; $403b @@ -5729,18 +5644,18 @@ Func_3e88c: ; 3e88c (f:688c) ret Func_3e88f: ; 3e88f (f:688f) - ld hl, W_ENEMYMONSTATUS ; $cfe9 + ld hl, wEnemyMonStatus ; wcfe9 ld a, [hl] and $7 jr z, .asm_3e8bf dec a - ld [W_ENEMYMONSTATUS], a ; $cfe9 + ld [wEnemyMonStatus], a ; wcfe9 and a jr z, .asm_3e8af ld hl, FastAsleepText call PrintText xor a - ld [$cc5b], a + ld [wcc5b], a ld a,SLP_ANIM call PlayMoveAnimation jr .asm_3e8b5 @@ -5749,7 +5664,7 @@ Func_3e88f: ; 3e88f (f:688f) call PrintText .asm_3e8b5 xor a - ld [$ccf2], a + ld [wccf2], a ld hl, Func_3e88c ; $688c jp Func_3eab8 .asm_3e8bf @@ -5758,11 +5673,11 @@ Func_3e88f: ; 3e88f (f:688f) ld hl, IsFrozenText call PrintText xor a - ld [$ccf2], a + ld [wccf2], a ld hl, Func_3e88c ; $688c jp Func_3eab8 .asm_3e8d3 - ld a, [W_PLAYERBATTSTATUS1] ; $d062 + ld a, [W_PLAYERBATTSTATUS1] ; W_PLAYERBATTSTATUS1 bit 5, a jp z, Func_3e8e7 ld hl, CantMoveText @@ -5771,7 +5686,7 @@ Func_3e88f: ; 3e88f (f:688f) jp Func_3eab8 Func_3e8e7: ; 3e8e7 (f:68e7) - ld hl, W_ENEMYBATTSTATUS1 ; $d067 + ld hl, W_ENEMYBATTSTATUS1 ; W_ENEMYBATTSTATUS1 bit 3, [hl] jp z, Func_3e8fd res 3, [hl] @@ -5781,7 +5696,7 @@ Func_3e8e7: ; 3e8e7 (f:68e7) jp Func_3eab8 Func_3e8fd: ; 3e8fd (f:68fd) - ld hl, W_ENEMYBATTSTATUS2 ; $d068 + ld hl, W_ENEMYBATTSTATUS2 ; W_ENEMYBATTSTATUS2 bit 5, [hl] jr z, .asm_3e912 res 5, [hl] @@ -5790,7 +5705,7 @@ Func_3e8fd: ; 3e8fd (f:68fd) ld hl, Func_3e88c ; $688c jp Func_3eab8 .asm_3e912 - ld hl, W_ENEMYDISABLEDMOVE ; $d072 + ld hl, W_ENEMYDISABLEDMOVE ; W_ENEMYDISABLEDMOVE ld a, [hl] and a jr z, .asm_3e929 @@ -5799,17 +5714,17 @@ Func_3e8fd: ; 3e8fd (f:68fd) and $f jr nz, .asm_3e929 ld [hl], a - ld [$ccef], a + ld [wccef], a ld hl, DisabledNoMoreText call PrintText .asm_3e929 - ld a, [W_ENEMYBATTSTATUS1] ; $d067 + ld a, [W_ENEMYBATTSTATUS1] ; W_ENEMYBATTSTATUS1 add a jp nc, Func_3e9aa - ld hl, $d070 + ld hl, wd070 dec [hl] jr nz, .asm_3e944 - ld hl, W_ENEMYBATTSTATUS1 ; $d067 + ld hl, W_ENEMYBATTSTATUS1 ; W_ENEMYBATTSTATUS1 res 7, [hl] ld hl, ConfusedNoMoreText call PrintText @@ -5818,34 +5733,34 @@ Func_3e8fd: ; 3e8fd (f:68fd) ld hl, IsConfusedText call PrintText xor a - ld [$cc5b], a + ld [wcc5b], a ld a,CONF_ANIM call PlayMoveAnimation - call GenRandomInBattle + call BattleRandom cp $80 jr c, Func_3e9aa - ld hl, W_ENEMYBATTSTATUS1 ; $d067 + ld hl, W_ENEMYBATTSTATUS1 ; W_ENEMYBATTSTATUS1 ld a, [hl] and $80 ld [hl], a ld hl, HurtItselfText call PrintText - ld hl, W_PLAYERMONDEF + ld hl, wBattleMonDefense ld a, [hli] push af ld a, [hld] push af - ld a, [W_ENEMYMONDEFENSE] ; $cff8 + ld a, [wEnemyMonDefense] ; wcff8 ld [hli], a - ld a, [$cff9] + ld a, [wEnemyMonDefense + 1] ld [hl], a - ld hl, W_ENEMYMOVEEFFECT ; $cfcd + ld hl, W_ENEMYMOVEEFFECT ; W_ENEMYMOVEEFFECT push hl ld a, [hl] push af xor a ld [hli], a - ld [$d05e], a + ld [wd05e], a ld a, $28 ld [hli], a xor a @@ -5855,13 +5770,13 @@ Func_3e8fd: ; 3e8fd (f:68fd) pop af pop hl ld [hl], a - ld hl, $d028 + ld hl, wBattleMonDefense + 1 pop af ld [hld], a pop af ld [hl], a xor a - ld [$cc5b], a + ld [wcc5b], a ld [H_WHOSETURN], a ; $fff3 ld a, POUND call PlayMoveAnimation @@ -5871,30 +5786,30 @@ Func_3e8fd: ; 3e8fd (f:68fd) jr asm_3e9d3 Func_3e9aa: ; 3e9aa (f:69aa) - ld a, [$ccef] + ld a, [wccef] and a jr z, .asm_3e9bf - ld hl, wEnemySelectedMove ; $ccdd + ld hl, wEnemySelectedMove ; wccdd cp [hl] jr nz, .asm_3e9bf call PrintMoveIsDisabledText ld hl, Func_3e88c ; $688c jp Func_3eab8 .asm_3e9bf - ld hl, W_ENEMYMONSTATUS ; $cfe9 + ld hl, wEnemyMonStatus ; wcfe9 bit 6, [hl] jr z, asm_3e9f6 - call GenRandomInBattle + call BattleRandom cp $3f jr nc, asm_3e9f6 ld hl, FullyParalyzedText call PrintText asm_3e9d3: ; 3e9d3 (f:69d3) - ld hl, W_ENEMYBATTSTATUS1 ; $d067 + ld hl, W_ENEMYBATTSTATUS1 ; W_ENEMYBATTSTATUS1 ld a, [hl] and $cc ld [hl], a - ld a, [W_ENEMYMOVEEFFECT] ; $cfcd + ld a, [W_ENEMYMOVEEFFECT] ; W_ENEMYMOVEEFFECT cp FLY_EFFECT jr z, .asm_3e9e7 cp CHARGE_EFFECT @@ -5902,59 +5817,59 @@ asm_3e9d3: ; 3e9d3 (f:69d3) jr .asm_3e9f0 .asm_3e9e7 xor a - ld [$cc5b], a + ld [wcc5b], a ld a, STATUS_AFFECTED_ANIM call PlayMoveAnimation .asm_3e9f0 ld hl, Func_3e88c ; $688c jp Func_3eab8 asm_3e9f6: ; 3e9f6 (f:69f6) - ld hl, W_ENEMYBATTSTATUS1 ; $d067 + ld hl, W_ENEMYBATTSTATUS1 ; W_ENEMYBATTSTATUS1 bit 0, [hl] ; is mon using bide? jr z, .asm_3ea54 xor a - ld [W_ENEMYMOVENUM], a ; $cfcc - ld hl, W_DAMAGE ; $d0d7 + ld [W_ENEMYMOVENUM], a ; W_ENEMYMOVENUM + ld hl, W_DAMAGE ; W_DAMAGE ld a, [hli] ld b, a ld c, [hl] - ld hl, $cd06 + ld hl, wcd06 ld a, [hl] add c ld [hld], a ld a, [hl] adc b ld [hl], a - ld hl, $d06f + ld hl, wd06f dec [hl] jr z, .asm_3ea1c ld hl, Func_3e88c ; $688c jp Func_3eab8 .asm_3ea1c - ld hl, W_ENEMYBATTSTATUS1 ; $d067 + ld hl, W_ENEMYBATTSTATUS1 ; W_ENEMYBATTSTATUS1 res 0, [hl] ld hl, UnleashedEnergyText call PrintText ld a, $1 - ld [W_ENEMYMOVEPOWER], a ; $cfce - ld hl, $cd06 + ld [W_ENEMYMOVEPOWER], a ; wcfce + ld hl, wcd06 ld a, [hld] add a ld b, a - ld [$d0d8], a + ld [wd0d8], a ld a, [hl] rl a - ld [W_DAMAGE], a ; $d0d7 + ld [W_DAMAGE], a ; W_DAMAGE or b jr nz, .asm_3ea43 ld a, $1 - ld [W_MOVEMISSED], a ; $d05f + ld [W_MOVEMISSED], a ; W_MOVEMISSED .asm_3ea43 xor a ld [hli], a ld [hl], a ld a, BIDE - ld [W_ENEMYMOVENUM], a ; $cfcc + ld [W_ENEMYMOVENUM], a ; W_ENEMYMOVENUM call Func_3ec81 ld hl, asm_3e782 ; $6782 jp Func_3eab8 @@ -5962,22 +5877,22 @@ asm_3e9f6: ; 3e9f6 (f:69f6) bit 1, [hl] ; is mon using thrash or petal dance? jr z, .asm_3ea83 ld a, THRASH - ld [W_ENEMYMOVENUM], a ; $cfcc + ld [W_ENEMYMOVENUM], a ; W_ENEMYMOVENUM ld hl, ThrashingAboutText call PrintText - ld hl, $d06f + ld hl, wd06f dec [hl] ld hl, asm_3e750 ; $6750 jp nz, Func_3eab8 push hl - ld hl, W_ENEMYBATTSTATUS1 ; $d067 + ld hl, W_ENEMYBATTSTATUS1 ; W_ENEMYBATTSTATUS1 res 1, [hl] ; mon is no longer using thrash or petal dance set 7, [hl] ; mon is now confused - call GenRandomInBattle + call BattleRandom and $3 inc a inc a - ld [$d070], a + ld [wd070], a pop hl jp Func_3eab8 .asm_3ea83 @@ -5985,22 +5900,22 @@ asm_3e9f6: ; 3e9f6 (f:69f6) jp z, Func_3ea9b ld hl, AttackContinuesText call PrintText - ld hl, $d06f + ld hl, wd06f dec [hl] ld hl, Func_3e794 ; $6794 jp nz, Func_3eab8 jp Func_3eab8 Func_3ea9b: ; 3ea9b (f:6a9b) - ld a, [W_ENEMYBATTSTATUS2] ; $d068 + ld a, [W_ENEMYBATTSTATUS2] ; W_ENEMYBATTSTATUS2 bit 6, a ; is mon using rage? jp z, Func_3eaba ld a, RAGE - ld [$d11e], a + ld [wd11e], a call GetMoveName call CopyStringToCF4B xor a - ld [W_ENEMYMOVEEFFECT], a ; $cfcd + ld [W_ENEMYMOVEEFFECT], a ; W_ENEMYMOVEEFFECT ld hl, asm_3e72b ; $672b jp Func_3eab8 @@ -6017,18 +5932,18 @@ GetCurrentMove: ; 3eabe (f:6abe) ld a, [H_WHOSETURN] ; $fff3 and a jp z, .player - ld de, W_ENEMYMOVENUM ; $cfcc - ld a, [wEnemySelectedMove] ; $ccdd + ld de, W_ENEMYMOVENUM ; W_ENEMYMOVENUM + ld a, [wEnemySelectedMove] ; wccdd jr .selected .player - ld de, W_PLAYERMOVENUM ; $cfd2 + ld de, W_PLAYERMOVENUM ; wcfd2 ld a, [W_FLAGS_D733] bit 0, a - ld a, [$ccd9] + ld a, [wccd9] jr nz, .selected - ld a, [wPlayerSelectedMove] ; $ccdc + ld a, [wPlayerSelectedMove] ; wPlayerSelectedMove .selected - ld [$d0b5], a + ld [wd0b5], a dec a ld hl, Moves ; $4000 ld bc, $6 @@ -6036,80 +5951,80 @@ GetCurrentMove: ; 3eabe (f:6abe) ld a, BANK(Moves) call FarCopyData ld a, $2c - ld [$d0b7], a + ld [wPredefBank], a ld a, $2 ld [W_LISTTYPE], a ; list type 2 = move name call GetName - ld de, $cd6d + ld de, wcd6d jp CopyStringToCF4B Func_3eb01: ; 3eb01 (f:6b01) - ld a, [W_ISLINKBATTLE] ; $d12b + ld a, [W_ISLINKBATTLE] ; W_ISLINKBATTLE cp $4 jp z, Func_3cc13 - ld a, [W_ENEMYMONID] - ld [$cfe5], a - ld [$d0b5], a + ld a, [wEnemyMonSpecies2] + ld [wEnemyMonSpecies], a + ld [wd0b5], a call GetMonHeader - ld a, [W_ENEMYBATTSTATUS3] ; $d069 + ld a, [W_ENEMYBATTSTATUS3] ; W_ENEMYBATTSTATUS3 bit 3, a - ld hl, $cceb + ld hl, wcceb ld a, [hli] ld b, [hl] jr nz, .asm_3eb33 - ld a, [W_ISINBATTLE] ; $d057 + ld a, [W_ISINBATTLE] ; W_ISINBATTLE cp $2 ld a, $98 ld b, $88 jr z, .asm_3eb33 - call GenRandomInBattle + call BattleRandom ld b, a - call GenRandomInBattle + call BattleRandom .asm_3eb33 - ld hl, $cff1 + ld hl, wEnemyMonDVs ld [hli], a ld [hl], b - ld de, W_ENEMYMONLEVEL ; $cff3 - ld a, [W_CURENEMYLVL] ; $d127 + ld de, wEnemyMonLevel ; wEnemyMonLevel + ld a, [W_CURENEMYLVL] ; W_CURENEMYLVL ld [de], a inc de ld b, $0 - ld hl, W_ENEMYMONCURHP ; $cfe6 + ld hl, wEnemyMonHP ; wEnemyMonHP push hl call CalcStats pop hl - ld a, [W_ISINBATTLE] ; $d057 + ld a, [W_ISINBATTLE] ; W_ISINBATTLE cp $2 jr z, .asm_3eb65 - ld a, [W_ENEMYBATTSTATUS3] ; $d069 + ld a, [W_ENEMYBATTSTATUS3] ; W_ENEMYBATTSTATUS3 bit 3, a jr nz, .asm_3eb86 - ld a, [W_ENEMYMONMAXHP] ; $cff4 + ld a, [wEnemyMonMaxHP] ; wEnemyMonMaxHP ld [hli], a - ld a, [W_ENEMYMONMAXHP+1] + ld a, [wEnemyMonMaxHP+1] ld [hli], a xor a inc hl ld [hl], a jr .asm_3eb86 .asm_3eb65 - ld hl, W_ENEMYMON1HP ; $d8a5 (aliases: W_WATERMONS) - ld a, [wWhichPokemon] ; $cf92 - ld bc, $2c + ld hl, wEnemyMon1HP ; wd8a5 (aliases: W_WATERMONS) + ld a, [wWhichPokemon] ; wWhichPokemon + ld bc, wEnemyMon2 - wEnemyMon1 call AddNTimes ld a, [hli] - ld [W_ENEMYMONCURHP], a ; $cfe6 + ld [wEnemyMonHP], a ; wEnemyMonHP ld a, [hli] - ld [$cfe7], a - ld a, [wWhichPokemon] ; $cf92 - ld [W_ENEMYMONNUMBER], a ; $cfe8 + ld [wEnemyMonHP + 1], a + ld a, [wWhichPokemon] ; wWhichPokemon + ld [wEnemyMonPartyPos], a inc hl ld a, [hl] - ld [W_ENEMYMONSTATUS], a ; $cfe9 + ld [wEnemyMonStatus], a ; wcfe9 jr .asm_3eb86 .asm_3eb86 ld hl, W_MONHTYPES - ld de, W_ENEMYMONTYPES ; $cfea + ld de, wEnemyMonType ; wcfea ld a, [hli] ; copy type 1 ld [de], a inc de @@ -6119,14 +6034,14 @@ Func_3eb01: ; 3eb01 (f:6b01) ld a, [hli] ; copy catch rate ld [de], a inc de - ld a, [W_ISINBATTLE] ; $d057 + ld a, [W_ISINBATTLE] ; W_ISINBATTLE cp $2 jr nz, .asm_3ebb0 - ld hl, $d8ac - ld a, [wWhichPokemon] ; $cf92 - ld bc, $2c + ld hl, wEnemyMon1Moves + ld a, [wWhichPokemon] ; wWhichPokemon + ld bc, wEnemyMon2 - wEnemyMon1 call AddNTimes - ld bc, $4 + ld bc, NUM_MOVES call CopyData jr .asm_3ebca .asm_3ebb0 @@ -6146,16 +6061,14 @@ Func_3eb01: ; 3eb01 (f:6b01) dec de dec de xor a - ld [$cee9], a - ld a, $3e - call Predef ; indirect jump to WriteMonMoves (3afb8 (e:6fb8)) + ld [wHPBarMaxHP], a + predef WriteMonMoves .asm_3ebca - ld hl, W_ENEMYMONMOVES - ld de, $cffd - ld a, $5e - call Predef ; indirect jump to LoadMovePPs (f473 (3:7473)) + ld hl, wEnemyMonMoves + ld de, wEnemyMonSpecial + 1 + predef LoadMovePPs ld hl, W_MONHBASESTATS - ld de, $d002 + ld de, wd002 ld b, $5 .asm_3ebdd ld a, [hli] @@ -6169,31 +6082,29 @@ Func_3eb01: ; 3eb01 (f:6b01) inc de ld a, [hl] ; base exp ld [de], a - ld a, [W_ENEMYMONID] - ld [$d11e], a + ld a, [wEnemyMonSpecies2] + ld [wd11e], a call GetMonName - ld hl, $cd6d - ld de, W_ENEMYMONNAME + ld hl, wcd6d + ld de, wEnemyMonNick ld bc, $b call CopyData - ld a, [W_ENEMYMONID] - ld [$d11e], a - ld a, $3a - call Predef ; indirect jump to IndexToPokedex (41010 (10:5010)) - ld a, [$d11e] + ld a, [wEnemyMonSpecies2] + ld [wd11e], a + predef IndexToPokedex + ld a, [wd11e] dec a ld c, a ld b, $1 - ld hl, wPokedexSeen ; $d30a - ld a, $10 - call Predef ; indirect jump to HandleBitArray (f666 (3:7666)) - ld hl, W_ENEMYMONLEVEL ; $cff3 - ld de, $cd23 + ld hl, wPokedexSeen ; wd30a + predef FlagActionPredef + ld hl, wEnemyMonLevel ; wEnemyMonLevel + ld de, wcd23 ld bc, $b call CopyData ld a, $7 ld b, $8 - ld hl, wEnemyMonStatMods ; $cd2e + ld hl, wEnemyMonStatMods ; wcd2e .asm_3ec2d ld [hli], a dec b @@ -6201,53 +6112,52 @@ Func_3eb01: ; 3eb01 (f:6b01) ret Func_3ec32: ; 3ec32 (f:6c32) - ld a, [W_ISLINKBATTLE] ; $d12b + ld a, [W_ISLINKBATTLE] ; W_ISLINKBATTLE cp $4 jr nz, .asm_3ec4d xor a - ld [wMenuJoypadPollCount], a ; $cc34 + ld [wMenuJoypadPollCount], a ; wMenuJoypadPollCount callab Func_372d6 ld a, $1 - ld [$cfcb], a + ld [wcfcb], a call ClearScreen .asm_3ec4d call DelayFrame - ld a, $30 - call Predef ; indirect jump to Func_7096d (7096d (1c:496d)) + predef BattleTransition callab Func_3ee58 ld a, $1 ld [H_AUTOBGTRANSFERENABLED], a ; $ffba ld a, $ff - ld [$cfcb], a - call CleanLCD_OAM + ld [wcfcb], a + call ClearSprites call ClearScreen xor a ld [H_AUTOBGTRANSFERENABLED], a ; $ffba ld [$ffb0], a ld [rWY], a ; $ff4a ld [$ffd7], a - ld hl, $d060 + ld hl, wd060 ld [hli], a ld [hli], a ld [hli], a ld [hli], a ld [hl], a - ld [W_PLAYERDISABLEDMOVE], a ; $d06d + ld [W_PLAYERDISABLEDMOVE], a ; W_PLAYERDISABLEDMOVE ret Func_3ec81: ; 3ec81 (f:6c81) push bc - ld a, [W_PLAYERMONLEVEL] ; $d022 + ld a, [wBattleMonLevel] ; wBattleMonLevel ld b, a - ld a, [W_ENEMYMONLEVEL] ; $cff3 - ld [W_PLAYERMONLEVEL], a ; $d022 + ld a, [wEnemyMonLevel] ; wEnemyMonLevel + ld [wBattleMonLevel], a ; wBattleMonLevel ld a, b - ld [W_ENEMYMONLEVEL], a ; $cff3 + ld [wEnemyMonLevel], a ; wEnemyMonLevel pop bc ret Func_3ec92: ; 3ec92 (f:6c92) - ld a, [W_BATTLETYPE] ; $d05a + ld a, [W_BATTLETYPE] ; wd05a dec a ld de, RedPicBack ; $7e0a jr nz, .asm_3ec9e @@ -6255,8 +6165,7 @@ Func_3ec92: ; 3ec92 (f:6c92) .asm_3ec9e ld a, BANK(RedPicBack) call UncompressSpriteFromDE - ld a, $3 - call Predef ; indirect jump to ScaleSpriteByTwo (2fe40 (b:7e40)) + predef ScaleSpriteByTwo ld hl, wOAMBuffer xor a ld [H_DOWNARROWBLINKCNT1], a ; $ff8b @@ -6288,26 +6197,24 @@ Func_3ec92: ; 3ec92 (f:6c92) ld e, a dec b jr nz, .asm_3ecb2 - ld de, $9310 + ld de, vBackPic call InterlaceMergeSpriteBuffers ld a, $a ld [$0], a xor a ld [$4000], a - ld hl, $8000 + ld hl, vSprites ld de, S_SPRITEBUFFER1 ld a, [H_LOADEDROMBANK] ld b, a - ld c, $31 + ld c, 7 * 7 call CopyVideoData xor a ld [$0], a ld a, $31 ld [$ffe1], a - FuncCoord 1, 5 ; $c405 - ld hl, Coord - ld a, $1 - jp Predef ; indirect jump to Func_3f0c6 (3f0c6 (f:70c6)) + hlCoord 1, 5 + predef_jump Func_3f0c6 Func_3ed02: ; 3ed02 (f:6d02) callab Func_39680 @@ -6335,10 +6242,10 @@ Func_3ed27: ; 3ed27 (f:6d27) ld a, [H_WHOSETURN] ; $fff3 and a jr z, .asm_3ed48 - ld a, [W_PLAYERMONSTATUS] ; $d018 + ld a, [wBattleMonStatus] ; wBattleMonStatus and $40 ret z - ld hl, $d02a + ld hl, wBattleMonSpeed + 1 ld a, [hld] ld b, a ld a, [hl] @@ -6354,10 +6261,10 @@ Func_3ed27: ; 3ed27 (f:6d27) ld [hl], b ret .asm_3ed48 - ld a, [W_ENEMYMONSTATUS] ; $cfe9 + ld a, [wEnemyMonStatus] ; wcfe9 and $40 ret z - ld hl, $cffb + ld hl, wEnemyMonSpeed + 1 ld a, [hld] ld b, a ld a, [hl] @@ -6377,10 +6284,10 @@ Func_3ed64: ; 3ed64 (f:6d64) ld a, [H_WHOSETURN] ; $fff3 and a jr z, .asm_3ed81 - ld a, [W_PLAYERMONSTATUS] ; $d018 + ld a, [wBattleMonStatus] ; wBattleMonStatus and $10 ret z - ld hl, $d026 + ld hl, wBattleMonAttack + 1 ld a, [hld] ld b, a ld a, [hl] @@ -6394,10 +6301,10 @@ Func_3ed64: ; 3ed64 (f:6d64) ld [hl], b ret .asm_3ed81 - ld a, [W_ENEMYMONSTATUS] ; $cfe9 + ld a, [wEnemyMonStatus] ; wcfe9 and $10 ret z - ld hl, $cff7 + ld hl, wEnemyMonAttack + 1 ld a, [hld] ld b, a ld a, [hl] @@ -6424,16 +6331,16 @@ Func_3ed99: ; 3ed99 (f:6d99) Func_3eda5: ; 3eda5 (f:6da5) push bc push bc - ld a, [$d11e] + ld a, [wd11e] and a ld a, c - ld hl, W_PLAYERMONATK - ld de, $cd12 - ld bc, wPlayerMonAttackMod ; $cd1a + ld hl, wBattleMonAttack + ld de, wcd12 + ld bc, wPlayerMonAttackMod ; wcd1a jr z, .asm_3edc0 - ld hl, W_ENEMYMONATTACK - ld de, $cd26 - ld bc, wEnemyMonStatMods ; $cd2e + ld hl, wEnemyMonAttack + ld de, wcd26 + ld bc, wEnemyMonStatMods ; wcd2e .asm_3edc0 add c ld c, a @@ -6505,7 +6412,7 @@ Func_3ee19: ; 3ee19 (f:6e19) ret z ld a, [W_OBTAINEDBADGES] ld b, a - ld hl, W_PLAYERMONATK + ld hl, wBattleMonAttack ld c, $4 .asm_3ee28 srl b @@ -6552,22 +6459,22 @@ Func_3ee5b: ; 3ee5b (f:6e5b) add a jr c, .asm_3ee7c ld hl, BattleHudTiles1 ; $6080 - ld de, $96d0 + ld de, vChars2 + $6d0 ld bc, $18 ld a, BANK(BattleHudTiles1) call FarCopyDataDouble ld hl, BattleHudTiles2 ; $6098 - ld de, $9730 + ld de, vChars2 + $730 ld bc, $30 ld a, BANK(BattleHudTiles2) jp FarCopyDataDouble .asm_3ee7c ld de, BattleHudTiles1 ; $6080 - ld hl, $96d0 + ld hl, vChars2 + $6d0 ld bc, (BANK(BattleHudTiles1) << 8) + $03 call CopyVideoDataDouble ld de, BattleHudTiles2 ; $6098 - ld hl, $9730 + ld hl, vChars2 + $730 ld bc, (BANK(BattleHudTiles2) << 8) + $06 jp CopyVideoDataDouble @@ -6578,34 +6485,39 @@ Func_3ee94: ; 3ee94 (f:6e94) TerminatorText_3ee9a: ; 3ee9a (f:6e9a) db "@" -; generates a random number unless in link battle -; stores random number in A -GenRandomInBattle: ; 3ee9b (f:6e9b) + +BattleRandom: +; Link battles use a shared PRNG. + ld a, [W_ISLINKBATTLE] cp $4 - jp nz, GenRandom + jp nz, Random + push hl push bc - ld a, [$ccde] + ld a, [wccde] ld c, a - ld b, $0 - ld hl, $d148 + ld b, 0 + ld hl, wd148 add hl, bc inc a - ld [$ccde], a - cp $9 + ld [wccde], a + cp 9 ld a, [hl] pop bc pop hl ret c + push hl push bc push af + xor a - ld [$ccde], a - ld hl, $d148 - ld b, $9 -.asm_3eec5 + ld [wccde], a + + ld hl, wd148 + ld b, 9 +.loop ld a, [hl] ld c, a add a @@ -6614,22 +6526,24 @@ GenRandomInBattle: ; 3ee9b (f:6e9b) inc a ld [hli], a dec b - jr nz, .asm_3eec5 ; 0x3eecd $f6 + jr nz, .loop + pop af pop bc pop hl ret + Func_3eed3: ; 3eed3 (f:6ed3) ld a, [H_WHOSETURN] ; $fff3 and a - ld hl, W_ENEMYMONTYPE1 ; $cfea (aliases: W_ENEMYMONTYPES) - ld de, W_ENEMYBATTSTATUS1 ; $d067 - ld a, [W_PLAYERMOVENUM] ; $cfd2 + ld hl, wEnemyMonType1 ; wcfea (aliases: wEnemyMonType) + ld de, W_ENEMYBATTSTATUS1 ; W_ENEMYBATTSTATUS1 + ld a, [W_PLAYERMOVENUM] ; wcfd2 jr z, .asm_3eeea - ld hl, W_PLAYERMONTYPE1 ; $d019 (aliases: W_PLAYERMONTYPES) - ld de, W_ENEMYBATTSTATUS1 ; $d067 - ld a, [W_ENEMYMOVENUM] ; $cfcc + ld hl, wBattleMonType1 ; wd019 (aliases: wBattleMonType) + ld de, W_ENEMYBATTSTATUS1 ; W_ENEMYBATTSTATUS1 + ld a, [W_ENEMYMOVENUM] ; W_ENEMYMOVENUM .asm_3eeea cp SELFDESTRUCT jr z, .asm_3eef1 @@ -6645,77 +6559,75 @@ Func_3eed3: ; 3eed3 (f:6ed3) ld a, [hl] cp GHOST ret z - ld a, [W_MOVEMISSED] ; $d05f + ld a, [W_MOVEMISSED] ; W_MOVEMISSED and a ret nz ld a, MEGA_PUNCH - ld [$cc5b], a + ld [wcc5b], a PlayMoveAnimation: ; 3ef07 (f:6f07) - ld [$D07C],a + ld [W_ANIMATIONID],a call Delay3 - PREDEF_JUMP MoveAnimationPredef ; predef 8 + predef_jump MoveAnimation InitBattle: ; 3ef12 (f:6f12) - ld a, [W_CUROPPONENT] ; $d059 + ld a, [W_CUROPPONENT] ; wd059 and a jr z, asm_3ef23 InitOpponent: ; 3ef18 (f:6f18) - ld a, [W_CUROPPONENT] ; $d059 - ld [$cf91], a - ld [W_ENEMYMONID], a + ld a, [W_CUROPPONENT] ; wd059 + ld [wcf91], a + ld [wEnemyMonSpecies2], a jr asm_3ef3d asm_3ef23: ; 3ef23 (f:6f23) - ld a, [$d732] + ld a, [wd732] bit 1, a jr z, .asm_3ef2f - ld a, [H_CURRENTPRESSEDBUTTONS] + ld a, [hJoyHeld] bit 1, a ret nz .asm_3ef2f - ld a, [$d13c] + ld a, [wd13c] and a ret nz callab Func_13870 ret nz asm_3ef3d: ; 3ef3d (f:6f3d) - ld a, [$d35d] + ld a, [wd35d] push af - ld hl, $d358 + ld hl, wd358 ld a, [hl] push af res 1, [hl] callab Func_525af - ld a, [W_ENEMYMONID] + ld a, [wEnemyMonSpecies2] sub $c8 jp c, InitWildBattle - ld [W_TRAINERCLASS], a ; $d031 + ld [W_TRAINERCLASS], a ; wd031 call GetTrainerInformation callab ReadTrainer call Func_3ec32 call _LoadTrainerPic xor a - ld [W_ENEMYMONID], a + ld [wEnemyMonSpecies2], a ld [$ffe1], a dec a - ld [wAICount], a ; $ccdf - FuncCoord 12, 0 ; $c3ac - ld hl, Coord - ld a, $1 - call Predef ; indirect jump to Func_3f0c6 (3f0c6 (f:70c6)) + ld [wAICount], a ; wccdf + hlCoord 12, 0 + predef Func_3f0c6 ld a, $ff - ld [W_ENEMYMONNUMBER], a ; $cfe8 + ld [wEnemyMonPartyPos], a ld a, $2 - ld [W_ISINBATTLE], a ; $d057 + ld [W_ISINBATTLE], a ; W_ISINBATTLE jp Func_3efeb InitWildBattle: ; 3ef8b (f:6f8b) ld a, $1 - ld [W_ISINBATTLE], a ; $d057 + ld [W_ISINBATTLE], a ; W_ISINBATTLE call Func_3eb01 call Func_3ec32 - ld a, [W_CUROPPONENT] ; $d059 + ld a, [W_CUROPPONENT] ; wd059 cp MAROWAK jr z, .isGhost call IsGhostBattle @@ -6728,7 +6640,7 @@ InitWildBattle: ; 3ef8b (f:6f8b) ld a, c ld [hli], a ; write front sprite pointer ld [hl], b - ld hl, W_ENEMYMONNAME ; set name to "GHOST" + ld hl, wEnemyMonNick ; set name to "GHOST" ld a, "G" ld [hli], a ld a, "H" @@ -6740,26 +6652,24 @@ InitWildBattle: ; 3ef8b (f:6f8b) ld a, "T" ld [hli], a ld [hl], "@" - ld a, [$cf91] + ld a, [wcf91] push af ld a, MON_GHOST - ld [$cf91], a - ld de, $9000 + ld [wcf91], a + ld de, vFrontPic call LoadMonFrontSprite ; load ghost sprite pop af - ld [$cf91], a + ld [wcf91], a jr .spriteLoaded .isNoGhost - ld de, $9000 + ld de, vFrontPic call LoadMonFrontSprite ; load mon sprite .spriteLoaded xor a - ld [W_TRAINERCLASS], a ; $d031 + ld [W_TRAINERCLASS], a ; wd031 ld [$ffe1], a - FuncCoord 12, 0 ; $c3ac - ld hl, Coord - ld a, $1 - call Predef ; indirect jump to Func_3f0c6 (3f0c6 (f:70c6)) + hlCoord 12, 0 + predef Func_3f0c6 Func_3efeb: ; 3efeb (f:6feb) ld b, $0 @@ -6779,25 +6689,23 @@ Func_3efeb: ; 3efeb (f:6feb) ld a, $9c ld [$ffbd], a call LoadScreenTilesFromBuffer1 - FuncCoord 9, 7 ; $c435 - ld hl, Coord + hlCoord 9, 7 ld bc, $50a call ClearScreenArea - FuncCoord 1, 0 ; $c3a1 - ld hl, Coord + hlCoord 1, 0 ld bc, $40a call ClearScreenArea - call CleanLCD_OAM - ld a, [W_ISINBATTLE] ; $d057 + call ClearSprites + ld a, [W_ISINBATTLE] ; W_ISINBATTLE dec a call z, Func_3cdec call Func_3c11e callab Func_137aa pop af - ld [$d358], a + ld [wd358], a pop af - ld [$d35d], a - ld a, [$d0d4] + ld [wd35d], a + ld a, [wd0d4] ld [$ffd7], a scf ret @@ -6806,38 +6714,38 @@ TerminatorText_3f04a: ; 3f04a (f:704a) db "@" _LoadTrainerPic: ; 3f04b (f:704b) -; $d033-$d034 contain pointer to pic - ld a, [$d033] +; wd033-wd034 contain pointer to pic + ld a, [wd033] ld e, a - ld a, [$d034] + ld a, [wd034] ld d, a ; de contains pointer to trainer pic - ld a, [W_ISLINKBATTLE] ; $d12b + ld a, [W_ISLINKBATTLE] ; W_ISLINKBATTLE and a ld a, Bank(TrainerPics) ; this is where all the trainer pics are (not counting Red's) jr z, .loadSprite ld a, Bank(RedPicFront) .loadSprite call UncompressSpriteFromDE - ld de, $9000 + ld de, vFrontPic ld a, $77 ld c, a jp LoadUncompressedSpriteData Func_3f069: ; 3f069 (f:7069) xor a - ld [$c0f1], a - ld [$c0f2], a + ld [wc0f1], a + ld [wc0f2], a jp PlaySound Func_3f073: ; 3f073 (f:7073) - ld a, [$cc4f] + ld a, [wPredefRegisters] ld h, a - ld a, [$cc50] + ld a, [wPredefRegisters + 1] ld l, a ld a, [$ffe1] ld [H_DOWNARROWBLINKCNT1], a ; $ff8b ld b, $4c - ld a, [W_ISINBATTLE] ; $d057 + ld a, [W_ISINBATTLE] ; W_ISINBATTLE and a jr z, .asm_3f0bc add b @@ -6846,19 +6754,17 @@ Func_3f073: ; 3f073 (f:7073) ld bc, $ffd7 add hl, bc ld a, $1 - ld [$cd6c], a + ld [wcd6c], a ld bc, $303 - ld a, $5 - call Predef ; indirect jump to Func_79aba (79aba (1e:5aba)) + predef Func_79aba ld c, $4 call DelayFrames ld bc, $ffd7 add hl, bc xor a - ld [$cd6c], a + ld [wcd6c], a ld bc, $505 - ld a, $5 - call Predef ; indirect jump to Func_79aba (79aba (1e:5aba)) + predef Func_79aba ld c, $5 call DelayFrames ld bc, $ffd7 @@ -6872,9 +6778,9 @@ Func_3f073: ; 3f073 (f:7073) jr asm_3f0d0 Func_3f0c6: ; 3f0c6 (f:70c6) - ld a, [$cc4f] + ld a, [wPredefRegisters] ld h, a - ld a, [$cc50] + ld a, [wPredefRegisters + 1] ld l, a ld a, [$ffe1] asm_3f0d0: ; 3f0d0 (f:70d0) @@ -6923,24 +6829,22 @@ asm_3f0d0: ; 3f0d0 (f:70d0) jr nz, .asm_3f0f4 ret -; loads back sprite of mon to $8000 -; assumes the corresponding mon header is already loaded -LoadMonBackSprite: ; 3f103 (f:7103) - ld a, [$cfd9] - ld [$cf91], a - FuncCoord 1, 5 ; $c405 - ld hl, Coord +LoadMonBackPic: +; Assumes the monster's attributes have +; been loaded with GetMonHeader. + ld a, [wBattleMonSpecies2] + ld [wcf91], a + hlCoord 1, 5 ld b, $7 ld c, $8 call ClearScreenArea ld hl, W_MONHBACKSPRITE - W_MONHEADER call UncompressMonSprite - ld a, $3 - call Predef ; indirect jump to ScaleSpriteByTwo (2fe40 (b:7e40)) - ld de, $9310 + predef ScaleSpriteByTwo + ld de, vBackPic call InterlaceMergeSpriteBuffers ; combine the two buffers to a single 2bpp sprite - ld hl, $8000 - ld de, $9310 + ld hl, vSprites + ld de, vBackPic ld c, (2*SPRITEBUFFERSIZE)/16 ; count of 16-byte chunks to be copied ld a, [H_LOADEDROMBANK] ld b, a @@ -7058,13 +6962,13 @@ MoveEffectPointerTable: ; 3f150 (f:7150) dw DisableEffect ; DISABLE_EFFECT SleepEffect: ; 3f1fc (f:71fc) - ld de, W_ENEMYMONSTATUS ; $cfe9 - ld bc, W_ENEMYBATTSTATUS2 ; $d068 + ld de, wEnemyMonStatus ; wcfe9 + ld bc, W_ENEMYBATTSTATUS2 ; W_ENEMYBATTSTATUS2 ld a, [H_WHOSETURN] ; $fff3 and a jp z, .asm_3f20e - ld de, W_PLAYERMONSTATUS ; $d018 - ld bc, W_PLAYERBATTSTATUS2 ; $d063 + ld de, wBattleMonStatus ; wBattleMonStatus + ld bc, W_PLAYERBATTSTATUS2 ; W_PLAYERBATTSTATUS2 .asm_3f20e ld a, [bc] @@ -7085,11 +6989,11 @@ SleepEffect: ; 3f1fc (f:71fc) push de call MoveHitTest pop de - ld a, [W_MOVEMISSED] ; $d05f + ld a, [W_MOVEMISSED] ; W_MOVEMISSED and a jr nz, .asm_3f242 .asm_3f231 - call GenRandomInBattle + call BattleRandom and $7 jr z, .asm_3f231 ld [de], a @@ -7108,13 +7012,13 @@ AlreadyAsleepText: ; 3f24a (f:724a) db "@" PoisonEffect: ; 3f24f (f:724f) - ld hl, W_ENEMYMONSTATUS ; $cfe9 - ld de, W_PLAYERMOVEEFFECT ; $cfd3 + ld hl, wEnemyMonStatus ; wcfe9 + ld de, W_PLAYERMOVEEFFECT ; wcfd3 ld a, [H_WHOSETURN] ; $fff3 and a jr z, .asm_3f260 - ld hl, W_PLAYERMONSTATUS ; $d018 - ld de, W_ENEMYMOVEEFFECT ; $cfcd + ld hl, wBattleMonStatus ; wBattleMonStatus + ld de, W_ENEMYMOVEEFFECT ; W_ENEMYMOVEEFFECT .asm_3f260 call CheckTargetSubstitute jr nz, .asm_3f2d3 @@ -7140,12 +7044,12 @@ PoisonEffect: ; 3f24f (f:724f) call MoveHitTest pop de pop hl - ld a, [W_MOVEMISSED] ; $d05f + ld a, [W_MOVEMISSED] ; W_MOVEMISSED and a jr nz, .asm_3f2d7 jr .asm_3f295 .asm_3f290 - call GenRandomInBattle + call BattleRandom cp b ret nc .asm_3f295 @@ -7156,13 +7060,13 @@ PoisonEffect: ; 3f24f (f:724f) ld a, [H_WHOSETURN] ; $fff3 and a ld b, $c7 - ld hl, W_PLAYERBATTSTATUS3 ; $d064 + ld hl, W_PLAYERBATTSTATUS3 ; W_PLAYERBATTSTATUS3 ld a, [de] - ld de, W_PLAYERTOXICCOUNTER ; $d06c + ld de, W_PLAYERTOXICCOUNTER ; wd06c jr nz, .asm_3f2b0 ld b, $a9 - ld hl, W_ENEMYBATTSTATUS3 ; $d069 - ld de, W_ENEMYTOXICCOUNTER ; $d071 + ld hl, W_ENEMYBATTSTATUS3 ; W_ENEMYBATTSTATUS3 + ld de, W_ENEMYTOXICCOUNTER ; wd071 .asm_3f2b0 cp $5c jr nz, .asm_3f2bd @@ -7207,13 +7111,13 @@ DrainHPEffect: ; 3f2e9 (f:72e9) jp Bankswitch ExplodeEffect: ; 3f2f1 (f:72f1) - ld hl, W_PLAYERMONCURHP ; $d015 - ld de, W_PLAYERBATTSTATUS2 ; $d063 + ld hl, wBattleMonHP ; wd015 + ld de, W_PLAYERBATTSTATUS2 ; W_PLAYERBATTSTATUS2 ld a, [H_WHOSETURN] ; $fff3 and a jr z, .asm_3f302 - ld hl, W_ENEMYMONCURHP ; $cfe6 - ld de, W_ENEMYBATTSTATUS2 ; $d068 + ld hl, wEnemyMonHP ; wEnemyMonHP + ld de, W_ENEMYBATTSTATUS2 ; W_ENEMYBATTSTATUS2 .asm_3f302 xor a ld [hli], a ; set the mon's HP to 0 @@ -7227,22 +7131,22 @@ ExplodeEffect: ; 3f2f1 (f:72f1) FreezeBurnParalyzeEffect: ; 3f30c (f:730c) xor a - ld [$cc5b], a + ld [wcc5b], a call CheckTargetSubstitute ;test bit 4 of d063/d068 flags [target has substitute flag] ret nz ;return if they have a substitute, can't effect them ld a, [$fff3] ;whose turn? and a jp nz, opponentAttacker - ld a, [W_ENEMYMONSTATUS] + ld a, [wEnemyMonStatus] and a jp nz, CheckDefrost ;opponent has no existing status ld a, [W_PLAYERMOVETYPE] ld b, a - ld a, [W_ENEMYMONTYPE1] + ld a, [wEnemyMonType1] cp b ret z ;return if they match [can't freeze an ice type etc.] - ld a, [W_ENEMYMONTYPE2] + ld a, [wEnemyMonType2] cp b ret z ;return.. ld a, [W_PLAYERMOVEEFFECT] @@ -7253,7 +7157,7 @@ FreezeBurnParalyzeEffect: ; 3f30c (f:730c) sub a, $1e ;subtract $1E to map to equivalent 10% chance effects .next1 push af ;push effect... - call GenRandomInBattle ;get random 8bit value for probability test + call BattleRandom ;get random 8bit value for probability test cp b ;success? pop bc ;...pop effect into C ret nc ;do nothing if random value is >= 1A or 4D [no status applied] @@ -7264,14 +7168,14 @@ FreezeBurnParalyzeEffect: ; 3f30c (f:730c) cp a, FREEZE_SIDE_EFFECT jr z, .freeze ld a, 1 << PAR - ld [W_ENEMYMONSTATUS], a + ld [wEnemyMonStatus], a call Func_3ed27 ;quarter speed of affected monster ld a, $a9 call Func_3fbb9 ;animation jp PrintMayNotAttackText ;print paralysis text .burn ld a, 1 << BRN - ld [W_ENEMYMONSTATUS], a + ld [wEnemyMonStatus], a call Func_3ed64 ld a, $a9 call Func_3fbb9 ;animation @@ -7280,21 +7184,21 @@ FreezeBurnParalyzeEffect: ; 3f30c (f:730c) .freeze call Func_3f9cf ;resets bit 5 of the D063/D068 flags ld a, 1 << FRZ - ld [W_ENEMYMONSTATUS], a + ld [wEnemyMonStatus], a ld a, $a9 call Func_3fbb9 ;animation ld hl, FrozenText jp PrintText opponentAttacker: ; 3f382 (f:7382) - ld a, [W_PLAYERMONSTATUS] ;this appears to the same as above with addresses swapped for opponent + ld a, [wBattleMonStatus] ;this appears to the same as above with addresses swapped for opponent and a jp nz, CheckDefrost ld a, [W_ENEMYMOVETYPE] ld b, a - ld a, [W_PLAYERMONTYPE1] + ld a, [wBattleMonType1] cp b ret z - ld a, [W_PLAYERMONTYPE2] + ld a, [wBattleMonType2] cp b ret z ld a, [W_ENEMYMOVEEFFECT] @@ -7305,7 +7209,7 @@ opponentAttacker: ; 3f382 (f:7382) sub a, $1e .next1 push af - call GenRandomInBattle + call BattleRandom cp b pop bc ret nc @@ -7315,18 +7219,18 @@ opponentAttacker: ; 3f382 (f:7382) cp a, FREEZE_SIDE_EFFECT jr z, .freeze ld a, 1 << PAR - ld [W_PLAYERMONSTATUS], a + ld [wBattleMonStatus], a call Func_3ed27 jp PrintMayNotAttackText .burn ld a, 1 << BRN - ld [W_PLAYERMONSTATUS], a + ld [wBattleMonStatus], a call Func_3ed64 ld hl, BurnedText jp PrintText .freeze ld a, 1 << FRZ - ld [W_PLAYERMONSTATUS], a + ld [wBattleMonStatus], a ld hl, FrozenText jp PrintText @@ -7350,10 +7254,10 @@ CheckDefrost: ; 3f3e2 (f:73e2) sub a, FIRE ret nz ;return if it isn't fire ;type is fire - ld [W_ENEMYMONSTATUS], a ;set opponent status to 00 ["defrost" a frozen monster] - ld hl, $d8a8 ;status of first opponent monster in their roster - ld a, [W_ENEMYMONNUMBER] - ld bc, $002c ;$2C bytes per roster entry + ld [wEnemyMonStatus], a ;set opponent status to 00 ["defrost" a frozen monster] + ld hl, wEnemyMon1Status + ld a, [wEnemyMonPartyPos] + ld bc, wEnemyMon2 - wEnemyMon1 call AddNTimes xor a ld [hl], a ;clear status in roster @@ -7363,10 +7267,10 @@ CheckDefrost: ; 3f3e2 (f:73e2) ld a, [W_ENEMYMOVETYPE] ;same as above with addresses swapped sub a, FIRE ret nz - ld [W_PLAYERMONSTATUS], a - ld hl, $d16f + ld [wBattleMonStatus], a + ld hl, wPartyMon1Status ld a, [wPlayerMonNumber] - ld bc, $002c + ld bc, wPartyMon2 - wPartyMon1 call AddNTimes xor a ld [hl], a @@ -7379,13 +7283,13 @@ FireDefrostedText: ; 3f423 (f:7423) db "@" StatModifierUpEffect: ; 3f428 (f:7428) - ld hl, wPlayerMonStatMods ; $cd1a - ld de, W_PLAYERMOVEEFFECT ; $cfd3 + ld hl, wPlayerMonStatMods ; wcd1a + ld de, W_PLAYERMOVEEFFECT ; wcfd3 ld a, [H_WHOSETURN] ; $fff3 and a jr z, .asm_3f439 - ld hl, wEnemyMonStatMods ; $cd2e - ld de, W_ENEMYMOVEEFFECT ; $cfcd + ld hl, wEnemyMonStatMods ; wcd2e + ld de, W_ENEMYMOVEEFFECT ; W_ENEMYMOVEEFFECT .asm_3f439 ld a, [de] sub $a @@ -7415,13 +7319,13 @@ StatModifierUpEffect: ; 3f428 (f:7428) cp $4 jr nc, asm_3f4ca push hl - ld hl, $d026 - ld de, $cd12 + ld hl, wBattleMonAttack + 1 + ld de, wcd12 ld a, [H_WHOSETURN] ; $fff3 and a jr z, .asm_3f472 - ld hl, $cff7 - ld de, $cd26 + ld hl, wEnemyMonAttack + 1 + ld de, wcd26 .asm_3f472 push bc sla c @@ -7485,15 +7389,15 @@ asm_3f4ca: ; 3f4ca (f:74ca) ld b, c inc b call Func_3f688 - ld hl, W_PLAYERBATTSTATUS2 ; $d063 - ld de, W_PLAYERMOVENUM ; $cfd2 - ld bc, $ccf7 + ld hl, W_PLAYERBATTSTATUS2 ; W_PLAYERBATTSTATUS2 + ld de, W_PLAYERMOVENUM ; wcfd2 + ld bc, wccf7 ld a, [H_WHOSETURN] ; $fff3 and a jr z, .asm_3f4e6 - ld hl, W_ENEMYBATTSTATUS2 ; $d068 - ld de, W_ENEMYMOVENUM ; $cfcc - ld bc, $ccf3 + ld hl, W_ENEMYBATTSTATUS2 ; W_ENEMYBATTSTATUS2 + ld de, W_ENEMYMOVENUM ; W_ENEMYMOVENUM + ld bc, wccf3 .asm_3f4e6 ld a, [de] cp MINIMIZE @@ -7541,9 +7445,9 @@ MonsStatsRoseText: ; 3f528 (f:7528) ld hl, GreatlyRoseText ld a, [H_WHOSETURN] ; $fff3 and a - ld a, [W_PLAYERMOVEEFFECT] ; $cfd3 + ld a, [W_PLAYERMOVEEFFECT] ; wcfd3 jr z, .asm_3f53b - ld a, [W_ENEMYMOVEEFFECT] ; $cfcd + ld a, [W_ENEMYMOVEEFFECT] ; W_ENEMYMOVEEFFECT .asm_3f53b cp ATTACK_DOWN1_EFFECT ret nc @@ -7559,19 +7463,19 @@ RoseText: ; 3f547 (f:7547) db "@" StatModifierDownEffect: ; 3f54c (f:754c) - ld hl, wEnemyMonStatMods ; $cd2e - ld de, W_PLAYERMOVEEFFECT ; $cfd3 - ld bc, W_ENEMYBATTSTATUS1 ; $d067 + ld hl, wEnemyMonStatMods ; wcd2e + ld de, W_PLAYERMOVEEFFECT ; wcfd3 + ld bc, W_ENEMYBATTSTATUS1 ; W_ENEMYBATTSTATUS1 ld a, [H_WHOSETURN] ; $fff3 and a jr z, .asm_3f572 - ld hl, wPlayerMonStatMods ; $cd1a - ld de, W_ENEMYMOVEEFFECT ; $cfcd - ld bc, W_PLAYERBATTSTATUS1 ; $d062 - ld a, [W_ISLINKBATTLE] ; $d12b + ld hl, wPlayerMonStatMods ; wcd1a + ld de, W_ENEMYMOVEEFFECT ; W_ENEMYMOVEEFFECT + ld bc, W_PLAYERBATTSTATUS1 ; W_PLAYERBATTSTATUS1 + ld a, [W_ISLINKBATTLE] ; W_ISLINKBATTLE cp $4 jr z, .asm_3f572 - call GenRandomInBattle + call BattleRandom cp $40 jp c, Func_3f65a .asm_3f572 @@ -7580,7 +7484,7 @@ StatModifierDownEffect: ; 3f54c (f:754c) ld a, [de] cp ATTACK_DOWN_SIDE_EFFECT jr c, .asm_3f58a - call GenRandomInBattle + call BattleRandom cp SPLASH_EFFECT jp nc, Func_3f650 ld a, [de] @@ -7594,7 +7498,7 @@ StatModifierDownEffect: ; 3f54c (f:754c) pop bc pop de pop hl - ld a, [W_MOVEMISSED] ; $d05f + ld a, [W_MOVEMISSED] ; W_MOVEMISSED and a jp nz, Func_3f65a ld a, [bc] @@ -7627,13 +7531,13 @@ StatModifierDownEffect: ; 3f54c (f:754c) jr nc, asm_3f62c push hl push de - ld hl, $cff7 - ld de, $cd26 + ld hl, wEnemyMonAttack + 1 + ld de, wcd26 ld a, [H_WHOSETURN] ; $fff3 and a jr z, .asm_3f5d8 - ld hl, $d026 - ld de, $cd12 + ld hl, wBattleMonAttack + 1 + ld de, wcd12 .asm_3f5d8 push bc sla c @@ -7736,9 +7640,9 @@ MonsStatsFellText: ; 3f661 (f:7661) ld hl, FellText ld a, [H_WHOSETURN] ; $fff3 and a - ld a, [W_PLAYERMOVEEFFECT] ; $cfd3 + ld a, [W_PLAYERMOVEEFFECT] ; wcfd3 jr z, .asm_3f674 - ld a, [W_ENEMYMOVEEFFECT] ; $cfcd + ld a, [W_ENEMYMOVEEFFECT] ; W_ENEMYMOVEEFFECT .asm_3f674 cp $1a ret c @@ -7767,7 +7671,7 @@ Func_3f688: ; 3f688 (f:7688) jr z, .asm_3f68d jr .asm_3f690 .asm_3f696 - ld de, $cf4b + ld de, wcf4b ld bc, $a jp CopyData @@ -7798,13 +7702,13 @@ StatModifierRatios: ; 3f6cb (f:76cb) BideEffect: ; 3f6e5 (f:76e5) ld hl, W_PLAYERBATTSTATUS1 ld de, W_NUMHITS - ld bc, $d06a + ld bc, wd06a ld a, [H_WHOSETURN] and a jr z, .asm_3f6fc ld hl, W_ENEMYBATTSTATUS1 - ld de, $cd05 - ld bc, $d06f + ld de, wcd05 + ld bc, wd06f .asm_3f6fc set 0, [hl] ; mon is now using bide xor a @@ -7813,7 +7717,7 @@ BideEffect: ; 3f6e5 (f:76e5) ld [de], a ld [W_PLAYERMOVEEFFECT], a ld [W_ENEMYMOVEEFFECT], a - call GenRandomInBattle + call BattleRandom and $1 inc a inc a @@ -7823,16 +7727,16 @@ BideEffect: ; 3f6e5 (f:76e5) jp Func_3fb96 ThrashPetalDanceEffect: ; 3f717 (f:7717) - ld hl, W_PLAYERBATTSTATUS1 ; $d062 - ld de, $d06a + ld hl, W_PLAYERBATTSTATUS1 ; W_PLAYERBATTSTATUS1 + ld de, wd06a ld a, [H_WHOSETURN] ; $fff3 and a jr z, .asm_3f728 - ld hl, W_ENEMYBATTSTATUS1 ; $d067 - ld de, $d06f + ld hl, W_ENEMYBATTSTATUS1 ; W_ENEMYBATTSTATUS1 + ld de, wd06f .asm_3f728 set 1, [hl] ; mon is now using thrash/petal dance - call GenRandomInBattle + call BattleRandom and $1 inc a inc a @@ -7845,19 +7749,19 @@ SwitchAndTeleportEffect: ; 3f739 (f:7739) ld a, [H_WHOSETURN] ; $fff3 and a jr nz, .asm_3f791 - ld a, [W_ISINBATTLE] ; $d057 + ld a, [W_ISINBATTLE] ; W_ISINBATTLE dec a jr nz, .asm_3f77e - ld a, [W_CURENEMYLVL] ; $d127 + ld a, [W_CURENEMYLVL] ; W_CURENEMYLVL ld b, a - ld a, [W_PLAYERMONLEVEL] ; $d022 + ld a, [wBattleMonLevel] ; wBattleMonLevel cp b jr nc, .asm_3f76e add b ld c, a inc c .asm_3f751 - call GenRandomInBattle + call BattleRandom cp c jr nc, .asm_3f751 srl b @@ -7866,40 +7770,40 @@ SwitchAndTeleportEffect: ; 3f739 (f:7739) jr nc, .asm_3f76e ld c, $32 call DelayFrames - ld a, [W_PLAYERMOVENUM] ; $cfd2 + ld a, [W_PLAYERMOVENUM] ; wcfd2 cp TELEPORT jp nz, PrintDidntAffectText jp PrintButItFailedText_ .asm_3f76e call ReadPlayerMonCurHPAndStatus xor a - ld [$cc5b], a + ld [wcc5b], a inc a - ld [$d078], a - ld a, [W_PLAYERMOVENUM] ; $cfd2 + ld [wd078], a + ld a, [W_PLAYERMOVENUM] ; wcfd2 jr .asm_3f7e4 .asm_3f77e ld c, $32 call DelayFrames ld hl, IsUnaffectedText - ld a, [W_PLAYERMOVENUM] ; $cfd2 + ld a, [W_PLAYERMOVENUM] ; wcfd2 cp TELEPORT jp nz, PrintText jp PrintButItFailedText_ .asm_3f791 - ld a, [W_ISINBATTLE] ; $d057 + ld a, [W_ISINBATTLE] ; W_ISINBATTLE dec a jr nz, .asm_3f7d1 - ld a, [W_PLAYERMONLEVEL] ; $d022 + ld a, [wBattleMonLevel] ; wBattleMonLevel ld b, a - ld a, [W_CURENEMYLVL] ; $d127 + ld a, [W_CURENEMYLVL] ; W_CURENEMYLVL cp b jr nc, .asm_3f7c1 add b ld c, a inc c .asm_3f7a4 - call GenRandomInBattle + call BattleRandom cp c jr nc, .asm_3f7a4 srl b @@ -7908,23 +7812,23 @@ SwitchAndTeleportEffect: ; 3f739 (f:7739) jr nc, .asm_3f7c1 ld c, $32 call DelayFrames - ld a, [W_ENEMYMOVENUM] ; $cfcc + ld a, [W_ENEMYMOVENUM] ; W_ENEMYMOVENUM cp TELEPORT jp nz, PrintDidntAffectText jp PrintButItFailedText_ .asm_3f7c1 call ReadPlayerMonCurHPAndStatus xor a - ld [$cc5b], a + ld [wcc5b], a inc a - ld [$d078], a - ld a, [W_ENEMYMOVENUM] ; $cfcc + ld [wd078], a + ld a, [W_ENEMYMOVENUM] ; W_ENEMYMOVENUM jr .asm_3f7e4 .asm_3f7d1 ld c, $32 call DelayFrames ld hl, IsUnaffectedText - ld a, [W_ENEMYMOVENUM] ; $cfcc + ld a, [W_ENEMYMOVENUM] ; W_ENEMYMOVENUM cp TELEPORT jp nz, PrintText jp Func_3fb4e @@ -7957,24 +7861,24 @@ WasBlownAwayText: ; 3f80c (f:780c) db "@" TwoToFiveAttacksEffect: ; 3f811 (f:7811) - ld hl, W_PLAYERBATTSTATUS1 ; $d062 - ld de, $d06a - ld bc, W_NUMHITS ; $d074 + ld hl, W_PLAYERBATTSTATUS1 ; W_PLAYERBATTSTATUS1 + ld de, wd06a + ld bc, W_NUMHITS ; wd074 ld a, [H_WHOSETURN] ; $fff3 and a jr z, .asm_3f828 - ld hl, W_ENEMYBATTSTATUS1 ; $d067 - ld de, $d06f - ld bc, $cd05 + ld hl, W_ENEMYBATTSTATUS1 ; W_ENEMYBATTSTATUS1 + ld de, wd06f + ld bc, wcd05 .asm_3f828 bit 2, [hl] ; is mon attacking multiple times? ret nz set 2, [hl] ; mon is now attacking multiple times - ld hl, W_PLAYERMOVEEFFECT ; $cfd3 + ld hl, W_PLAYERMOVEEFFECT ; wcfd3 ld a, [H_WHOSETURN] ; $fff3 and a jr z, .asm_3f838 - ld hl, W_ENEMYMOVEEFFECT ; $cfcd + ld hl, W_ENEMYMOVEEFFECT ; W_ENEMYMOVEEFFECT .asm_3f838 ld a, [hl] cp TWINEEDLE_EFFECT @@ -7982,11 +7886,11 @@ TwoToFiveAttacksEffect: ; 3f811 (f:7811) cp ATTACK_TWICE_EFFECT ld a, $2 jr z, .asm_3f853 - call GenRandomInBattle + call BattleRandom and $3 cp $2 jr c, .asm_3f851 - call GenRandomInBattle + call BattleRandom and $3 .asm_3f851 inc a @@ -8003,13 +7907,13 @@ TwoToFiveAttacksEffect: ; 3f811 (f:7811) FlichSideEffect: ; 3f85b (f:785b) call CheckTargetSubstitute ret nz - ld hl, W_ENEMYBATTSTATUS1 ; $d067 - ld de, W_PLAYERMOVEEFFECT ; $cfd3 + ld hl, W_ENEMYBATTSTATUS1 ; W_ENEMYBATTSTATUS1 + ld de, W_PLAYERMOVEEFFECT ; wcfd3 ld a, [H_WHOSETURN] ; $fff3 and a jr z, .asm_3f870 - ld hl, W_PLAYERBATTSTATUS1 ; $d062 - ld de, W_ENEMYMOVEEFFECT ; $cfcd + ld hl, W_PLAYERBATTSTATUS1 ; W_PLAYERBATTSTATUS1 + ld de, W_ENEMYMOVEEFFECT ; W_ENEMYMOVEEFFECT .asm_3f870 ld a, [de] cp FLINCH_SIDE_EFFECT1 @@ -8017,7 +7921,7 @@ FlichSideEffect: ; 3f85b (f:785b) jr z, .asm_3f879 ld b, $4d ; ~30% chance of flinch .asm_3f879 - call GenRandomInBattle + call BattleRandom cp b ret nc set 3, [hl] ; set mon's status to flinching @@ -8030,14 +7934,14 @@ OneHitKOEffect: ; 3f884 (f:7884) jp Bankswitch ChargeEffect: ; 3f88c (f:788c) - ld hl, W_PLAYERBATTSTATUS1 ; $d062 - ld de, W_PLAYERMOVEEFFECT ; $cfd3 + ld hl, W_PLAYERBATTSTATUS1 ; W_PLAYERBATTSTATUS1 + ld de, W_PLAYERMOVEEFFECT ; wcfd3 ld a, [H_WHOSETURN] ; $fff3 and a ld b, $ae jr z, .asm_3f8a1 - ld hl, W_ENEMYBATTSTATUS1 ; $d067 - ld de, W_ENEMYMOVEEFFECT ; $cfcd + ld hl, W_ENEMYBATTSTATUS1 ; W_ENEMYBATTSTATUS1 + ld de, W_ENEMYMOVEEFFECT ; W_ENEMYMOVEEFFECT ld b, $af .asm_3f8a1 set 4, [hl] @@ -8055,18 +7959,18 @@ ChargeEffect: ; 3f88c (f:788c) ld b, $c0 .asm_3f8b6 xor a - ld [$cc5b], a + ld [wcc5b], a ld a, b call Func_3fbb9 ld a, [de] - ld [wWhichTrade], a ; $cd3d + ld [wWhichTrade], a ; wWhichTrade ld hl, ChargeMoveEffectText ; $78c8 jp PrintText ChargeMoveEffectText: ; 3f8c8 (f:78c8) TX_FAR _ChargeMoveEffectText db $08 ; asm - ld a, [wWhichTrade] ; $cd3d + ld a, [wWhichTrade] ; wWhichTrade cp RAZOR_WIND ld hl, MadeWhirlwindText ; $78f9 jr z, .asm_3f8f8 @@ -8112,23 +8016,23 @@ DugAHoleText: ; 3f912 (f:7912) db "@" TrappingEffect: ; 3f917 (f:7917) - ld hl, W_PLAYERBATTSTATUS1 ; $d062 - ld de, $d06a + ld hl, W_PLAYERBATTSTATUS1 ; W_PLAYERBATTSTATUS1 + ld de, wd06a ld a, [H_WHOSETURN] ; $fff3 and a jr z, .asm_3f928 - ld hl, W_ENEMYBATTSTATUS1 ; $d067 - ld de, $d06f + ld hl, W_ENEMYBATTSTATUS1 ; W_ENEMYBATTSTATUS1 + ld de, wd06f .asm_3f928 bit 5, [hl] ret nz call Func_3f9cf set 5, [hl] - call GenRandomInBattle + call BattleRandom and $3 cp $2 jr c, .asm_3f93e - call GenRandomInBattle + call BattleRandom and $3 .asm_3f93e inc a @@ -8151,7 +8055,7 @@ RecoilEffect: ; 3f951 (f:7951) jp Bankswitch ConfusionSideEffect: ; 3f959 (f:7959) - call GenRandomInBattle + call BattleRandom cp $19 ret nc jr Func_3f96f @@ -8160,26 +8064,26 @@ ConfusionEffect: ; 3f961 (f:7961) call CheckTargetSubstitute jr nz, Func_3f9a6 call MoveHitTest - ld a, [W_MOVEMISSED] ; $d05f + ld a, [W_MOVEMISSED] ; W_MOVEMISSED and a jr nz, Func_3f9a6 Func_3f96f: ; 3f96f (f:796f) ld a, [H_WHOSETURN] ; $fff3 and a - ld hl, W_ENEMYBATTSTATUS1 ; $d067 - ld bc, $d070 - ld a, [W_PLAYERMOVEEFFECT] ; $cfd3 + ld hl, W_ENEMYBATTSTATUS1 ; W_ENEMYBATTSTATUS1 + ld bc, wd070 + ld a, [W_PLAYERMOVEEFFECT] ; wcfd3 jr z, .asm_3f986 - ld hl, W_PLAYERBATTSTATUS1 ; $d062 - ld bc, $d06b - ld a, [W_ENEMYMOVEEFFECT] ; $cfcd + ld hl, W_PLAYERBATTSTATUS1 ; W_PLAYERBATTSTATUS1 + ld bc, wd06b + ld a, [W_ENEMYMOVEEFFECT] ; W_ENEMYMOVEEFFECT .asm_3f986 bit 7, [hl] ; is mon confused? jr nz, Func_3f9a6 set 7, [hl] ; mon is now confused push af - call GenRandomInBattle + call BattleRandom and $3 inc a inc a @@ -8212,22 +8116,22 @@ SubstituteEffect: ; 3f9b9 (f:79b9) jp Bankswitch HyperBeamEffect: ; 3f9c1 (f:79c1) - ld hl, W_PLAYERBATTSTATUS2 ; $d063 + ld hl, W_PLAYERBATTSTATUS2 ; W_PLAYERBATTSTATUS2 ld a, [H_WHOSETURN] ; $fff3 and a jr z, .asm_3f9cc - ld hl, W_ENEMYBATTSTATUS2 ; $d068 + ld hl, W_ENEMYBATTSTATUS2 ; W_ENEMYBATTSTATUS2 .asm_3f9cc set 5, [hl] ; mon now needs to recharge ret Func_3f9cf: ; 3f9cf (f:79cf) push hl - ld hl, W_ENEMYBATTSTATUS2 ; $d068 + ld hl, W_ENEMYBATTSTATUS2 ; W_ENEMYBATTSTATUS2 ld a, [H_WHOSETURN] ; $fff3 and a jr z, .asm_3f9db - ld hl, W_PLAYERBATTSTATUS2 ; $d063 + ld hl, W_PLAYERBATTSTATUS2 ; W_PLAYERBATTSTATUS2 .asm_3f9db res 5, [hl] ; mon no longer needs to recharge pop hl @@ -8252,20 +8156,20 @@ MimicEffect: ; 3f9ed (f:79ed) jr nz, .asm_3fa74 ld a, [H_WHOSETURN] and a - ld hl, W_PLAYERMONMOVES + ld hl, wBattleMonMoves ld a, [W_PLAYERBATTSTATUS1] jr nz, .asm_3fa13 ld a, [W_ISLINKBATTLE] cp $4 jr nz, .asm_3fa3a - ld hl, W_ENEMYMONMOVES + ld hl, wEnemyMonMoves ld a, [W_ENEMYBATTSTATUS1] .asm_3fa13 bit 6, a jr nz, .asm_3fa74 .asm_3fa17 push hl - call GenRandomInBattle + call BattleRandom and $3 ld c, a ld b, $0 @@ -8277,10 +8181,10 @@ MimicEffect: ; 3f9ed (f:79ed) ld d, a ld a, [H_WHOSETURN] and a - ld hl, W_PLAYERMONMOVES + ld hl, wBattleMonMoves ld a, [wPlayerMoveListIndex] jr z, .asm_3fa5f - ld hl, W_ENEMYMONMOVES + ld hl, wEnemyMonMoves ld a, [wEnemyMoveListIndex] jr .asm_3fa5f .asm_3fa3a @@ -8293,21 +8197,21 @@ MimicEffect: ; 3f9ed (f:79ed) ld [wMoveMenuType], a call MoveSelectionMenu call LoadScreenTilesFromBuffer1 - ld hl, W_ENEMYMONMOVES + ld hl, wEnemyMonMoves ld a, [wCurrentMenuItem] ld c, a ld b, $0 add hl, bc ld d, [hl] pop af - ld hl, W_PLAYERMONMOVES + ld hl, wBattleMonMoves .asm_3fa5f ld c, a ld b, $0 add hl, bc ld a, d ld [hl], a - ld [$d11e], a + ld [wd11e], a call GetMoveName call Func_3fba8 ld hl, MimicLearnedMoveText @@ -8330,23 +8234,23 @@ SplashEffect: ; 3fa84 (f:7a84) DisableEffect: ; 3fa8a (f:7a8a) call MoveHitTest - ld a, [W_MOVEMISSED] ; $d05f + ld a, [W_MOVEMISSED] ; W_MOVEMISSED and a jr nz, .asm_3fb06 - ld de, W_ENEMYDISABLEDMOVE ; $d072 - ld hl, W_ENEMYMONMOVES + ld de, W_ENEMYDISABLEDMOVE ; W_ENEMYDISABLEDMOVE + ld hl, wEnemyMonMoves ld a, [H_WHOSETURN] ; $fff3 and a jr z, .asm_3faa4 - ld de, W_PLAYERDISABLEDMOVE ; $d06d - ld hl, W_PLAYERMONMOVES + ld de, W_PLAYERDISABLEDMOVE ; W_PLAYERDISABLEDMOVE + ld hl, wBattleMonMoves .asm_3faa4 ld a, [de] and a jr nz, .asm_3fb06 .asm_3faa8 push hl - call GenRandomInBattle + call BattleRandom and $3 ld c, a ld b, $0 @@ -8355,18 +8259,18 @@ DisableEffect: ; 3fa8a (f:7a8a) pop hl and a jr z, .asm_3faa8 - ld [$d11e], a + ld [wd11e], a push hl ld a, [H_WHOSETURN] ; $fff3 and a - ld hl, W_PLAYERMONPP ; $d02d + ld hl, wBattleMonPP ; wBattleMonPP jr nz, .asm_3facf - ld a, [W_ISLINKBATTLE] ; $d12b + ld a, [W_ISLINKBATTLE] ; W_ISLINKBATTLE cp $4 pop hl jr nz, .asm_3fae1 push hl - ld hl, W_ENEMYMONPP ; $cffe + ld hl, wEnemyMonPP ; wcffe .asm_3facf push hl ld a, [hli] @@ -8384,7 +8288,7 @@ DisableEffect: ; 3fa8a (f:7a8a) and a jr z, .asm_3faa8 .asm_3fae1 - call GenRandomInBattle + call BattleRandom and $7 inc a inc c @@ -8392,13 +8296,13 @@ DisableEffect: ; 3fa8a (f:7a8a) add c ld [de], a call Func_3fb89 - ld hl, $ccee + ld hl, wccee ld a, [H_WHOSETURN] ; $fff3 and a jr nz, .asm_3faf8 inc hl .asm_3faf8 - ld a, [$d11e] + ld a, [wd11e] ld [hl], a call GetMoveName ld hl, MoveWasDisabledText ; $7b09 @@ -8455,7 +8359,7 @@ NoEffectText: ; 3fb49 (f:7b49) db "@" Func_3fb4e: ; 3fb4e (f:7b4e) - ld a, [$ccf4] + ld a, [wccf4] and a ret nz @@ -8489,11 +8393,11 @@ ParalyzedMayNotAttackText: ; 3fb74 (f:7b74) CheckTargetSubstitute: ; 3fb79 (f:7b79) push hl - ld hl, $d068 + ld hl, W_ENEMYBATTSTATUS2 ld a, [$fff3] ;whose turn? and a jr z, .next1 - ld hl, $d063 + ld hl, W_PLAYERBATTSTATUS2 .next1 bit 4, [hl] ;test bit 4 in d063/d068 flags pop hl @@ -8502,45 +8406,44 @@ CheckTargetSubstitute: ; 3fb79 (f:7b79) Func_3fb89: ; 3fb89 (f:7b89) ld a, [H_WHOSETURN] ; $fff3 and a - ld a, [W_PLAYERMOVENUM] ; $cfd2 + ld a, [W_PLAYERMOVENUM] ; wcfd2 jr z, .asm_3fb94 - ld a, [W_ENEMYMOVENUM] ; $cfcc + ld a, [W_ENEMYMOVENUM] ; W_ENEMYMOVENUM .asm_3fb94 and a ret z Func_3fb96: ; 3fb96 (f:7b96) - ld [W_ANIMATIONID], a ; $d07c + ld [W_ANIMATIONID], a ; W_ANIMATIONID ld a, [H_WHOSETURN] ; $fff3 and a ld a, $6 jr z, .asm_3fba2 ld a, $3 .asm_3fba2 - ld [$cc5b], a + ld [wcc5b], a jp Func_3fbbc Func_3fba8: ; 3fba8 (f:7ba8) xor a - ld [$cc5b], a + ld [wcc5b], a ld a, [H_WHOSETURN] ; $fff3 and a - ld a, [W_PLAYERMOVENUM] ; $cfd2 + ld a, [W_PLAYERMOVENUM] ; wcfd2 jr z, .asm_3fbb7 - ld a, [W_ENEMYMOVENUM] ; $cfcc + ld a, [W_ENEMYMOVENUM] ; W_ENEMYMOVENUM .asm_3fbb7 and a ret z Func_3fbb9: ; 3fbb9 (f:7bb9) - ld [W_ANIMATIONID], a ; $d07c + ld [W_ANIMATIONID], a ; W_ANIMATIONID Func_3fbbc: ; 3fbbc (f:7bbc) push hl push de push bc - ld a, $8 - call Predef ; indirect jump to MoveAnimation (78d5e (1e:4d5e)) + predef MoveAnimation pop bc pop de pop hl diff --git a/engine/battle/d.asm b/engine/battle/d.asm index a6ad21ea..d23c9114 100755 --- a/engine/battle/d.asm +++ b/engine/battle/d.asm @@ -1,25 +1,21 @@ Func_372d6: ; 372d6 (d:72d6) call LoadTextBoxTilePatterns - FuncCoord 3, 4 ; $c3f3 - ld hl, Coord + hlCoord 3, 4 ld b, $7 ld c, $c call TextBoxBorder - FuncCoord 4, 5 ; $c408 - ld hl, Coord - ld de, W_PLAYERNAME ; $d158 + hlCoord 4, 5 + ld de, wPlayerName ; wd158 call PlaceString - FuncCoord 4, 10 ; $c46c - ld hl, Coord - ld de, W_GRASSRATE ; $d887 + hlCoord 4, 10 + ld de, W_GRASSRATE ; W_GRASSRATE call PlaceString - FuncCoord 9, 8 ; $c449 - ld hl, Coord + hlCoord 9, 8 ld a, $69 ld [hli], a ld [hl], $6a xor a - ld [$cfcb], a + ld [wcfcb], a callab SetupPlayerAndEnemyPokeballs ld c, $96 jp DelayFrames diff --git a/engine/battle/e.asm b/engine/battle/e.asm index ada3071e..8b0476ca 100755 --- a/engine/battle/e.asm +++ b/engine/battle/e.asm @@ -1,11 +1,11 @@ Func_39680: ; 39680 (e:5680) ld a, [H_WHOSETURN] ; $fff3 and a - ld a, [$d060] - ld hl, $d026 + ld a, [wd060] + ld hl, wBattleMonAttack + 1 jr z, .asm_39691 - ld a, [$d065] - ld hl, $cff7 + ld a, [wd065] + ld hl, wEnemyMonAttack + 1 .asm_39691 ld c, $4 ld b, a @@ -30,11 +30,11 @@ Func_3969f: ; 3969f (e:569f) Func_396a7: ; 396a7 (e:56a7) ld a, [H_WHOSETURN] ; $fff3 and a - ld a, [$d061] - ld hl, W_PLAYERMONATK + ld a, [wd061] + ld hl, wBattleMonAttack jr z, .asm_396b8 - ld a, [$d066] - ld hl, W_ENEMYMONATTACK + ld a, [wd066] + ld hl, wEnemyMonAttack .asm_396b8 ld c, $4 ld b, a @@ -63,12 +63,11 @@ _ScrollTrainerPicAfterBattle: ; 396d3 (e:56d3) ; Load the enemy trainer's pic and scrolls it into ; the screen from the right. xor a - ld [W_ENEMYMONID], a + ld [wEnemyMonSpecies2], a ld b, $1 call GoPAL_SET callab _LoadTrainerPic - FuncCoord 19, 0 ; $c3b3 - ld hl, Coord + hlCoord 19, 0 ld c, $0 .asm_396e9 inc c @@ -114,7 +113,7 @@ Func_39707: ; 39707 (e:5707) ; unused slots are filled with 0, all used slots may be chosen with equal probability AIEnemyTrainerChooseMoves: ; 39719 (e:5719) ld a, $a - ld hl, $cee9 ; init temporary move selection array. Only the moves with the lowest numbers are chosen in the end + ld hl, wHPBarMaxHP ; init temporary move selection array. Only the moves with the lowest numbers are chosen in the end ld [hli], a ; move 1 ld [hli], a ; move 2 ld [hli], a ; move 3 @@ -123,7 +122,7 @@ AIEnemyTrainerChooseMoves: ; 39719 (e:5719) swap a and $f jr z, .noMoveDisabled - ld hl, $cee9 + ld hl, wHPBarMaxHP dec a ld c, a ld b, $0 @@ -165,8 +164,8 @@ AIEnemyTrainerChooseMoves: ; 39719 (e:5719) push de jp [hl] ; execute modification function .loopFindMinimumEntries ; all entries will be decremented sequentially until one of them is zero - ld hl, $cee9 ; temp move selection array - ld de, W_ENEMYMONMOVES ; enemy moves + ld hl, wHPBarMaxHP ; temp move selection array + ld de, wEnemyMonMoves ; enemy moves ld c, $4 .loopDecrementEntries ld a, [de] @@ -187,8 +186,8 @@ AIEnemyTrainerChooseMoves: ; 39719 (e:5719) inc a cp $5 jr nz, .loopUndoPartialIteration - ld hl, $cee9 ; temp move selection array - ld de, W_ENEMYMONMOVES ; enemy moves + ld hl, wHPBarMaxHP ; temp move selection array + ld de, wEnemyMonMoves ; enemy moves ld c, $4 .filterMinimalEntries ; all minimal entries now have value 1. All other slots will be disabled (move set to 0) ld a, [de] @@ -209,10 +208,10 @@ AIEnemyTrainerChooseMoves: ; 39719 (e:5719) inc de dec c jr nz, .filterMinimalEntries - ld hl, $cee9 ; use created temporary array as move set + ld hl, wHPBarMaxHP ; use created temporary array as move set ret .useOriginalMoveSet - ld hl, W_ENEMYMONMOVES ; use original move set + ld hl, wEnemyMonMoves ; use original move set ret AIMoveChoiceModificationFunctionPointers: ; 397a3 (e:57a3) @@ -223,11 +222,11 @@ AIMoveChoiceModificationFunctionPointers: ; 397a3 (e:57a3) ; discourages moves that cause no damage but only a status ailment if player's mon already has one AIMoveChoiceModification1: ; 397ab (e:57ab) - ld a, [W_PLAYERMONSTATUS] + ld a, [wBattleMonStatus] and a ret z ; return if no status ailment on player's mon - ld hl, $cee8 ; temp move selection array (-1 byte offest) - ld de, W_ENEMYMONMOVES ; enemy moves + ld hl, wBuffer - 1 ; temp move selection array (-1 byte offest) + ld de, wEnemyMonMoves ; enemy moves ld b, $5 .nextMove dec b @@ -266,11 +265,11 @@ StatusAilmentMoveEffects ; 57e2 ; slightly encourage moves with specific effects AIMoveChoiceModification2: ; 397e7 (e:57e7) - ld a, [$ccd5] + ld a, [wccd5] cp $1 ret nz - ld hl, $cee8 ; temp move selection array (-1 byte offest) - ld de, W_ENEMYMONMOVES ; enemy moves + ld hl, wBuffer - 1 ; temp move selection array (-1 byte offest) + ld de, wEnemyMonMoves ; enemy moves ld b, $5 .nextMove dec b @@ -297,8 +296,8 @@ AIMoveChoiceModification2: ; 397e7 (e:57e7) ; encourages moves that are effective against the player's mon AIMoveChoiceModification3: ; 39817 (e:5817) - ld hl, $cee8 ; temp move selection array (-1 byte offest) - ld de, W_ENEMYMONMOVES ; enemy moves + ld hl, wBuffer - 1 ; temp move selection array (-1 byte offest) + ld de, wEnemyMonMoves ; enemy moves ld b, $5 .nextMove dec b @@ -316,7 +315,7 @@ AIMoveChoiceModification3: ; 39817 (e:5817) pop de pop bc pop hl - ld a, [$d11e] + ld a, [wd11e] cp $10 jr z, .nextMove jr c, .notEffectiveMove @@ -328,7 +327,7 @@ AIMoveChoiceModification3: ; 39817 (e:5817) push bc ld a, [W_ENEMYMOVETYPE] ld d, a - ld hl, W_ENEMYMONMOVES ; enemy moves + ld hl, wEnemyMonMoves ; enemy moves ld b, $5 ld c, $0 .loopMoves @@ -374,7 +373,7 @@ ReadMove: ; 39884 (e:5884) ld hl,Moves ld bc,6 call AddNTimes - ld de,$CFCC + ld de,W_ENEMYMOVENUM call CopyData pop bc pop de @@ -579,21 +578,21 @@ TrainerPicAndMoneyPointers: ; 39914 (e:5914) INCLUDE "text/trainer_names.asm" Func_39b87: ; 39b87 (e:5b87) - ld hl, $d0dc - ld de, $d0e1 + ld hl, wd0dc + ld de, wd0e1 ld b, $0 .asm_39b8f ld a, [hli] and a jr z, .asm_39bc1 push hl - ld [$d0b5], a + ld [wd0b5], a ld a, $2c - ld [$d0b7], a + ld [wPredefBank], a ld a, MOVE_NAME ld [W_LISTTYPE], a call GetName - ld hl, $cd6d + ld hl, wcd6d .asm_39ba7 ld a, [hli] cp $50 @@ -603,7 +602,7 @@ Func_39b87: ; 39b87 (e:5b87) jr .asm_39ba7 .asm_39bb0 ld a, b - ld [$cd6c], a + ld [wcd6c], a inc b ld a, $4e ld [de], a @@ -631,71 +630,71 @@ Func_39b87: ; 39b87 (e:5b87) ret Func_39bd5: ; 39bd5 (e:5bd5) - ld a, [$d11b] + ld a, [wd11b] cp $1 jr nz, .asm_39be6 - ld hl, wEnemyPartyCount ; $d89c - ld de, W_ENEMYMON1OT ; $d9ac OT names of other player + ld hl, wEnemyPartyCount ; wEnemyPartyCount + ld de, wEnemyMonOT ; wd9ac OT names of other player ld a, $6 jr .asm_39c18 .asm_39be6 cp $4 jr nz, .calcAttackStat4 - ld hl, W_NUMINPARTY ; $d163 - ld de, W_PARTYMON1OT ; $d273 + ld hl, wPartyCount ; wPartyCount + ld de, wPartyMonOT ; wd273 ld a, $5 jr .asm_39c18 .calcAttackStat4 cp $5 jr nz, .asm_39c02 - ld hl, $cf7b + ld hl, wStringBuffer2 + 11 ld de, MonsterNames ; $421e ld a, $1 jr .asm_39c18 .asm_39c02 cp $2 jr nz, .asm_39c10 - ld hl, wNumBagItems ; $d31d + ld hl, wNumBagItems ; wNumBagItems ld de, ItemNames ; $472b ld a, $4 jr .asm_39c18 .asm_39c10 - ld hl, $cf7b + ld hl, wStringBuffer2 + 11 ld de, ItemNames ; $472b ld a, ITEM_NAME .asm_39c18 ld [W_LISTTYPE], a ld a, l - ld [$cf8b], a + ld [wcf8b], a ld a, h - ld [$cf8c], a + ld [wcf8c], a ld a, e - ld [$cf8d], a + ld [wcf8d], a ld a, d - ld [$cf8e], a + ld [wcf8e], a ld bc, ItemPrices ; $4608 ld a, c - ld [$cf8f], a + ld [wcf8f], a ld a, b - ld [$cf90], a + ld [wcf90], a ret Func_39c37: ; 39c37 (e:5c37) - ld hl, W_PARTYMON1 ; $d164 - ld a, [$cc49] + ld hl, wPartySpecies + ld a, [wcc49] and a jr z, .asm_39c4b dec a jr z, .asm_39c48 - ld hl, $da81 + ld hl, wBoxSpecies jr .asm_39c4b .asm_39c48 - ld hl, $d89d + ld hl, wEnemyPartyMons .asm_39c4b ld d, $0 add hl, de ld a, [hl] - ld [$cf91], a + ld [wcf91], a ret ReadTrainer: ; 39c53 (e:5c53) @@ -705,7 +704,7 @@ ReadTrainer: ; 39c53 (e:5c53) and a ret nz -; set [wEnemyPartyCount] to 0, [$D89D] to FF +; set [wEnemyPartyCount] to 0, [wEnemyPartyMons] to FF ; XXX first is total enemy pokemon? ; XXX second is species of first pokemon? ld hl,wEnemyPartyCount @@ -754,11 +753,11 @@ ReadTrainer: ; 39c53 (e:5c53) ld a,[hli] and a ; have we reached the end of the trainer data? jr z,.FinishUp - ld [$CF91],a ; write species somewhere (XXX why?) + ld [wcf91],a ; write species somewhere (XXX why?) ld a,1 - ld [$CC49],a + ld [wcc49],a push hl - call AddPokemonToParty + call AddPartyMon pop hl jr .LoopTrainerData .SpecialTrainer @@ -771,11 +770,11 @@ ReadTrainer: ; 39c53 (e:5c53) jr z,.AddLoneMove ld [W_CURENEMYLVL],a ld a,[hli] - ld [$CF91],a + ld [wcf91],a ld a,1 - ld [$CC49],a + ld [wcc49],a push hl - call AddPokemonToParty + call AddPartyMon pop hl jr .SpecialTrainer .AddLoneMove @@ -791,8 +790,8 @@ ReadTrainer: ; 39c53 (e:5c53) add hl,bc ld a,[hli] ld d,[hl] - ld hl,W_ENEMYMON1MOVE3 - ld bc,W_ENEMYMON2MOVE3 - W_ENEMYMON1MOVE3 + ld hl,wEnemyMon1Moves + 2 + ld bc,wEnemyMon2 - wEnemyMon1 call AddNTimes ld [hl],d jr .FinishUp @@ -821,13 +820,13 @@ ReadTrainer: ; 39c53 (e:5c53) jr .FinishUp ; nope .GiveTeamMoves ld a,[hl] - ld [$D95E],a + ld [wEnemyMon5Moves + 2],a jr .FinishUp .ChampionRival ; give moves to his team ; pidgeot ld a,SKY_ATTACK - ld [W_ENEMYMON1MOVE3],a + ld [wEnemyMon1Moves + 2],a ; starter ld a,[W_RIVALSTARTER] @@ -840,10 +839,10 @@ ReadTrainer: ; 39c53 (e:5c53) ld b,BLIZZARD ; must be squirtle .GiveStarterMove ld a,b - ld [W_ENEMYMON6MOVE3],a + ld [wEnemyMon6Moves + 2],a .FinishUp ; XXX this needs documenting xor a ; clear D079-D07B - ld de,$D079 + ld de,wd079 ld [de],a inc de ld [de],a @@ -852,11 +851,10 @@ ReadTrainer: ; 39c53 (e:5c53) ld a,[W_CURENEMYLVL] ld b,a .LastLoop - ld hl,$D047 + ld hl,wd047 ld c,2 push bc - ld a,$B - call Predef + predef AddBCDPredef pop bc inc de inc de @@ -898,7 +896,7 @@ TrainerAI: ; 3a52e (e:652e) ld a,[hli] ld h,[hl] ld l,a - call GenRandom + call Random jp [hl] TrainerAIPointers: ; 3a55c (e:655c) @@ -985,7 +983,7 @@ CooltrainerFAI: ; 3a601 (e:6601) BrockAI: ; 3a614 (e:6614) ; if his active monster has a status condition, use a full heal - ld a,[W_ENEMYMONSTATUS] + ld a,[wEnemyMonStatus] and a ret z jp AIUseFullHeal @@ -1092,25 +1090,25 @@ Func_3a69b: ; 3a69b (e:669b) AIUseFullRestore: ; 3a6a0 (e:66a0) call AICureStatus ld a,FULL_RESTORE - ld [$CF05],a + ld [wcf05],a ld de,wHPBarOldHP - ld hl,$CFE7 + ld hl,wEnemyMonHP + 1 ld a,[hld] ld [de],a inc de ld a,[hl] ld [de],a inc de - ld hl,$CFF5 + ld hl,wEnemyMonMaxHP + 1 ld a,[hld] ld [de],a inc de ld [wHPBarMaxHP],a - ld [$CFE7],a + ld [wEnemyMonHP + 1],a ld a,[hl] ld [de],a ld [wHPBarMaxHP+1],a - ld [W_ENEMYMONCURHP],a + ld [wEnemyMonHP],a jr Func_3a718 AIUsePotion: ; 3a6ca (e:66ca) @@ -1133,8 +1131,8 @@ AIUseHyperPotion: ; 3a6d6 (e:66d6) AIRecoverHP: ; 3a6da (e:66da) ; heal b HP and print "trainer used $(a) on pokemon!" - ld [$CF05],a - ld hl,$CFE7 + ld [wcf05],a + ld hl,wEnemyMonHP + 1 ld a,[hl] ld [wHPBarOldHP],a add b @@ -1151,7 +1149,7 @@ AIRecoverHP: ; 3a6da (e:66da) inc hl ld a,[hld] ld b,a - ld de,$CFF5 + ld de,wEnemyMonMaxHP + 1 ld a,[de] dec de ld [wHPBarMaxHP],a @@ -1174,18 +1172,16 @@ AIRecoverHP: ; 3a6da (e:66da) Func_3a718: ; 3a718 (e:6718) call AIPrintItemUse_ - FuncCoord 2, 2 ; $c3ca - ld hl,Coord + hlCoord 2, 2 xor a - ld [$CF94],a - ld a,$48 - call Predef + ld [wListMenuID],a + predef UpdateHPBar2 jp DecrementAICount Func_3a72a: ; 3a72a (e:672a) ld a,[wEnemyPartyCount] ld c,a - ld hl,W_ENEMYMON1HP + ld hl,wEnemyMon1HP ld d,0 ; keep count of unfainted monsters @@ -1215,13 +1211,13 @@ Func_3a74b: ; 3a74b (e:674b) ; prepare to withdraw the active monster: copy hp, number, and status to roster - ld a,[W_ENEMYMONNUMBER] - ld hl,W_ENEMYMON1HP - ld bc,$2C + ld a,[wEnemyMonPartyPos] + ld hl,wEnemyMon1HP + ld bc,wEnemyMon2 - wEnemyMon1 call AddNTimes ld d,h ld e,l - ld hl,W_ENEMYMONCURHP + ld hl,wEnemyMonHP ld bc,4 call CopyData @@ -1229,10 +1225,10 @@ Func_3a74b: ; 3a74b (e:674b) call PrintText ld a,1 - ld [$D11D],a + ld [wd11d],a callab EnemySendOut xor a - ld [$D11D],a + ld [wd11d],a ld a,[W_ISLINKBATTLE] cp 4 @@ -1252,41 +1248,41 @@ AIUseFullHeal: ; 3a786 (e:6786) AICureStatus: ; 3a791 (e:6791) ; cures the status of enemy's active pokemon - ld a,[W_ENEMYMONNUMBER] - ld hl,$D8A8 - ld bc,$2C + ld a,[wEnemyMonPartyPos] + ld hl,wEnemyMon1Status + ld bc,wEnemyMon2 - wEnemyMon1 call AddNTimes xor a ld [hl],a ; clear status in enemy team roster - ld [W_ENEMYMONSTATUS],a ; clear status of active enemy - ld hl,$D069 + ld [wEnemyMonStatus],a ; clear status of active enemy + ld hl,W_ENEMYBATTSTATUS3 res 0,[hl] ret AIUseXAccuracy: ; 0x3a7a8 unused call Func_3a69b - ld hl,$D068 + ld hl,W_ENEMYBATTSTATUS2 set 0,[hl] ld a,X_ACCURACY jp AIPrintItemUse AIUseGuardSpec: ; 3a7b5 (e:67b5) call Func_3a69b - ld hl,$D068 + ld hl,W_ENEMYBATTSTATUS2 set 1,[hl] ld a,GUARD_SPEC_ jp AIPrintItemUse AIUseDireHit: ; 0x3a7c2 unused call Func_3a69b - ld hl,$D068 + ld hl,W_ENEMYBATTSTATUS2 set 2,[hl] ld a,DIRE_HIT jp AIPrintItemUse Func_3a7cf: ; 3a7cf (e:67cf) ld [H_DIVISOR],a - ld hl,$CFF4 + ld hl,wEnemyMonMaxHP ld a,[hli] ld [H_DIVIDEND],a ld a,[hl] @@ -1297,7 +1293,7 @@ Func_3a7cf: ; 3a7cf (e:67cf) ld c,a ld a,[H_QUOTIENT + 2] ld b,a - ld hl,$CFE7 + ld hl,wEnemyMonHP + 1 ld a,[hld] ld e,a ld a,[hl] @@ -1330,11 +1326,11 @@ AIUseXSpecial: ; 3a804 (e:6804) ; fallthrough AIIncreaseStat: ; 3a808 (e:6808) - ld [$CF05],a + ld [wcf05],a push bc call AIPrintItemUse_ pop bc - ld hl,$CFCD + ld hl,W_ENEMYMOVEEFFECT ld a,[hld] push af ld a,[hl] @@ -1352,14 +1348,14 @@ AIIncreaseStat: ; 3a808 (e:6808) jp DecrementAICount AIPrintItemUse: ; 3a82c (e:682c) - ld [$CF05],a + ld [wcf05],a call AIPrintItemUse_ jp DecrementAICount AIPrintItemUse_: ; 3a835 (e:6835) -; print "x used [$CF05] on z!" - ld a,[$CF05] - ld [$D11E],a +; print "x used [wcf05] on z!" + ld a,[wcf05] + ld [wd11e],a call GetItemName ld hl, AIBattleUseItemText jp PrintText @@ -1371,7 +1367,7 @@ AIBattleUseItemText: ; 3a844 (e:6844) DrawAllPokeballs: ; 3a849 (e:6849) call LoadPartyPokeballGfx call SetupOwnPartyPokeballs - ld a, [W_ISINBATTLE] ; $d057 + ld a, [W_ISINBATTLE] ; W_ISINBATTLE dec a ret z ; return if wild pokémon jp SetupEnemyPartyPokeballs @@ -1382,36 +1378,36 @@ DrawEnemyPokeballs: ; 0x3a857 LoadPartyPokeballGfx: ; 3a85d (e:685d) ld de, PokeballTileGraphics ; $697e - ld hl, $8310 + ld hl, vSprites + $310 ld bc, (BANK(PokeballTileGraphics) << 8) + $04 jp CopyVideoData SetupOwnPartyPokeballs: ; 3a869 (e:6869) call PlacePlayerHUDTiles - ld hl, W_PARTYMON1DATA - ld de, W_NUMINPARTY ; $d163 + ld hl, wPartyMon1 + ld de, wPartyCount ; wPartyCount call SetupPokeballs ld a, $60 - ld hl, W_BASECOORDX ; $d081 + ld hl, W_BASECOORDX ; wd081 ld [hli], a ld [hl], a ld a, $8 - ld [$cd3e], a + ld [wTrainerEngageDistance], a ld hl, wOAMBuffer jp Func_3a8e1 SetupEnemyPartyPokeballs: ; 3a887 (e:6887) call PlaceEnemyHUDTiles ld hl, wEnemyMons - ld de, wEnemyPartyCount ; $d89c + ld de, wEnemyPartyCount ; wEnemyPartyCount call SetupPokeballs - ld hl, W_BASECOORDX ; $d081 + ld hl, W_BASECOORDX ; wd081 ld a, $48 ld [hli], a ld [hl], $20 ld a, $f8 - ld [$cd3e], a - ld hl, $c318 + ld [wTrainerEngageDistance], a + ld hl, wOAMBuffer + $18 jp Func_3a8e1 SetupPokeballs: ; 0x3a8a6 @@ -1465,22 +1461,22 @@ PickPokeball: ; 3a8c2 (e:68c2) ret Func_3a8e1: ; 3a8e1 (e:68e1) - ld de, $cee9 + ld de, wHPBarMaxHP ld c, $6 .asm_3a8e6 - ld a, [W_BASECOORDY] ; $d082 + ld a, [W_BASECOORDY] ; wd082 ld [hli], a - ld a, [W_BASECOORDX] ; $d081 + ld a, [W_BASECOORDX] ; wd081 ld [hli], a ld a, [de] ld [hli], a xor a ld [hli], a - ld a, [W_BASECOORDX] ; $d081 + ld a, [W_BASECOORDX] ; wd081 ld b, a - ld a, [$cd3e] + ld a, [wTrainerEngageDistance] add b - ld [W_BASECOORDX], a ; $d081 + ld [W_BASECOORDX], a ; wd081 inc de dec c jr nz, .asm_3a8e6 @@ -1488,11 +1484,10 @@ Func_3a8e1: ; 3a8e1 (e:68e1) PlacePlayerHUDTiles: ; 3a902 (e:6902) ld hl, PlayerBattleHUDGraphicsTiles ; $6916 - ld de, $cd3f + ld de, wTrainerFacingDirection ld bc, $3 call CopyData - FuncCoord 18, 10 ; $c47a - ld hl, Coord + hlCoord 18, 10 ld de, rIE ; $ffff jr PlaceHUDTiles @@ -1504,11 +1499,10 @@ PlayerBattleHUDGraphicsTiles: ; 3a916 (e:6916) PlaceEnemyHUDTiles: ; 3a919 (e:6919) ld hl, EnemyBattleHUDGraphicsTiles ; $692d - ld de, $cd3f + ld de, wTrainerFacingDirection ld bc, $3 call CopyData - FuncCoord 1, 2 ; $c3c9 - ld hl, Coord + hlCoord 1, 2 ld de, $1 jr PlaceHUDTiles @@ -1522,7 +1516,7 @@ PlaceHUDTiles: ; 3a930 (e:6930) ld [hl], $73 ld bc, $14 add hl, bc - ld a, [$cd40] + ld a, [wTrainerScreenY] ld [hl], a ld a, $8 .asm_3a93c @@ -1531,33 +1525,33 @@ PlaceHUDTiles: ; 3a930 (e:6930) dec a jr nz, .asm_3a93c add hl, de - ld a, [$cd41] + ld a, [wTrainerScreenX] ld [hl], a ret SetupPlayerAndEnemyPokeballs: ; 3a948 (e:6948) call LoadPartyPokeballGfx - ld hl, W_PARTYMON1_NUM ; $d16b (aliases: W_PARTYMON1DATA) - ld de, W_NUMINPARTY ; $d163 + ld hl, wPartyMon1Species ; wPartyMon1Species (aliases: wPartyMon1) + ld de, wPartyCount ; wPartyCount call SetupPokeballs - ld hl, W_BASECOORDX ; $d081 + ld hl, W_BASECOORDX ; wd081 ld a, $50 ld [hli], a ld [hl], $40 ld a, $8 - ld [$cd3e], a + ld [wTrainerEngageDistance], a ld hl, wOAMBuffer call Func_3a8e1 - ld hl, wEnemyMons ; $d8a4 - ld de, wEnemyPartyCount ; $d89c + ld hl, wEnemyMons ; wEnemyMon1Species + ld de, wEnemyPartyCount ; wEnemyPartyCount call SetupPokeballs - ld hl, W_BASECOORDX ; $d081 + ld hl, W_BASECOORDX ; wd081 ld a, $50 ld [hli], a ld [hl], $68 - ld hl, $c318 + ld hl, wOAMBuffer + $18 jp Func_3a8e1 ; four tiles: pokeball, black pokeball (status ailment), crossed out pokeball (faited) and pokeball slot (no mon) PokeballTileGraphics:: ; 3a97e (e:697e) - INCBIN "gfx/pokeball.2bpp"
\ No newline at end of file + INCBIN "gfx/pokeball.2bpp" diff --git a/engine/battle/e_2.asm b/engine/battle/e_2.asm index e6d6eddc..665807fe 100755 --- a/engine/battle/e_2.asm +++ b/engine/battle/e_2.asm @@ -1,13 +1,13 @@ HealEffect_: ; 3b9ec (e:79ec) ld a, [H_WHOSETURN] ; $fff3 and a - ld de, W_PLAYERMONCURHP ; $d015 - ld hl, W_PLAYERMONMAXHP ; $d023 - ld a, [W_PLAYERMOVENUM] ; $cfd2 + ld de, wBattleMonHP ; wd015 + ld hl, wBattleMonMaxHP ; wd023 + ld a, [W_PLAYERMOVENUM] ; wcfd2 jr z, .asm_3ba03 - ld de, W_ENEMYMONCURHP ; $cfe6 - ld hl, W_ENEMYMONMAXHP ; $cff4 - ld a, [W_ENEMYMOVENUM] ; $cfcc + ld de, wEnemyMonHP ; wEnemyMonHP + ld hl, wEnemyMonMaxHP ; wEnemyMonMaxHP + ld a, [W_ENEMYMOVENUM] ; W_ENEMYMOVENUM .asm_3ba03 ld b, a ld a, [de] @@ -25,11 +25,11 @@ HealEffect_: ; 3b9ec (e:79ec) push af ld c, $32 call DelayFrames - ld hl, W_PLAYERMONSTATUS ; $d018 + ld hl, wBattleMonStatus ; wBattleMonStatus ld a, [H_WHOSETURN] ; $fff3 and a jr z, .asm_3ba25 - ld hl, W_ENEMYMONSTATUS ; $cfe9 + ld hl, wEnemyMonStatus ; wcfe9 .asm_3ba25 ld a, [hl] and a @@ -85,17 +85,14 @@ HealEffect_: ; 3b9ec (e:79ec) call BankswitchEtoF ld a, [H_WHOSETURN] ; $fff3 and a - FuncCoord 10, 9 ; $c45e - ld hl, Coord + hlCoord 10, 9 ld a, $1 jr z, .asm_3ba83 - FuncCoord 2, 2 ; $c3ca - ld hl, Coord + hlCoord 2, 2 xor a .asm_3ba83 - ld [wListMenuID], a ; $cf94 - ld a, $48 - call Predef ; indirect jump to UpdateHPBar (fa1d (3:7a1d)) + ld [wListMenuID], a ; wListMenuID + predef UpdateHPBar2 ld hl, Func_3cd5a ; $4d5a call BankswitchEtoF ld hl, RegainedHealthText ; $7aac @@ -120,36 +117,36 @@ RegainedHealthText: ; 3baac (e:7aac) db "@" TransformEffect_: ; 3bab1 (e:7ab1) - ld hl, W_PLAYERMONID - ld de, $cfe5 - ld bc, W_ENEMYBATTSTATUS3 ; $d069 - ld a, [W_ENEMYBATTSTATUS1] ; $d067 + ld hl, wBattleMonSpecies + ld de, wEnemyMonSpecies + ld bc, W_ENEMYBATTSTATUS3 ; W_ENEMYBATTSTATUS3 + ld a, [W_ENEMYBATTSTATUS1] ; W_ENEMYBATTSTATUS1 ld a, [H_WHOSETURN] ; $fff3 and a jr nz, .asm_3bad1 - ld hl, $cfe5 - ld de, W_PLAYERMONID - ld bc, W_PLAYERBATTSTATUS3 ; $d064 - ld [wPlayerMoveListIndex], a ; $cc2e - ld a, [W_PLAYERBATTSTATUS1] ; $d062 + ld hl, wEnemyMonSpecies + ld de, wBattleMonSpecies + ld bc, W_PLAYERBATTSTATUS3 ; W_PLAYERBATTSTATUS3 + ld [wPlayerMoveListIndex], a ; wPlayerMoveListIndex + ld a, [W_PLAYERBATTSTATUS1] ; W_PLAYERBATTSTATUS1 .asm_3bad1 bit 6, a ; is mon invulnerable to typical attacks? (fly/dig) jp nz, Func_3bb8c push hl push de push bc - ld hl, W_PLAYERBATTSTATUS2 ; $d063 + ld hl, W_PLAYERBATTSTATUS2 ; W_PLAYERBATTSTATUS2 ld a, [H_WHOSETURN] ; $fff3 and a jr z, .asm_3bae4 - ld hl, W_ENEMYBATTSTATUS2 ; $d068 + ld hl, W_ENEMYBATTSTATUS2 ; W_ENEMYBATTSTATUS2 .asm_3bae4 bit 4, [hl] push af ld hl, Func_79747 ld b, BANK(Func_79747) call nz, Bankswitch - ld a, [W_OPTIONS] ; $d355 + ld a, [W_OPTIONS] ; W_OPTIONS add a ld hl, Func_3fba8 ; $7ba8 ld b, BANK(Func_3fba8) @@ -185,10 +182,10 @@ TransformEffect_: ; 3bab1 (e:7ab1) and a jr z, .asm_3bb32 ld a, [de] - ld [$cceb], a + ld [wcceb], a inc de ld a, [de] - ld [$ccec], a + ld [wccec], a dec de .asm_3bb32 ld a, [hli] @@ -227,13 +224,13 @@ TransformEffect_: ; 3bab1 (e:7ab1) .asm_3bb5d pop hl ld a, [hl] - ld [$d11e], a + ld [wd11e], a call GetMonName - ld hl, $cd26 - ld de, $cd12 + ld hl, wcd26 + ld de, wcd12 call Func_3bb7d - ld hl, wEnemyMonStatMods ; $cd2e - ld de, wPlayerMonStatMods ; $cd1a + ld hl, wEnemyMonStatMods ; wcd2e + ld de, wPlayerMonStatMods ; wcd1a call Func_3bb7d ld hl, TransformedText ; $7b92 jp PrintText @@ -259,13 +256,13 @@ TransformedText: ; 3bb92 (e:7b92) db "@" ReflectLightScreenEffect_: ; 3bb97 (e:7b97) - ld hl, W_PLAYERBATTSTATUS3 ; $d064 - ld de, W_PLAYERMOVEEFFECT ; $cfd3 + ld hl, W_PLAYERBATTSTATUS3 ; W_PLAYERBATTSTATUS3 + ld de, W_PLAYERMOVEEFFECT ; wcfd3 ld a, [H_WHOSETURN] ; $fff3 and a jr z, .asm_3bba8 - ld hl, W_ENEMYBATTSTATUS3 ; $d069 - ld de, W_ENEMYMOVEEFFECT ; $cfcd + ld hl, W_ENEMYBATTSTATUS3 ; W_ENEMYBATTSTATUS3 + ld de, W_ENEMYMOVEEFFECT ; W_ENEMYMOVEEFFECT .asm_3bba8 ld a, [de] cp LIGHT_SCREEN_EFFECT diff --git a/engine/battle/safari_zone.asm b/engine/battle/safari_zone.asm index 426e391e..99e1492d 100755 --- a/engine/battle/safari_zone.asm +++ b/engine/battle/safari_zone.asm @@ -1,5 +1,5 @@ PrintSafariZoneBattleText: ; 4277 (1:4277) - ld hl, $cce9 + ld hl, wcce9 ld a, [hl] and a jr z, .asm_4284 @@ -15,11 +15,11 @@ PrintSafariZoneBattleText: ; 4277 (1:4277) ld hl, SafariZoneAngryText jr nz, .asm_429f push hl - ld a, [$cfe5] - ld [$d0b5], a + ld a, [wEnemyMonSpecies] + ld [wd0b5], a call GetMonHeader ld a, [W_MONHCATCHRATE] - ld [$d007], a + ld [wd007], a pop hl .asm_429f push hl |