summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xengine/battle/core.asm28
-rwxr-xr-xengine/battle/end_of_battle.asm2
-rwxr-xr-xengine/battle/read_trainer_party.asm2
-rw-r--r--engine/battle/trainer_ai.asm26
-rwxr-xr-xengine/evos_moves.asm12
-rwxr-xr-xengine/hidden_object_functions17.asm18
-rwxr-xr-xengine/hp_bar.asm17
-rwxr-xr-xengine/items/items.asm10
-rwxr-xr-xengine/learn_move.asm4
-rwxr-xr-xengine/menu/naming_screen.asm48
-rw-r--r--engine/overworld/item.asm2
-rwxr-xr-xengine/overworld/npc_movement.asm2
-rwxr-xr-xengine/overworld/player_animations.asm4
-rwxr-xr-xengine/town_map.asm22
-rw-r--r--home.asm14
-rw-r--r--home/overworld.asm37
-rw-r--r--home/vblank.asm4
-rw-r--r--home/vcopy.asm20
-rw-r--r--hram.asm2
-rwxr-xr-xmain.asm62
-rwxr-xr-xscripts/billshouse.asm8
-rwxr-xr-xscripts/blueshouse.asm2
-rwxr-xr-xscripts/celadongamecorner.asm2
-rwxr-xr-xscripts/celadonmansion5.asm2
-rwxr-xr-xscripts/ceruleancity.asm6
-rwxr-xr-xscripts/ceruleancity2.asm6
-rwxr-xr-xscripts/fightingdojo.asm4
-rwxr-xr-xscripts/gary.asm4
-rwxr-xr-xscripts/halloffameroom.asm2
-rwxr-xr-xscripts/mtmoon3.asm6
-rwxr-xr-xscripts/museum1f.asm2
-rwxr-xr-xscripts/oakslab.asm26
-rwxr-xr-xscripts/pallettown.asm6
-rwxr-xr-xscripts/pewtercity.asm8
-rwxr-xr-xscripts/pewtergym.asm4
-rwxr-xr-xscripts/pokemontower2.asm2
-rwxr-xr-xscripts/pokemontower7.asm10
-rwxr-xr-xscripts/rockethideout4.asm6
-rwxr-xr-xscripts/route12.asm2
-rwxr-xr-xscripts/route16.asm2
-rwxr-xr-xscripts/route20.asm4
-rwxr-xr-xscripts/route22.asm4
-rwxr-xr-xscripts/route23.asm4
-rwxr-xr-xscripts/route25.asm8
-rwxr-xr-xscripts/seafoamislands1.asm16
-rwxr-xr-xscripts/seafoamislands2.asm16
-rwxr-xr-xscripts/seafoamislands3.asm16
-rwxr-xr-xscripts/seafoamislands4.asm16
-rwxr-xr-xscripts/silphco1.asm2
-rwxr-xr-xscripts/silphco11.asm4
-rwxr-xr-xscripts/silphco7.asm2
-rwxr-xr-xscripts/ssanne2.asm4
-rwxr-xr-xscripts/vermilioncity.asm2
-rwxr-xr-xscripts/victoryroad3.asm4
-rwxr-xr-xscripts/viridiangym.asm4
-rw-r--r--text/maps/name_rater.asm2
-rwxr-xr-xwram.asm114
57 files changed, 374 insertions, 294 deletions
diff --git a/engine/battle/core.asm b/engine/battle/core.asm
index 0406fe7b..b3d82f8c 100755
--- a/engine/battle/core.asm
+++ b/engine/battle/core.asm
@@ -225,7 +225,7 @@ StartBattle: ; 3c11e (f:411e)
ld [wPartyFoughtCurrentEnemyFlags], a
ld [wActionResultOrTookBattleTurn], a
inc a
- ld [wd11d], a
+ ld [wFirstMonsNotOutYet], a
ld hl, wEnemyMon1HP
ld bc, wEnemyMon2 - wEnemyMon1 - 1
ld d, $3
@@ -379,7 +379,7 @@ MainInBattleLoop: ; 3c233 (f:4233)
jp z, HandleEnemyMonFainted ; if enemy mon HP is 0, jump
call SaveScreenTilesToBuffer1
xor a
- ld [wd11d], a
+ ld [wFirstMonsNotOutYet], a
ld a, [W_PLAYERBATTSTATUS2]
and (1 << NeedsToRecharge) | (1 << UsingRage) ; check if the player is using Rage or needs to recharge
jr nz, .selectEnemyMove
@@ -1434,7 +1434,7 @@ EnemySendOutFirstMon: ; 3c92a (f:492a)
ld [wLastSwitchInEnemyMonHP + 1],a
ld a,1
ld [wCurrentMenuItem],a
- ld a,[wd11d]
+ ld a,[wFirstMonsNotOutYet]
dec a
jr z,.next4
ld a,[wPartyCount]
@@ -1549,7 +1549,7 @@ HasMonFainted: ; 3ca97 (f:4a97)
ld a, [hli]
or [hl]
ret nz
- ld a, [wd11d]
+ ld a, [wFirstMonsNotOutYet]
and a
jr nz, .done
ld hl, NoWillText
@@ -1647,8 +1647,8 @@ TryRunningFromBattle: ; 3cab9 (f:4ab9)
ld hl, NoRunningText
.printCantEscapeOrNoRunningText
call PrintText
- ld a, $1
- ld [wd11f], a
+ ld a, 1
+ ld [wForcePlayerToChooseMon], a
call SaveScreenTilesToBuffer1
and a ; reset carry
ret
@@ -2334,7 +2334,7 @@ UseBagItem:
res UsingTrappingMove, [hl] ; not using multi-turn move any more
.checkIfMonCaptured
- ld a, [wd11c]
+ ld a, [wCapturedMonSpecies]
and a ; was the enemy mon captured with a ball?
jr nz, .returnAfterCapturingMon
@@ -2354,7 +2354,7 @@ UseBagItem:
.returnAfterCapturingMon
call GBPalNormal
xor a
- ld [wd11c], a
+ ld [wCapturedMonSpecies], a
ld a, $2
ld [wBattleResult], a
scf ; set carry
@@ -2516,8 +2516,8 @@ BattleMenu_RunWasSelected: ; 3d1fa (f:51fa)
ld hl, wBattleMonSpeed
ld de, wEnemyMonSpeed
call TryRunningFromBattle
- ld a, $0
- ld [wd11f], a
+ ld a, 0
+ ld [wForcePlayerToChooseMon], a
ret c
ld a, [wActionResultOrTookBattleTurn]
and a
@@ -3035,18 +3035,18 @@ SelectEnemyMove: ; 3d564 (f:5564)
push hl
call BattleRandom
ld b, $1
- cp $3f ; select move 1 in [0,3e] (63/256 chance)
+ cp $3f ; select move 1, [0,3e] (63/256 chance)
jr c, .moveChosen
inc hl
inc b
- cp $7f ; select move 1 in [3f,7e] (64/256 chance)
+ cp $7f ; select move 2, [3f,7e] (64/256 chance)
jr c, .moveChosen
inc hl
inc b
- cp $be ; select move 1 in [7f,bd] (63/256 chance)
+ cp $be ; select move 3, [7f,bd] (63/256 chance)
jr c, .moveChosen
inc hl
- inc b ; select move 4 in [be,ff] (66/256 chance)
+ inc b ; select move 4, [be,ff] (66/256 chance)
.moveChosen
ld a, b
dec a
diff --git a/engine/battle/end_of_battle.asm b/engine/battle/end_of_battle.asm
index 8264e49c..c642d206 100755
--- a/engine/battle/end_of_battle.asm
+++ b/engine/battle/end_of_battle.asm
@@ -51,7 +51,7 @@ EndOfBattle: ; 137aa (4:77aa)
ld [W_BATTLETYPE], a
ld [W_MOVEMISSED], a
ld [W_CUROPPONENT], a
- ld [wd11f], a
+ ld [wForcePlayerToChooseMon], a
ld [wNumRunAttempts], a
ld [wEscapedFromBattle], a
ld hl, wPartyAndBillsPCSavedMenuItem
diff --git a/engine/battle/read_trainer_party.asm b/engine/battle/read_trainer_party.asm
index 4f72aea1..0976c7c7 100755
--- a/engine/battle/read_trainer_party.asm
+++ b/engine/battle/read_trainer_party.asm
@@ -154,7 +154,7 @@ ReadTrainer: ; 39c53 (e:5c53)
ld b,a
.LastLoop
; update wAmountMoneyWon addresses (money to win) based on enemy's level
- ld hl,wd047
+ ld hl,wTrainerBaseMoney + 1
ld c,2 ; wAmountMoneyWon is a 3-byte number
push bc
predef AddBCDPredef
diff --git a/engine/battle/trainer_ai.asm b/engine/battle/trainer_ai.asm
index c803a870..fb932035 100644
--- a/engine/battle/trainer_ai.asm
+++ b/engine/battle/trainer_ai.asm
@@ -2,7 +2,7 @@
; unused slots are filled with 0, all used slots may be chosen with equal probability
AIEnemyTrainerChooseMoves: ; 39719 (e:5719)
ld a, $a
- ld hl, wHPBarMaxHP ; init temporary move selection array. Only the moves with the lowest numbers are chosen in the end
+ ld hl, wBuffer ; init temporary move selection array. Only the moves with the lowest numbers are chosen in the end
ld [hli], a ; move 1
ld [hli], a ; move 2
ld [hli], a ; move 3
@@ -11,14 +11,14 @@ AIEnemyTrainerChooseMoves: ; 39719 (e:5719)
swap a
and $f
jr z, .noMoveDisabled
- ld hl, wHPBarMaxHP
+ ld hl, wBuffer
dec a
ld c, a
ld b, $0
add hl, bc ; advance pointer to forbidden move
ld [hl], $50 ; forbid (highly discourage) disabled move
.noMoveDisabled
- ld hl, TrainerClassMoveChoiceModifications ; 589B
+ ld hl, TrainerClassMoveChoiceModifications
ld a, [W_TRAINERCLASS]
ld b, a
.loopTrainerClasses
@@ -44,7 +44,7 @@ AIEnemyTrainerChooseMoves: ; 39719 (e:5719)
dec a
add a
ld c, a
- ld b, $0
+ ld b, 0
add hl, bc ; skip to pointer
ld a, [hli] ; read pointer into hl
ld h, [hl]
@@ -53,9 +53,9 @@ AIEnemyTrainerChooseMoves: ; 39719 (e:5719)
push de
jp [hl] ; execute modification function
.loopFindMinimumEntries ; all entries will be decremented sequentially until one of them is zero
- ld hl, wHPBarMaxHP ; temp move selection array
+ ld hl, wBuffer ; temp move selection array
ld de, wEnemyMonMoves ; enemy moves
- ld c, $4
+ ld c, NUM_MOVES
.loopDecrementEntries
ld a, [de]
inc de
@@ -73,11 +73,11 @@ AIEnemyTrainerChooseMoves: ; 39719 (e:5719)
inc [hl]
dec hl
inc a
- cp $5
+ cp NUM_MOVES + 1
jr nz, .loopUndoPartialIteration
- ld hl, wHPBarMaxHP ; temp move selection array
+ ld hl, wBuffer ; temp move selection array
ld de, wEnemyMonMoves ; enemy moves
- ld c, $4
+ ld c, NUM_MOVES
.filterMinimalEntries ; all minimal entries now have value 1. All other slots will be disabled (move set to 0)
ld a, [de]
and a
@@ -97,7 +97,7 @@ AIEnemyTrainerChooseMoves: ; 39719 (e:5719)
inc de
dec c
jr nz, .filterMinimalEntries
- ld hl, wHPBarMaxHP ; use created temporary array as move set
+ ld hl, wBuffer ; use created temporary array as move set
ret
.useOriginalMoveSet
ld hl, wEnemyMonMoves ; use original move set
@@ -694,11 +694,13 @@ SwitchEnemyMon: ; 3a74b (e:674b)
ld hl, AIBattleWithdrawText
call PrintText
+ ; This wFirstMonsNotOutYet variable is abused to prevent the player from
+ ; switching in a new mon in response to this switch.
ld a,1
- ld [wd11d],a
+ ld [wFirstMonsNotOutYet],a
callab EnemySendOut
xor a
- ld [wd11d],a
+ ld [wFirstMonsNotOutYet],a
ld a,[wLinkState]
cp LINK_STATE_BATTLING
diff --git a/engine/evos_moves.asm b/engine/evos_moves.asm
index b9b4bb0f..7dcc0513 100755
--- a/engine/evos_moves.asm
+++ b/engine/evos_moves.asm
@@ -14,7 +14,7 @@ EvolutionAfterBattle: ; 3ad1c (e:6d1c)
ld a, [hTilesetType]
push af
xor a
- ld [wd121], a
+ ld [wEvolutionOccurred], a
dec a
ld [wWhichPokemon], a
push hl
@@ -91,7 +91,7 @@ Evolution_PartyMonLoop: ; loop over party mons
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
+ jr .doEvolution
.checkItemEvo
ld a, [hli]
ld b, a ; evolution item
@@ -104,10 +104,10 @@ Evolution_PartyMonLoop: ; loop over party mons
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
+.doEvolution
ld [W_CURENEMYLVL], a
- ld a, $1
- ld [wd121], a
+ ld a, 1
+ ld [wEvolutionOccurred], a
push hl
ld a, [hl]
ld [wEvoNewSpecies], a
@@ -252,7 +252,7 @@ Evolution_PartyMonLoop: ; loop over party mons
ld a, [W_ISINBATTLE]
and a
ret nz
- ld a, [wd121]
+ ld a, [wEvolutionOccurred]
and a
call nz, PlayDefaultMusic
ret
diff --git a/engine/hidden_object_functions17.asm b/engine/hidden_object_functions17.asm
index 97681b79..788dd777 100755
--- a/engine/hidden_object_functions17.asm
+++ b/engine/hidden_object_functions17.asm
@@ -311,7 +311,7 @@ VermilionGymTrashText: ; 5ddf7 (17:5df7)
GymTrashScript: ; 5ddfc (17:5dfc)
call EnableAutoTextBoxDrawing
ld a, [wHiddenObjectFunctionArgument]
- ld [wcd5b], a
+ ld [wGymTrashCanIndex], a
; Don't do the trash can puzzle if it's already been done.
CheckEvent EVENT_2ND_LOCK_OPENED
@@ -320,12 +320,12 @@ GymTrashScript: ; 5ddfc (17:5dfc)
tx_pre_jump VermilionGymTrashText
.ok
- bit 1, a
+ CheckEventReuseA EVENT_1ST_LOCK_OPENED
jr nz, .trySecondLock
- ld a, [wd743]
+ ld a, [wFirstLockTrashCanIndex]
ld b, a
- ld a, [wcd5b]
+ ld a, [wGymTrashCanIndex]
cp b
jr z, .openFirstLock
@@ -337,7 +337,7 @@ GymTrashScript: ; 5ddfc (17:5dfc)
SetEvent EVENT_1ST_LOCK_OPENED
ld hl, GymTrashCans
- ld a, [wcd5b]
+ ld a, [wGymTrashCanIndex]
; * 5
ld b, a
add a
@@ -364,15 +364,15 @@ GymTrashScript: ; 5ddfc (17:5dfc)
add hl, de
ld a, [hl]
and $f
- ld [wd744], a
+ ld [wSecondLockTrashCanIndex], a
tx_pre_id VermilionGymTrashSuccesText1
jr .done
.trySecondLock
- ld a, [wd744]
+ ld a, [wSecondLockTrashCanIndex]
ld b, a
- ld a, [wcd5b]
+ ld a, [wGymTrashCanIndex]
cp b
jr z, .openSecondLock
@@ -381,7 +381,7 @@ GymTrashScript: ; 5ddfc (17:5dfc)
call Random
and $e
- ld [wd743], a
+ ld [wFirstLockTrashCanIndex], a
tx_pre_id VermilionGymTrashFailText
jr .done
diff --git a/engine/hp_bar.asm b/engine/hp_bar.asm
index 61209778..d1367b4e 100755
--- a/engine/hp_bar.asm
+++ b/engine/hp_bar.asm
@@ -205,20 +205,21 @@ UpdateHPBar_PrintHPNumber: ; faf5 (3:7af5)
push de
ld a, [wHPBarType]
and a
- jr z, .asm_fb2d
+ jr z, .done ; don't print number in enemy HUD
+; convert from little-endian to big-endian for PrintNumber
ld a, [wHPBarOldHP]
- ld [wcef1], a
- ld a, [wHPBarOldHP+1]
- ld [wcef0], a
+ ld [wHPBarTempHP + 1], a
+ ld a, [wHPBarOldHP + 1]
+ ld [wHPBarTempHP], a
push hl
ld a, [hFlags_0xFFF6]
bit 0, a
jr z, .asm_fb15
ld de, $9
- jr .asm_fb18
+ jr .next
.asm_fb15
ld de, $15
-.asm_fb18
+.next
add hl, de
push hl
ld a, $7f
@@ -226,12 +227,12 @@ UpdateHPBar_PrintHPNumber: ; faf5 (3:7af5)
ld [hli], a
ld [hli], a
pop hl
- ld de, wcef0
+ ld de, wHPBarTempHP
ld bc, $203
call PrintNumber
call DelayFrame
pop hl
-.asm_fb2d
+.done
pop de
pop af
ret
diff --git a/engine/items/items.asm b/engine/items/items.asm
index b0013b46..5669f012 100755
--- a/engine/items/items.asm
+++ b/engine/items/items.asm
@@ -118,7 +118,7 @@ ItemUseBall: ; d687 (3:5687)
.UseBall
;ok, you can use a ball
xor a
- ld [wd11c],a
+ ld [wCapturedMonSpecies],a
ld a,[W_BATTLETYPE]
cp a,2 ;SafariBattle
jr nz,.skipSafariZoneCode
@@ -388,7 +388,7 @@ ItemUseBall: ; d687 (3:5687)
pop af
ld [hl],a
ld a,[wEnemyMonSpecies] ;enemy
- ld [wd11c],a
+ ld [wCapturedMonSpecies],a
ld [wcf91],a
ld [wd11e],a
ld a,[W_BATTLETYPE]
@@ -645,7 +645,7 @@ ItemUseEvoStone: ; da5b (3:5a5b)
call PlaySoundWaitForCurrent
call WaitForSoundToFinish
callab TryEvolvingMon ; try to evolve pokemon
- ld a,[wd121]
+ ld a,[wEvolutionOccurred]
and a
jr z,.noEffect
pop af
@@ -2537,13 +2537,13 @@ IsKeyItem_: ; e764 (3:6764)
; if the item is not an HM or TM
push af
ld hl,KeyItemBitfield
- ld de,wHPBarMaxHP
+ ld de,wBuffer
ld bc,15 ; only 11 bytes are actually used
call CopyData
pop af
dec a
ld c,a
- ld hl,wHPBarMaxHP
+ ld hl,wBuffer
ld b,FLAG_TEST
predef FlagActionPredef
ld a,c
diff --git a/engine/learn_move.asm b/engine/learn_move.asm
index abc3b7d4..a6a78355 100755
--- a/engine/learn_move.asm
+++ b/engine/learn_move.asm
@@ -46,10 +46,10 @@ DontAbandonLearning: ; 6e5b (1:6e5b)
ld hl, Moves
ld bc, $6
call AddNTimes
- ld de, wHPBarMaxHP
+ ld de, wBuffer
ld a, BANK(Moves)
call FarCopyData
- ld a, [wHPBarNewHP + 1]
+ ld a, [wBuffer + 5] ; a = move's max PP
pop de
pop hl
ld [hl], a
diff --git a/engine/menu/naming_screen.asm b/engine/menu/naming_screen.asm
index 6037329e..20745c58 100755
--- a/engine/menu/naming_screen.asm
+++ b/engine/menu/naming_screen.asm
@@ -54,7 +54,7 @@ DoYouWantToNicknameText: ; 0x6557
db "@"
DisplayNameRaterScreen: ; 655c (1:655c)
- ld hl, wHPBarMaxHP
+ ld hl, wBuffer
xor a
ld [wUpdateSpritesEnabled], a
ld a, NAME_MON_SCREEN
@@ -72,7 +72,7 @@ DisplayNameRaterScreen: ; 655c (1:655c)
call AddNTimes
ld e, l
ld d, h
- ld hl, wHPBarMaxHP
+ ld hl, wBuffer
ld bc, 11
call CopyData
and a
@@ -94,24 +94,24 @@ DisplayNamingScreen: ; 6596 (1:6596)
call LoadEDTile
callba LoadMonPartySpriteGfx
coord hl, 0, 4
- ld b, $9
- ld c, $12
+ ld b, 9
+ ld c, 18
call TextBoxBorder
call PrintNamingText
- ld a, $3
+ ld a, 3
ld [wTopMenuItemY], a
- ld a, $1
+ ld a, 1
ld [wTopMenuItemX], a
ld [wLastMenuItem], a
ld [wCurrentMenuItem], a
ld a, $ff
ld [wMenuWatchedKeys], a
- ld a, $7
+ ld a, 7
ld [wMaxMenuItem], a
ld a, $50
ld [wcf4b], a
xor a
- ld hl, wHPBarMaxHP + 1
+ ld hl, wNamingScreenSubmitName
ld [hli], a
ld [hli], a
ld [wAnimCounter], a
@@ -119,7 +119,7 @@ DisplayNamingScreen: ; 6596 (1:6596)
call PrintAlphabet
call GBPalNormal
.ABStartReturnPoint
- ld a, [wHPBarMaxHP + 1]
+ ld a, [wNamingScreenSubmitName]
and a
jr nz, .submitNickname
call PrintNicknameAndUnderscores
@@ -197,14 +197,14 @@ DisplayNamingScreen: ; 6596 (1:6596)
ld de, .selectReturnPoint
push de
.pressedSelect
- ld a, [wHPBarOldHP]
+ ld a, [wAlphabetCase]
xor $1
- ld [wHPBarOldHP], a
+ ld [wAlphabetCase], a
ret
.pressedStart
- ld a, $1
- ld [wHPBarMaxHP + 1], a
+ ld a, 1
+ ld [wNamingScreenSubmitName], a
ret
.pressedA
@@ -216,7 +216,7 @@ DisplayNamingScreen: ; 6596 (1:6596)
jr z, .pressedStart
.didNotPressED
ld a, [wCurrentMenuItem]
- cp $6 ; case swtich row
+ cp $6 ; case switch row
jr nz, .didNotPressCaseSwtich
ld a, [wTopMenuItemX]
cp $1 ; case switch column
@@ -228,9 +228,9 @@ DisplayNamingScreen: ; 6596 (1:6596)
ld l, a
inc hl
ld a, [hl]
- ld [wHPBarNewHP], a
+ ld [wNamingScreenLetter], a
call CalcStringLength
- ld a, [wHPBarNewHP]
+ ld a, [wNamingScreenLetter]
cp $e5
ld de, Dakutens
jr z, .dakutensAndHandakutens
@@ -240,11 +240,11 @@ DisplayNamingScreen: ; 6596 (1:6596)
ld a, [wNamingScreenType]
cp NAME_MON_SCREEN
jr nc, .checkMonNameLength
- ld a, [wHPBarMaxHP]
+ ld a, [wNamingScreenNameLength]
cp $7 ; max length of player/rival names
jr .checkNameLength
.checkMonNameLength
- ld a, [wHPBarMaxHP]
+ ld a, [wNamingScreenNameLength]
cp $a ; max length of pokemon nicknames
.checkNameLength
jr c, .addLetter
@@ -257,14 +257,14 @@ DisplayNamingScreen: ; 6596 (1:6596)
ret nc
dec hl
.addLetter
- ld a, [wHPBarNewHP]
+ ld a, [wNamingScreenLetter]
ld [hli], a
ld [hl], $50
ld a, SFX_PRESS_AB
call PlaySound
ret
.pressedB
- ld a, [wHPBarMaxHP]
+ ld a, [wNamingScreenNameLength]
and a
ret z
call CalcStringLength
@@ -335,7 +335,7 @@ ED_Tile: ; 6767 (1:6767)
PrintAlphabet: ; 676f (1:676f)
xor a
ld [H_AUTOBGTRANSFERENABLED], a
- ld a, [wHPBarOldHP]
+ ld a, [wAlphabetCase]
and a
ld de, LowerCaseAlphabet
jr nz, .lowercase
@@ -371,7 +371,7 @@ UpperCaseAlphabet: ; 67d6 (1:67d6)
PrintNicknameAndUnderscores: ; 680e (1:680e)
call CalcStringLength
ld a, c
- ld [wHPBarMaxHP], a
+ ld [wNamingScreenNameLength], a
coord hl, 10, 2
ld bc, $10a
call ClearScreenArea
@@ -394,7 +394,7 @@ PrintNicknameAndUnderscores: ; 680e (1:680e)
jr nz, .placeUnderscoreLoop
ld a, [wNamingScreenType]
cp NAME_MON_SCREEN
- ld a, [wHPBarMaxHP]
+ ld a, [wNamingScreenNameLength]
jr nc, .pokemon2
cp 7 ; player or rival max name length
jr .playerOrRival2
@@ -433,7 +433,7 @@ DakutensAndHandakutens: ; 6871 (1:6871)
ret nc
inc hl
ld a, [hl]
- ld [wHPBarNewHP], a
+ ld [wNamingScreenLetter], a
ret
Dakutens: ; 6885 (1:6885)
diff --git a/engine/overworld/item.asm b/engine/overworld/item.asm
index eb6d743a..6fbe823d 100644
--- a/engine/overworld/item.asm
+++ b/engine/overworld/item.asm
@@ -31,7 +31,7 @@ PickUpItem:
jr nc, .BagFull
ld a, [$ffdb]
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef HideObject
ld a, 1
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
diff --git a/engine/overworld/npc_movement.asm b/engine/overworld/npc_movement.asm
index fcef55e0..c9265f3e 100755
--- a/engine/overworld/npc_movement.asm
+++ b/engine/overworld/npc_movement.asm
@@ -149,7 +149,7 @@ PalletMovementScript_Done: ; 1a4f4 (6:64f4)
and a
ret nz
ld a, $0
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef HideObject
ld hl, wd730
res 7, [hl]
diff --git a/engine/overworld/player_animations.asm b/engine/overworld/player_animations.asm
index a9aa2cf2..1a3d374f 100755
--- a/engine/overworld/player_animations.asm
+++ b/engine/overworld/player_animations.asm
@@ -370,10 +370,10 @@ IsPlayerStandingOnWarpPadOrHole: ; 70787 (1c:4787)
ld b, [hl]
.done
ld a, b
- ld [wcd5b], a
+ ld [wStandingOnWarpPadOrHole], a
ret
-; format: db tileset id, tile id, value to be put in wcd5b
+; format: db tileset id, tile id, value to be put in [wStandingOnWarpPadOrHole]
.warpPadAndHoleData: ; 707a9 (1c:47a9)
db FACILITY, $20, 1 ; warp pad
db FACILITY, $11, 2 ; hole
diff --git a/engine/town_map.asm b/engine/town_map.asm
index a90aa331..f5a047c3 100755
--- a/engine/town_map.asm
+++ b/engine/town_map.asm
@@ -487,24 +487,24 @@ WriteSymmetricMonPartySpriteOAM: ; 712a6 (1c:52a6)
; the X-flip OAM bit to be used so that only 2 rather than 4 tile patterns are
; needed.
xor a
- ld [wcd5c], a
- ld de, $202
+ ld [wSymmetricSpriteOAMAttributes], a
+ lb de, 2, 2
.loop
push de
push bc
.innerLoop
ld a, b
- ld [hli], a
+ ld [hli], a ; Y
ld a, c
- ld [hli], a
+ ld [hli], a ; X
ld a, [wOAMBaseTile]
- ld [hli], a
- ld a, [wcd5c]
- ld [hli], a
- xor $20
- ld [wcd5c], a
+ ld [hli], a ; tile
+ ld a, [wSymmetricSpriteOAMAttributes]
+ ld [hli], a ; attributes
+ xor (1 << OAM_X_FLIP)
+ ld [wSymmetricSpriteOAMAttributes], a
inc d
- ld a, $8
+ ld a, 8
add c
ld c, a
dec e
@@ -516,7 +516,7 @@ WriteSymmetricMonPartySpriteOAM: ; 712a6 (1c:52a6)
inc [hl]
inc [hl]
pop hl
- ld a, $8
+ ld a, 8
add b
ld b, a
dec d
diff --git a/home.asm b/home.asm
index 8226e352..c0f973be 100644
--- a/home.asm
+++ b/home.asm
@@ -394,13 +394,13 @@ PartyMenuInit:: ; 1420 (0:1420)
; otherwise, it is 0
.storeMaxMenuItemID
ld [hli], a ; max menu item ID
- ld a, [wd11f]
+ ld a, [wForcePlayerToChooseMon]
and a
- ld a, A_BUTTON + B_BUTTON
+ ld a, A_BUTTON | B_BUTTON
jr z, .next
xor a
- ld [wd11f], a
- inc a
+ ld [wForcePlayerToChooseMon], a
+ inc a ; a = A_BUTTON
.next
ld [hli], a ; menu watched keys
pop af
@@ -2403,7 +2403,7 @@ EndTrainerBattle:: ; 3275 (0:3275)
call IsInArray ; search for sprite ID
inc hl
ld a, [hl]
- ld [wcc4d], a ; load corresponding missable object index and remove it
+ ld [wMissableObjectIndex], a ; load corresponding missable object index and remove it
predef HideObject
.skipRemoveSprite
ld hl, wd730
@@ -2905,7 +2905,7 @@ GetTrainerInformation:: ; 3566 (0:3566)
inc de
ld a, [hli]
ld [de], a
- ld de, wd046
+ ld de, wTrainerBaseMoney
ld a, [hli]
ld [de], a
inc de
@@ -3944,7 +3944,7 @@ HandleMenuInput_:: ; 3ac2 (0:3ac2)
ret
.keyPressed
xor a
- ld [wcc4b],a
+ ld [wCheckFor180DegreeTurn],a
ld a,[hJoy5]
ld b,a
bit 6,a ; pressed Up key?
diff --git a/home/overworld.asm b/home/overworld.asm
index 9b60d7e9..bd9f4a0a 100644
--- a/home/overworld.asm
+++ b/home/overworld.asm
@@ -132,8 +132,8 @@ OverworldLoopLessDelay::
ld hl,wFlags_0xcd60
res 2,[hl]
call UpdateSprites
- ld a,$01
- ld [wcc4b],a
+ ld a,1
+ ld [wCheckFor180DegreeTurn],a
ld a,[wPlayerMovingDirection] ; the direction that was pressed last time
and a
jp z,OverworldLoop
@@ -174,7 +174,7 @@ OverworldLoopLessDelay::
ld a,[wd730]
bit 7,a ; are we simulating button presses?
jr nz,.noDirectionChange ; ignore direction changes if we are
- ld a,[wcc4b]
+ ld a,[wCheckFor180DegreeTurn]
and a
jr z,.noDirectionChange
ld a,[wPlayerDirection] ; new direction
@@ -182,39 +182,44 @@ OverworldLoopLessDelay::
ld a,[wPlayerLastStopDirection] ; old direction
cp b
jr z,.noDirectionChange
-; the code below is strange
-; it computes whether or not the player did a 180 degree turn, but then overwrites the result
-; also, it does a seemingly pointless loop afterwards
+; Check whether the player did a 180-degree turn.
+; It appears that this code was supposed to show the player rotate by having
+; the player's sprite face an intermediate direction before facing the opposite
+; direction (instead of doing an instantaneous about-face), but the intermediate
+; direction is only set for a short period of time. It is unlikely for it to
+; ever be visible because DelayFrame is called at the start of OverworldLoop and
+; normally not enough cycles would be executed between then and the time the
+; direction is set for V-blank to occur while the direction is still set.
swap a ; put old direction in upper half
or b ; put new direction in lower half
cp a,(PLAYER_DIR_DOWN << 4) | PLAYER_DIR_UP ; change dir from down to up
jr nz,.notDownToUp
ld a,PLAYER_DIR_LEFT
ld [wPlayerMovingDirection],a
- jr .oddLoop
+ jr .holdIntermediateDirectionLoop
.notDownToUp
cp a,(PLAYER_DIR_UP << 4) | PLAYER_DIR_DOWN ; change dir from up to down
jr nz,.notUpToDown
ld a,PLAYER_DIR_RIGHT
ld [wPlayerMovingDirection],a
- jr .oddLoop
+ jr .holdIntermediateDirectionLoop
.notUpToDown
cp a,(PLAYER_DIR_RIGHT << 4) | PLAYER_DIR_LEFT ; change dir from right to left
jr nz,.notRightToLeft
ld a,PLAYER_DIR_DOWN
ld [wPlayerMovingDirection],a
- jr .oddLoop
+ jr .holdIntermediateDirectionLoop
.notRightToLeft
cp a,(PLAYER_DIR_LEFT << 4) | PLAYER_DIR_RIGHT ; change dir from left to right
- jr nz,.oddLoop
+ jr nz,.holdIntermediateDirectionLoop
ld a,PLAYER_DIR_UP
ld [wPlayerMovingDirection],a
-.oddLoop
+.holdIntermediateDirectionLoop
ld hl,wFlags_0xcd60
set 2,[hl]
- ld hl,wcc4b
+ ld hl,wCheckFor180DegreeTurn
dec [hl]
- jr nz,.oddLoop
+ jr nz,.holdIntermediateDirectionLoop
ld a,[wPlayerDirection]
ld [wPlayerMovingDirection],a
call NewBattle
@@ -493,7 +498,7 @@ WarpFound2:: ; 073c (0:073c)
; if not going back to the previous map
ld [W_CURMAP],a
callba IsPlayerStandingOnWarpPadOrHole
- ld a,[wcd5b]
+ ld a,[wStandingOnWarpPadOrHole]
dec a ; is the player on a warp pad?
jr nz,.notWarpPad
; if the player is on a warp pad
@@ -2007,7 +2012,7 @@ LoadPlayerSpriteGraphicsCommon:: ; 1063 (0:1063)
LoadMapHeader:: ; 107c (0:107c)
callba MarkTownVisitedAndLoadMissableObjects
ld a,[W_CURMAPTILESET]
- ld [wd119],a
+ ld [wUnusedD119],a
ld a,[W_CURMAP]
call SwitchToMapRomBank
ld a,[W_CURMAPTILESET]
@@ -2305,7 +2310,7 @@ LoadMapData:: ; 1241 (0:1241)
ld [hSCY],a
ld [hSCX],a
ld [wWalkCounter],a
- ld [wd119],a
+ ld [wUnusedD119],a
ld [wWalkBikeSurfStateCopy],a
ld [W_SPRITESETID],a
call LoadTextBoxTilePatterns
diff --git a/home/vblank.asm b/home/vblank.asm
index 05b01a3d..6abc3756 100644
--- a/home/vblank.asm
+++ b/home/vblank.asm
@@ -6,7 +6,7 @@ VBlank::
push hl
ld a, [H_LOADEDROMBANK]
- ld [wd122], a
+ ld [wVBlankSavedROMBank], a
ld a, [hSCX]
ld [rSCX], a
@@ -78,7 +78,7 @@ VBlank::
and a
call z, ReadJoypad
- ld a, [wd122]
+ ld a, [wVBlankSavedROMBank]
ld [H_LOADEDROMBANK], a
ld [MBC1RomBank], a
diff --git a/home/vcopy.asm b/home/vcopy.asm
index 8de00e38..02caef29 100644
--- a/home/vcopy.asm
+++ b/home/vcopy.asm
@@ -380,21 +380,23 @@ UpdateMovingBgTiles::
and a
ret z ; no animations if indoors (or if a menu set this to 0)
- ld a, [$ffd8]
+ ld a, [hMovingBGTilesCounter1]
inc a
- ld [$ffd8], a
- cp $14
+ ld [hMovingBGTilesCounter1], a
+ cp 20
ret c
- cp $15
+ cp 21
jr z, .flower
+; water
+
ld hl, vTileset + $14 * $10
ld c, $10
- ld a, [wd085]
+ ld a, [wMovingBGTilesCounter2]
inc a
and 7
- ld [wd085], a
+ ld [wMovingBGTilesCounter2], a
and 4
jr nz, .left
@@ -417,14 +419,14 @@ UpdateMovingBgTiles::
ret nc
; if in a cave, no flower animations
xor a
- ld [$ffd8], a
+ ld [hMovingBGTilesCounter1], a
ret
.flower
xor a
- ld [$ffd8], a
+ ld [hMovingBGTilesCounter1], a
- ld a, [wd085]
+ ld a, [wMovingBGTilesCounter2]
and 3
cp 2
ld hl, FlowerTile1
diff --git a/hram.asm b/hram.asm
index c74e53d7..16cc4a44 100644
--- a/hram.asm
+++ b/hram.asm
@@ -259,6 +259,8 @@ H_VBLANKOCCURRED EQU $FFD6
; this is often set to 00 in order to turn off water and flower BG tile animations
hTilesetType EQU $FFD7
+hMovingBGTilesCounter1 EQU $FFD8
+
H_CURRENTSPRITEOFFSET EQU $FFDA ; multiple of $10
hFossilCounter EQU $FFDB
diff --git a/main.asm b/main.asm
index 8160afa5..d98f27c3 100755
--- a/main.asm
+++ b/main.asm
@@ -1642,39 +1642,39 @@ DisplayTwoOptionMenu: ; 7559 (1:7559)
; The bottom and right edges of the menu may remain after the function returns.
TwoOptionMenu_SaveScreenTiles: ; 763e (1:763e)
- ld de, wHPBarMaxHP
- ld bc, $506
-.asm_7644
+ ld de, wBuffer
+ lb bc, 5, 6
+.loop
ld a, [hli]
ld [de], a
inc de
dec c
- jr nz, .asm_7644
+ jr nz, .loop
push bc
- ld bc, 14
+ ld bc, SCREEN_WIDTH - 6
add hl, bc
pop bc
ld c, $6
dec b
- jr nz, .asm_7644
+ jr nz, .loop
ret
TwoOptionMenu_RestoreScreenTiles: ; 7656 (1:7656)
- ld de, wHPBarMaxHP
- ld bc, $506
-.asm_765c
+ ld de, wBuffer
+ lb bc, 5, 6
+.loop
ld a, [de]
inc de
ld [hli], a
dec c
- jr nz, .asm_765c
+ jr nz, .loop
push bc
- ld bc, $e
+ ld bc, SCREEN_WIDTH - 6
add hl, bc
pop bc
- ld c, $6
+ ld c, 6
dec b
- jr nz, .asm_765c
+ jr nz, .loop
call UpdateSprites
ret
@@ -3167,9 +3167,9 @@ RedrawMapView: ; eedc (3:6edc)
and $3
or $98
ld a, l
- ld [wHPBarMaxHP], a
+ ld [wBuffer], a
ld a, h
- ld [wHPBarMaxHP + 1], a
+ ld [wBuffer + 1], a ; this copy of the address is not used
ld a, 2
ld [$ffbe], a
ld c, 9 ; number of rows of 2x2 tiles (this covers the whole screen)
@@ -3177,25 +3177,25 @@ RedrawMapView: ; eedc (3:6edc)
push bc
push hl
push hl
- ld hl, wTileMap - 2 * 20
- ld de, 20
+ ld hl, wTileMap - 2 * SCREEN_WIDTH
+ ld de, SCREEN_WIDTH
ld a, [$ffbe]
-.asm_ef1a
+.calcWRAMAddrLoop
add hl, de
dec a
- jr nz, .asm_ef1a
+ jr nz, .calcWRAMAddrLoop
call CopyToScreenEdgeTiles
pop hl
ld de, $20
ld a, [$ffbe]
ld c, a
-.asm_ef28
+.calcVRAMAddrLoop
add hl, de
ld a, h
and $3
or $98
dec c
- jr nz, .asm_ef28
+ jr nz, .calcVRAMAddrLoop
ld [H_SCREENEDGEREDRAWADDR + 1], a
ld a, l
ld [H_SCREENEDGEREDRAWADDR], a
@@ -3301,7 +3301,7 @@ InitializeMissableObjectsFlags: ; f175 (3:7175)
call FillMemory ; clear missable objects flags
ld hl, MapHS00
xor a
- ld [wd048], a
+ ld [wMissableObjectCounter], a
.missableObjectsLoop
ld a, [hli]
cp $ff ; end of list
@@ -3310,14 +3310,14 @@ InitializeMissableObjectsFlags: ; f175 (3:7175)
inc hl
ld a, [hl]
cp Hide
- jr nz, .asm_f19d
+ jr nz, .skip
ld hl, W_MISSABLEOBJECTFLAGS
- ld a, [wd048]
+ ld a, [wMissableObjectCounter]
ld c, a
ld b, FLAG_SET
- call MissableObjectFlagAction ; set flag iff Item is hidden
-.asm_f19d
- ld hl, wd048
+ call MissableObjectFlagAction ; set flag if Item is hidden
+.skip
+ ld hl, wMissableObjectCounter
inc [hl]
pop hl
inc hl
@@ -3351,21 +3351,21 @@ IsObjectHidden: ; f1a6 (3:71a6)
ret
; adds missable object (items, leg. pokemon, etc.) to the map
-; [wcc4d]: index of the missable object to be added (global index)
+; [wMissableObjectIndex]: index of the missable object to be added (global index)
ShowObject: ; f1c8 (3:71c8)
ShowObject2:
ld hl, W_MISSABLEOBJECTFLAGS
- ld a, [wcc4d]
+ ld a, [wMissableObjectIndex]
ld c, a
ld b, FLAG_RESET
call MissableObjectFlagAction ; reset "removed" flag
jp UpdateSprites
; removes missable object (items, leg. pokemon, etc.) from the map
-; [wcc4d]: index of the missable object to be removed (global index)
+; [wMissableObjectIndex]: index of the missable object to be removed (global index)
HideObject: ; f1d7 (3:71d7)
ld hl, W_MISSABLEOBJECTFLAGS
- ld a, [wcc4d]
+ ld a, [wMissableObjectIndex]
ld c, a
ld b, FLAG_SET
call MissableObjectFlagAction ; set "removed" flag
diff --git a/scripts/billshouse.asm b/scripts/billshouse.asm
index 71e61603..e4cfc031 100755
--- a/scripts/billshouse.asm
+++ b/scripts/billshouse.asm
@@ -49,7 +49,7 @@ BillsHouseScript2: ; 1e7a6 (7:67a6)
bit 0, a
ret nz
ld a, HS_BILL_POKEMON
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef HideObject
SetEvent EVENT_BILL_SAID_USE_CELL_SEPARATOR
xor a
@@ -75,7 +75,7 @@ BillsHouseScript3: ; 1e7c5 (7:67c5)
ld [$ffee], a
call SetSpritePosition1
ld a, HS_BILL_1
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef ShowObject
ld c, 8
call DelayFrames
@@ -170,10 +170,10 @@ BillsHouseText2: ; 1e874 (7:6874)
call PrintText
SetEvent EVENT_GOT_SS_TICKET
ld a, HS_CERULEAN_GUARD_1
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef ShowObject
ld a, HS_CERULEAN_GUARD_2
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef HideObject
.asm_1e8a9
ld hl, BillsHouseText_1e8cb
diff --git a/scripts/blueshouse.asm b/scripts/blueshouse.asm
index 12ca9106..0e29d64c 100755
--- a/scripts/blueshouse.asm
+++ b/scripts/blueshouse.asm
@@ -40,7 +40,7 @@ BluesHouseText1: ; 19b5d (6:5b5d)
call GiveItem
jr nc, .BagFull
ld a,HS_TOWN_MAP
- ld [wcc4d],a
+ ld [wMissableObjectIndex],a
predef HideObject ; hide table map object
ld hl,GotMapText
call PrintText
diff --git a/scripts/celadongamecorner.asm b/scripts/celadongamecorner.asm
index 84919b64..e8917434 100755
--- a/scripts/celadongamecorner.asm
+++ b/scripts/celadongamecorner.asm
@@ -107,7 +107,7 @@ CeladonGameCornerScript2: ; 48c69 (12:4c69)
xor a
ld [wJoyIgnore], a
ld a, HS_GAME_CORNER_ROCKET
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef HideObject
ld hl, wd126
set 5, [hl]
diff --git a/scripts/celadonmansion5.asm b/scripts/celadonmansion5.asm
index f847759b..60d2cc92 100755
--- a/scripts/celadonmansion5.asm
+++ b/scripts/celadonmansion5.asm
@@ -15,7 +15,7 @@ CeladonMansion5Text2: ; 1dd46 (7:5d46)
call GivePokemon
jr nc, .asm_24365
ld a, HS_CELADON_MANSION_5_GIFT
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef HideObject
.asm_24365
jp TextScriptEnd
diff --git a/scripts/ceruleancity.asm b/scripts/ceruleancity.asm
index 5da549f3..c13e66e2 100755
--- a/scripts/ceruleancity.asm
+++ b/scripts/ceruleancity.asm
@@ -9,7 +9,7 @@ CeruleanCityScript_1948c: ; 1948c (6:548c)
ld [wJoyIgnore], a
ld [W_CERULEANCITYCURSCRIPT], a
ld a, HS_CERULEAN_RIVAL
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef_jump HideObject
CeruleanCityScriptPointers: ; 1949d (6:549d)
@@ -86,7 +86,7 @@ CeruleanCityScript0: ; 194c8 (6:54c8)
ld [hl], $19
.asm_19535
ld a, HS_CERULEAN_RIVAL
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef ShowObject
ld de, CeruleanCityMovement1
ld a, $1
@@ -218,7 +218,7 @@ CeruleanCityScript3: ; 19610 (6:5610)
bit 0, a
ret nz
ld a, HS_CERULEAN_RIVAL
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef HideObject
xor a
ld [wJoyIgnore], a
diff --git a/scripts/ceruleancity2.asm b/scripts/ceruleancity2.asm
index 2232b0f4..3dafb3f8 100755
--- a/scripts/ceruleancity2.asm
+++ b/scripts/ceruleancity2.asm
@@ -4,13 +4,13 @@ CeruleanHideRocket: ; 74872 (1d:4872)
; the screen then fades out, he disappears, and fades back in
call GBFadeOutToBlack
ld a, HS_CERULEAN_GUARD_1
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef ShowObject
ld a, HS_CERULEAN_GUARD_2
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef HideObject
ld a, HS_CERULEAN_ROCKET
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef HideObject
call GBFadeInFromBlack
ret
diff --git a/scripts/fightingdojo.asm b/scripts/fightingdojo.asm
index 91d8a484..fa05d486 100755
--- a/scripts/fightingdojo.asm
+++ b/scripts/fightingdojo.asm
@@ -274,7 +274,7 @@ FightingDojoText6: ; 5cf06 (17:4f06)
; once Poké Ball is taken, hide sprite
ld a, HS_FIGHTING_DOJO_GIFT_1
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef HideObject
SetEvents EVENT_GOT_HITMONLEE, EVENT_DEFEATED_FIGHTING_DOJO
.done
@@ -310,7 +310,7 @@ FightingDojoText7: ; 5cf4e (17:4f4e)
; once Poké Ball is taken, hide sprite
ld a, HS_FIGHTING_DOJO_GIFT_2
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef HideObject
.done
jp TextScriptEnd
diff --git a/scripts/gary.asm b/scripts/gary.asm
index 24a2d2de..9a3b1582 100755
--- a/scripts/gary.asm
+++ b/scripts/gary.asm
@@ -120,7 +120,7 @@ GaryScript4: ; 75fe4 (1d:5fe4)
ld [H_SPRITEINDEX], a
call MoveSprite
ld a, HS_CHAMPIONS_ROOM_OAK
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef ShowObject
ld a, $5
ld [W_GARYCURSCRIPT], a
@@ -197,7 +197,7 @@ GaryScript8: ; 76083 (1d:6083)
bit 0, a
ret nz
ld a, HS_CHAMPIONS_ROOM_OAK
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef HideObject
ld a, $9
ld [W_GARYCURSCRIPT], a
diff --git a/scripts/halloffameroom.asm b/scripts/halloffameroom.asm
index 9a5b595a..1da6d3f5 100755
--- a/scripts/halloffameroom.asm
+++ b/scripts/halloffameroom.asm
@@ -95,7 +95,7 @@ HallofFameRoomScript1: ; 5a52b (16:652b)
ld a, $ff
ld [wJoyIgnore], a
ld a, HS_UNKNOWN_DUNGEON_GUY
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef HideObject
ld a, $2
ld [W_HALLOFFAMEROOMCURSCRIPT], a
diff --git a/scripts/mtmoon3.asm b/scripts/mtmoon3.asm
index 4542cc53..21c959aa 100755
--- a/scripts/mtmoon3.asm
+++ b/scripts/mtmoon3.asm
@@ -145,7 +145,7 @@ MtMoon3Script5: ; 49dfb (12:5dfb)
.asm_49e1d
ld a, HS_MT_MOON_3_FOSSIL_1
.asm_49e1f
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef HideObject
xor a
ld [wJoyIgnore], a
@@ -276,7 +276,7 @@ MtMoon3Text6: ; 49ee9 (12:5ee9)
jp nc, MtMoon3Script_49f76
call MtMoon3Script_49f69
ld a, HS_MT_MOON_3_FOSSIL_1
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef HideObject
SetEvent EVENT_GOT_DOME_FOSSIL
ld a, $4
@@ -304,7 +304,7 @@ MtMoon3Text7: ; 49f29 (12:5f29)
jp nc, MtMoon3Script_49f76
call MtMoon3Script_49f69
ld a, HS_MT_MOON_3_FOSSIL_2
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef HideObject
SetEvent EVENT_GOT_HELIX_FOSSIL
ld a, $4
diff --git a/scripts/museum1f.asm b/scripts/museum1f.asm
index 77c7f270..4c209eb8 100755
--- a/scripts/museum1f.asm
+++ b/scripts/museum1f.asm
@@ -196,7 +196,7 @@ Museum1FText3: ; 5c256 (17:4256)
jr nc, .BagFull
SetEvent EVENT_GOT_OLD_AMBER
ld a, HS_OLD_AMBER
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef HideObject
ld hl, ReceivedOldAmberText
jr .asm_5c288
diff --git a/scripts/oakslab.asm b/scripts/oakslab.asm
index a2fa4338..329d3c25 100755
--- a/scripts/oakslab.asm
+++ b/scripts/oakslab.asm
@@ -37,7 +37,7 @@ OaksLabScript0: ; 1cb4e (7:4b4e)
and a
ret nz
ld a, HS_OAKS_LAB_OAK_2
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef ShowObject
ld hl, wd72e
res 4, [hl]
@@ -67,10 +67,10 @@ OaksLabScript2: ; 1cb82 (7:4b82)
bit 0, a
ret nz
ld a, HS_OAKS_LAB_OAK_2
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef HideObject
ld a, HS_OAKS_LAB_OAK_1
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef ShowObject
ld a, $3
@@ -315,7 +315,7 @@ OaksLabScript9: ; 1cd00 (7:4d00)
.asm_1cd30
ld a, HS_STARTER_BALL_3
.asm_1cd32
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef HideObject
call Delay3
ld a, [wRivalStarterTemp]
@@ -475,7 +475,7 @@ OaksLabScript14: ; 1ce6d (7:4e6d)
bit 0, a
jr nz, .asm_1ce8c
ld a, HS_OAKS_LAB_RIVAL
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef HideObject
xor a
ld [wJoyIgnore], a
@@ -519,7 +519,7 @@ OaksLabScript15: ; 1ceb0 (7:4eb0)
call DisplayTextID
call OaksLabScript_1d02b
ld a, HS_OAKS_LAB_RIVAL
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef ShowObject
ld a, [wNPCMovementDirections2Index]
ld [wd157], a
@@ -578,10 +578,10 @@ OaksLabScript16: ; 1cf12 (7:4f12)
call DisplayTextID
call Delay3
ld a, HS_POKEDEX_1
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef HideObject
ld a, HS_POKEDEX_2
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef HideObject
call OaksLabScript_1cefd
ld a, $1a
@@ -599,10 +599,10 @@ OaksLabScript16: ; 1cf12 (7:4f12)
SetEvent EVENT_GOT_POKEDEX
SetEvent EVENT_OAK_GOT_PARCEL
ld a, HS_LYING_OLD_MAN
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef HideObject
ld a, HS_OLD_MAN
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef ShowObject
ld a, [wd157]
ld b, $0
@@ -630,13 +630,13 @@ OaksLabScript17: ; 1cfd4 (7:4fd4)
ret nz
call PlayDefaultMusic
ld a, HS_OAKS_LAB_RIVAL
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef HideObject
SetEvent EVENT_1ST_ROUTE22_RIVAL_BATTLE
ResetEventReuseHL EVENT_2ND_ROUTE22_RIVAL_BATTLE
SetEventReuseHL EVENT_ROUTE22_RIVAL_WANTS_BATTLE
ld a, HS_ROUTE_22_RIVAL_1
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef ShowObject
ld a, $5
ld [W_PALLETTOWNCURSCRIPT], a
@@ -914,7 +914,7 @@ OaksLabMonChoiceMenu: ; 1d1b3 (7:51b3)
.asm_1d1e3
ld a, HS_STARTER_BALL_3
.asm_1d1e5
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef HideObject
ld a, $1
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
diff --git a/scripts/pallettown.asm b/scripts/pallettown.asm
index 0fd7300e..e4c3f135 100755
--- a/scripts/pallettown.asm
+++ b/scripts/pallettown.asm
@@ -51,7 +51,7 @@ PalletTownScript1: ; 18eb2 (6:4eb2)
ld a,$FF
ld [wJoyIgnore],a
ld a,HS_PALLET_TOWN_OAK
- ld [wcc4d],a
+ ld [wMissableObjectIndex],a
predef ShowObject
; trigger the next script
@@ -136,10 +136,10 @@ PalletTownScript5: ; 18f56 (6:4f56)
jr nz,.next
SetEvent EVENT_DAISY_WALKING
ld a,HS_DAISY_SITTING
- ld [wcc4d],a
+ ld [wMissableObjectIndex],a
predef HideObject
ld a,HS_DAISY_WALKING
- ld [wcc4d],a
+ ld [wMissableObjectIndex],a
predef_jump ShowObject
.next
CheckEvent EVENT_GOT_POKEBALLS_FROM_OAK
diff --git a/scripts/pewtercity.asm b/scripts/pewtercity.asm
index 77da14f8..66589d52 100755
--- a/scripts/pewtercity.asm
+++ b/scripts/pewtercity.asm
@@ -88,7 +88,7 @@ PewterCityScript2: ; 192d3 (6:52d3)
bit 0, a
ret nz
ld a, HS_MUSEUM_GUY
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef HideObject
ld a, $3
ld [W_PEWTERCITYCURSCRIPT], a
@@ -99,7 +99,7 @@ PewterCityScript3: ; 192e9 (6:52e9)
ld [wSpriteIndex], a
call SetSpritePosition2
ld a, HS_MUSEUM_GUY
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef ShowObject
xor a
ld [wJoyIgnore], a
@@ -157,7 +157,7 @@ PewterCityScript5: ; 19359 (6:5359)
bit 0, a
ret nz
ld a, HS_GYM_GUY
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef HideObject
ld a, $6
ld [W_PEWTERCITYCURSCRIPT], a
@@ -168,7 +168,7 @@ PewterCityScript6: ; 1936f (6:536f)
ld [wSpriteIndex], a
call SetSpritePosition2
ld a, HS_GYM_GUY
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef ShowObject
xor a
ld [wJoyIgnore], a
diff --git a/scripts/pewtergym.asm b/scripts/pewtergym.asm
index 576e8246..704ea104 100755
--- a/scripts/pewtergym.asm
+++ b/scripts/pewtergym.asm
@@ -66,10 +66,10 @@ PewterGymScript_5c3df: ; 5c3df (17:43df)
set 0, [hl]
ld a, HS_GYM_GUY
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef HideObject
ld a, HS_ROUTE_22_RIVAL_1
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef HideObject
ResetEvents EVENT_1ST_ROUTE22_RIVAL_BATTLE, EVENT_ROUTE22_RIVAL_WANTS_BATTLE
diff --git a/scripts/pokemontower2.asm b/scripts/pokemontower2.asm
index c7b94c4f..a569b60b 100755
--- a/scripts/pokemontower2.asm
+++ b/scripts/pokemontower2.asm
@@ -112,7 +112,7 @@ PokemonTower2Script2: ; 605bb (18:45bb)
bit 0, a
ret nz
ld a, HS_POKEMONTOWER_2_RIVAL
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef HideObject
xor a
ld [wJoyIgnore], a
diff --git a/scripts/pokemontower7.asm b/scripts/pokemontower7.asm
index 3698f4ee..f1fceb2f 100755
--- a/scripts/pokemontower7.asm
+++ b/scripts/pokemontower7.asm
@@ -51,7 +51,7 @@ PokemonTower7Script3: ; 60d56 (18:4d56)
cp b ; search for sprite ID in missing objects list
ld a, [hli]
jr nz, .missableObjectsListLoop
- ld [wcc4d], a ; remove missable object
+ ld [wMissableObjectIndex], a ; remove missable object
predef HideObject
xor a
ld [wJoyIgnore], a
@@ -67,7 +67,7 @@ PokemonTower7Script4: ; 60d86 (18:4d86)
ld a, $ff
ld [wJoyIgnore], a
ld a, HS_POKEMONTOWER_7_MR_FUJI
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef HideObject
ld a, SPRITE_FACING_UP
ld [wSpriteStateData1 + 9], a
@@ -259,13 +259,13 @@ PokemonTower7FujiText:
SetEvent EVENT_RESCUED_MR_FUJI
SetEvent EVENT_RESCUED_MR_FUJI_2
ld a, HS_LAVENDER_HOUSE_1_MR_FUJI
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef ShowObject
ld a, HS_SAFFRON_CITY_E
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef HideObject
ld a, HS_SAFFRON_CITY_F
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef ShowObject
ld a, $4
ld [W_POKEMONTOWER7CURSCRIPT], a
diff --git a/scripts/rockethideout4.asm b/scripts/rockethideout4.asm
index ed2bb61d..62d6f6bb 100755
--- a/scripts/rockethideout4.asm
+++ b/scripts/rockethideout4.asm
@@ -56,10 +56,10 @@ RocketHideout4Script3: ; 454b6 (11:54b6)
call DisplayTextID
call GBFadeOutToBlack
ld a, HS_ROCKET_HIDEOUT_4_GIOVANNI
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef HideObject
ld a, HS_ROCKET_HIDEOUT_4_ITEM_4
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef ShowObject
call UpdateSprites
call GBFadeInFromBlack
@@ -211,7 +211,7 @@ RocketHideout4AfterBattleText4: ; 455cf (11:55cf)
CheckAndSetEvent EVENT_ROCKET_DROPPED_LIFT_KEY
jr nz, .asm_455e9
ld a, HS_ROCKET_HIDEOUT_4_ITEM_5
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef ShowObject
.asm_455e9
jp TextScriptEnd
diff --git a/scripts/route12.asm b/scripts/route12.asm
index be20958e..4057ce03 100755
--- a/scripts/route12.asm
+++ b/scripts/route12.asm
@@ -34,7 +34,7 @@ Route12Script0: ; 59619 (16:5619)
ld a, 30
ld [W_CURENEMYLVL], a
ld a, HS_ROUTE_12_SNORLAX
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef HideObject
ld a, $3
ld [W_ROUTE12CURSCRIPT], a
diff --git a/scripts/route16.asm b/scripts/route16.asm
index 286b5289..c762c999 100755
--- a/scripts/route16.asm
+++ b/scripts/route16.asm
@@ -34,7 +34,7 @@ Route16Script0: ; 59959 (16:5959)
ld a, 30
ld [W_CURENEMYLVL], a
ld a, HS_ROUTE_16_SNORLAX
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef HideObject
call UpdateSprites
ld a, $3
diff --git a/scripts/route20.asm b/scripts/route20.asm
index 2ef51da9..ce9e6f23 100755
--- a/scripts/route20.asm
+++ b/scripts/route20.asm
@@ -49,11 +49,11 @@ Route20Script_50cc6: ; 50cc6 (14:4cc6)
ret
Route20Script_50d0c: ; 50d0c (14:4d0c)
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef_jump ShowObject
Route20Script_50d14: ; 50d14 (14:4d14)
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef_jump HideObject
Route20ScriptPointers: ; 50d1c (14:4d1c)
diff --git a/scripts/route22.asm b/scripts/route22.asm
index 25b16886..041f75e6 100755
--- a/scripts/route22.asm
+++ b/scripts/route22.asm
@@ -224,7 +224,7 @@ Route22Script3: ; 5102a (14:502a)
xor a
ld [wJoyIgnore], a
ld a, HS_ROUTE_22_RIVAL_1
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef HideObject
call PlayDefaultMusic
ResetEvents EVENT_1ST_ROUTE22_RIVAL_BATTLE, EVENT_ROUTE22_RIVAL_WANTS_BATTLE
@@ -369,7 +369,7 @@ Route22Script6: ; 51151 (14:5151)
xor a
ld [wJoyIgnore], a
ld a, HS_ROUTE_22_RIVAL_2
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef HideObject
call PlayDefaultMusic
ResetEvents EVENT_2ND_ROUTE22_RIVAL_BATTLE, EVENT_ROUTE22_RIVAL_WANTS_BATTLE
diff --git a/scripts/route23.asm b/scripts/route23.asm
index adc631d8..35f1b9cb 100755
--- a/scripts/route23.asm
+++ b/scripts/route23.asm
@@ -13,10 +13,10 @@ Route23Script_511e9: ; 511e9 (14:51e9)
ResetEvents EVENT_VICTORY_ROAD_2_BOULDER_ON_SWITCH1, EVENT_VICTORY_ROAD_2_BOULDER_ON_SWITCH2
ResetEvents EVENT_VICTORY_ROAD_3_BOULDER_ON_SWITCH1, EVENT_VICTORY_ROAD_3_BOULDER_ON_SWITCH2
ld a, HS_VICTORY_ROAD_3_BOULDER
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef ShowObject
ld a, HS_VICTORY_ROAD_2_BOULDER
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef_jump HideObject
Route23ScriptPointers: ; 51213 (14:5213)
diff --git a/scripts/route25.asm b/scripts/route25.asm
index a123d74a..49580ba6 100755
--- a/scripts/route25.asm
+++ b/scripts/route25.asm
@@ -19,20 +19,20 @@ Route25Script_515e1: ; 515e1 (14:55e1)
jr nz, .asm_515ff
ResetEventReuseHL EVENT_BILL_SAID_USE_CELL_SEPARATOR
ld a, HS_BILL_POKEMON
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef_jump ShowObject
.asm_515ff
CheckEventAfterBranchReuseHL EVENT_GOT_SS_TICKET, EVENT_MET_BILL_2
ret z
SetEventReuseHL EVENT_LEFT_BILLS_HOUSE_AFTER_HELPING
ld a, HS_NUGGET_BRIDGE_GUY
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef HideObject
ld a, HS_BILL_1
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef HideObject
ld a, HS_BILL_2
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef_jump ShowObject
Route25ScriptPointers: ; 51622 (14:5622)
diff --git a/scripts/seafoamislands1.asm b/scripts/seafoamislands1.asm
index 542afe18..f9a2e7fc 100755
--- a/scripts/seafoamislands1.asm
+++ b/scripts/seafoamislands1.asm
@@ -14,22 +14,22 @@ SeafoamIslands1Script: ; 447e9 (11:47e9)
jr nz, .asm_44819
SetEventReuseHL EVENT_SEAFOAM1_BOULDER1_DOWN_HOLE
ld a, HS_SEAFOAM_ISLANDS_1_BOULDER_1
- ld [wd079], a
+ ld [wObjectToHide], a
ld a, HS_SEAFOAM_ISLANDS_2_BOULDER_1
- ld [wd07a], a
+ ld [wObjectToShow], a
jr .asm_44825
.asm_44819
SetEventAfterBranchReuseHL EVENT_SEAFOAM1_BOULDER2_DOWN_HOLE, EVENT_SEAFOAM1_BOULDER1_DOWN_HOLE
ld a, HS_SEAFOAM_ISLANDS_1_BOULDER_2
- ld [wd079], a
+ ld [wObjectToHide], a
ld a, HS_SEAFOAM_ISLANDS_2_BOULDER_2
- ld [wd07a], a
+ ld [wObjectToShow], a
.asm_44825
- ld a, [wd079]
- ld [wcc4d], a
+ ld a, [wObjectToHide]
+ ld [wMissableObjectIndex], a
predef HideObject
- ld a, [wd07a]
- ld [wcc4d], a
+ ld a, [wObjectToShow]
+ ld [wMissableObjectIndex], a
predef_jump ShowObject
.asm_4483b
ld a, $9f
diff --git a/scripts/seafoamislands2.asm b/scripts/seafoamislands2.asm
index bf81a467..2c2962f8 100755
--- a/scripts/seafoamislands2.asm
+++ b/scripts/seafoamislands2.asm
@@ -13,22 +13,22 @@ SeafoamIslands2Script: ; 46315 (11:6315)
jr nz, .asm_46340
SetEventReuseHL EVENT_SEAFOAM2_BOULDER1_DOWN_HOLE
ld a, HS_SEAFOAM_ISLANDS_2_BOULDER_1
- ld [wd079], a
+ ld [wObjectToHide], a
ld a, HS_SEAFOAM_ISLANDS_3_BOULDER_1
- ld [wd07a], a
+ ld [wObjectToShow], a
jr .asm_4634c
.asm_46340
SetEventAfterBranchReuseHL EVENT_SEAFOAM2_BOULDER2_DOWN_HOLE, EVENT_SEAFOAM2_BOULDER1_DOWN_HOLE
ld a, HS_SEAFOAM_ISLANDS_2_BOULDER_2
- ld [wd079], a
+ ld [wObjectToHide], a
ld a, HS_SEAFOAM_ISLANDS_3_BOULDER_2
- ld [wd07a], a
+ ld [wObjectToShow], a
.asm_4634c
- ld a, [wd079]
- ld [wcc4d], a
+ ld a, [wObjectToHide]
+ ld [wMissableObjectIndex], a
predef HideObject
- ld a, [wd07a]
- ld [wcc4d], a
+ ld a, [wObjectToShow]
+ ld [wMissableObjectIndex], a
predef_jump ShowObject
.asm_46362
ld a, $a0
diff --git a/scripts/seafoamislands3.asm b/scripts/seafoamislands3.asm
index 8f66a0ca..6dda7f37 100755
--- a/scripts/seafoamislands3.asm
+++ b/scripts/seafoamislands3.asm
@@ -13,22 +13,22 @@ SeafoamIslands3Script: ; 46451 (11:6451)
jr nz, .asm_4647c
SetEventReuseHL EVENT_SEAFOAM3_BOULDER1_DOWN_HOLE
ld a, HS_SEAFOAM_ISLANDS_3_BOULDER_1
- ld [wd079], a
+ ld [wObjectToHide], a
ld a, HS_SEAFOAM_ISLANDS_4_BOULDER_3
- ld [wd07a], a
+ ld [wObjectToShow], a
jr .asm_46488
.asm_4647c
SetEventAfterBranchReuseHL EVENT_SEAFOAM3_BOULDER2_DOWN_HOLE, EVENT_SEAFOAM3_BOULDER1_DOWN_HOLE
ld a, HS_SEAFOAM_ISLANDS_3_BOULDER_2
- ld [wd079], a
+ ld [wObjectToHide], a
ld a, HS_SEAFOAM_ISLANDS_4_BOULDER_4
- ld [wd07a], a
+ ld [wObjectToShow], a
.asm_46488
- ld a, [wd079]
- ld [wcc4d], a
+ ld a, [wObjectToHide]
+ ld [wMissableObjectIndex], a
predef HideObject
- ld a, [wd07a]
- ld [wcc4d], a
+ ld a, [wObjectToShow]
+ ld [wMissableObjectIndex], a
predef_jump ShowObject
.asm_4649e
ld a, $a1
diff --git a/scripts/seafoamislands4.asm b/scripts/seafoamislands4.asm
index dc198123..f7407e48 100755
--- a/scripts/seafoamislands4.asm
+++ b/scripts/seafoamislands4.asm
@@ -13,22 +13,22 @@ SeafoamIslands4Script: ; 4658d (11:658d)
jr nz, .asm_465b8
SetEventReuseHL EVENT_SEAFOAM4_BOULDER1_DOWN_HOLE
ld a, HS_SEAFOAM_ISLANDS_4_BOULDER_1
- ld [wd079], a
+ ld [wObjectToHide], a
ld a, HS_SEAFOAM_ISLANDS_5_BOULDER_1
- ld [wd07a], a
+ ld [wObjectToShow], a
jr .asm_465c4
.asm_465b8
SetEventAfterBranchReuseHL EVENT_SEAFOAM4_BOULDER2_DOWN_HOLE, EVENT_SEAFOAM4_BOULDER1_DOWN_HOLE
ld a, HS_SEAFOAM_ISLANDS_4_BOULDER_2
- ld [wd079], a
+ ld [wObjectToHide], a
ld a, HS_SEAFOAM_ISLANDS_5_BOULDER_2
- ld [wd07a], a
+ ld [wObjectToShow], a
.asm_465c4
- ld a, [wd079]
- ld [wcc4d], a
+ ld a, [wObjectToHide]
+ ld [wMissableObjectIndex], a
predef HideObject
- ld a, [wd07a]
- ld [wcc4d], a
+ ld a, [wObjectToShow]
+ ld [wMissableObjectIndex], a
predef ShowObject
jr .asm_465ed
.asm_465dc
diff --git a/scripts/silphco1.asm b/scripts/silphco1.asm
index 71b59d72..cfd51dc1 100755
--- a/scripts/silphco1.asm
+++ b/scripts/silphco1.asm
@@ -5,7 +5,7 @@ SilphCo1Script: ; 5d44e (17:544e)
CheckAndSetEvent EVENT_SILPH_CO_RECEPTIONIST_AT_DESK
ret nz
ld a, HS_SILPH_CO_1F_RECEPTIONIST
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef_jump ShowObject
SilphCo1TextPointers: ; 5d469 (17:5469)
diff --git a/scripts/silphco11.asm b/scripts/silphco11.asm
index 5de025f0..9cdf2891 100755
--- a/scripts/silphco11.asm
+++ b/scripts/silphco11.asm
@@ -76,7 +76,7 @@ SilphCo11Script_6216d: ; 6216d (18:616d)
cp $ff
jr z, .asm_62181
push hl
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef HideObject
pop hl
jr .asm_62170
@@ -87,7 +87,7 @@ SilphCo11Script_6216d: ; 6216d (18:616d)
cp $ff
ret z
push hl
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef ShowObject
pop hl
jr .asm_62184
diff --git a/scripts/silphco7.asm b/scripts/silphco7.asm
index 7169f0c0..44e92475 100755
--- a/scripts/silphco7.asm
+++ b/scripts/silphco7.asm
@@ -252,7 +252,7 @@ SilphCo7Script5: ; 51d25 (14:5d25)
bit 0, a
ret nz
ld a, HS_SILPH_CO_7F_RIVAL
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef HideObject
call PlayDefaultMusic
xor a
diff --git a/scripts/ssanne2.asm b/scripts/ssanne2.asm
index bc13d4b6..b95c5723 100755
--- a/scripts/ssanne2.asm
+++ b/scripts/ssanne2.asm
@@ -33,7 +33,7 @@ SSAnne2Script0: ; 613be (18:53be)
ld a, [wCoordIndex]
ld [$ffdb], a
ld a, HS_SS_ANNE_2_RIVAL
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef ShowObject
call Delay3
ld a, $2
@@ -171,7 +171,7 @@ SSAnne2Script3: ; 614be (18:54be)
xor a
ld [wJoyIgnore], a
ld a, HS_SS_ANNE_2_RIVAL
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef HideObject
call PlayDefaultMusic
ld a, $4
diff --git a/scripts/vermilioncity.asm b/scripts/vermilioncity.asm
index 7448e8f9..64ccc477 100755
--- a/scripts/vermilioncity.asm
+++ b/scripts/vermilioncity.asm
@@ -17,7 +17,7 @@ VermilionCityScript_197c0: ; 197c0 (6:57c0)
call Random
ld a, [$ffd4]
and $e
- ld [wd743], a
+ ld [wFirstLockTrashCanIndex], a
ret
VermilionCityScript_197cb: ; 197cb (6:57cb)
diff --git a/scripts/victoryroad3.asm b/scripts/victoryroad3.asm
index 33a29e44..c5aaef50 100755
--- a/scripts/victoryroad3.asm
+++ b/scripts/victoryroad3.asm
@@ -44,10 +44,10 @@ VictoryRoad3Script0: ; 449b7 (11:49b7)
CheckAndSetEvent EVENT_VICTORY_ROAD_3_BOULDER_ON_SWITCH2
jr nz, .asm_449fe
ld a, HS_VICTORY_ROAD_3_BOULDER
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef HideObject
ld a, HS_VICTORY_ROAD_2_BOULDER
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef_jump ShowObject
.coordsData_449f9: ; 449f9 (11:49f9)
diff --git a/scripts/viridiangym.asm b/scripts/viridiangym.asm
index 3855d316..0e075b2f 100755
--- a/scripts/viridiangym.asm
+++ b/scripts/viridiangym.asm
@@ -163,7 +163,7 @@ ViridianGymScript3_74995: ; 74995 (1d:4995)
SetEventRange EVENT_BEAT_VIRIDIAN_GYM_TRAINER_0, EVENT_BEAT_VIRIDIAN_GYM_TRAINER_7
ld a, HS_ROUTE_22_RIVAL_2
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef ShowObject
SetEvents EVENT_2ND_ROUTE22_RIVAL_BATTLE, EVENT_ROUTE22_RIVAL_WANTS_BATTLE
jp ViridianGymScript_748d6
@@ -275,7 +275,7 @@ ViridianGymText1: ; 74a69 (1d:4a69)
call PrintText
call GBFadeOutToBlack
ld a, HS_VIRIDIAN_GYM_GIOVANNI
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef HideObject
call UpdateSprites
call Delay3
diff --git a/text/maps/name_rater.asm b/text/maps/name_rater.asm
index 2baec727..052a9588 100644
--- a/text/maps/name_rater.asm
+++ b/text/maps/name_rater.asm
@@ -35,7 +35,7 @@ _NameRaterText_1dac7:: ; 9a404 (26:6404)
text "OK! This #MON"
line "has been renamed"
cont "@"
- TX_RAM wHPBarMaxHP
+ TX_RAM wBuffer
text "!"
para "That's a better"
diff --git a/wram.asm b/wram.asm
index 14f3c5af..20e32f4b 100755
--- a/wram.asm
+++ b/wram.asm
@@ -360,8 +360,14 @@ wMenuWrappingEnabled:: ; cc4a
; set to 0 if you can't go past the top or bottom of the menu
ds 1
-wcc4b:: ds 2 ; used as a joypad storage value
-wcc4d:: ds 1 ; used in sprite hiding/showing related operations
+wCheckFor180DegreeTurn:: ; cc4b
+; whether to check for 180-degree turn (0 = don't, 1 = do)
+ ds 1
+
+ ds 1
+
+wMissableObjectIndex:: ; cc4d
+ ds 1
wPredefID:: ; cc4e
ds 1
@@ -979,10 +985,18 @@ wWhichAnimationOffsets:: ; cd50
wTradedEnemyMonOTID:: ; cd59
ds 2
+wStandingOnWarpPadOrHole:: ; cd5b
+; 0 = neither
+; 1 = warp pad
+; 2 = hole
+
wOAMBaseTile:: ; cd5b
-wcd5b:: ds 1 ; used in some sprite stuff, town map and surge gym trash cans
-wcd5c:: ds 1 ; used in town map
+wGymTrashCanIndex:: ; cd5b
+ ds 1
+
+wSymmetricSpriteOAMAttributes:: ; cd5c
+ ds 1
wMonPartySpriteSpecies:: ; cd5d
ds 1
@@ -1049,6 +1063,8 @@ wTileMapBackup2:: ; cd81
; second buffer for temporarily saving and restoring current screen's tiles (e.g. if menus are drawn on top)
ds 20 * 18
+wNamingScreenNameLength:: ; cee9
+
wEvoOldSpecies:: ; cee9
wBuffer:: ; cee9
@@ -1066,11 +1082,18 @@ wChangeMonPicEnemyTurnSpecies:: ; cee9
wHPBarMaxHP:: ; cee9
ds 1
+wNamingScreenSubmitName:: ; ceea
+; non-zero when the player has chosen to submit the name
+
wChangeMonPicPlayerTurnSpecies:: ; ceea
wEvoNewSpecies:: ; ceea
ds 1
+wAlphabetCase:: ; ceeb
+; 0 = upper case
+; 1 = lower case
+
wEvoMonTileOffset:: ; ceeb
wHPBarOldHP:: ; ceeb
@@ -1079,13 +1102,17 @@ wHPBarOldHP:: ; ceeb
wEvoCancelled:: ; ceec
ds 1
+wNamingScreenLetter:: ; ceed
+
wHPBarNewHP:: ; ceed
ds 2
wHPBarDelta:: ; ceef
ds 1
-wcef0:: ds 1 ; used with HP bar stuff, probably used with wBuffer too.
-wcef1:: ds 12 ; same case as above
+wHPBarTempHP:: ; cef0
+ ds 2
+
+ ds 11
wHPBarHPDifference:: ; cefd
ds 1
@@ -1356,9 +1383,16 @@ wTrainerPicPointer:: ; d033
ds 2
ds 1
wd036:: ds 16 ; used as a temporary buffer to print "XXX learned YYY"
-wd046:: ds 1 ; used with trainer pointer stuff (not exactly sure, but the label is incremented and loaded with a value, so wd047 is accessed)
-wd047:: ds 1 ; used with unloading trainer data?
-wd048:: ds 2 ; used as a pointer for missable object loop
+
+wTrainerBaseMoney:: ; d046
+; 2-byte BCD number
+; money received after battle = base money × level of highest-level enemy mon
+ ds 2
+
+wMissableObjectCounter:: ; d048
+ ds 1
+
+ ds 1
W_TRAINERNAME:: ; d04a
; 13 bytes for the letters of the opposing trainer
@@ -1367,6 +1401,7 @@ W_TRAINERNAME:: ; d04a
ds 13
W_ISINBATTLE:: ; d057
+; lost battle, this is -1
; no battle, this is 0
; wild battle, this is 1
; trainer battle, this is 2
@@ -1513,10 +1548,16 @@ wEscapedFromBattle::
; non-zero when an item or move that allows escape from battle was used
ds 1
-wAmountMoneyWon:: ; wd079 - wd07b
-wd079:: ds 1 ; used as a value to print the money won from a battle, as well as a misc. value in seafoam
-wd07a:: ds 1 ; same case as above
-wd07b:: ds 1 ; used as a buffer to convert the money won from a battle into BCD
+wAmountMoneyWon:: ; d079
+; 3-byte BCD number
+
+wObjectToHide:: ; d079
+ ds 1
+
+wObjectToShow:: ; d07a
+ ds 1
+
+ ds 1
W_ANIMATIONID:: ; d07c
; ID number of the current battle animation
@@ -1551,7 +1592,8 @@ W_FBTILECOUNTER:: ; d084
; counts how many tiles of the current frame block have been drawn
ds 1
-wd085:: ds 1 ; used with animating water/flowers
+wMovingBGTilesCounter2:: ; d085
+ ds 1
W_SUBANIMFRAMEDELAY:: ; d086
; duration of each frame of the current subanimation in terms of screen refreshes
@@ -1816,7 +1858,8 @@ wMoveNum:: ; d0e0
wMovesString:: ; d0e1
ds 56
-wd119:: ds 1 ; written to from W_CURMAPTILESET but never read
+wUnusedD119:: ; d119
+ ds 1
wWalkBikeSurfStateCopy:: ; d11a
; wWalkBikeSurfState is sometimes copied here, but it doesn't seem to be used for anything
@@ -1826,18 +1869,39 @@ wInitListType:: ; d11b
; the type of list for InitList to init
ds 1
-wd11c:: ds 1 ; temp storage value for catching pokemon
-wd11d:: ds 1 ; used with battle switchout and testing if the enemy mon fainted
+wCapturedMonSpecies:: ; d11c
+; 0 if no mon was captured
+ ds 1
+
+wFirstMonsNotOutYet:: ; d11d
+; Non-zero when the first player mon and enemy mon haven't been sent out yet.
+; It prevents the game from asking if the player wants to choose another mon
+; when the enemy sends out their first mon and suppresses the "no will to fight"
+; message when the game searches for the first non-fainted mon in the party,
+; which will be the first mon sent out.
+ ds 1
+
wd11e:: ds 1 ; used as a Pokemon and Item storage value. Also used as an output value for CountSetBits
-wd11f:: ds 1 ; used when running from battle and PartyMenuInit
+
+wForcePlayerToChooseMon:: ; d11f
+; When this value is non-zero, the player isn't allowed to exit the party menu
+; by pressing B and not choosing a mon.
+ ds 1
wNumRunAttempts::
; number of times the player has tried to run from battle
ds 1
-wd121:: ds 1 ; used with evolving pokemon
-wd122:: ds 2 ; saved ROM bank number for vblank
-wIsKeyItem:: ds 1 ; d124
+wEvolutionOccurred:: ; d121
+ ds 1
+
+wVBlankSavedROMBank:: ; d122
+ ds 1
+
+ ds 1
+
+wIsKeyItem:: ; d124
+ ds 1
wTextBoxID:: ; d125
ds 1
@@ -2664,9 +2728,13 @@ wCardKeyDoorX:: ; d740
ds 2
-wd743:: ds 1 ; used with surge gym trash cans
-wd744:: ds 3 ; also used with surge gym trash cans
+wFirstLockTrashCanIndex:: ; d743
+ ds 1
+
+wSecondLockTrashCanIndex:: ; d743
+ ds 1
+ ds 2
wEventFlags:: ; d747
ds 320