summaryrefslogtreecommitdiff
path: root/engine
diff options
context:
space:
mode:
Diffstat (limited to 'engine')
-rwxr-xr-xengine/battle/1.asm54
-rwxr-xr-xengine/battle/14.asm64
-rwxr-xr-xengine/battle/16.asm2
-rwxr-xr-xengine/battle/1c.asm74
-rwxr-xr-xengine/battle/4.asm60
-rwxr-xr-xengine/battle/4_2.asm86
-rwxr-xr-xengine/battle/5.asm10
-rwxr-xr-xengine/battle/9.asm48
-rwxr-xr-xengine/battle/a.asm2
-rwxr-xr-xengine/battle/c.asm2
-rwxr-xr-xengine/battle/core.asm105
-rwxr-xr-xengine/battle/e.asm230
-rwxr-xr-xengine/battle/e_2.asm107
-rwxr-xr-xengine/cable_club.asm14
-rwxr-xr-xengine/clear_save.asm8
-rwxr-xr-xengine/evos_moves.asm20
-rwxr-xr-xengine/experience.asm4
-rwxr-xr-xengine/give_pokemon.asm2
-rwxr-xr-xengine/hall_of_fame.asm2
-rwxr-xr-xengine/hidden_object_functions17.asm2
-rwxr-xr-xengine/hp_bar.asm4
-rwxr-xr-xengine/items/items.asm70
-rwxr-xr-xengine/items/tmhm.asm8
-rwxr-xr-xengine/items/tms.asm4
-rwxr-xr-xengine/learn_move.asm58
-rw-r--r--engine/menu/bills_pc.asm128
-rwxr-xr-xengine/menu/naming_screen.asm80
-rwxr-xr-xengine/menu/party_menu.asm14
-rwxr-xr-xengine/menu/players_pc.asm66
-rwxr-xr-xengine/menu/start_sub_menus.asm10
-rwxr-xr-xengine/menu/status_screen.asm54
-rwxr-xr-xengine/menu/vending_machine.asm20
-rwxr-xr-xengine/overworld/healing_machine.asm17
-rwxr-xr-xengine/overworld/map_sprites.asm6
-rw-r--r--engine/overworld/movement.asm4
-rwxr-xr-xengine/overworld/pokemart.asm22
-rwxr-xr-xengine/predefs.asm8
-rwxr-xr-xengine/predefs7.asm16
-rwxr-xr-xengine/save.asm16
-rwxr-xr-xengine/slot_machine.asm2
-rwxr-xr-xengine/titlescreen.asm12
-rwxr-xr-xengine/town_map.asm4
42 files changed, 775 insertions, 744 deletions
diff --git a/engine/battle/1.asm b/engine/battle/1.asm
index e28cd056..517d53d1 100755
--- a/engine/battle/1.asm
+++ b/engine/battle/1.asm
@@ -6,26 +6,28 @@ DrainHPEffect_: ; 783f (1:783f)
ld a, [hl]
rr a
ld [hld], a
- or [hl]
- jr nz, .asm_784f
+ or [hl] ; is damage 0?
+ jr nz, .getAttackerHP
+; if damage is 0, increase to 1 so that the attacker gains at least 1 HP
inc hl
inc [hl]
-.asm_784f
- ld hl, wBattleMonHP ; wd015
- ld de, wBattleMonMaxHP ; wd023
- ld a, [H_WHOSETURN] ; $fff3
+.getAttackerHP
+ ld hl, wBattleMonHP
+ ld de, wBattleMonMaxHP
+ ld a, [H_WHOSETURN]
and a
- jp z, Func_7861
+ jp z, .addDamageToAttackerHP
ld hl, wEnemyMonHP
ld de, wEnemyMonMaxHP
-
-Func_7861: ; 7861 (1:7861)
+.addDamageToAttackerHP
ld bc, wHPBarOldHP+1
+; copy current HP to wHPBarOldHP
ld a, [hli]
ld [bc], a
ld a, [hl]
dec bc
ld [bc], a
+; copy max HP to wHPBarMaxHP
ld a, [de]
dec bc
ld [bc], a
@@ -33,7 +35,8 @@ Func_7861: ; 7861 (1:7861)
ld a, [de]
dec bc
ld [bc], a
- ld a, [wd0d8]
+; add damage to attacker's HP and copy new HP to wHPBarNewHP
+ ld a, [W_DAMAGE + 1]
ld b, [hl]
add b
ld [hld], a
@@ -43,7 +46,8 @@ Func_7861: ; 7861 (1:7861)
adc b
ld [hli], a
ld [wHPBarNewHP+1], a
- jr c, .asm_7890
+ jr c, .capToMaxHP ; if HP > 65,535, cap to max HP
+; compare HP with max HP
ld a, [hld]
ld b, a
ld a, [de]
@@ -54,8 +58,8 @@ Func_7861: ; 7861 (1:7861)
ld a, [de]
inc de
sbc b
- jr nc, .asm_789c
-.asm_7890
+ jr nc, .next
+.capToMaxHP
ld a, [de]
ld [hld], a
ld [wHPBarNewHP], a
@@ -64,31 +68,31 @@ Func_7861: ; 7861 (1:7861)
ld [hli], a
ld [wHPBarNewHP+1], a
inc de
-.asm_789c
- ld a, [H_WHOSETURN] ; $fff3
+.next
+ ld a, [H_WHOSETURN]
and a
hlCoord 10, 9
ld a, $1
- jr z, .asm_78aa
+ jr z, .next2
hlCoord 2, 2
xor a
-.asm_78aa
- ld [wListMenuID], a ; wListMenuID
+.next2
+ ld [wHPBarType], a
predef UpdateHPBar2
predef DrawPlayerHUDAndHPBar
predef DrawEnemyHUDAndHPBar
callab ReadPlayerMonCurHPAndStatus
- ld hl, SuckedHealthText ; $78dc
- ld a, [H_WHOSETURN] ; $fff3
+ ld hl, SuckedHealthText
+ ld a, [H_WHOSETURN]
and a
- ld a, [W_PLAYERMOVEEFFECT] ; wcfd3
- jr z, .asm_78d2
+ ld a, [W_PLAYERMOVEEFFECT]
+ jr z, .next3
ld a, [W_ENEMYMOVEEFFECT]
-.asm_78d2
+.next3
cp DREAM_EATER_EFFECT
- jr nz, .asm_78d9
+ jr nz, .printText
ld hl, DreamWasEatenText
-.asm_78d9
+.printText
jp PrintText
SuckedHealthText: ; 78dc (1:78dc)
diff --git a/engine/battle/14.asm b/engine/battle/14.asm
index cabaae07..1b2d7462 100755
--- a/engine/battle/14.asm
+++ b/engine/battle/14.asm
@@ -1,4 +1,4 @@
-Func_525af: ; 525af (14:65af)
+InitBattleVariables: ; 525af (14:65af)
ld a, [hTilesetType]
ld [wd0d4], a
xor a
@@ -9,7 +9,7 @@ Func_525af: ; 525af (14:65af)
ld [hli], a
ld [hli], a
ld [hl], a
- ld [wListScrollOffset], a ; wcc36
+ ld [wListScrollOffset], a
ld [wCriticalHitOrOHKO], a
ld [wBattleMonSpecies], a
ld [wPartyGainExpFlags], a
@@ -21,73 +21,73 @@ Func_525af: ; 525af (14:65af)
ld [hl], a
ld hl, wccd3
ld b, $3c
-.asm_525e1
+.loop
ld [hli], a
dec b
- jr nz, .asm_525e1
+ jr nz, .loop
inc a
ld [wccd9], a
ld a, [W_CURMAP]
cp SAFARI_ZONE_EAST
- jr c, .asm_525f9
+ jr c, .notSafariBattle
cp SAFARI_ZONE_REST_HOUSE_1
- jr nc, .asm_525f9
- ld a, $2
- ld [W_BATTLETYPE], a ; wd05a
-.asm_525f9
+ jr nc, .notSafariBattle
+ ld a, $2 ; safari battle
+ ld [W_BATTLETYPE], a
+.notSafariBattle
ld hl, PlayBattleMusic
ld b, BANK(PlayBattleMusic)
jp Bankswitch
ParalyzeEffect_: ; 52601 (14:6601)
- ld hl, wEnemyMonStatus ; wcfe9
- ld de, W_PLAYERMOVETYPE ; wcfd5
- ld a, [H_WHOSETURN] ; $fff3
+ ld hl, wEnemyMonStatus
+ ld de, W_PLAYERMOVETYPE
+ ld a, [H_WHOSETURN]
and a
- jp z, .asm_52613
+ jp z, .next
ld hl, wBattleMonStatus
- ld de, W_ENEMYMOVETYPE ; wcfcf
-
-.asm_52613
+ ld de, W_ENEMYMOVETYPE
+.next
ld a, [hl]
- and a
- jr nz, .asm_52659
+ and a ; does the target already have a status ailment?
+ jr nz, .didntAffect
+; check if the target is immune due to types
ld a, [de]
- cp EVASION_DOWN1_EFFECT
- jr nz, .asm_5262a
+ cp ELECTRIC
+ jr nz, .hitTest
ld b, h
ld c, l
inc bc
ld a, [bc]
- cp $4
- jr z, .asm_52666
+ cp GROUND
+ jr z, .doesntAffect
inc bc
ld a, [bc]
- cp $4
- jr z, .asm_52666
-.asm_5262a
+ cp GROUND
+ jr z, .doesntAffect
+.hitTest
push hl
callab MoveHitTest
pop hl
ld a, [W_MOVEMISSED]
and a
- jr nz, .asm_52659
+ jr nz, .didntAffect
set PAR, [hl]
callab QuarterSpeedDueToParalysis
- ld c, $1e
+ ld c, 30
call DelayFrames
- callab Func_3fba8
+ callab PlayCurrentMoveAnimation
ld hl, PrintMayNotAttackText
ld b, BANK(PrintMayNotAttackText)
jp Bankswitch
-.asm_52659
- ld c, $32
+.didntAffect
+ ld c, 50
call DelayFrames
ld hl, PrintDidntAffectText
ld b, BANK(PrintDidntAffectText)
jp Bankswitch
-.asm_52666
- ld c, $32
+.doesntAffect
+ ld c, 50
call DelayFrames
ld hl, PrintDoesntAffectText
ld b, BANK(PrintDoesntAffectText)
diff --git a/engine/battle/16.asm b/engine/battle/16.asm
index d1cecbbe..9a00bd98 100755
--- a/engine/battle/16.asm
+++ b/engine/battle/16.asm
@@ -55,7 +55,7 @@ PrintBeginningBattleText: ; 58d99 (16:4d99)
ld hl, UnveiledGhostText
call PrintText
callab LoadEnemyMonData
- callab Func_708ca
+ callab MarowakAnim
ld hl, WildMonAppearedText
call PrintText
diff --git a/engine/battle/1c.asm b/engine/battle/1c.asm
index b905777b..ce0296f7 100755
--- a/engine/battle/1c.asm
+++ b/engine/battle/1c.asm
@@ -1,85 +1,91 @@
-Func_708ca: ; 708ca (1c:48ca)
+MarowakAnim: ; 708ca (1c:48ca)
+; animate the ghost being unveiled as a Marowak
ld a, $e4
- ld [rOBP1], a ; $ff49
- call Func_7092a
+ ld [rOBP1], a
+ call CopyMonPicFromBGToSpriteVRAM ; cover the BG ghost pic with a sprite ghost pic that looks the same
+; now that the ghost pic is being displayed using sprites, clear the ghost pic from the BG tilemap
hlCoord 12, 0
ld bc, $707
call ClearScreenArea
call Delay3
xor a
- ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
- ld a, $91
+ ld [H_AUTOBGTRANSFERENABLED], a ; disable BG transfer so we don't see the Marowak too soon
+; replace ghost pic with Marowak in BG
+ ld a, MAROWAK
ld [wHPBarMaxHP], a
ld a, $1
- ld [H_WHOSETURN], a ; $fff3
+ ld [H_WHOSETURN], a
callab Func_79793
+ ; alternate between black and light grey 8 times.
+ ; this makes the ghost's body appear to flash
ld d, $80
- call Func_704f3
-.asm_708f6
- ld c, $a
+ call FlashSprite8Times
+.fadeOutGhostLoop
+ ld c, 10
call DelayFrames
- ld a, [rOBP1] ; $ff49
+ ld a, [rOBP1]
sla a
sla a
- ld [rOBP1], a ; $ff49
- jr nz, .asm_708f6
+ ld [rOBP1], a
+ jr nz, .fadeOutGhostLoop
call ClearSprites
- call Func_7092a
+ call CopyMonPicFromBGToSpriteVRAM ; copy Marowak pic from BG to sprite VRAM
ld b, $e4
-.asm_7090d
- ld c, $a
+.fadeInMarowakLoop
+ ld c, 10
call DelayFrames
- ld a, [rOBP1] ; $ff49
+ ld a, [rOBP1]
srl b
rra
srl b
rra
- ld [rOBP1], a ; $ff49
+ ld [rOBP1], a
ld a, b
and a
- jr nz, .asm_7090d
+ jr nz, .fadeInMarowakLoop
ld a, $1
- ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
+ ld [H_AUTOBGTRANSFERENABLED], a ; enable BG transfer so the BG Marowak pic will be visible after the sprite one is cleared
call Delay3
jp ClearSprites
-Func_7092a: ; 7092a (1c:492a)
+; copies a mon pic's from background VRAM to sprite VRAM and sets up OAM
+CopyMonPicFromBGToSpriteVRAM: ; 7092a (1c:492a)
ld de, vFrontPic
ld hl, vSprites
ld bc, 7 * 7
call CopyVideoData
ld a, $10
- ld [W_BASECOORDY], a ; wd082
+ ld [W_BASECOORDY], a
ld a, $70
- ld [W_BASECOORDX], a ; wd081
+ ld [W_BASECOORDX], a
ld hl, wOAMBuffer
ld bc, $606
ld d, $8
-.asm_70948
+.oamLoop
push bc
- ld a, [W_BASECOORDY] ; wd082
+ ld a, [W_BASECOORDY]
ld e, a
-.asm_7094d
+.oamInnerLoop
ld a, e
add $8
ld e, a
ld [hli], a
- ld a, [W_BASECOORDX] ; wd081
+ ld a, [W_BASECOORDX]
ld [hli], a
ld a, d
ld [hli], a
- ld a, $10
+ ld a, $10 ; use OBP1
ld [hli], a
inc d
dec c
- jr nz, .asm_7094d
+ jr nz, .oamInnerLoop
inc d
- ld a, [W_BASECOORDX] ; wd081
+ ld a, [W_BASECOORDX]
add $8
- ld [W_BASECOORDX], a ; wd081
+ ld [W_BASECOORDX], a
pop bc
dec b
- jr nz, .asm_70948
+ jr nz, .oamLoop
ret
BattleTransition: ; 7096d (1c:496d)
@@ -270,9 +276,9 @@ BattleTransitionTile: ; 70a59 (1c:4a59)
BattleTransition_BlackScreen: ; 70a69 (1c:4a69)
ld a, $ff
- ld [rBGP], a ; $ff47
- ld [rOBP0], a ; $ff48
- ld [rOBP1], a ; $ff49
+ ld [rBGP], a
+ ld [rOBP0], a
+ ld [rOBP1], a
ret
; for non-dungeon trainer battles
diff --git a/engine/battle/4.asm b/engine/battle/4.asm
index db6614cc..e96267c4 100755
--- a/engine/battle/4.asm
+++ b/engine/battle/4.asm
@@ -1,14 +1,14 @@
-Func_128d8: ; 128d8 (4:68d8)
- ld a, [W_YCOORD] ; wd361
+; returns whether the player is one tile outside the map in Z
+IsPlayerJustOutsideMap: ; 128d8 (4:68d8)
+ ld a, [W_YCOORD]
ld b, a
- ld a, [W_CURMAPHEIGHT] ; wd368
- call Func_128ea
+ ld a, [W_CURMAPHEIGHT]
+ call .compareCoordWithMapDimension
ret z
- ld a, [W_XCOORD] ; wd362
+ ld a, [W_XCOORD]
ld b, a
- ld a, [W_CURMAPWIDTH] ; wd369
-
-Func_128ea: ; 128ea (4:68ea)
+ ld a, [W_CURMAPWIDTH]
+.compareCoordWithMapDimension
add a
cp b
ret z
@@ -18,58 +18,58 @@ Func_128ea: ; 128ea (4:68ea)
DrawHP: ; 128ef (4:68ef)
call GetPredefRegisters
ld a, $1
- jr asm_128fb
+ jr DrawHP_
-Func_128f6: ; 128f6 (4:68f6)
+DrawHP2: ; 128f6 (4:68f6)
call GetPredefRegisters
ld a, $2
-asm_128fb: ; 128fb (4:68fb)
- ld [wListMenuID], a ; wListMenuID
+
+DrawHP_: ; 128fb (4:68fb)
+ ld [wHPBarType], a
push hl
- ld a, [wcf99]
+ ld a, [wLoadedMonHP]
ld b, a
- ld a, [wcf9a]
+ ld a, [wLoadedMonHP + 1]
ld c, a
or b
- jr nz, .asm_12913
+ jr nz, .nonzeroHP
xor a
ld c, a
ld e, a
ld a, $6
ld d, a
- jp Func_12924
-.asm_12913
- ld a, [wcfba]
+ jp .drawHPBarAndPrintFraction
+.nonzeroHP
+ ld a, [wLoadedMonMaxHP]
ld d, a
- ld a, [wcfbb]
+ ld a, [wLoadedMonMaxHP + 1]
ld e, a
predef HPBarLength
ld a, $6
ld d, a
ld c, a
-
-Func_12924: ; 12924 (4:6924)
+.drawHPBarAndPrintFraction
pop hl
push de
push hl
push hl
call DrawHPBar
pop hl
- ld a, [$fff6]
+ ld a, [hFlags_0xFFF6]
bit 0, a
- jr z, .asm_12937
- ld bc, $9
- jr .asm_1293a
-.asm_12937
- ld bc, $15
-.asm_1293a
+ jr z, .printFractionBelowBar
+ ld bc, $9 ; right of bar
+ jr .printFraction
+.printFractionBelowBar
+ ld bc, SCREEN_WIDTH + 1 ; below bar
+.printFraction
add hl, bc
- ld de, wcf99
+ ld de, wLoadedMonHP
ld bc, $203
call PrintNumber
ld a, "/"
ld [hli], a
- ld de, wcfba
+ ld de, wLoadedMonMaxHP
ld bc, $203
call PrintNumber
pop hl
diff --git a/engine/battle/4_2.asm b/engine/battle/4_2.asm
index a3ef1264..bac0a2d1 100755
--- a/engine/battle/4_2.asm
+++ b/engine/battle/4_2.asm
@@ -60,7 +60,7 @@ EndOfBattle: ; 137aa (4:77aa)
ld [hli], a
ld [hl], a
ld [wListScrollOffset], a
- ld hl, wd060
+ ld hl, wPlayerStatsToDouble
ld b, $18
.loop
ld [hli], a
@@ -87,7 +87,9 @@ PickUpPayDayMoneyText: ; 1386b (4:786b)
TX_FAR _PickUpPayDayMoneyText
db "@"
-Func_13870: ; 13870 (4:7870)
+; try to initiate a wild pokemon encounter
+; returns success in Z
+TryDoWildEncounter: ; 13870 (4:7870)
ld a, [wNPCMovementScriptPointerTableNum]
and a
ret nz
@@ -95,14 +97,14 @@ Func_13870: ; 13870 (4:7870)
and a
ret nz
callab IsPlayerStandingOnDoorTileOrWarpTile
- jr nc, .asm_13888
-.asm_13884
+ jr nc, .notStandingOnDoorOrWarpTile
+.CantEncounter
ld a, $1
and a
ret
-.asm_13888
- callab Func_128d8
- jr z, .asm_13884
+.notStandingOnDoorOrWarpTile
+ callab IsPlayerJustOutsideMap
+ jr z, .CantEncounter
ld a, [wRepelRemainingSteps]
and a
jr z, .asm_1389e
@@ -110,8 +112,8 @@ Func_13870: ; 13870 (4:7870)
jr z, .lastRepelStep
ld [wRepelRemainingSteps], a
.asm_1389e
-; determine if wild pokémon can appear in the half-block we’re standing
-; is the bottom right tile (9,9) of the half-block are we standing a grass/water tile?
+; determine if wild pokémon can appear in the half-block we’re standing in
+; is the bottom right tile (9,9) of the half-block we're standing in a grass/water tile?
hlCoord 9, 9
ld c, [hl]
ld a, [W_GRASSTILE]
@@ -127,17 +129,17 @@ Func_13870: ; 13870 (4:7870)
; …as long as it’s not Viridian Forest or Safari Zone.
ld a, [W_CURMAP]
cp REDS_HOUSE_1F ; is this an indoor map?
- jr c, .CantEncounter
+ jr c, .CantEncounter2
ld a, [W_CURMAPTILESET]
cp FOREST ; Viridian Forest/Safari Zone
- jr z, .CantEncounter
+ jr z, .CantEncounter2
ld a, [W_GRASSRATE]
.CanEncounter
-; weigh encounter chance to a random number to determine if there will be an encounter
+; compare encounter chance with a random number to determine if there will be an encounter
ld b, a
ld a, [hRandomAdd]
cp b
- jr nc, .CantEncounter
+ jr nc, .CantEncounter2
ld a, [hRandomSub]
ld b, a
ld hl, WildMonEncounterSlotChances
@@ -148,15 +150,15 @@ Func_13870: ; 13870 (4:7870)
inc hl
jr .determineEncounterSlot
.gotEncounterSlot
-; determine which wild pokémon (grass or water) can appear in the half-block we’re standing
+; determine which wild pokémon (grass or water) can appear in the half-block we’re standing in
ld c, [hl]
ld hl, W_GRASSMONS
aCoord 8, 9
- cp $14 ; is the bottom left tile (8,9) of the half-block are we standing a water tile?
+ cp $14 ; is the bottom left tile (8,9) of the half-block we're standing in a water tile?
jr nz, .gotWildEncounterType ; else, it's treated as a grass tile by default
ld hl, W_WATERMONS
; since the bottom right tile of a "left shore" half-block is $14 but the bottom left tile is not,
-; "left shore" half-blocks (such as the one in the east coast of Cinnabar), load grass encounters.
+; "left shore" half-blocks (such as the one in the east coast of Cinnabar) load grass encounters.
.gotWildEncounterType
ld b, $0
add hl, bc
@@ -172,15 +174,15 @@ Func_13870: ; 13870 (4:7870)
ld b, a
ld a, [W_CURENEMYLVL]
cp b
- jr c, .CantEncounter
+ jr c, .CantEncounter2 ; repel prevents encounters if the leading party mon's level is higher than the wild mon
jr .willEncounter
.lastRepelStep
ld [wRepelRemainingSteps], a
ld a, $d2
- ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+ ld [H_DOWNARROWBLINKCNT2], a
call EnableAutoTextBoxDrawing
call DisplayTextID
-.CantEncounter
+.CantEncounter2
ld a, $1
and a
ret
@@ -205,16 +207,16 @@ WildMonEncounterSlotChances: ; 13918 (4:7918)
db $FF, $12 ; 3/256 = 1.2% chance of slot 9
RecoilEffect_: ; 1392c (4:792c)
- ld a, [H_WHOSETURN] ; $fff3
+ ld a, [H_WHOSETURN]
and a
- ld a, [W_PLAYERMOVENUM] ; wcfd2
- ld hl, wBattleMonMaxHP ; wd023
+ ld a, [W_PLAYERMOVENUM]
+ ld hl, wBattleMonMaxHP
jr z, .asm_1393d
- ld a, [W_ENEMYMOVENUM] ; W_ENEMYMOVENUM
- ld hl, wEnemyMonMaxHP ; wEnemyMonMaxHP
+ ld a, [W_ENEMYMOVENUM]
+ ld hl, wEnemyMonMaxHP
.asm_1393d
ld d, a
- ld a, [W_DAMAGE] ; W_DAMAGE
+ ld a, [W_DAMAGE]
ld b, a
ld a, [W_DAMAGE + 1]
ld c, a
@@ -258,16 +260,16 @@ RecoilEffect_: ; 1392c (4:792c)
ld [hl], a
.asm_13982
hlCoord 10, 9
- ld a, [H_WHOSETURN] ; $fff3
+ ld a, [H_WHOSETURN]
and a
ld a, $1
jr z, .asm_13990
hlCoord 2, 2
xor a
.asm_13990
- ld [wListMenuID], a ; wListMenuID
+ ld [wHPBarType], a
predef UpdateHPBar2
- ld hl, HitWithRecoilText ; $799e
+ ld hl, HitWithRecoilText
jp PrintText
HitWithRecoilText: ; 1399e (4:799e)
TX_FAR _HitWithRecoilText
@@ -293,8 +295,8 @@ ConversionEffect_: ; 139a3 (4:79a3)
inc de
ld a, [hl]
ld [de], a
- ld hl, Func_3fba8
- call Func_139d5
+ ld hl, PlayCurrentMoveAnimation
+ call CallBankF
ld hl, ConvertedTypeText
jp PrintText
@@ -304,22 +306,22 @@ ConvertedTypeText: ; 139cd (4:79cd)
PrintButItFailedText: ; 139d2 (4:79d2)
ld hl, PrintButItFailedText_
-Func_139d5: ; 139d5 (4:79d5)
+CallBankF: ; 139d5 (4:79d5)
ld b, BANK(PrintButItFailedText_)
jp Bankswitch
HazeEffect_: ; 139da (4:79da)
ld a, $7
ld hl, wPlayerMonAttackMod
- call Func_13a43
+ call ResetStatMods
ld hl, wEnemyMonAttackMod
- call Func_13a43
+ call ResetStatMods
ld hl, wPlayerMonUnmodifiedAttack
ld de, wBattleMonAttack
- call Func_13a4a
+ call ResetStats
ld hl, wEnemyMonUnmodifiedAttack
ld de, wEnemyMonAttack
- call Func_13a4a
+ call ResetStats
ld hl, wEnemyMonStatus
ld de, wEnemySelectedMove
ld a, [H_WHOSETURN]
@@ -347,8 +349,8 @@ HazeEffect_: ; 139da (4:79da)
call CureStatuses
ld hl, W_ENEMYBATTSTATUS1
call CureStatuses
- ld hl, Func_3fba8
- call Func_139d5
+ ld hl, PlayCurrentMoveAnimation
+ call CallBankF
ld hl, StatusChangesEliminatedText
jp PrintText
@@ -363,7 +365,7 @@ CureStatuses: ; 13a37 (4:7a37)
ld [hl], a
ret
-Func_13a43: ; 13a43 (4:7a43)
+ResetStatMods: ; 13a43 (4:7a43)
ld b, $8
.loop
ld [hli], a
@@ -371,7 +373,7 @@ Func_13a43: ; 13a43 (4:7a43)
jr nz, .loop
ret
-Func_13a4a: ; 13a4a (4:7a4a)
+ResetStats: ; 13a4a (4:7a4a)
ld b, $8
.loop
ld a, [hli]
@@ -390,8 +392,8 @@ GetTrainerName_: ; 13a58 (4:7a58)
ld a, [wLinkState]
and a
jr nz, .rival
- ld hl, W_RIVALNAME ; wd34a
- ld a, [W_TRAINERCLASS] ; wd031
+ ld hl, W_RIVALNAME
+ ld a, [W_TRAINERCLASS]
cp SONY1
jr z, .rival
cp SONY2
@@ -400,7 +402,7 @@ GetTrainerName_: ; 13a58 (4:7a58)
jr z, .rival
ld [wd0b5], a
ld a, TRAINER_NAME
- ld [W_LISTTYPE], a
+ ld [wNameListType], a
ld a, BANK(TrainerNames)
ld [wPredefBank], a
call GetName
diff --git a/engine/battle/5.asm b/engine/battle/5.asm
index e534470d..ef3e1362 100755
--- a/engine/battle/5.asm
+++ b/engine/battle/5.asm
@@ -4,7 +4,7 @@ SubstituteEffectHandler: ; 17dad (5:7dad)
ld hl, wBattleMonMaxHP
ld de, wPlayerSubstituteHP
ld bc, W_PLAYERBATTSTATUS2
- ld a, [$fff3] ;whose turn?
+ ld a, [H_WHOSETURN]
and a
jr z, .notEnemy
ld hl, wEnemyMonMaxHP
@@ -23,8 +23,8 @@ SubstituteEffectHandler: ; 17dad (5:7dad)
srl a
rr b
push de
- ld de, $fff2 ;subtract 8 to point to [current hp] instead of [max hp]
- add hl, de ;HL -= 8
+ ld de, wBattleMonHP - wBattleMonMaxHP
+ add hl, de ; point hl to current HP
pop de
ld a, b
ld [de], a ;save copy of HP to subtract in ccd7/ccd8 [how much HP substitute has]
@@ -44,8 +44,8 @@ SubstituteEffectHandler: ; 17dad (5:7dad)
set HasSubstituteUp, [hl] ;set bit 4 of flags, user now has substitute
ld a, [W_OPTIONS] ;load options
bit 7, a ;battle animation is enabled?
- ld hl, Func_3fba8 ;animation enabled: 0F:7BA8
- ld b, BANK(Func_3fba8)
+ ld hl, PlayCurrentMoveAnimation ;animation enabled: 0F:7BA8
+ ld b, BANK(PlayCurrentMoveAnimation)
jr z, .animationEnabled
ld hl, AnimationSubstitute ;animation disabled: 1E:56E0
ld b, BANK(AnimationSubstitute)
diff --git a/engine/battle/9.asm b/engine/battle/9.asm
index eb86cce0..e7265f41 100755
--- a/engine/battle/9.asm
+++ b/engine/battle/9.asm
@@ -1,35 +1,43 @@
-Func_27d6b: ; 27d6b (9:7d6b)
+; [wd0b5] = pokemon ID
+; hl = dest addr
+PrintMonType: ; 27d6b (9:7d6b)
call GetPredefRegisters
push hl
call GetMonHeader
pop hl
push hl
ld a, [W_MONHTYPE1]
- call Func_27d89
+ call PrintType
ld a, [W_MONHTYPE1]
ld b, a
ld a, [W_MONHTYPE2]
cp b
pop hl
- jr z, asm_27d8c
- ld bc, $28
+ jr z, EraseType2Text
+ ld bc, SCREEN_WIDTH * 2
add hl, bc
-Func_27d89: ; 27d89 (9:7d89)
+; a = type
+; hl = dest addr
+PrintType: ; 27d89 (9:7d89)
push hl
- jr asm_27d9f
-asm_27d8c: ; 27d8c (9:7d8c)
- ld a, $7f
+ jr PrintType_
+
+; erase "TYPE2/" if the mon only has 1 type
+EraseType2Text: ; 27d8c (9:7d8c)
+ ld a, " "
ld bc, $13
add hl, bc
ld bc, $6
jp FillMemory
-Func_27d98: ; 27d98 (9:7d98)
+PrintMoveType: ; 27d98 (9:7d98)
call GetPredefRegisters
push hl
- ld a, [W_PLAYERMOVETYPE] ; wcfd5
-asm_27d9f: ; 27d9f (9:7d9f)
+ ld a, [W_PLAYERMOVETYPE]
+; fall through
+
+PrintType_: ; 27d9f (9:7d9f)
add a
ld hl, TypeNames
ld e, a
@@ -157,19 +165,19 @@ CooltrainerFName: ; 27f79 (9:7f79)
db "COOLTRAINER♀@"
FocusEnergyEffect_: ; 27f86 (9:7f86)
- ld hl, W_PLAYERBATTSTATUS2 ; W_PLAYERBATTSTATUS2
- ld a, [H_WHOSETURN] ; $fff3
+ ld hl, W_PLAYERBATTSTATUS2
+ ld a, [H_WHOSETURN]
and a
- jr z, .asm_27f91
- ld hl, W_ENEMYBATTSTATUS2 ; W_ENEMYBATTSTATUS2
-.asm_27f91
+ jr z, .notEnemy
+ ld hl, W_ENEMYBATTSTATUS2
+.notEnemy
bit GettingPumped, [hl] ; is mon already using focus energy?
- jr nz, .asm_27fa5
+ jr nz, .alreadyUsing
set GettingPumped, [hl] ; mon is now using focus energy
- callab Func_3fba8
- ld hl, GettingPumpedText ; $7fb2
+ callab PlayCurrentMoveAnimation
+ ld hl, GettingPumpedText
jp PrintText
-.asm_27fa5
+.alreadyUsing
ld c, $32
call DelayFrames
ld hl, PrintButItFailedText_
diff --git a/engine/battle/a.asm b/engine/battle/a.asm
index 917a462b..a257d143 100755
--- a/engine/battle/a.asm
+++ b/engine/battle/a.asm
@@ -21,7 +21,7 @@ LeechSeedEffect_: ; 2bea9 (a:7ea9)
bit Seeded, [hl]
jr nz, .asm_2bee7
set Seeded, [hl]
- callab Func_3fba8
+ callab PlayCurrentMoveAnimation
ld hl, WasSeededText ; $7ef2
jp PrintText
.asm_2bee7
diff --git a/engine/battle/c.asm b/engine/battle/c.asm
index 07369375..b7c20ef6 100755
--- a/engine/battle/c.asm
+++ b/engine/battle/c.asm
@@ -8,7 +8,7 @@ MistEffect_: ; 33f2b (c:7f2b)
bit ProtectedByMist, [hl] ; is mon protected by mist?
jr nz, .asm_33f4a
set ProtectedByMist, [hl] ; mon is now protected by mist
- callab Func_3fba8
+ callab PlayCurrentMoveAnimation
ld hl, ShroudedInMistText
jp PrintText
.asm_33f4a
diff --git a/engine/battle/core.asm b/engine/battle/core.asm
index 64a8d44e..63be5676 100755
--- a/engine/battle/core.asm
+++ b/engine/battle/core.asm
@@ -98,7 +98,7 @@ SpecialEffectsCont: ; 3c049 (f:4049)
SlidePlayerAndEnemySilhouettesOnScreen: ; 3c04c (f:404c)
call LoadPlayerBackPic
- ld a, $1 ; the usual text box at the bottom of the screen
+ ld a, MESSAGE_BOX ; the usual text box at the bottom of the screen
ld [wTextBoxID], a
call DisplayTextBoxID
hlCoord 1, 5
@@ -768,7 +768,7 @@ UpdateCurMonHPBar: ; 3c4f6 (f:44f6)
xor a
.playersTurn
push bc
- ld [wListMenuID], a
+ ld [wHPBarType], a
predef UpdateHPBar2
pop bc
ret
@@ -839,7 +839,7 @@ FaintEnemyPokemon ; 0x3c567
res AttackingMultipleTimes, [hl]
xor a
ld [wPlayerNumHits], a
- ld hl, wd065 ; clear enemy statuses
+ ld hl, wEnemyStatsToDouble ; clear enemy statuses
ld [hli], a
ld [hli], a
ld [hli], a
@@ -1137,7 +1137,7 @@ DoUseNextMonDialogue: ; 3c79b (f:479b)
.displayYesNoBox
hlCoord 13, 9
ld bc, $a0e
- ld a, $14 ; yes/no text box
+ ld a, TWO_OPTION_MENU
ld [wTextBoxID], a
call DisplayTextBoxID
ld a, [wd12e]
@@ -1366,7 +1366,7 @@ EnemySendOut: ; 3c90e (f:490e)
; don't change wPartyGainExpFlags or wPartyFoughtCurrentEnemyFlags
EnemySendOutFirstMon: ; 3c92a (f:492a)
xor a
- ld hl,wd065 ; clear enemy statuses
+ ld hl,wEnemyStatsToDouble ; clear enemy statuses
ld [hli],a
ld [hli],a
ld [hli],a
@@ -1454,7 +1454,7 @@ EnemySendOutFirstMon: ; 3c92a (f:492a)
call PrintText
hlCoord 0, 7
ld bc,$0801
- ld a,$14
+ ld a,TWO_OPTION_MENU
ld [wTextBoxID],a
call DisplayTextBoxID
ld a,[wCurrentMenuItem]
@@ -1815,7 +1815,7 @@ SendOutMon: ; 3cc91 (f:4c91)
ld hl, wPlayerUsedMove
ld [hli], a
ld [hl], a
- ld hl, wd060
+ ld hl, wPlayerStatsToDouble
ld [hli], a
ld [hli], a
ld [hli], a
@@ -1899,23 +1899,23 @@ DrawPlayerHUDAndHPBar: ; 3cd60 (f:4d60)
call CenterMonName
call PlaceString
ld hl, wBattleMonSpecies
- ld de, wcf98
+ ld de, wLoadedMon
ld bc, $c
call CopyData
ld hl, wBattleMonLevel
- ld de, wcfb9
+ ld de, wLoadedMonLevel
ld bc, $b
call CopyData
hlCoord 14, 8
push hl
inc hl
- ld de, wcf9c
+ ld de, wLoadedMonStatus
call PrintStatusConditionNotFainted
pop hl
jr nz, .asm_3cdae
call PrintLevel
.asm_3cdae
- ld a, [wcf98]
+ ld a, [wLoadedMonSpecies]
ld [wcf91], a
hlCoord 10, 9
predef DrawHP
@@ -1965,7 +1965,7 @@ DrawEnemyHUDAndHPBar: ; 3cdec (f:4dec)
pop hl
jr nz, .skipPrintLevel ; if the mon has a status condition, skip printing the level
ld a, [wEnemyMonLevel]
- ld [wcfb9], a
+ ld [wLoadedMonLevel], a
call PrintLevel
.skipPrintLevel
ld hl, wEnemyMonHP
@@ -2029,7 +2029,7 @@ DrawEnemyHUDAndHPBar: ; 3cdec (f:4dec)
ld c, a
.drawHPBar
xor a
- ld [wListMenuID], a
+ ld [wHPBarType], a
hlCoord 2, 2
call DrawHPBar
ld a, $1
@@ -2080,9 +2080,9 @@ DisplayBattleMenu: ; 3ceb3 (f:4eb3)
.nonstandardbattle
ld a, [W_BATTLETYPE]
cp $2 ; safari
- ld a, $b ; safari menu id
+ ld a, BATTLE_MENU_TEMPLATE
jr nz, .menuselected
- ld a, $1b ; regular menu id
+ ld a, SAFARI_BATTLE_MENU_TEMPLATE
.menuselected
ld [wTextBoxID], a
call DisplayTextBoxID
@@ -2270,9 +2270,9 @@ BagWasSelected:
jr nz, DisplayPlayerBag ; no, it is a normal battle
ld hl, OldManItemList
ld a, l
- ld [wcf8b], a
+ ld [wList], a
ld a, h
- ld [wcf8c], a
+ ld [wList + 1], a
jr DisplayBagMenu
OldManItemList:
@@ -2284,9 +2284,9 @@ DisplayPlayerBag:
; get the pointer to player's bag when in a normal battle
ld hl, wNumBagItems
ld a, l
- ld [wcf8b], a
+ ld [wList], a
ld a, h
- ld [wcf8c], a
+ ld [wList + 1], a
DisplayBagMenu:
xor a
@@ -2402,7 +2402,7 @@ PartyMenuOrRockOrRun:
call GoBackToPartyMenu
jr .checkIfPartyMonWasSelected
.partyMonWasSelected
- ld a, $c ; switch/stats/cancel menu
+ ld a, SWITCH_STATS_CANCEL_MENU_TEMPLATE
ld [wTextBoxID], a
call DisplayTextBoxID
ld hl, wTopMenuItemY
@@ -2533,21 +2533,21 @@ MoveSelectionMenu: ; 3d219 (f:5219)
jr .regularmenu
.loadmoves
- ld de, wd0dc
- ld bc, $4
+ ld de, wMoves
+ ld bc, NUM_MOVES
call CopyData
- callab Func_39b87
+ callab FormatMovesString
ret
.writemoves
- ld de, wd0e1
- ld a, [$fff6]
+ ld de, wMovesString
+ ld a, [hFlags_0xFFF6]
set 2, a
- ld [$fff6], a
+ ld [hFlags_0xFFF6], a
call PlaceString
- ld a, [$fff6]
+ ld a, [hFlags_0xFFF6]
res 2, a
- ld [$fff6], a
+ ld [hFlags_0xFFF6], a
ret
.regularmenu
@@ -2666,10 +2666,10 @@ SelectMenuItem: ; 3d2fe (f:52fe)
call AddNTimes
ld [hl], $ec
.select
- ld hl, $fff6
+ ld hl, hFlags_0xFFF6
set 1, [hl]
call HandleMenuInput
- ld hl, $fff6
+ ld hl, hFlags_0xFFF6
res 1, [hl]
bit 6, a
jp nz, CursorUp ; up
@@ -2959,7 +2959,7 @@ PrintMenuItem: ; 3d4b6 (f:54b6)
call PrintNumber
call GetCurrentMove
hlCoord 2, 10
- predef Func_27d98
+ predef PrintMoveType
.moveDisabled
ld a, $1
ld [H_AUTOBGTRANSFERENABLED], a
@@ -3554,7 +3554,7 @@ CheckPlayerStatusConditions: ; 3d854 (f:5854)
ld a,[hld]
add a
ld b,a
- ld [wd0d8],a
+ ld [W_DAMAGE + 1],a
ld a,[hl]
rl a ; double the damage
ld [W_DAMAGE],a
@@ -4451,7 +4451,7 @@ GetEnemyMonStat: ; 3df1c (f:5f1c)
ld [wd0b5], a
call GetMonHeader
ld hl, wEnemyMonDVs
- ld de, wcfaf
+ ld de, wLoadedMonSpeedExp
ld a, [hli]
ld [de], a
inc de
@@ -4459,7 +4459,7 @@ GetEnemyMonStat: ; 3df1c (f:5f1c)
ld [de], a
pop bc
ld b, $0
- ld hl, wcfa4
+ ld hl, wLoadedMonSpeedExp - $b ; this base address makes CalcStat look in [wLoadedMonSpeedExp] for DVs
call CalcStat
pop de
ret
@@ -4899,7 +4899,7 @@ ApplyDamageToEnemyPokemon: ; 3e142 (f:6142)
ld [wHPBarNewHP],a
hlCoord 2, 2
xor a
- ld [wListMenuID],a
+ ld [wHPBarType],a
predef UpdateHPBar2 ; animate the HP bar shortening
ApplyAttackToEnemyPokemonDone: ; 3e19d (f:619d)
jp DrawHUDsAndHPBars
@@ -5017,7 +5017,7 @@ ApplyDamageToPlayerPokemon: ; 3e200 (f:6200)
ld [wHPBarMaxHP],a
hlCoord 10, 9
ld a,$01
- ld [wListMenuID],a
+ ld [wHPBarType],a
predef UpdateHPBar2 ; animate the HP bar shortening
ApplyAttackToPlayerPokemonDone
jp DrawHUDsAndHPBars
@@ -5671,7 +5671,7 @@ EnemyCanExecuteChargingMove: ; 3e70b (f:670b)
ld a, BANK(MoveNames)
ld [wPredefBank], a
ld a, MOVE_NAME
- ld [W_LISTTYPE], a
+ ld [wNameListType], a
call GetName
ld de, wcd6d
call CopyStringToCF4B
@@ -6053,7 +6053,7 @@ CheckEnemyStatusConditions: ; 3e88f (f:688f)
ld a, [hld]
add a
ld b, a
- ld [wd0d8], a
+ ld [W_DAMAGE + 1], a
ld a, [hl]
rl a
ld [W_DAMAGE], a
@@ -6148,7 +6148,7 @@ GetCurrentMove: ; 3eabe (f:6abe)
ld a, BANK(MoveNames)
ld [wPredefBank], a
ld a, MOVE_NAME
- ld [W_LISTTYPE], a
+ ld [wNameListType], a
call GetName
ld de, wcd6d
jp CopyStringToCF4B
@@ -6339,7 +6339,7 @@ DoBattleTransitionAndInitBattleVariables: ; 3ec32 (f:6c32)
ld [hWY], a
ld [rWY], a
ld [hTilesetType], a
- ld hl, wd060
+ ld hl, wPlayerStatsToDouble
ld [hli], a
ld [hli], a
ld [hli], a
@@ -6423,10 +6423,11 @@ LoadPlayerBackPic: ; 3ec92 (f:6c92)
hlCoord 1, 5
predef_jump Func_3f0c6
-Func_3ed02: ; 3ed02 (f:6d02)
- callab Func_39680
- ld hl, Func_396a7
- ld b, BANK(Func_396a7)
+; does nothing since no stats are ever selected (barring glitches)
+DoubleOrHalveSelectedStats: ; 3ed02 (f:6d02)
+ callab DoubleSelectedStats
+ ld hl, HalveSelectedStats
+ ld b, BANK(HalveSelectedStats)
jp Bankswitch
ScrollTrainerPicAfterBattle: ; 3ed12 (f:6d12)
@@ -6814,7 +6815,7 @@ asm_3ef23: ; 3ef23 (f:6f23)
ld a, [wNumberOfNoRandomBattleStepsLeft]
and a
ret nz
- callab Func_13870
+ callab TryDoWildEncounter
ret nz
asm_3ef3d: ; 3ef3d (f:6f3d)
ld a, [wMapPalOffset]
@@ -6823,7 +6824,7 @@ asm_3ef3d: ; 3ef3d (f:6f3d)
ld a, [hl]
push af
res 1, [hl]
- callab Func_525af
+ callab InitBattleVariables
ld a, [wEnemyMonSpecies2]
sub $c8
jp c, InitWildBattle
@@ -7637,7 +7638,7 @@ UpdateStatDone: ; 3f4ca (f:74ca)
call nz, Bankswitch ; play Minimize animation unless there's Substitute involved
pop de
.asm_3f4f9
- call Func_3fba8
+ call PlayCurrentMoveAnimation
ld a, [de]
cp MINIMIZE
jr nz, .applyBadgeBoostsAndStatusPenalties
@@ -8451,7 +8452,7 @@ MimicEffect: ; 3f9ed (f:79ed)
ld [hl], a
ld [wd11e], a
call GetMoveName
- call Func_3fba8
+ call PlayCurrentMoveAnimation
ld hl, MimicLearnedMoveText
jp PrintText
.asm_3fa74
@@ -8467,7 +8468,7 @@ LeechSeedEffect: ; 3fa7c (f:7a7c)
jp Bankswitch
SplashEffect: ; 3fa84 (f:7a84)
- call Func_3fba8
+ call PlayCurrentMoveAnimation
jp PrintNoEffectText
DisableEffect: ; 3fa8a (f:7a8a)
@@ -8662,15 +8663,15 @@ Func_3fb96: ; 3fb96 (f:7b96)
ld [wcc5b], a
jp Func_3fbbc
-Func_3fba8: ; 3fba8 (f:7ba8)
+PlayCurrentMoveAnimation: ; 3fba8 (f:7ba8)
xor a
ld [wcc5b], a
ld a, [H_WHOSETURN]
and a
ld a, [W_PLAYERMOVENUM]
- jr z, .asm_3fbb7
+ jr z, .notEnemyTurn
ld a, [W_ENEMYMOVENUM]
-.asm_3fbb7
+.notEnemyTurn
and a
ret z
diff --git a/engine/battle/e.asm b/engine/battle/e.asm
index 9f93baa6..d124b77a 100755
--- a/engine/battle/e.asm
+++ b/engine/battle/e.asm
@@ -1,24 +1,25 @@
-Func_39680: ; 39680 (e:5680)
- ld a, [H_WHOSETURN] ; $fff3
+; does nothing since no stats are ever selected (barring glitches)
+DoubleSelectedStats: ; 39680 (e:5680)
+ ld a, [H_WHOSETURN]
and a
- ld a, [wd060]
+ ld a, [wPlayerStatsToDouble]
ld hl, wBattleMonAttack + 1
- jr z, .asm_39691
- ld a, [wd065]
+ jr z, .notEnemyTurn
+ ld a, [wEnemyStatsToDouble]
ld hl, wEnemyMonAttack + 1
-.asm_39691
- ld c, $4
+.notEnemyTurn
+ ld c, 4
ld b, a
-.asm_39694
+.loop
srl b
- call c, Func_3969f
+ call c, .doubleStat
inc hl
inc hl
dec c
ret z
- jr .asm_39694
+ jr .loop
-Func_3969f: ; 3969f (e:569f)
+.doubleStat
ld a, [hl]
add a
ld [hld], a
@@ -27,35 +28,36 @@ Func_3969f: ; 3969f (e:569f)
ld [hli], a
ret
-Func_396a7: ; 396a7 (e:56a7)
- ld a, [H_WHOSETURN] ; $fff3
+; does nothing since no stats are ever selected (barring glitches)
+HalveSelectedStats: ; 396a7 (e:56a7)
+ ld a, [H_WHOSETURN]
and a
- ld a, [wd061]
+ ld a, [wPlayerStatsToHalve]
ld hl, wBattleMonAttack
- jr z, .asm_396b8
- ld a, [wd066]
+ jr z, .notEnemyTurn
+ ld a, [wEnemyStatsToHalve]
ld hl, wEnemyMonAttack
-.asm_396b8
- ld c, $4
+.notEnemyTurn
+ ld c, 4
ld b, a
-.asm_396bb
+.loop
srl b
- call c, Func_396c6
+ call c, .halveStat
inc hl
inc hl
dec c
ret z
- jr .asm_396bb
+ jr .loop
-Func_396c6: ; 396c6 (e:56c6)
+.halveStat
ld a, [hl]
srl a
ld [hli], a
rr [hl]
or [hl]
- jr nz, .asm_396d1
- ld [hl], $1
-.asm_396d1
+ jr nz, .nonzeroStat
+ ld [hl], 1
+.nonzeroStat
dec hl
ret
@@ -69,41 +71,42 @@ _ScrollTrainerPicAfterBattle: ; 396d3 (e:56d3)
callab _LoadTrainerPic
hlCoord 19, 0
ld c, $0
-.asm_396e9
+.scrollLoop
inc c
ld a, c
- cp $7
+ cp 7
ret z
ld d, $0
push bc
push hl
-.asm_396f2
- call Func_39707
+.drawTrainerPicLoop
+ call DrawTrainerPicColumn
inc hl
- ld a, $7
+ ld a, 7
add d
ld d, a
dec c
- jr nz, .asm_396f2
- ld c, $4
+ jr nz, .drawTrainerPicLoop
+ ld c, 4
call DelayFrames
pop hl
pop bc
dec hl
- jr .asm_396e9
+ jr .scrollLoop
-Func_39707: ; 39707 (e:5707)
+; write one 7-tile column of the trainer pic to the tilemap
+DrawTrainerPicColumn: ; 39707 (e:5707)
push hl
push de
push bc
- ld e, $7
-.asm_3970c
+ ld e, 7
+.loop
ld [hl], d
- ld bc, $14
+ ld bc, SCREEN_WIDTH
add hl, bc
inc d
dec e
- jr nz, .asm_3970c
+ jr nz, .loop
pop bc
pop de
pop hl
@@ -577,121 +580,124 @@ TrainerPicAndMoneyPointers: ; 39914 (e:5914)
INCLUDE "text/trainer_names.asm"
-Func_39b87: ; 39b87 (e:5b87)
- ld hl, wd0dc
- ld de, wd0e1
+; formats a string at wMovesString that lists the moves at wMoves
+FormatMovesString: ; 39b87 (e:5b87)
+ ld hl, wMoves
+ ld de, wMovesString
ld b, $0
-.asm_39b8f
+.printMoveNameLoop
ld a, [hli]
- and a
- jr z, .asm_39bc1
+ and a ; end of move list?
+ jr z, .printDashLoop ; print dashes when no moves are left
push hl
ld [wd0b5], a
ld a, BANK(MoveNames)
ld [wPredefBank], a
ld a, MOVE_NAME
- ld [W_LISTTYPE], a
+ ld [wNameListType], a
call GetName
ld hl, wcd6d
-.asm_39ba7
+.copyNameLoop
ld a, [hli]
cp $50
- jr z, .asm_39bb0
+ jr z, .doneCopyingName
ld [de], a
inc de
- jr .asm_39ba7
-.asm_39bb0
+ jr .copyNameLoop
+.doneCopyingName
ld a, b
ld [wcd6c], a
inc b
- ld a, $4e
+ ld a, $4e ; line break
ld [de], a
inc de
pop hl
ld a, b
- cp $4
- jr z, .asm_39bd1
- jr .asm_39b8f
-.asm_39bc1
+ cp NUM_MOVES
+ jr z, .done
+ jr .printMoveNameLoop
+.printDashLoop
ld a, "-"
ld [de], a
inc de
inc b
ld a, b
- cp $4
- jr z, .asm_39bd1
- ld a, $4e
+ cp NUM_MOVES
+ jr z, .done
+ ld a, $4e ; line break
ld [de], a
inc de
- jr .asm_39bc1
-.asm_39bd1
+ jr .printDashLoop
+.done
ld a, "@"
ld [de], a
ret
+; XXX this is called in a few places, but it doesn't appear to do anything useful
Func_39bd5: ; 39bd5 (e:5bd5)
ld a, [wd11b]
cp $1
jr nz, .asm_39be6
- ld hl, wEnemyPartyCount ; wEnemyPartyCount
- ld de, wEnemyMonOT ; wd9ac OT names of other player
- ld a, $6
+ ld hl, wEnemyPartyCount
+ ld de, wEnemyMonOT
+ ld a, ENEMYOT_NAME
jr .asm_39c18
.asm_39be6
cp $4
jr nz, .calcAttackStat4
- ld hl, wPartyCount ; wPartyCount
- ld de, wPartyMonOT ; wd273
- ld a, $5
+ ld hl, wPartyCount
+ ld de, wPartyMonOT
+ ld a, PLAYEROT_NAME
jr .asm_39c18
.calcAttackStat4
cp $5
jr nz, .asm_39c02
ld hl, wStringBuffer2 + 11
- ld de, MonsterNames ; $421e
- ld a, $1
+ ld de, MonsterNames
+ ld a, MONSTER_NAME
jr .asm_39c18
.asm_39c02
cp $2
jr nz, .asm_39c10
- ld hl, wNumBagItems ; wNumBagItems
- ld de, ItemNames ; $472b
- ld a, $4
+ ld hl, wNumBagItems
+ ld de, ItemNames
+ ld a, ITEM_NAME
jr .asm_39c18
.asm_39c10
ld hl, wStringBuffer2 + 11
- ld de, ItemNames ; $472b
+ ld de, ItemNames
ld a, ITEM_NAME
.asm_39c18
- ld [W_LISTTYPE], a
+ ld [wNameListType], a
ld a, l
- ld [wcf8b], a
+ ld [wList], a
ld a, h
- ld [wcf8c], a
+ ld [wList + 1], a
ld a, e
ld [wcf8d], a
ld a, d
ld [wcf8e], a
- ld bc, ItemPrices ; $4608
+ ld bc, ItemPrices
ld a, c
- ld [wcf8f], a
+ ld [wItemPrices], a
ld a, b
- ld [wcf90], a
+ ld [wItemPrices + 1], a
ret
-Func_39c37: ; 39c37 (e:5c37)
+; get species of mon e in list [wcc49] for LoadMonData
+GetMonSpecies: ; 39c37 (e:5c37)
ld hl, wPartySpecies
ld a, [wcc49]
and a
- jr z, .asm_39c4b
+ jr z, .getSpecies
dec a
- jr z, .asm_39c48
+ jr z, .enemyParty
ld hl, wBoxSpecies
- jr .asm_39c4b
-.asm_39c48
+ jr .getSpecies
+.enemyParty
ld hl, wEnemyPartyMons
-.asm_39c4b
- ld d, $0
+.getSpecies
+ ld d, 0
add hl, de
ld a, [hl]
ld [wcf91], a
@@ -954,7 +960,7 @@ TrainerAIPointers: ; 3a55c (e:655c)
JugglerAI: ; 3a5e9 (e:65e9)
cp $40
ret nc
- jp Func_3a72a
+ jp AISwitchIfEnoughMons
BlackbeltAI: ; 3a5ef (e:65ef)
cp $20
@@ -974,12 +980,12 @@ CooltrainerMAI: ; 3a5fb (e:65fb)
CooltrainerFAI: ; 3a601 (e:6601)
cp $40
ld a,$A
- call Func_3a7cf
+ call AICheckIfHPBelowFraction
jp c,AIUseHyperPotion
ld a,5
- call Func_3a7cf
+ call AICheckIfHPBelowFraction
ret nc
- jp Func_3a72a
+ jp AISwitchIfEnoughMons
BrockAI: ; 3a614 (e:6614)
; if his active monster has a status condition, use a full heal
@@ -1002,7 +1008,7 @@ ErikaAI: ; 3a628 (e:6628)
cp $80
ret nc
ld a,$A
- call Func_3a7cf
+ call AICheckIfHPBelowFraction
ret nc
jp AIUseSuperPotion
@@ -1020,7 +1026,7 @@ SabrinaAI: ; 3a640 (e:6640)
cp $40
ret nc
ld a,$A
- call Func_3a7cf
+ call AICheckIfHPBelowFraction
ret nc
jp AIUseHyperPotion
@@ -1028,7 +1034,7 @@ Sony2AI: ; 3a64c (e:664c)
cp $20
ret nc
ld a,5
- call Func_3a7cf
+ call AICheckIfHPBelowFraction
ret nc
jp AIUsePotion
@@ -1036,7 +1042,7 @@ Sony3AI: ; 3a658 (e:6658)
cp $20
ret nc
ld a,5
- call Func_3a7cf
+ call AICheckIfHPBelowFraction
ret nc
jp AIUseFullRestore
@@ -1044,7 +1050,7 @@ LoreleiAI: ; 3a664 (e:6664)
cp $80
ret nc
ld a,5
- call Func_3a7cf
+ call AICheckIfHPBelowFraction
ret nc
jp AIUseSuperPotion
@@ -1055,11 +1061,11 @@ BrunoAI: ; 3a670 (e:6670)
AgathaAI: ; 3a676 (e:6676)
cp $14
- jp c,Func_3a72a
+ jp c,AISwitchIfEnoughMons
cp $80
ret nc
ld a,4
- call Func_3a7cf
+ call AICheckIfHPBelowFraction
ret nc
jp AIUseSuperPotion
@@ -1067,7 +1073,7 @@ LanceAI: ; 3a687 (e:6687)
cp $80
ret nc
ld a,5
- call Func_3a7cf
+ call AICheckIfHPBelowFraction
ret nc
jp AIUseHyperPotion
@@ -1109,7 +1115,7 @@ AIUseFullRestore: ; 3a6a0 (e:66a0)
ld [de],a
ld [wHPBarMaxHP+1],a
ld [wEnemyMonHP],a
- jr Func_3a718
+ jr AIPrintItemUseAndUpdateHPBar
AIUsePotion: ; 3a6ca (e:66ca)
; enemy trainer heals his monster with a potion
@@ -1159,7 +1165,7 @@ AIRecoverHP: ; 3a6da (e:66da)
ld a,[de]
ld [wHPBarMaxHP+1],a
sbc b
- jr nc,Func_3a718
+ jr nc,AIPrintItemUseAndUpdateHPBar
inc de
ld a,[de]
dec de
@@ -1170,15 +1176,16 @@ AIRecoverHP: ; 3a6da (e:66da)
ld [wHPBarNewHP+1],a
; fallthrough
-Func_3a718: ; 3a718 (e:6718)
+AIPrintItemUseAndUpdateHPBar: ; 3a718 (e:6718)
call AIPrintItemUse_
hlCoord 2, 2
xor a
- ld [wListMenuID],a
+ ld [wHPBarType],a
predef UpdateHPBar2
jp DecrementAICount
-Func_3a72a: ; 3a72a (e:672a)
+AISwitchIfEnoughMons: ; 3a72a (e:672a)
+; enemy trainer switches if there are 3 or more unfainted mons in party
ld a,[wEnemyPartyCount]
ld c,a
ld hl,wEnemyMon1HP
@@ -1280,7 +1287,8 @@ AIUseDireHit: ; 0x3a7c2 unused
ld a,DIRE_HIT
jp AIPrintItemUse
-Func_3a7cf: ; 3a7cf (e:67cf)
+AICheckIfHPBelowFraction: ; 3a7cf (e:67cf)
+; return carry if enemy trainer's current HP is below 1 / a of the maximum
ld [H_DIVISOR],a
ld hl,wEnemyMonMaxHP
ld a,[hli]
@@ -1394,7 +1402,7 @@ SetupOwnPartyPokeballs: ; 3a869 (e:6869)
ld a, $8
ld [wTrainerEngageDistance], a
ld hl, wOAMBuffer
- jp Func_3a8e1
+ jp WritePokeballOAMData
SetupEnemyPartyPokeballs: ; 3a887 (e:6887)
call PlaceEnemyHUDTiles
@@ -1408,7 +1416,7 @@ SetupEnemyPartyPokeballs: ; 3a887 (e:6887)
ld a, $f8
ld [wTrainerEngageDistance], a
ld hl, wOAMBuffer + PARTY_LENGTH * 4
- jp Func_3a8e1
+ jp WritePokeballOAMData
SetupPokeballs: ; 0x3a8a6
ld a, [de]
@@ -1420,7 +1428,7 @@ SetupPokeballs: ; 0x3a8a6
ld [de], a
inc de
dec c
- jr nz, .emptyloop ; 0x3a8b2 $fb
+ jr nz, .emptyloop
pop af
ld de, wBuffer
.monloop
@@ -1460,10 +1468,10 @@ PickPokeball: ; 3a8c2 (e:68c2)
add hl, bc
ret
-Func_3a8e1: ; 3a8e1 (e:68e1)
- ld de, wHPBarMaxHP
+WritePokeballOAMData: ; 3a8e1 (e:68e1)
+ ld de, wBuffer
ld c, PARTY_LENGTH
-.asm_3a8e6
+.loop
ld a, [W_BASECOORDY] ; wd082
ld [hli], a
ld a, [W_BASECOORDX] ; wd081
@@ -1479,7 +1487,7 @@ Func_3a8e1: ; 3a8e1 (e:68e1)
ld [W_BASECOORDX], a ; wd081
inc de
dec c
- jr nz, .asm_3a8e6
+ jr nz, .loop
ret
PlacePlayerHUDTiles: ; 3a902 (e:6902)
@@ -1541,7 +1549,7 @@ SetupPlayerAndEnemyPokeballs: ; 3a948 (e:6948)
ld a, $8
ld [wTrainerEngageDistance], a
ld hl, wOAMBuffer
- call Func_3a8e1
+ call WritePokeballOAMData
ld hl, wEnemyMons ; wEnemyMon1Species
ld de, wEnemyPartyCount ; wEnemyPartyCount
call SetupPokeballs
@@ -1550,7 +1558,7 @@ SetupPlayerAndEnemyPokeballs: ; 3a948 (e:6948)
ld [hli], a
ld [hl], $68
ld hl, wOAMBuffer + $18
- jp Func_3a8e1
+ jp WritePokeballOAMData
; four tiles: pokeball, black pokeball (status ailment), crossed out pokeball (faited) and pokeball slot (no mon)
PokeballTileGraphics:: ; 3a97e (e:697e)
diff --git a/engine/battle/e_2.asm b/engine/battle/e_2.asm
index 6c159c56..9400282d 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
+ ld a, [H_WHOSETURN]
and a
- ld de, wBattleMonHP ; wd015
- ld hl, wBattleMonMaxHP ; wd023
- ld a, [W_PLAYERMOVENUM] ; wcfd2
+ ld de, wBattleMonHP
+ ld hl, wBattleMonMaxHP
+ ld a, [W_PLAYERMOVENUM]
jr z, .asm_3ba03
- ld de, wEnemyMonHP ; wEnemyMonHP
- ld hl, wEnemyMonMaxHP ; wEnemyMonMaxHP
- ld a, [W_ENEMYMOVENUM] ; W_ENEMYMOVENUM
+ ld de, wEnemyMonHP
+ ld hl, wEnemyMonMaxHP
+ ld a, [W_ENEMYMOVENUM]
.asm_3ba03
ld b, a
ld a, [de]
@@ -16,27 +16,27 @@ HealEffect_: ; 3b9ec (e:79ec)
inc hl
ld a, [de]
sbc [hl]
- jp z, Func_3ba97
+ jp z, .failed
ld a, b
cp REST
jr nz, .asm_3ba37
push hl
push de
push af
- ld c, $32
+ ld c, 50
call DelayFrames
- ld hl, wBattleMonStatus ; wBattleMonStatus
- ld a, [H_WHOSETURN] ; $fff3
+ ld hl, wBattleMonStatus
+ ld a, [H_WHOSETURN]
and a
jr z, .asm_3ba25
- ld hl, wEnemyMonStatus ; wcfe9
+ ld hl, wEnemyMonStatus
.asm_3ba25
ld a, [hl]
and a
ld [hl], 2 ; Number of turns from Rest
- ld hl, StartedSleepingEffect ; $7aa2
+ ld hl, StartedSleepingEffect
jr z, .asm_3ba31
- ld hl, FellAsleepBecameHealthyText ; $7aa7
+ ld hl, FellAsleepBecameHealthyText
.asm_3ba31
call PrintText
pop af
@@ -81,9 +81,9 @@ HealEffect_: ; 3b9ec (e:79ec)
ld [de], a
ld [wHPBarNewHP], a
.asm_3ba6f
- ld hl, Func_3fba8 ; $7ba8
+ ld hl, PlayCurrentMoveAnimation
call BankswitchEtoF
- ld a, [H_WHOSETURN] ; $fff3
+ ld a, [H_WHOSETURN]
and a
hlCoord 10, 9
ld a, $1
@@ -91,15 +91,14 @@ HealEffect_: ; 3b9ec (e:79ec)
hlCoord 2, 2
xor a
.asm_3ba83
- ld [wListMenuID], a ; wListMenuID
+ ld [wHPBarType], a
predef UpdateHPBar2
- ld hl, DrawHUDsAndHPBars ; $4d5a
+ ld hl, DrawHUDsAndHPBars
call BankswitchEtoF
- ld hl, RegainedHealthText ; $7aac
+ ld hl, RegainedHealthText
jp PrintText
-
-Func_3ba97: ; 3ba97 (e:7a97)
- ld c, $32
+.failed
+ ld c, 50
call DelayFrames
ld hl, PrintButItFailedText_
jp BankswitchEtoF
@@ -119,37 +118,37 @@ RegainedHealthText: ; 3baac (e:7aac)
TransformEffect_: ; 3bab1 (e:7ab1)
ld hl, wBattleMonSpecies
ld de, wEnemyMonSpecies
- ld bc, W_ENEMYBATTSTATUS3 ; W_ENEMYBATTSTATUS3
- ld a, [W_ENEMYBATTSTATUS1] ; W_ENEMYBATTSTATUS1
- ld a, [H_WHOSETURN] ; $fff3
+ ld bc, W_ENEMYBATTSTATUS3
+ ld a, [W_ENEMYBATTSTATUS1]
+ ld a, [H_WHOSETURN]
and a
jr nz, .asm_3bad1
ld hl, wEnemyMonSpecies
ld de, wBattleMonSpecies
- ld bc, W_PLAYERBATTSTATUS3 ; W_PLAYERBATTSTATUS3
- ld [wPlayerMoveListIndex], a ; wPlayerMoveListIndex
- ld a, [W_PLAYERBATTSTATUS1] ; W_PLAYERBATTSTATUS1
+ ld bc, W_PLAYERBATTSTATUS3
+ ld [wPlayerMoveListIndex], a
+ ld a, [W_PLAYERBATTSTATUS1]
.asm_3bad1
bit Invulnerable, a ; is mon invulnerable to typical attacks? (fly/dig)
- jp nz, Func_3bb8c
+ jp nz, .failed
push hl
push de
push bc
- ld hl, W_PLAYERBATTSTATUS2 ; W_PLAYERBATTSTATUS2
- ld a, [H_WHOSETURN] ; $fff3
+ ld hl, W_PLAYERBATTSTATUS2
+ ld a, [H_WHOSETURN]
and a
jr z, .asm_3bae4
- ld hl, W_ENEMYBATTSTATUS2 ; W_ENEMYBATTSTATUS2
+ ld hl, W_ENEMYBATTSTATUS2
.asm_3bae4
bit HasSubstituteUp, [hl]
push af
ld hl, Func_79747
ld b, BANK(Func_79747)
call nz, Bankswitch
- ld a, [W_OPTIONS] ; W_OPTIONS
+ ld a, [W_OPTIONS]
add a
- ld hl, Func_3fba8 ; $7ba8
- ld b, BANK(Func_3fba8)
+ ld hl, PlayCurrentMoveAnimation
+ ld b, BANK(PlayCurrentMoveAnimation)
jr nc, .asm_3baff
ld hl, AnimationTransformMon
ld b, BANK(AnimationTransformMon)
@@ -178,7 +177,7 @@ TransformEffect_: ; 3bab1 (e:7ab1)
inc bc
inc bc
call CopyData
- ld a, [H_WHOSETURN] ; $fff3
+ ld a, [H_WHOSETURN]
and a
jr z, .asm_3bb32
ld a, [de]
@@ -228,15 +227,15 @@ TransformEffect_: ; 3bab1 (e:7ab1)
call GetMonName
ld hl, wEnemyMonUnmodifiedAttack
ld de, wPlayerMonUnmodifiedAttack
- call Func_3bb7d
- ld hl, wEnemyMonStatMods ; wcd2e
- ld de, wPlayerMonStatMods ; wcd1a
- call Func_3bb7d
- ld hl, TransformedText ; $7b92
+ call .copyBasedOnTurn
+ ld hl, wEnemyMonStatMods
+ ld de, wPlayerMonStatMods
+ call .copyBasedOnTurn
+ ld hl, TransformedText
jp PrintText
-Func_3bb7d: ; 3bb7d (e:7b7d)
- ld a, [H_WHOSETURN] ; $fff3
+.copyBasedOnTurn
+ ld a, [H_WHOSETURN]
and a
jr z, .asm_3bb86
push hl
@@ -247,8 +246,8 @@ Func_3bb7d: ; 3bb7d (e:7b7d)
ld bc, $8
jp CopyData
-Func_3bb8c: ; 3bb8c (e:7b8c)
- ld hl, PrintButItFailedText_ ; $7b53
+.failed
+ ld hl, PrintButItFailedText_
jp BankswitchEtoF
TransformedText: ; 3bb92 (e:7b92)
@@ -256,13 +255,13 @@ TransformedText: ; 3bb92 (e:7b92)
db "@"
ReflectLightScreenEffect_: ; 3bb97 (e:7b97)
- ld hl, W_PLAYERBATTSTATUS3 ; W_PLAYERBATTSTATUS3
- ld de, W_PLAYERMOVEEFFECT ; wcfd3
- ld a, [H_WHOSETURN] ; $fff3
+ ld hl, W_PLAYERBATTSTATUS3
+ ld de, W_PLAYERMOVEEFFECT
+ ld a, [H_WHOSETURN]
and a
jr z, .asm_3bba8
- ld hl, W_ENEMYBATTSTATUS3 ; W_ENEMYBATTSTATUS3
- ld de, W_ENEMYMOVEEFFECT ; W_ENEMYMOVEEFFECT
+ ld hl, W_ENEMYBATTSTATUS3
+ ld de, W_ENEMYMOVEEFFECT
.asm_3bba8
ld a, [de]
cp LIGHT_SCREEN_EFFECT
@@ -270,23 +269,23 @@ ReflectLightScreenEffect_: ; 3bb97 (e:7b97)
bit HasLightScreenUp, [hl] ; is mon already protected by light screen?
jr nz, .moveFailed
set HasLightScreenUp, [hl] ; mon is now protected by light screen
- ld hl, LightScreenProtectedText ; $7bd7
+ ld hl, LightScreenProtectedText
jr .asm_3bbc1
.reflect
bit HasReflectUp, [hl] ; is mon already protected by reflect?
jr nz, .moveFailed
set HasReflectUp, [hl] ; mon is now protected by reflect
- ld hl, ReflectGainedArmorText ; $7bdc
+ ld hl, ReflectGainedArmorText
.asm_3bbc1
push hl
- ld hl, Func_3fba8 ; $7ba8
+ ld hl, PlayCurrentMoveAnimation
call BankswitchEtoF
pop hl
jp PrintText
.moveFailed
ld c, $32
call DelayFrames
- ld hl, PrintButItFailedText_ ; $7b53
+ ld hl, PrintButItFailedText_
jp BankswitchEtoF
LightScreenProtectedText: ; 3bbd7 (e:7bd7)
diff --git a/engine/cable_club.asm b/engine/cable_club.asm
index f1278c83..4fbb13d9 100755
--- a/engine/cable_club.asm
+++ b/engine/cable_club.asm
@@ -338,10 +338,10 @@ TradeCenter_SelectMon:
ld a, 1
ld [wTopMenuItemX], a
.enemyMonMenu_HandleInput
- ld hl, $fff6
+ ld hl, hFlags_0xFFF6
set 1, [hl]
call HandleMenuInput
- ld hl, $fff6
+ ld hl, hFlags_0xFFF6
res 1, [hl]
and a
jp z, .getNewInput
@@ -403,10 +403,10 @@ TradeCenter_SelectMon:
ld bc, $0601
call ClearScreenArea
.playerMonMenu_HandleInput
- ld hl, $fff6
+ ld hl, hFlags_0xFFF6
set 1, [hl]
call HandleMenuInput
- ld hl, $fff6
+ ld hl, hFlags_0xFFF6
res 1, [hl]
and a ; was anything pressed?
jr nz, .playerMonMenu_SomethingPressed
@@ -578,7 +578,7 @@ TradeCenter_SelectMon:
ReturnToCableClubRoom: ; 577d (1:577d)
call GBPalWhiteOutWithDelay3
- ld hl, wcfc4
+ ld hl, wFontLoaded
ld a, [hl]
push af
push hl
@@ -716,7 +716,7 @@ TradeCenter_Trade:
ld bc, $080b
ld a, TRADE_CANCEL_MENU
ld [wTwoOptionMenuID], a
- ld a, $14
+ ld a, TWO_OPTION_MENU
ld [wTextBoxID], a
call DisplayTextBoxID
call LoadScreenTilesFromBuffer1
@@ -808,7 +808,7 @@ TradeCenter_Trade:
ld a, c
ld bc, wEnemyMon2 - wEnemyMon1
call AddNTimes
- ld de, wcf98
+ ld de, wLoadedMon
ld bc, wEnemyMon2 - wEnemyMon1
call CopyData
call AddEnemyMonToPlayerParty
diff --git a/engine/clear_save.asm b/engine/clear_save.asm
index 8fde1f0c..66d7e920 100755
--- a/engine/clear_save.asm
+++ b/engine/clear_save.asm
@@ -1,4 +1,4 @@
-Func_1c98a: ; 1c98a (7:498a)
+DoClearSaveDialogue: ; 1c98a (7:498a)
call ClearScreen
call GoPAL_SET_CF1C
call LoadFontTilePatterns
@@ -9,13 +9,13 @@ Func_1c98a: ; 1c98a (7:498a)
ld bc, $80f
ld a, NO_YES_MENU
ld [wTwoOptionMenuID], a
- ld a, $14
+ ld a, TWO_OPTION_MENU
ld [wTextBoxID], a
call DisplayTextBoxID
- ld a, [wCurrentMenuItem] ; wCurrentMenuItem
+ ld a, [wCurrentMenuItem]
and a
jp z, Init
- callba Func_73b6a
+ callba ClearSAV
jp Init
ClearSaveDataText: ; 1c9c1 (7:49c1)
diff --git a/engine/evos_moves.asm b/engine/evos_moves.asm
index 2c504104..23bffa8d 100755
--- a/engine/evos_moves.asm
+++ b/engine/evos_moves.asm
@@ -88,7 +88,7 @@ Evolution_PartyMonLoop: ; loop over party mons
jp nz, .nextEvoEntry1 ; if not trading, go to the next evolution entry
ld a, [hli] ; level requirement
ld b, a
- ld a, [wcfb9]
+ ld a, [wLoadedMonLevel]
cp b ; is the mon's level greater than the evolution requirement?
jp c, Evolution_PartyMonLoop ; if so, go the next mon
jr .asm_3adb6
@@ -101,7 +101,7 @@ Evolution_PartyMonLoop: ; loop over party mons
.checkLevel
ld a, [hli] ; level requirement
ld b, a
- ld a, [wcfb9]
+ ld a, [wLoadedMonLevel]
cp b ; is the mon's level greater than the evolution requirement?
jp c, .nextEvoEntry2 ; if so, go the next evolution entry
.asm_3adb6
@@ -136,10 +136,10 @@ Evolution_PartyMonLoop: ; loop over party mons
pop hl
ld a, [hl]
ld [wd0b5], a
- ld [wcf98], a
+ ld [wLoadedMonSpecies], a
ld [wHPBarMaxHP + 1], a
ld a, MONSTER_NAME
- ld [W_LISTTYPE], a
+ ld [wNameListType], a
ld a, BANK(TrainerNames) ; bank is not used for monster names
ld [wPredefBank], a
call GetName
@@ -169,8 +169,8 @@ Evolution_PartyMonLoop: ; loop over party mons
ld [W_MONHDEXNUM], a
pop af
ld [wd11e], a
- ld hl, wcfa8
- ld de, wcfba
+ ld hl, wLoadedMonHPExp - 1
+ ld de, wLoadedMonStats
ld b, $1
call CalcStats
ld a, [wWhichPokemon]
@@ -186,14 +186,14 @@ Evolution_PartyMonLoop: ; loop over party mons
ld a, [hli]
ld b, a
ld c, [hl]
- ld hl, wcfbb
+ ld hl, wLoadedMonMaxHP + 1
ld a, [hld]
sub c
ld c, a
ld a, [hl]
sbc b
ld b, a
- ld hl, wcf9a
+ ld hl, wLoadedMonHP + 1
ld a, [hl]
add c
ld [hld], a
@@ -226,7 +226,7 @@ Evolution_PartyMonLoop: ; loop over party mons
call Evolution_FlagAction
pop de
pop hl
- ld a, [wcf98]
+ ld a, [wLoadedMonSpecies]
ld [hl], a
push hl
ld l, e
@@ -364,7 +364,7 @@ LearnMoveFromLevelUp: ; 3af5b (e:6f5b)
dec b
jr nz, .checkCurrentMovesLoop
ld a, d
- ld [wd0e0], a
+ ld [wMoveNum], a
ld [wd11e], a
call GetMoveName
call CopyStringToCF4B
diff --git a/engine/experience.asm b/engine/experience.asm
index 91f1dd5d..68d22843 100755
--- a/engine/experience.asm
+++ b/engine/experience.asm
@@ -1,6 +1,6 @@
; calculates the level a mon should be based on its current exp
CalcLevelFromExperience: ; 58f43 (16:4f43)
- ld a, [wcf98]
+ ld a, [wLoadedMonSpecies]
ld [wd0b5], a
call GetMonHeader
ld d, $1 ; init level to 1
@@ -8,7 +8,7 @@ CalcLevelFromExperience: ; 58f43 (16:4f43)
inc d ; increment level
call CalcExperience
push hl
- ld hl, wcfa8 ; current exp
+ ld hl, wLoadedMonExp + 2 ; current exp
; compare exp needed for level d with current exp
ld a, [H_MULTIPLICAND + 2]
ld c, a
diff --git a/engine/give_pokemon.asm b/engine/give_pokemon.asm
index d4d58d33..64876d22 100755
--- a/engine/give_pokemon.asm
+++ b/engine/give_pokemon.asm
@@ -14,7 +14,7 @@ _GivePokemon: ; 4fda5 (13:7da5)
ld [wEnemyMonSpecies2], a
callab LoadEnemyMonData
call SetPokedexOwnedFlag
- callab Func_e7a4
+ callab SendNewMonToBox
ld hl, wcf4b
ld a, [wd5a0]
and $7f
diff --git a/engine/hall_of_fame.asm b/engine/hall_of_fame.asm
index 80acfeeb..30979118 100755
--- a/engine/hall_of_fame.asm
+++ b/engine/hall_of_fame.asm
@@ -170,7 +170,7 @@ Func_702f0: ; 702f0 (1c:42f0)
ld a, [wWhichTrade] ; wWhichTrade
ld [wd0b5], a
hlCoord 3, 9
- predef Func_27d6b
+ predef PrintMonType
ld a, [wWhichTrade] ; wWhichTrade
jp PlayCry
diff --git a/engine/hidden_object_functions17.asm b/engine/hidden_object_functions17.asm
index e0e38a2a..9dbcbf98 100755
--- a/engine/hidden_object_functions17.asm
+++ b/engine/hidden_object_functions17.asm
@@ -66,7 +66,7 @@ DisplayMonFrontSpriteInBox: ; 5dbd9 (17:5bd9)
xor a
ld [hWY], a
call SaveScreenTilesToBuffer1
- ld a, $11
+ ld a, MON_SPRITE_POPUP
ld [wTextBoxID], a
call DisplayTextBoxID
call UpdateSprites
diff --git a/engine/hp_bar.asm b/engine/hp_bar.asm
index 9ff9e3cf..333b0b90 100755
--- a/engine/hp_bar.asm
+++ b/engine/hp_bar.asm
@@ -203,7 +203,7 @@ UpdateHPBar_CalcHPDifference: ; fad7 (3:7ad7)
UpdateHPBar_PrintHPNumber: ; faf5 (3:7af5)
push af
push de
- ld a, [wListMenuID] ; wListMenuID
+ ld a, [wHPBarType]
and a
jr z, .asm_fb2d
ld a, [wHPBarOldHP]
@@ -211,7 +211,7 @@ UpdateHPBar_PrintHPNumber: ; faf5 (3:7af5)
ld a, [wHPBarOldHP+1]
ld [wcef0], a
push hl
- ld a, [$fff6]
+ ld a, [hFlags_0xFFF6]
bit 0, a
jr z, .asm_fb15
ld de, $9
diff --git a/engine/items/items.asm b/engine/items/items.asm
index d8b7f9e3..c1268cd5 100755
--- a/engine/items/items.asm
+++ b/engine/items/items.asm
@@ -430,7 +430,7 @@ ItemUseBall: ; d687 (3:5687)
jr .End
.sendToBox ;$5907
call ClearSprites
- call Func_e7a4
+ call SendNewMonToBox
ld hl,ItemUseBallText07
ld a,[wd7f1]
bit 0,a ;already met Bill?
@@ -777,7 +777,7 @@ ItemUseMedicine: ; dabb (3:5abb)
ld de,wBattleMonMaxHP
ld bc,10
call CopyData ; copy party stats to in-battle stat data
- predef Func_3ed02
+ predef DoubleOrHalveSelectedStats
jp .doneHealing
.healHP
inc hl ; hl = address of current HP
@@ -919,15 +919,15 @@ ItemUseMedicine: ; dabb (3:5abb)
call AddNTimes ; calculate coordinates of HP bar of pokemon that used Softboiled
ld a,(SFX_02_3d - SFX_Headers_02) / 3
call PlaySoundWaitForCurrent ; play sound
- ld a,[$fff6]
+ ld a,[hFlags_0xFFF6]
set 0,a
- ld [$fff6],a
+ ld [hFlags_0xFFF6],a
ld a,$02
- ld [wListMenuID],a
+ ld [wHPBarType],a
predef UpdateHPBar2 ; animate HP bar decrease of pokemon that used Softboiled
- ld a,[$fff6]
+ ld a,[hFlags_0xFFF6]
res 0,a
- ld [$fff6],a
+ ld [hFlags_0xFFF6],a
pop af
ld b,a ; store heal amount (1/5 of max HP)
ld hl,wHPBarOldHP + 1
@@ -1069,15 +1069,15 @@ ItemUseMedicine: ; dabb (3:5abb)
jr z,.playStatusAilmentCuringSound
ld a,(SFX_02_3d - SFX_Headers_02) / 3 ; HP healing sound
call PlaySoundWaitForCurrent ; play sound
- ld a,[$fff6]
+ ld a,[hFlags_0xFFF6]
set 0,a
- ld [$fff6],a
+ ld [hFlags_0xFFF6],a
ld a,$02
- ld [wListMenuID],a
+ ld [wHPBarType],a
predef UpdateHPBar2 ; animate the HP bar lengthening
- ld a,[$fff6]
+ ld a,[hFlags_0xFFF6]
res 0,a
- ld [$fff6],a
+ ld [hFlags_0xFFF6],a
ld a,$f7 ; revived message
ld [wd07d],a
ld a,[wcf91]
@@ -1090,7 +1090,7 @@ ItemUseMedicine: ; dabb (3:5abb)
jr .showHealingItemMessage
.playStatusAilmentCuringSound
ld a,(SFX_02_3e - SFX_Headers_02) / 3 ; status ailment curing sound
- call PlaySoundWaitForCurrent ; play sound
+ call PlaySoundWaitForCurrent
.showHealingItemMessage
xor a
ld [H_AUTOBGTRANSFERENABLED],a
@@ -1102,7 +1102,7 @@ ItemUseMedicine: ; dabb (3:5abb)
ld [H_AUTOBGTRANSFERENABLED],a
ld c,50
call DelayFrames
- call WaitForTextScrollButtonPress ; wait for a button press
+ call WaitForTextScrollButtonPress
jr .done
.canceledItemUse
xor a
@@ -1118,7 +1118,7 @@ ItemUseMedicine: ; dabb (3:5abb)
ld a,[W_ISINBATTLE]
and a
ret nz
- jp ReloadMapData ; restore saved screen
+ jp ReloadMapData
.useVitamin
push hl
ld a,[hl]
@@ -2084,7 +2084,7 @@ ItemUseTMHM: ; e479 (3:6479)
ld [wd11e],a
predef TMToMove ; get move ID from TM/HM ID
ld a,[wd11e]
- ld [wd0e0],a
+ ld [wMoveNum],a
call GetMoveName
call CopyStringToCF4B ; copy name to wcf4b
pop af
@@ -2097,7 +2097,7 @@ ItemUseTMHM: ; e479 (3:6479)
call PrintText
hlCoord 14, 7
ld bc,$080f
- ld a,$14
+ ld a,TWO_OPTION_MENU
ld [wTextBoxID],a
call DisplayTextBoxID ; yes/no menu
ld a,[wCurrentMenuItem]
@@ -2488,7 +2488,7 @@ TossItem_: ; e6f1 (3:66f1)
call PrintText
hlCoord 14, 7
ld bc,$080f
- ld a,$14
+ ld a,TWO_OPTION_MENU
ld [wTextBoxID],a
call DisplayTextBoxID ; yes/no menu
ld a,[wd12e]
@@ -2567,7 +2567,7 @@ IsKeyItem_: ; e764 (3:6764)
INCLUDE "data/key_items.asm"
-Func_e7a4: ; e7a4 (3:67a4)
+SendNewMonToBox: ; e7a4 (3:67a4)
ld de, W_NUMINBOX ; wda80
ld a, [de]
inc a
@@ -2818,49 +2818,51 @@ ItemUseReloadOverworldData: ; e9c5 (3:69c5)
call LoadCurrentMapView
jp UpdateSprites
-Func_e9cb: ; e9cb (3:69cb)
- ld hl, WildDataPointers ; $4eeb
- ld de, wHPBarMaxHP
+; creates a list at wBuffer of maps where the mon in [wd11e] can be found.
+; this is used by the pokedex to display locations the mon can be found on the map.
+FindWildLocationsOfMon: ; e9cb (3:69cb)
+ ld hl, WildDataPointers
+ ld de, wBuffer
ld c, $0
-.asm_e9d3
+.loop
inc hl
ld a, [hld]
inc a
- jr z, .asm_e9ec
+ jr z, .done
push hl
ld a, [hli]
ld h, [hl]
ld l, a
ld a, [hli]
and a
- call nz, Func_e9f0
+ call nz, CheckMapForMon ; land
ld a, [hli]
and a
- call nz, Func_e9f0
+ call nz, CheckMapForMon ; water
pop hl
inc hl
inc hl
inc c
- jr .asm_e9d3
-.asm_e9ec
- ld a, $ff
+ jr .loop
+.done
+ ld a, $ff ; list terminator
ld [de], a
ret
-Func_e9f0: ; e9f0 (3:69f0)
+CheckMapForMon: ; e9f0 (3:69f0)
inc hl
ld b, $a
-.asm_e9f3
+.loop
ld a, [wd11e]
cp [hl]
- jr nz, .asm_e9fc
+ jr nz, .nextEntry
ld a, c
ld [de], a
inc de
-.asm_e9fc
+.nextEntry
inc hl
inc hl
dec b
- jr nz, .asm_e9f3
+ jr nz, .loop
dec hl
ret
diff --git a/engine/items/tmhm.asm b/engine/items/tmhm.asm
index 01a48ebb..0fcc5710 100755
--- a/engine/items/tmhm.asm
+++ b/engine/items/tmhm.asm
@@ -1,12 +1,12 @@
-; checks if the mon in wWhichPokemon already knows the move in wd0e0
+; checks if the mon in [wWhichPokemon] already knows the move in [wMoveNum]
CheckIfMoveIsKnown: ; 2fe18 (b:7e18)
ld a, [wWhichPokemon]
ld hl, wPartyMon1Moves
- ld bc, $2c
+ ld bc, wPartyMon2 - wPartyMon1
call AddNTimes
- ld a, [wd0e0]
+ ld a, [wMoveNum]
ld b, a
- ld c, $4 ; nubmer of moves
+ ld c, NUM_MOVES
.loop
ld a, [hli]
cp b
diff --git a/engine/items/tms.asm b/engine/items/tms.asm
index ef427860..511aab5b 100755
--- a/engine/items/tms.asm
+++ b/engine/items/tms.asm
@@ -1,11 +1,11 @@
-; tests if mon [wcf91] can learn move [wd0e0]
+; tests if mon [wcf91] can learn move [wMoveNum]
CanLearnTM: ; 1373e (4:773e)
ld a, [wcf91]
ld [wd0b5], a
call GetMonHeader
ld hl, W_MONHLEARNSET
push hl
- ld a, [wd0e0]
+ ld a, [wMoveNum]
ld b, a
ld c, $0
ld hl, TechnicalMachines
diff --git a/engine/learn_move.asm b/engine/learn_move.asm
index 5dab5748..75056edb 100755
--- a/engine/learn_move.asm
+++ b/engine/learn_move.asm
@@ -1,7 +1,7 @@
LearnMove: ; 6e43 (1:6e43)
call SaveScreenTilesToBuffer1
- ld a, [wWhichPokemon] ; wWhichPokemon
- ld hl, wPartyMonNicks ; wPartyMonNicks
+ ld a, [wWhichPokemon]
+ ld hl, wPartyMonNicks
call GetPartyMonName
ld hl, wcd6d
ld de, wd036
@@ -9,9 +9,9 @@ LearnMove: ; 6e43 (1:6e43)
call CopyData
DontAbandonLearning: ; 6e5b (1:6e5b)
- ld hl, wPartyMon1Moves ; wPartyMon1Moves
+ ld hl, wPartyMon1Moves
ld bc, $2c
- ld a, [wWhichPokemon] ; wWhichPokemon
+ ld a, [wWhichPokemon]
call AddNTimes
ld d, h
ld e, l
@@ -36,14 +36,14 @@ DontAbandonLearning: ; 6e5b (1:6e5b)
pop de
pop hl
.asm_6e8b
- ld a, [wd0e0]
+ ld a, [wMoveNum]
ld [hl], a
ld bc, $15
add hl, bc
push hl
push de
dec a
- ld hl, Moves ; $4000
+ ld hl, Moves
ld bc, $6
call AddNTimes
ld de, wHPBarMaxHP
@@ -53,22 +53,22 @@ DontAbandonLearning: ; 6e5b (1:6e5b)
pop de
pop hl
ld [hl], a
- ld a, [W_ISINBATTLE] ; W_ISINBATTLE
+ ld a, [W_ISINBATTLE]
and a
jp z, PrintLearnedMove
- ld a, [wWhichPokemon] ; wWhichPokemon
+ ld a, [wWhichPokemon]
ld b, a
- ld a, [wPlayerMonNumber] ; wPlayerMonNumber
+ ld a, [wPlayerMonNumber]
cp b
jp nz, PrintLearnedMove
ld h, d
ld l, e
ld de, wBattleMonMoves
- ld bc, $4
+ ld bc, NUM_MOVES
call CopyData
ld bc, $11
add hl, bc
- ld de, wBattleMonPP ; wBattleMonPP
+ ld de, wBattleMonPP
ld bc, $4
call CopyData
jp PrintLearnedMove
@@ -78,10 +78,10 @@ AbandonLearning: ; 6eda (1:6eda)
call PrintText
hlCoord 14, 7
ld bc, $80f
- ld a, $14
+ ld a, TWO_OPTION_MENU
ld [wTextBoxID], a
- call DisplayTextBoxID
- ld a, [wCurrentMenuItem] ; wCurrentMenuItem
+ call DisplayTextBoxID ; yes/no menu
+ ld a, [wCurrentMenuItem]
and a
jp nz, DontAbandonLearning
ld hl, DidNotLearnText
@@ -101,20 +101,20 @@ TryingToLearn: ; 6f07 (1:6f07)
call PrintText
hlCoord 14, 7
ld bc, $80f
- ld a, $14
+ ld a, TWO_OPTION_MENU
ld [wTextBoxID], a
- call DisplayTextBoxID
+ call DisplayTextBoxID ; yes/no menu
pop hl
- ld a, [wCurrentMenuItem] ; wCurrentMenuItem
+ ld a, [wCurrentMenuItem]
rra
ret c
ld bc, $fffc
add hl, bc
push hl
- ld de, wd0dc
- ld bc, $4
+ ld de, wMoves
+ ld bc, NUM_MOVES
call CopyData
- callab Func_39b87
+ callab FormatMovesString
pop hl
.asm_6f39
push hl
@@ -125,15 +125,15 @@ TryingToLearn: ; 6f07 (1:6f07)
ld c, $e
call TextBoxBorder
hlCoord 6, 8
- ld de, wd0e1
- ld a, [$fff6]
+ ld de, wMovesString
+ ld a, [hFlags_0xFFF6]
set 2, a
- ld [$fff6], a
+ ld [hFlags_0xFFF6], a
call PlaceString
- ld a, [$fff6]
+ ld a, [hFlags_0xFFF6]
res 2, a
- ld [$fff6], a
- ld hl, wTopMenuItemY ; wTopMenuItemY
+ ld [hFlags_0xFFF6], a
+ ld hl, wTopMenuItemY
ld a, $8
ld [hli], a
ld a, $5
@@ -146,10 +146,10 @@ TryingToLearn: ; 6f07 (1:6f07)
ld a, $3
ld [hli], a
ld [hl], $0
- ld hl, $fff6
+ ld hl, hFlags_0xFFF6
set 1, [hl]
call HandleMenuInput
- ld hl, $fff6
+ ld hl, hFlags_0xFFF6
res 1, [hl]
push af
call LoadScreenTilesFromBuffer1
@@ -158,7 +158,7 @@ TryingToLearn: ; 6f07 (1:6f07)
bit 1, a
jr nz, .asm_6fab
push hl
- ld a, [wCurrentMenuItem] ; wCurrentMenuItem
+ ld a, [wCurrentMenuItem]
ld c, a
ld b, $0
add hl, bc
diff --git a/engine/menu/bills_pc.asm b/engine/menu/bills_pc.asm
index a26c5aed..61e6204e 100644
--- a/engine/menu/bills_pc.asm
+++ b/engine/menu/bills_pc.asm
@@ -1,6 +1,6 @@
Func_213c8:: ; 213c8 (8:53c8)
xor a
- ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
+ ld [H_AUTOBGTRANSFERENABLED], a
call SaveScreenTilesToBuffer2
ld a, [wd5a2]
and a
@@ -28,64 +28,64 @@ Func_213c8:: ; 213c8 (8:53c8)
call TextBoxBorder
call UpdateSprites
ld a, $3
- ld [wMaxMenuItem], a ; wMaxMenuItem
+ ld [wMaxMenuItem], a
ld a, [wd7f1]
bit 0, a
jr nz, .asm_21414
hlCoord 2, 2
- ld de, SomeonesPCText ; $548b
+ ld de, SomeonesPCText
jr .asm_2141a
.asm_21414
hlCoord 2, 2
- ld de, BillsPCText ; $5497
+ ld de, BillsPCText
.asm_2141a
call PlaceString
hlCoord 2, 4
- ld de, wPlayerName ; wd158
+ ld de, wPlayerName
call PlaceString
ld l, c
ld h, b
- ld de, PlayersPCText ; $54a0
+ ld de, PlayersPCText
call PlaceString
ld a, [wd74b]
bit 5, a
jr z, .asm_21462
hlCoord 2, 6
- ld de, OaksPCText ; $54a5
+ ld de, OaksPCText
call PlaceString
ld a, [wd5a2]
and a
jr z, .asm_2145a
ld a, $4
- ld [wMaxMenuItem], a ; wMaxMenuItem
+ ld [wMaxMenuItem], a
hlCoord 2, 8
- ld de, PKMNLeaguePCText ; $54b2
+ ld de, PKMNLeaguePCText
call PlaceString
hlCoord 2, 10
- ld de, LogOffPCText ; $54ba
+ ld de, LogOffPCText
jr .asm_2146d
.asm_2145a
hlCoord 2, 8
- ld de, LogOffPCText ; $54ba
+ ld de, LogOffPCText
jr .asm_2146d
.asm_21462
ld a, $2
- ld [wMaxMenuItem], a ; wMaxMenuItem
+ ld [wMaxMenuItem], a
hlCoord 2, 6
- ld de, LogOffPCText ; $54ba
+ ld de, LogOffPCText
.asm_2146d
call PlaceString
ld a, $3
- ld [wMenuWatchedKeys], a ; wMenuWatchedKeys
+ ld [wMenuWatchedKeys], a
ld a, $2
- ld [wTopMenuItemY], a ; wTopMenuItemY
+ ld [wTopMenuItemY], a
ld a, $1
- ld [wTopMenuItemX], a ; wTopMenuItemX
+ ld [wTopMenuItemX], a
xor a
- ld [wCurrentMenuItem], a ; wCurrentMenuItem
- ld [wLastMenuItem], a ; wLastMenuItem
+ ld [wCurrentMenuItem], a
+ ld [wLastMenuItem], a
ld a, $1
- ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
+ ld [H_AUTOBGTRANSFERENABLED], a
ret
SomeonesPCText: db "SOMEONE's PC@"
@@ -101,9 +101,9 @@ BillsPC_:: ; 0x214c2
xor a
ld [wccd3], a
inc a ; MONSTER_NAME
- ld [W_LISTTYPE], a
+ ld [wNameListType], a
call LoadHpBarAndStatusTilePatterns
- ld a, [wListScrollOffset] ; wcc36
+ ld a, [wListScrollOffset]
push af
ld a, [wFlags_0xcd60]
bit 3, a
@@ -116,9 +116,9 @@ BillsPC_:: ; 0x214c2
Func_214e8: ; 214e8 (8:54e8)
BillsPCMenu:
ld a, [wccd3]
- ld [wCurrentMenuItem], a ; wCurrentMenuItem
+ ld [wCurrentMenuItem], a
ld hl, vChars2 + $780
- ld de, PokeballTileGraphics ; $697e
+ ld de, PokeballTileGraphics
ld bc, (BANK(PokeballTileGraphics) << 8) + $01
call CopyVideoData
call LoadScreenTilesFromBuffer2DisableBGTransfer
@@ -127,9 +127,9 @@ BillsPCMenu:
ld c, $c
call TextBoxBorder
hlCoord 2, 2
- ld de, BillsPCMenuText ; $56e1
+ ld de, BillsPCMenuText
call PlaceString
- ld hl, wTopMenuItemY ; wTopMenuItemY
+ ld hl, wTopMenuItemY
ld a, $2
ld [hli], a
dec a
@@ -143,10 +143,10 @@ BillsPCMenu:
xor a
ld [hli], a
ld [hli], a
- ld hl, wListScrollOffset ; wcc36
+ ld hl, wListScrollOffset
ld [hli], a
ld [hl], a
- ld [wPlayerMonNumber], a ; wPlayerMonNumber
+ ld [wPlayerMonNumber], a
ld hl, WhatText
call PrintText
hlCoord 9, 14
@@ -167,16 +167,16 @@ BillsPCMenu:
.asm_21551
Coorda 18, 16
hlCoord 10, 16
- ld de, BoxNoPCText ; $5713
+ ld de, BoxNoPCText
call PlaceString
ld a, $1
- ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
+ ld [H_AUTOBGTRANSFERENABLED], a
call Delay3
call HandleMenuInput
bit 1, a
jp nz, Func_21588 ; b button
call PlaceUnfilledArrowMenuCursor
- ld a, [wCurrentMenuItem] ; wCurrentMenuItem
+ ld a, [wCurrentMenuItem]
ld [wccd3], a
and a
jp z, Func_21618 ; withdraw
@@ -200,28 +200,28 @@ Func_21588: ; 21588 (8:5588)
res 5, [hl]
call LoadScreenTilesFromBuffer2
pop af
- ld [wListScrollOffset], a ; wcc36
+ ld [wListScrollOffset], a
ld hl, wd730
res 6, [hl]
ret
Func_215ac: ; 215ac (8:55ac)
BillsPCDeposit:
- ld a, [wPartyCount] ; wPartyCount
+ ld a, [wPartyCount]
dec a
jr nz, .asm_215bb
ld hl, CantDepositLastMonText
call PrintText
jp BillsPCMenu
.asm_215bb
- ld a, [W_NUMINBOX] ; wda80
+ ld a, [W_NUMINBOX]
cp MONS_PER_BOX
jr nz, .asm_215cb
- ld hl, BoxFullText ; $5802
+ ld hl, BoxFullText
call PrintText
jp BillsPCMenu
.asm_215cb
- ld hl, wPartyCount ; wPartyCount
+ ld hl, wPartyCount
call Func_216be
jp c, BillsPCMenu
call Func_2174b
@@ -236,7 +236,7 @@ BillsPCDeposit:
ld [wcf95], a
call RemovePokemon
call WaitForSoundToFinish
- ld hl, wWhichTrade ; wWhichTrade
+ ld hl, wWhichTrade
ld a, [wd5a0]
and $7f
cp 9
@@ -251,31 +251,31 @@ BillsPCDeposit:
.asm_2160c
ld [hli], a
ld [hl], $50
- ld hl, MonWasStoredText ; $57f8
+ ld hl, MonWasStoredText
call PrintText
jp BillsPCMenu
Func_21618: ; 21618 (8:5618)
- ld a, [W_NUMINBOX] ; wda80
+ ld a, [W_NUMINBOX]
and a
jr nz, .asm_21627
- ld hl, NoMonText ; $580c
+ ld hl, NoMonText
call PrintText
jp Func_214e8
.asm_21627
- ld a, [wPartyCount] ; wPartyCount
+ ld a, [wPartyCount]
cp PARTY_LENGTH
jr nz, .asm_21637
- ld hl, CantTakeMonText ; $5811
+ ld hl, CantTakeMonText
call PrintText
jp Func_214e8
.asm_21637
- ld hl, W_NUMINBOX ; wda80
+ ld hl, W_NUMINBOX
call Func_216be
jp c, Func_214e8
call Func_2174b
jp nc, Func_214e8
- ld a, [wWhichPokemon] ; wWhichPokemon
+ ld a, [wWhichPokemon]
ld hl, wBoxMonNicks
call GetPartyMonName
ld a, [wcf91]
@@ -288,25 +288,25 @@ Func_21618: ; 21618 (8:5618)
ld [wcf95], a
call RemovePokemon
call WaitForSoundToFinish
- ld hl, MonIsTakenOutText ; $5807
+ ld hl, MonIsTakenOutText
call PrintText
jp Func_214e8
Func_21673: ; 21673 (8:5673)
- ld a, [W_NUMINBOX] ; wda80
+ ld a, [W_NUMINBOX]
and a
jr nz, .asm_21682
- ld hl, NoMonText ; $580c
+ ld hl, NoMonText
call PrintText
jp Func_214e8
.asm_21682
- ld hl, W_NUMINBOX ; wda80
+ ld hl, W_NUMINBOX
call Func_216be
jp c, Func_214e8
- ld hl, OnceReleasedText ; $581b
+ ld hl, OnceReleasedText
call PrintText
call YesNoChoice
- ld a, [wCurrentMenuItem] ; wCurrentMenuItem
+ ld a, [wCurrentMenuItem]
and a
jr nz, .asm_21682
inc a
@@ -315,7 +315,7 @@ Func_21673: ; 21673 (8:5673)
call WaitForSoundToFinish
ld a, [wcf91]
call PlayCry
- ld hl, MonWasReleasedText ; $5820
+ ld hl, MonWasReleasedText
call PrintText
jp Func_214e8
@@ -325,18 +325,18 @@ Func_216b3: ; 216b3 (8:56b3)
Func_216be: ; 216be (8:56be)
ld a, l
- ld [wcf8b], a
+ ld [wList], a
ld a, h
- ld [wcf8c], a
+ ld [wList + 1], a
xor a
ld [wcf93], a
- ld [wListMenuID], a ; wListMenuID
+ ld [wListMenuID], a
inc a ; MONSTER_NAME
- ld [W_LISTTYPE], a
+ ld [wNameListType], a
ld a, [wcc2b]
- ld [wCurrentMenuItem], a ; wCurrentMenuItem
+ ld [wCurrentMenuItem], a
call DisplayListMenuID
- ld a, [wCurrentMenuItem] ; wCurrentMenuItem
+ ld a, [wCurrentMenuItem]
ld [wcc2b], a
ret
@@ -368,7 +368,7 @@ Func_2171b:: ; 2171b (8:571b)
ld a, [hli]
push hl
push bc
- ld hl, HMMoveArray ; $5745
+ ld hl, HMMoveArray
ld de, 1
call IsInArray
pop bc
@@ -394,16 +394,16 @@ Func_2174b: ; 2174b (8:574b)
call TextBoxBorder
ld a, [wccd3]
and a
- ld de, DepositPCText ; $57cb
+ ld de, DepositPCText
jr nz, .asm_21761
- ld de, WithdrawPCText ; $57d3
+ ld de, WithdrawPCText
.asm_21761
hlCoord 11, 12
call PlaceString
hlCoord 11, 14
- ld de, StatsCancelPCText ; $57dc
+ ld de, StatsCancelPCText
call PlaceString
- ld hl, wTopMenuItemY ; wTopMenuItemY
+ ld hl, wTopMenuItemY
ld a, $c
ld [hli], a
ld a, $a
@@ -417,16 +417,16 @@ Func_2174b: ; 2174b (8:574b)
ld [hli], a
xor a
ld [hl], a
- ld hl, wListScrollOffset ; wcc36
+ ld hl, wListScrollOffset
ld [hli], a
ld [hl], a
- ld [wPlayerMonNumber], a ; wPlayerMonNumber
+ ld [wPlayerMonNumber], a
ld [wcc2b], a
.asm_2178f
call HandleMenuInput
bit 1, a
jr nz, .asm_2179f
- ld a, [wCurrentMenuItem] ; wCurrentMenuItem
+ ld a, [wCurrentMenuItem]
and a
jr z, .asm_217a1
dec a
diff --git a/engine/menu/naming_screen.asm b/engine/menu/naming_screen.asm
index 5d338628..7506c849 100755
--- a/engine/menu/naming_screen.asm
+++ b/engine/menu/naming_screen.asm
@@ -2,7 +2,7 @@ AskName: ; 64eb (1:64eb)
call SaveScreenTilesToBuffer1
call GetPredefRegisters
push hl
- ld a, [W_ISINBATTLE] ; W_ISINBATTLE
+ ld a, [W_ISINBATTLE]
dec a
ld hl, wTileMap
ld b, $4
@@ -15,11 +15,11 @@ AskName: ; 64eb (1:64eb)
call PrintText
hlCoord 14, 7
ld bc, $80f
- ld a, $14
+ ld a, TWO_OPTION_MENU
ld [wTextBoxID], a
call DisplayTextBoxID
pop hl
- ld a, [wCurrentMenuItem] ; wCurrentMenuItem
+ ld a, [wCurrentMenuItem]
and a
jr nz, .asm_654c
ld a, [wUpdateSpritesEnabled]
@@ -30,7 +30,7 @@ AskName: ; 64eb (1:64eb)
ld a, $2
ld [wd07d], a
call DisplayNamingScreen
- ld a, [W_ISINBATTLE] ; W_ISINBATTLE
+ ld a, [W_ISINBATTLE]
and a
jr nz, .asm_653e
call ReloadMapSpriteTilePatterns
@@ -66,9 +66,9 @@ Func_655c: ; 655c (1:655c)
ld a, [wcf4b]
cp $50
jr z, .asm_6594
- ld hl, wPartyMonNicks ; wPartyMonNicks
+ ld hl, wPartyMonNicks
ld bc, $b
- ld a, [wWhichPokemon] ; wWhichPokemon
+ ld a, [wWhichPokemon]
call AddNTimes
ld e, l
ld d, h
@@ -99,22 +99,22 @@ DisplayNamingScreen: ; 6596 (1:6596)
call TextBoxBorder
call PrintNamingText
ld a, $3
- ld [wTopMenuItemY], a ; wTopMenuItemY
+ ld [wTopMenuItemY], a
ld a, $1
- ld [wTopMenuItemX], a ; wTopMenuItemX
- ld [wLastMenuItem], a ; wLastMenuItem
- ld [wCurrentMenuItem], a ; wCurrentMenuItem
+ ld [wTopMenuItemX], a
+ ld [wLastMenuItem], a
+ ld [wCurrentMenuItem], a
ld a, $ff
- ld [wMenuWatchedKeys], a ; wMenuWatchedKeys
+ ld [wMenuWatchedKeys], a
ld a, $7
- ld [wMaxMenuItem], a ; wMaxMenuItem
+ ld [wMaxMenuItem], a
ld a, $50
ld [wcf4b], a
xor a
ld hl, wHPBarMaxHP + 1
ld [hli], a
ld [hli], a
- ld [W_SUBANIMTRANSFORM], a ; W_SUBANIMTRANSFORM
+ ld [W_SUBANIMTRANSFORM], a
.asm_65ed
call PrintAlphabet
call GBPalNormal
@@ -126,16 +126,16 @@ DisplayNamingScreen: ; 6596 (1:6596)
.asm_65fc
call PlaceMenuCursor
.asm_65ff
- ld a, [wCurrentMenuItem] ; wCurrentMenuItem
+ ld a, [wCurrentMenuItem]
push af
callba AnimatePartyMon_ForceSpeed1
pop af
- ld [wCurrentMenuItem], a ; wCurrentMenuItem
+ ld [wCurrentMenuItem], a
call JoypadLowSensitivity
ld a, [hJoyPressed]
and a
jr z, .asm_65ff
- ld hl, .unknownPointerTable_665e ; $665e
+ ld hl, .unknownPointerTable_665e
.asm_661a
sla a
jr c, .asm_6624
@@ -165,10 +165,10 @@ DisplayNamingScreen: ; 6596 (1:6596)
call GoPAL_SET_CF1C
call GBPalNormal
xor a
- ld [W_SUBANIMTRANSFORM], a ; W_SUBANIMTRANSFORM
+ ld [W_SUBANIMTRANSFORM], a
ld hl, wd730
res 6, [hl]
- ld a, [W_ISINBATTLE] ; W_ISINBATTLE
+ ld a, [W_ISINBATTLE]
and a
jp z, LoadTextBoxTilePatterns
ld hl, LoadHudTilePatterns
@@ -207,21 +207,21 @@ DisplayNamingScreen: ; 6596 (1:6596)
ld [wHPBarMaxHP + 1], a
ret
.asm_6692
- ld a, [wCurrentMenuItem] ; wCurrentMenuItem
+ ld a, [wCurrentMenuItem]
cp $5
jr nz, .asm_66a0
- ld a, [wTopMenuItemX] ; wTopMenuItemX
+ ld a, [wTopMenuItemX]
cp $11
jr z, .asm_668c
.asm_66a0
- ld a, [wCurrentMenuItem] ; wCurrentMenuItem
+ ld a, [wCurrentMenuItem]
cp $6
jr nz, .asm_66ae
- ld a, [wTopMenuItemX] ; wTopMenuItemX
+ ld a, [wTopMenuItemX]
cp $1
jr z, .asm_667e
.asm_66ae
- ld hl, wMenuCursorLocation ; wMenuCursorLocation
+ ld hl, wMenuCursorLocation
ld a, [hli]
ld h, [hl]
ld l, a
@@ -270,10 +270,10 @@ DisplayNamingScreen: ; 6596 (1:6596)
ld [hl], $50
ret
.asm_6702
- ld a, [wCurrentMenuItem] ; wCurrentMenuItem
+ ld a, [wCurrentMenuItem]
cp $6
ret z
- ld a, [wTopMenuItemX] ; wTopMenuItemX
+ ld a, [wTopMenuItemX]
cp $11
jp z, .asm_6714
inc a
@@ -283,10 +283,10 @@ DisplayNamingScreen: ; 6596 (1:6596)
ld a, $1
jr .asm_6755
.asm_6718
- ld a, [wCurrentMenuItem] ; wCurrentMenuItem
+ ld a, [wCurrentMenuItem]
cp $6
ret z
- ld a, [wTopMenuItemX] ; wTopMenuItemX
+ ld a, [wTopMenuItemX]
dec a
jp z, .asm_6728
dec a
@@ -295,30 +295,30 @@ DisplayNamingScreen: ; 6596 (1:6596)
ld a, $11
jr .asm_6755
.asm_672c
- ld a, [wCurrentMenuItem] ; wCurrentMenuItem
+ ld a, [wCurrentMenuItem]
dec a
- ld [wCurrentMenuItem], a ; wCurrentMenuItem
+ ld [wCurrentMenuItem], a
and a
ret nz
ld a, $6
- ld [wCurrentMenuItem], a ; wCurrentMenuItem
+ ld [wCurrentMenuItem], a
ld a, $1
jr .asm_6755
.asm_673e
- ld a, [wCurrentMenuItem] ; wCurrentMenuItem
+ ld a, [wCurrentMenuItem]
inc a
- ld [wCurrentMenuItem], a ; wCurrentMenuItem
+ ld [wCurrentMenuItem], a
cp $7
jr nz, .asm_6750
ld a, $1
- ld [wCurrentMenuItem], a ; wCurrentMenuItem
+ ld [wCurrentMenuItem], a
jr .asm_6755
.asm_6750
cp $6
ret nz
ld a, $1
.asm_6755
- ld [wTopMenuItemX], a ; wTopMenuItemX
+ ld [wTopMenuItemX], a
jp EraseMenuCursor
LoadEDTile: ; 675b (1:675b)
@@ -402,9 +402,9 @@ Func_680e: ; 680e (1:680e)
jr nz, .asm_6867
call EraseMenuCursor
ld a, $11
- ld [wTopMenuItemX], a ; wTopMenuItemX
+ ld [wTopMenuItemX], a
ld a, $5
- ld [wCurrentMenuItem], a ; wCurrentMenuItem
+ ld [wCurrentMenuItem], a
ld a, [wd07d]
cp $2
ld a, $9
@@ -463,10 +463,10 @@ CalcStringLength: ; 68eb (1:68eb)
PrintNamingText: ; 68f8 (1:68f8)
hlCoord 0, 1
ld a, [wd07d]
- ld de, YourTextString ; $693f
+ ld de, YourTextString
and a
jr z, .notNickname
- ld de, RivalsTextString ; $6945
+ ld de, RivalsTextString
dec a
jr z, .notNickname
ld a, [wcf91]
@@ -482,13 +482,13 @@ PrintNamingText: ; 68f8 (1:68f8)
add hl, bc
ld [hl], $c9
hlCoord 1, 3
- ld de, NicknameTextString ; $6953
+ ld de, NicknameTextString
jr .placeString
.notNickname
call PlaceString
ld l, c
ld h, b
- ld de, NameTextString ; $694d
+ ld de, NameTextString
.placeString
jp PlaceString
diff --git a/engine/menu/party_menu.asm b/engine/menu/party_menu.asm
index 10fc4182..97e520c2 100755
--- a/engine/menu/party_menu.asm
+++ b/engine/menu/party_menu.asm
@@ -83,19 +83,19 @@ RedrawPartyMenu_: ; 12ce3 (4:6ce3)
push hl
ld bc,14 ; 14 columns to the right
add hl,bc
- ld de,wcf9c
+ ld de,wLoadedMonStatus
call PrintStatusCondition
pop hl
push hl
ld bc,20 + 1 ; down 1 row and right 1 column
- ld a,[$FFF6]
+ ld a,[hFlags_0xFFF6]
set 0,a
- ld [$FFF6],a
+ ld [hFlags_0xFFF6],a
add hl,bc
- predef Func_128f6 ; draw HP bar and prints current / max HP
- ld a,[$FFF6]
+ predef DrawHP2 ; draw HP bar and prints current / max HP
+ ld a,[hFlags_0xFFF6]
res 0,a
- ld [$FFF6],a
+ ld [hFlags_0xFFF6],a
call SetPartyMenuHealthBarColor ; color the HP bar (on SGB)
pop hl
jr .printLevel
@@ -134,7 +134,7 @@ RedrawPartyMenu_: ; 12ce3 (4:6ce3)
push hl
ld hl,EvosMovesPointerTable
ld b,0
- ld a,[wcf98] ; pokemon ID
+ ld a,[wLoadedMonSpecies]
dec a
add a
rl b
diff --git a/engine/menu/players_pc.asm b/engine/menu/players_pc.asm
index 5f1175eb..147a27a4 100755
--- a/engine/menu/players_pc.asm
+++ b/engine/menu/players_pc.asm
@@ -2,7 +2,7 @@ PlayerPC: ; 78e6 (1:78e6)
ld hl, wd730
set 6, [hl]
ld a, ITEM_NAME
- ld [W_LISTTYPE], a
+ ld [wNameListType], a
call SaveScreenTilesToBuffer1
xor a
ld [wcc2c], a
@@ -17,7 +17,7 @@ PlayerPC: ; 78e6 (1:78e6)
Func_790c: ; 790c (1:790c)
ld a, [wccd3]
- ld [wCurrentMenuItem], a ; wCurrentMenuItem
+ ld [wCurrentMenuItem], a
ld hl, wFlags_0xcd60
set 5, [hl]
call LoadScreenTilesFromBuffer2
@@ -27,9 +27,9 @@ Func_790c: ; 790c (1:790c)
call TextBoxBorder
call UpdateSprites
hlCoord 2, 2
- ld de, PlayersPCMenuEntries ; $7af5
+ ld de, PlayersPCMenuEntries
call PlaceString
- ld hl, wTopMenuItemY ; wTopMenuItemY
+ ld hl, wTopMenuItemY
ld a, $2
ld [hli], a
dec a
@@ -42,17 +42,17 @@ Func_790c: ; 790c (1:790c)
ld [hli], a
xor a
ld [hl], a
- ld hl, wListScrollOffset ; wcc36
+ ld hl, wListScrollOffset
ld [hli], a
ld [hl], a
- ld [wPlayerMonNumber], a ; wPlayerMonNumber
+ ld [wPlayerMonNumber], a
ld hl, WhatDoYouWantText
call PrintText
call HandleMenuInput
bit 1, a
jp nz, Func_796d
call PlaceUnfilledArrowMenuCursor
- ld a, [wCurrentMenuItem] ; wCurrentMenuItem
+ ld a, [wCurrentMenuItem]
ld [wccd3], a
and a
jp z, Func_7a12
@@ -73,7 +73,7 @@ Func_796d: ; 796d (1:796d)
res 5, [hl]
call LoadScreenTilesFromBuffer2
xor a
- ld [wListScrollOffset], a ; wcc36
+ ld [wListScrollOffset], a
ld [wcc2c], a
ld hl, wd730
res 6, [hl]
@@ -83,9 +83,9 @@ Func_796d: ; 796d (1:796d)
Func_7995: ; 7995 (1:7995)
xor a
- ld [wCurrentMenuItem], a ; wCurrentMenuItem
- ld [wListScrollOffset], a ; wcc36
- ld a, [wNumBagItems] ; wNumBagItems
+ ld [wCurrentMenuItem], a
+ ld [wListScrollOffset], a
+ ld a, [wNumBagItems]
and a
jr nz, Func_79ab
ld hl, NothingToDepositText
@@ -95,15 +95,15 @@ Func_7995: ; 7995 (1:7995)
Func_79ab: ; 79ab (1:79ab)
ld hl, WhatToDepositText
call PrintText
- ld hl, wNumBagItems ; wNumBagItems
+ ld hl, wNumBagItems
ld a, l
- ld [wcf8b], a
+ ld [wList], a
ld a, h
- ld [wcf8c], a
+ ld [wList + 1], a
xor a
ld [wcf93], a
ld a, $3
- ld [wListMenuID], a ; wListMenuID
+ ld [wListMenuID], a
call DisplayListMenuID
jp c, Func_790c
call IsKeyItem
@@ -118,14 +118,14 @@ Func_79ab: ; 79ab (1:79ab)
cp $ff
jp z, Func_79ab
.asm_79e7
- ld hl, wNumBoxItems ; wNumBoxItems
+ ld hl, wNumBoxItems
call AddItemToInventory
jr c, .asm_79f8
ld hl, NoRoomToStoreText
call PrintText
jp Func_79ab
.asm_79f8
- ld hl, wNumBagItems ; wNumBagItems
+ ld hl, wNumBagItems
call RemoveItemFromInventory
call WaitForSoundToFinish
ld a, (SFX_02_55 - SFX_Headers_02) / 3
@@ -137,9 +137,9 @@ Func_79ab: ; 79ab (1:79ab)
Func_7a12: ; 7a12 (1:7a12)
xor a
- ld [wCurrentMenuItem], a ; wCurrentMenuItem
- ld [wListScrollOffset], a ; wcc36
- ld a, [wNumBoxItems] ; wNumBoxItems
+ ld [wCurrentMenuItem], a
+ ld [wListScrollOffset], a
+ ld a, [wNumBoxItems]
and a
jr nz, Func_7a28
ld hl, NothingStoredText
@@ -149,15 +149,15 @@ Func_7a12: ; 7a12 (1:7a12)
Func_7a28: ; 7a28 (1:7a28)
ld hl, WhatToWithdrawText
call PrintText
- ld hl, wNumBoxItems ; wNumBoxItems
+ ld hl, wNumBoxItems
ld a, l
- ld [wcf8b], a
+ ld [wList], a
ld a, h
- ld [wcf8c], a
+ ld [wList + 1], a
xor a
ld [wcf93], a
ld a, $3
- ld [wListMenuID], a ; wListMenuID
+ ld [wListMenuID], a
call DisplayListMenuID
jp c, Func_790c
call IsKeyItem
@@ -172,14 +172,14 @@ Func_7a28: ; 7a28 (1:7a28)
cp $ff
jp z, Func_7a28
.asm_7a64
- ld hl, wNumBagItems ; wNumBagItems
+ ld hl, wNumBagItems
call AddItemToInventory
jr c, .asm_7a75
ld hl, CantCarryMoreText
call PrintText
jp Func_7a28
.asm_7a75
- ld hl, wNumBoxItems ; wNumBoxItems
+ ld hl, wNumBoxItems
call RemoveItemFromInventory
call WaitForSoundToFinish
ld a, (SFX_02_55 - SFX_Headers_02) / 3
@@ -191,9 +191,9 @@ Func_7a28: ; 7a28 (1:7a28)
Func_7a8f: ; 7a8f (1:7a8f)
xor a
- ld [wCurrentMenuItem], a ; wCurrentMenuItem
- ld [wListScrollOffset], a ; wcc36
- ld a, [wNumBoxItems] ; wNumBoxItems
+ ld [wCurrentMenuItem], a
+ ld [wListScrollOffset], a
+ ld a, [wNumBoxItems]
and a
jr nz, Func_7aa5
ld hl, NothingStoredText
@@ -203,15 +203,15 @@ Func_7a8f: ; 7a8f (1:7a8f)
Func_7aa5: ; 7aa5 (1:7aa5)
ld hl, WhatToTossText
call PrintText
- ld hl, wNumBoxItems ; wNumBoxItems
+ ld hl, wNumBoxItems
ld a, l
- ld [wcf8b], a
+ ld [wList], a
ld a, h
- ld [wcf8c], a
+ ld [wList + 1], a
xor a
ld [wcf93], a
ld a, $3
- ld [wListMenuID], a ; wListMenuID
+ ld [wListMenuID], a
push hl
call DisplayListMenuID
pop hl
diff --git a/engine/menu/start_sub_menus.asm b/engine/menu/start_sub_menus.asm
index cdd93875..589224ab 100755
--- a/engine/menu/start_sub_menus.asm
+++ b/engine/menu/start_sub_menus.asm
@@ -29,8 +29,8 @@ StartMenu_Pokemon: ; 130a9 (4:70a9)
call LoadGBPal
jp RedisplayStartMenu
.chosePokemon
- call SaveScreenTilesToBuffer1 ; save screen
- ld a,$04
+ call SaveScreenTilesToBuffer1
+ ld a,FIELD_MOVE_MON_MENU
ld [wTextBoxID],a
call DisplayTextBoxID ; display pokemon menu options
ld hl,wWhichTrade
@@ -308,10 +308,10 @@ StartMenu_Item: ; 13302 (4:7302)
jr .exitMenu
.notInCableClubRoom
ld bc,wNumBagItems
- ld hl,wcf8b
+ ld hl,wList
ld a,c
ld [hli],a
- ld [hl],b ; store item bag pointer at wcf8b (for DisplayListMenuID)
+ ld [hl],b ; store item bag pointer at wList (for DisplayListMenuID)
xor a
ld [wcf93],a
ld a,ITEMLISTMENU
@@ -341,7 +341,7 @@ StartMenu_Item: ; 13302 (4:7302)
cp a,BICYCLE
jp z,.useOrTossItem
.notBicycle1
- ld a,$06 ; use/toss menu
+ ld a,USE_TOSS_MENU_TEMPLATE
ld [wTextBoxID],a
call DisplayTextBoxID
ld hl,wTopMenuItemY
diff --git a/engine/menu/status_screen.asm b/engine/menu/status_screen.asm
index f215fd0e..f95a0710 100755
--- a/engine/menu/status_screen.asm
+++ b/engine/menu/status_screen.asm
@@ -4,11 +4,11 @@ StatusScreen: ; 12953 (4:6953)
ld a, [wcc49]
cp $2 ; 2 means we're in a PC box
jr c, .DontRecalculate ; 0x1295b $14
- ld a, [wcf9b]
- ld [wcfb9], a
+ ld a, [wLoadedMonBoxLevel]
+ ld [wLoadedMonLevel], a
ld [W_CURENEMYLVL], a
- ld hl, wcfa8
- ld de, wcfba
+ ld hl, wLoadedMonHPExp - 1
+ ld de, wLoadedMonStats
ld b, $1
call CalcStats ; Recalculate stats
.DontRecalculate
@@ -55,13 +55,13 @@ StatusScreen: ; 12953 (4:6953)
ld de, Type1Text
call PlaceString ; "TYPE1/"
hlCoord 11, 3
- predef DrawHP ; predef $5f
+ predef DrawHP
ld hl, wcf25
call GetHealthBarColor
ld b, $3
call GoPAL_SET ; SGB palette
hlCoord 16, 6
- ld de, wcf9c
+ ld de, wLoadedMonStatus
call PrintStatusCondition
jr nz, .StatusWritten ; 0x129fc $9
hlCoord 16, 6
@@ -82,7 +82,7 @@ StatusScreen: ; 12953 (4:6953)
ld bc, $8103 ; Zero-padded, 3
call PrintNumber ; Pokémon no.
hlCoord 11, 10
- predef Func_27d6b ; Prints the type (?)
+ predef PrintMonType
ld hl, NamePointers2 ; $6a9d
call .unk_12a7e
ld d, h
@@ -96,7 +96,7 @@ StatusScreen: ; 12953 (4:6953)
hlCoord 12, 16
call PlaceString ; OT
hlCoord 12, 14
- ld de, wcfa4
+ ld de, wLoadedMonOTID
ld bc, $8205 ; 5
call PrintNumber ; ID Number
ld d, $0
@@ -203,14 +203,14 @@ PrintStatsBox: ; 12ae4 (4:6ae4)
pop hl
pop bc
add hl, bc
- ld de, wcfbc
+ ld de, wLoadedMonAttack
ld bc, $0203 ; three digits
call PrintStat
- ld de, wcfbe
+ ld de, wLoadedMonDefense
call PrintStat
- ld de, wcfc0
+ ld de, wLoadedMonSpeed
call PrintStat
- ld de, wcfc2
+ ld de, wLoadedMonSpecial
jp PrintNumber
PrintStat
push hl
@@ -233,13 +233,13 @@ StatusScreen2: ; 12b57 (4:6b57)
ld [hTilesetType], a
ld [$ffba], a
ld bc, $0005
- ld hl, wd0dc
+ ld hl, wMoves
call FillMemory
- ld hl, wcfa0
- ld de, wd0dc
- ld bc, $0004
+ ld hl, wLoadedMonMoves
+ ld de, wMoves
+ ld bc, NUM_MOVES
call CopyData
- callab Func_39b87
+ callab FormatMovesString
hlCoord 9, 2
ld bc, $050a
call ClearScreenArea ; Clear under name
@@ -250,7 +250,7 @@ StatusScreen2: ; 12b57 (4:6b57)
ld c, $12
call TextBoxBorder ; Draw move container
hlCoord 2, 9
- ld de, wd0e1
+ ld de, wMovesString
call PlaceString ; Print moves
ld a, [wcd6c]
inc a
@@ -269,7 +269,7 @@ StatusScreen2: ; 12b57 (4:6b57)
ld a, "-"
call Func_12ccb ; Fill the rest with --
.InitPP ; 12bbb
- ld hl, wcfa0
+ ld hl, wLoadedMonMoves
deCoord 14, 10
ld b, $0
.PrintPP ; 12bc3
@@ -323,12 +323,12 @@ StatusScreen2: ; 12b57 (4:6b57)
hlCoord 9, 3
ld de, EXPPointsText
call PlaceString
- ld a, [wcfb9] ; level
+ ld a, [wLoadedMonLevel] ; level
push af
cp MAX_LEVEL
jr z, .Level100 ; 0x12c20 $4
inc a
- ld [wcfb9], a ; Increase temporarily if not 100
+ ld [wLoadedMonLevel], a ; Increase temporarily if not 100
.Level100
hlCoord 14, 6
ld [hl], $70 ; 1-tile "to"
@@ -336,13 +336,13 @@ StatusScreen2: ; 12b57 (4:6b57)
inc hl
call PrintLevel
pop af
- ld [wcfb9], a
- ld de, wcfa6
+ ld [wLoadedMonLevel], a
+ ld de, wLoadedMonExp
hlCoord 12, 4
ld bc, $0307
call PrintNumber ; exp
call .asm_12c86
- ld de, wcfa6
+ ld de, wLoadedMonExp
hlCoord 7, 6
ld bc, $0307
call PrintNumber
@@ -368,13 +368,13 @@ StatusScreen2: ; 12b57 (4:6b57)
call GBPalWhiteOut
jp ClearScreen
.asm_12c86 ; This does some magic with lvl/exp?
- ld a, [wcfb9] ; Load level
+ ld a, [wLoadedMonLevel] ; Load level
cp MAX_LEVEL
jr z, .asm_12ca7 ; 0x12c8b $1a ; If 100
inc a
ld d, a
callab CalcExperience
- ld hl, wcfa8
+ ld hl, wLoadedMonExp + 2
ld a, [$ff98]
sub [hl]
ld [hld], a
@@ -386,7 +386,7 @@ StatusScreen2: ; 12b57 (4:6b57)
ld [hld], a
ret
.asm_12ca7
- ld hl, wcfa6
+ ld hl, wLoadedMonExp
xor a
ld [hli], a
ld [hli], a
diff --git a/engine/menu/vending_machine.asm b/engine/menu/vending_machine.asm
index 1eba782b..88cfcf65 100755
--- a/engine/menu/vending_machine.asm
+++ b/engine/menu/vending_machine.asm
@@ -1,20 +1,20 @@
VendingMachineMenu: ; 74ee0 (1d:4ee0)
ld hl, VendingMachineText1
call PrintText
- ld a, $13
+ ld a, MONEY_BOX
ld [wTextBoxID], a
call DisplayTextBoxID
xor a
- ld [wCurrentMenuItem], a ; wCurrentMenuItem
- ld [wLastMenuItem], a ; wLastMenuItem
+ ld [wCurrentMenuItem], a
+ ld [wLastMenuItem], a
ld a, $3
- ld [wMenuWatchedKeys], a ; wMenuWatchedKeys
+ ld [wMenuWatchedKeys], a
ld a, $3
- ld [wMaxMenuItem], a ; wMaxMenuItem
+ ld [wMaxMenuItem], a
ld a, $5
- ld [wTopMenuItemY], a ; wTopMenuItemY
+ ld [wTopMenuItemY], a
ld a, $1
- ld [wTopMenuItemX], a ; wTopMenuItemX
+ ld [wTopMenuItemX], a
ld hl, wd730
set 6, [hl]
hlCoord 0, 3
@@ -33,7 +33,7 @@ VendingMachineMenu: ; 74ee0 (1d:4ee0)
call HandleMenuInput
bit 1, a
jr nz, .asm_74f93
- ld a, [wCurrentMenuItem] ; wCurrentMenuItem
+ ld a, [wCurrentMenuItem]
cp $3
jr z, .asm_74f93
xor a
@@ -66,10 +66,10 @@ VendingMachineMenu: ; 74ee0 (1d:4ee0)
ld hl, VendingMachineText5
call PrintText
ld hl, $ffde
- ld de, wPlayerMoney + 2 ; wd349
+ ld de, wPlayerMoney + 2
ld c, $3
predef SubBCDPredef
- ld a, $13
+ ld a, MONEY_BOX
ld [wTextBoxID], a
jp DisplayTextBoxID
.BagFull
diff --git a/engine/overworld/healing_machine.asm b/engine/overworld/healing_machine.asm
index 53174630..90d306c3 100755
--- a/engine/overworld/healing_machine.asm
+++ b/engine/overworld/healing_machine.asm
@@ -48,7 +48,7 @@ AnimateHealingMachine: ; 70433 (1c:4433)
ld [wc0ee], a
call PlaySound
ld d, $28
- call Func_704f3
+ call FlashSprite8Times
.asm_704a2
ld a, [wc026]
cp MUSIC_PKMN_HEALED
@@ -74,16 +74,17 @@ PokeCenterOAMData: ; 704d7 (1c:44d7)
db $35,$30,$7D,$10
db $35,$38,$7D,$30
-Func_704f3: ; 704f3 (1c:44f3)
- ld b, $8
-.asm_704f5
- ld a, [rOBP1] ; $ff49
+; d = value to xor with palette
+FlashSprite8Times: ; 704f3 (1c:44f3)
+ ld b, 8
+.loop
+ ld a, [rOBP1]
xor d
- ld [rOBP1], a ; $ff49
- ld c, $a
+ ld [rOBP1], a
+ ld c, 10
call DelayFrames
dec b
- jr nz, .asm_704f5
+ jr nz, .loop
ret
Func_70503: ; 70503 (1c:4503)
diff --git a/engine/overworld/map_sprites.asm b/engine/overworld/map_sprites.asm
index 81443c9f..df39d112 100755
--- a/engine/overworld/map_sprites.asm
+++ b/engine/overworld/map_sprites.asm
@@ -159,7 +159,7 @@ LoadMapSpriteTilePatterns: ; 17871 (5:7871)
ld l,e
pop de
ld b,a
- ld a,[wcfc4]
+ ld a,[wFontLoaded]
bit 0,a ; reloading upper half of tile patterns after displaying text?
jr nz,.skipFirstLoad ; if so, skip loading data into the lower half
ld a,b
@@ -180,7 +180,7 @@ LoadMapSpriteTilePatterns: ; 17871 (5:7871)
jr nc,.noCarry3
inc d
.noCarry3
- ld a,[wcfc4]
+ ld a,[wFontLoaded]
bit 0,a ; reloading upper half of tile patterns after displaying text?
jr nz,.loadWhileLCDOn
pop af
@@ -264,7 +264,7 @@ InitOutsideMapSprites: ; 1797b (5:797b)
cp a,$f0 ; does the map have 2 sprite sets?
call nc,GetSplitMapSpriteSetID ; if so, choose the appropriate one
ld b,a ; b = spriteSetID
- ld a,[wcfc4]
+ ld a,[wFontLoaded]
bit 0,a ; reloading upper half of tile patterns after displaying text?
jr nz,.loadSpriteSet ; if so, forcibly reload the sprite set
ld a,[W_SPRITESETID]
diff --git a/engine/overworld/movement.asm b/engine/overworld/movement.asm
index 3b9cac7d..c4482700 100644
--- a/engine/overworld/movement.asm
+++ b/engine/overworld/movement.asm
@@ -52,7 +52,7 @@ UpdatePlayerSprite: ; 4e31 (1:4e31)
jr .asm_4eab
.asm_4e86
ld [wSpriteStateData1 + 9], a
- ld a, [wcfc4]
+ ld a, [wFontLoaded]
bit 0, a
jr nz, .asm_4e7d
.asm_4e90
@@ -130,7 +130,7 @@ Func_4ed1: ; 4ed1 (1:4ed1)
bit 7, a
jp nz, InitializeSpriteFacingDirection ; c1x1 >= $80
ld b, a
- ld a, [wcfc4]
+ ld a, [wFontLoaded]
bit 0, a
jp nz, notYetMoving
ld a, b
diff --git a/engine/overworld/pokemart.asm b/engine/overworld/pokemart.asm
index 644c155b..8325b93f 100755
--- a/engine/overworld/pokemart.asm
+++ b/engine/overworld/pokemart.asm
@@ -11,10 +11,10 @@ DisplayPokemartDialogue_: ; 6c20 (1:6c20)
ld [wPlayerMonNumber],a
inc a
ld [wcf93],a
- ld a,$13
+ ld a,MONEY_BOX
ld [wTextBoxID],a
call DisplayTextBoxID ; draw money text box
- ld a,$15
+ ld a,BUY_SELL_QUIT_MENU
ld [wTextBoxID],a
call DisplayTextBoxID ; do buy/sell/quit menu
ld hl,wd128 ; pointer to this pokemart's inventory
@@ -45,14 +45,14 @@ DisplayPokemartDialogue_: ; 6c20 (1:6c20)
call SaveScreenTilesToBuffer1 ; save screen
.sellMenuLoop
call LoadScreenTilesFromBuffer1 ; restore saved screen
- ld a,$13
+ ld a,MONEY_BOX
ld [wTextBoxID],a
call DisplayTextBoxID ; draw money text box
ld hl,wNumBagItems
ld a,l
- ld [wcf8b],a
+ ld [wList],a
ld a,h
- ld [wcf8c],a
+ ld [wList + 1],a
xor a
ld [wcf93],a
ld [wCurrentMenuItem],a
@@ -79,7 +79,7 @@ DisplayPokemartDialogue_: ; 6c20 (1:6c20)
call PrintText
hlCoord 14, 7
ld bc,$080f
- ld a,$14
+ ld a,TWO_OPTION_MENU
ld [wTextBoxID],a
call DisplayTextBoxID ; yes/no menu
ld a,[wd12e]
@@ -119,14 +119,14 @@ DisplayPokemartDialogue_: ; 6c20 (1:6c20)
call SaveScreenTilesToBuffer1 ; save screen
.buyMenuLoop
call LoadScreenTilesFromBuffer1 ; restore saved screen
- ld a,$13
+ ld a,MONEY_BOX
ld [wTextBoxID],a
call DisplayTextBoxID ; draw money text box
ld hl,wStringBuffer2 + 11
ld a,l
- ld [wcf8b],a
+ ld [wList],a
ld a,h
- ld [wcf8c],a
+ ld [wList + 1],a
xor a
ld [wCurrentMenuItem],a
inc a
@@ -150,7 +150,7 @@ DisplayPokemartDialogue_: ; 6c20 (1:6c20)
call PrintText
hlCoord 14, 7
ld bc,$080f
- ld a,$14
+ ld a,TWO_OPTION_MENU
ld [wTextBoxID],a
call DisplayTextBoxID ; yes/no menu
ld a,[wd12e]
@@ -180,7 +180,7 @@ DisplayPokemartDialogue_: ; 6c20 (1:6c20)
jp .buyMenuLoop
.returnToMainPokemartMenu
call LoadScreenTilesFromBuffer1
- ld a,$13
+ ld a,MONEY_BOX
ld [wTextBoxID],a
call DisplayTextBoxID ; draw money text box
ld hl,PokemartAnythingElseText
diff --git a/engine/predefs.asm b/engine/predefs.asm
index 8a98bd3d..bb8866da 100755
--- a/engine/predefs.asm
+++ b/engine/predefs.asm
@@ -92,7 +92,7 @@ PredefPointers:: ; 4fe79 (13:7e79)
add_predef UpdateHPBar
add_predef HPBarLength
add_predef Diploma_TextBoxBorder
- add_predef Func_3ed02
+ add_predef DoubleOrHalveSelectedStats
add_predef ShowPokedexMenu
add_predef EvolutionAfterBattle
add_predef SaveSAVtoSRAM0
@@ -127,7 +127,7 @@ PredefPointers:: ; 4fe79 (13:7e79)
add_predef UpdateHPBar2
add_predef DrawEnemyHUDAndHPBar
add_predef LoadTownMap_Nest
- add_predef Func_27d6b
+ add_predef PrintMonType
add_predef EmotionBubble; 4C player exclamation
add_predef EmptyFunc3; return immediately
add_predef AskName
@@ -145,9 +145,9 @@ PredefPointers:: ; 4fe79 (13:7e79)
add_predef CheckForCollisionWhenPushingBoulder
add_predef PrintStrengthTxt
add_predef PickupItem
- add_predef Func_27d98
+ add_predef PrintMoveType
add_predef LoadMovePPs
add_predef DrawHP ; 5F
- add_predef Func_128f6
+ add_predef DrawHP2
add_predef Func_1c9c6
add_predef OaksAideScript
diff --git a/engine/predefs7.asm b/engine/predefs7.asm
index b6c3bbbc..9786c097 100755
--- a/engine/predefs7.asm
+++ b/engine/predefs7.asm
@@ -3,26 +3,26 @@ Func_1c9c6: ; 1c9c6 (7:49c6)
call PrintText
ld hl, wStringBuffer2 + 11
ld a, l
- ld [wcf8b], a
+ ld [wList], a
ld a, h
- ld [wcf8c], a
- ld a, [wListScrollOffset] ; wcc36
+ ld [wList + 1], a
+ ld a, [wListScrollOffset]
push af
xor a
- ld [wCurrentMenuItem], a ; wCurrentMenuItem
- ld [wListScrollOffset], a ; wcc36
+ ld [wCurrentMenuItem], a
+ ld [wListScrollOffset], a
ld [wcf93], a
ld a, $4
- ld [wListMenuID], a ; wListMenuID
+ ld [wListMenuID], a
call DisplayListMenuID
pop bc
ld a, b
- ld [wListScrollOffset], a ; wcc36
+ ld [wListScrollOffset], a
ret c
ld hl, wd126
set 7, [hl]
ld hl, wcc5b
- ld a, [wWhichPokemon] ; wWhichPokemon
+ ld a, [wWhichPokemon]
add a
ld d, $0
ld e, a
diff --git a/engine/save.asm b/engine/save.asm
index 7b1db4c7..d3127f04 100755
--- a/engine/save.asm
+++ b/engine/save.asm
@@ -173,10 +173,10 @@ NowSavingString:
SaveSAVConfirm: ; 73768 (1c:7768)
call PrintText
hlCoord 0, 7
- ld bc,$0801 ;arrow's coordinates |b = Y|c = X|
- ld a,$14 ;one line shifting ($28 = 2 lines)
+ ld bc,$0801
+ ld a,TWO_OPTION_MENU
ld [wTextBoxID],a
- call DisplayTextBoxID ;handle Yes/No KeyPress
+ call DisplayTextBoxID ; yes/no menu
ld a,[wCurrentMenuItem]
ret
@@ -346,10 +346,10 @@ ChangeBox:: ; 738a1 (1c:78a1)
call z, Func_73a29
call Func_7393f
call UpdateSprites
- ld hl, $fff6
+ ld hl, hFlags_0xFFF6
set 1, [hl]
call HandleMenuInput
- ld hl, $fff6
+ ld hl, hFlags_0xFFF6
res 1, [hl]
bit 1, a
ret nz
@@ -436,12 +436,12 @@ Func_7393f: ; 7393f (1c:793f)
ld b, $c
ld c, $7
call TextBoxBorder
- ld hl, $fff6
+ ld hl, hFlags_0xFFF6
set 2, [hl]
ld de, BoxNames ; $79d9
hlCoord 13, 1
call PlaceString
- ld hl, $fff6
+ ld hl, hFlags_0xFFF6
res 2, [hl]
ld a, [wd5a0]
and $7f
@@ -665,7 +665,7 @@ HallOfFame_Copy: ; 73b51 (1c:7b51)
ld [MBC1SRamEnable], a
ret
-Func_73b6a: ; 73b6a (1c:7b6a)
+ClearSAV: ; 73b6a (1c:7b6a)
ld a, SRAM_ENABLE
ld [MBC1SRamEnable], a
ld a, $1
diff --git a/engine/slot_machine.asm b/engine/slot_machine.asm
index 2444155c..e3e452f3 100755
--- a/engine/slot_machine.asm
+++ b/engine/slot_machine.asm
@@ -137,7 +137,7 @@ MainSlotMachineLoop: ; 37395 (d:7395)
ld bc, $0d0f
xor a ; YES_NO_MENU
ld [wTwoOptionMenuID], a
- ld a, $14
+ ld a, TWO_OPTION_MENU
ld [wTextBoxID], a
call DisplayTextBoxID
ld a, [wCurrentMenuItem]
diff --git a/engine/titlescreen.asm b/engine/titlescreen.asm
index 5e8a15d5..ed23fbc4 100755
--- a/engine/titlescreen.asm
+++ b/engine/titlescreen.asm
@@ -237,14 +237,14 @@ ENDC
call LoadGBPal
ld a, [hJoyHeld]
ld b, a
- and $46
- cp $46
- jp z, Func_448e
+ and D_UP | SELECT | B_BUTTON
+ cp D_UP | SELECT | B_BUTTON
+ jp z, .doClearSaveDialogue
jp MainMenu
-Func_448e: ; 448e (1:448e)
- ld b, BANK(Func_1c98a)
- ld hl, Func_1c98a
+.doClearSaveDialogue
+ ld b, BANK(DoClearSaveDialogue)
+ ld hl, DoClearSaveDialogue
jp Bankswitch
Func_4496: ; 4496 (1:4496)
diff --git a/engine/town_map.asm b/engine/town_map.asm
index dece8d1f..7974cf1a 100755
--- a/engine/town_map.asm
+++ b/engine/town_map.asm
@@ -364,10 +364,10 @@ Func_711c4: ; 711c4 (1c:51c4)
jp CopyData
Func_711ef: ; 711ef (1c:51ef)
- callba Func_e9cb
+ callba FindWildLocationsOfMon
call Func_712d9
ld hl, wOAMBuffer
- ld de, wHPBarMaxHP
+ ld de, wBuffer
.asm_71200
ld a, [de]
cp $ff