summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRangi <remy.oukaour+rangi42@gmail.com>2020-11-03 19:53:07 -0500
committerRangi <remy.oukaour+rangi42@gmail.com>2020-11-03 19:53:07 -0500
commitc88c4a834094e91f1505eab0e22294963e1dd987 (patch)
treeddfc0116b06e1327cf206abf5ed16e79e159fdb4
parent826e070f0443b50ff31a49b4faf7c66577f1e26e (diff)
Identify more uses of wBuffer1-6
-rw-r--r--engine/battle/ai/move.asm14
-rw-r--r--engine/battle/ai/scoring.asm22
-rw-r--r--engine/battle/core.asm12
-rw-r--r--engine/battle/trainer_huds.asm7
-rw-r--r--engine/events/daycare.asm4
-rw-r--r--engine/events/heal_machine_anim.asm20
-rw-r--r--engine/events/lucky_number.asm4
-rw-r--r--engine/events/pokecenter_pc.asm24
-rw-r--r--engine/events/treemons.asm6
-rw-r--r--engine/items/buy_sell_toss.asm12
-rw-r--r--engine/link/link.asm5
-rw-r--r--engine/menus/menu_2.asm9
-rw-r--r--engine/overworld/decorations.asm55
-rw-r--r--engine/overworld/time.asm10
-rw-r--r--engine/phone/phone.asm6
-rw-r--r--engine/pokemon/evolve.asm2
-rw-r--r--engine/pokemon/learn.asm2
-rw-r--r--engine/pokemon/mail.asm3
-rw-r--r--engine/pokemon/mail_2.asm37
-rw-r--r--engine/pokemon/mon_menu.asm2
-rw-r--r--engine/pokemon/mon_stats.asm21
-rw-r--r--engine/pokemon/mon_submenu.asm26
-rw-r--r--engine/pokemon/move_mon.asm6
-rw-r--r--engine/pokemon/stats_screen.asm14
-rw-r--r--engine/pokemon/switchpartymons.asm28
-rw-r--r--engine/rtc/restart_clock.asm88
-rw-r--r--gfx/mail/mail.pal59
-rw-r--r--maps/PlayersHouse2F.asm2
-rw-r--r--wram.asm91
29 files changed, 327 insertions, 264 deletions
diff --git a/engine/battle/ai/move.asm b/engine/battle/ai/move.asm
index 5ee4d0b92..cf0c09bb9 100644
--- a/engine/battle/ai/move.asm
+++ b/engine/battle/ai/move.asm
@@ -1,5 +1,5 @@
AIChooseMove:
-; Score each move in wEnemyMonMoves starting from wBuffer1. Lower is better.
+; Score each move of wEnemyMonMoves in wEnemyAIMoveScores. Lower is better.
; Pick the move with the lowest score.
; Wildmons attack at random.
@@ -17,7 +17,7 @@ AIChooseMove:
; The default score is 20. Unusable moves are given a score of 80.
ld a, 20
- ld hl, wBuffer1
+ ld hl, wEnemyAIMoveScores
ld [hli], a
ld [hli], a
ld [hli], a
@@ -37,14 +37,14 @@ AIChooseMove:
inc hl
jr .CheckDisabledMove
.ScoreDisabledMove:
- ld hl, wBuffer1
+ ld hl, wEnemyAIMoveScores
ld b, 0
add hl, bc
ld [hl], 80
; Don't pick moves with 0 PP.
.CheckPP:
- ld hl, wBuffer1 - 1
+ ld hl, wEnemyAIMoveScores - 1
ld de, wEnemyMonPP
ld b, 0
.CheckMovePP:
@@ -117,7 +117,7 @@ AIChooseMove:
; Decrement the scores of all moves one by one until one reaches 0.
.DecrementScores:
- ld hl, wBuffer1
+ ld hl, wEnemyAIMoveScores
ld de, wEnemyMonMoves
ld c, NUM_MOVES
@@ -152,7 +152,7 @@ AIChooseMove:
cp NUM_MOVES + 1
jr nz, .move_loop
- ld hl, wBuffer1
+ ld hl, wEnemyAIMoveScores
ld de, wEnemyMonMoves
ld c, NUM_MOVES
@@ -182,7 +182,7 @@ AIChooseMove:
; Randomly choose one of the moves with a score of 1
.ChooseMove:
- ld hl, wBuffer1
+ ld hl, wEnemyAIMoveScores
call Random
maskbits NUM_MOVES
ld c, a
diff --git a/engine/battle/ai/scoring.asm b/engine/battle/ai/scoring.asm
index c0273753e..150b6ebe9 100644
--- a/engine/battle/ai/scoring.asm
+++ b/engine/battle/ai/scoring.asm
@@ -6,7 +6,7 @@ AI_Basic:
; -Using status-only moves if the player can't be statused
; -Using moves that fail if they've already been used
- ld hl, wBuffer1 - 1
+ ld hl, wEnemyAIMoveScores - 1
ld de, wEnemyMonMoves
ld b, NUM_MOVES + 1
.checkmove
@@ -73,7 +73,7 @@ AI_Setup:
; 50% chance to greatly encourage stat-down moves during the first turn of player's Pokemon.
; Almost 90% chance to greatly discourage stat-modifying moves otherwise.
- ld hl, wBuffer1 - 1
+ ld hl, wEnemyAIMoveScores - 1
ld de, wEnemyMonMoves
ld b, NUM_MOVES + 1
.checkmove
@@ -147,7 +147,7 @@ AI_Types:
; Discourage not very effective moves unless
; all damaging moves are of the same type.
- ld hl, wBuffer1 - 1
+ ld hl, wEnemyAIMoveScores - 1
ld de, wEnemyMonMoves
ld b, NUM_MOVES + 1
.checkmove
@@ -234,7 +234,7 @@ AI_Types:
AI_Offensive:
; Greatly discourage non-damaging moves.
- ld hl, wBuffer1 - 1
+ ld hl, wEnemyAIMoveScores - 1
ld de, wEnemyMonMoves
ld b, NUM_MOVES + 1
.checkmove
@@ -261,7 +261,7 @@ AI_Offensive:
AI_Smart:
; Context-specific scoring.
- ld hl, wBuffer1
+ ld hl, wEnemyAIMoveScores
ld de, wEnemyMonMoves
ld b, NUM_MOVES + 1
.checkmove
@@ -518,7 +518,7 @@ AI_Smart_LockOn:
.player_locked_on
push hl
- ld hl, wBuffer1 - 1
+ ld hl, wEnemyAIMoveScores - 1
ld de, wEnemyMonMoves
ld c, NUM_MOVES + 1
@@ -2893,7 +2893,7 @@ AI_Opportunist:
ret c
.lowhp
- ld hl, wBuffer1 - 1
+ ld hl, wEnemyAIMoveScores - 1
ld de, wEnemyMonMoves
ld c, NUM_MOVES + 1
.checkmove
@@ -2987,7 +2987,7 @@ AI_Aggressive:
jr z, .done
; Discourage moves that do less damage unless they're reckless too.
- ld hl, wBuffer1 - 1
+ ld hl, wEnemyAIMoveScores - 1
ld de, wEnemyMonMoves
ld b, 0
.checkmove2
@@ -3060,7 +3060,7 @@ AI_Cautious:
and a
ret z
- ld hl, wBuffer1 - 1
+ ld hl, wEnemyAIMoveScores - 1
ld de, wEnemyMonMoves
ld c, NUM_MOVES + 1
.loop
@@ -3098,7 +3098,7 @@ INCLUDE "data/battle/ai/residual_moves.asm"
AI_Status:
; Dismiss status moves that don't affect the player.
- ld hl, wBuffer1 - 1
+ ld hl, wEnemyAIMoveScores - 1
ld de, wEnemyMonMoves
ld b, NUM_MOVES + 1
.checkmove
@@ -3161,7 +3161,7 @@ AI_Risky:
; Use any move that will KO the target.
; Risky moves will often be an exception (see below).
- ld hl, wBuffer1 - 1
+ ld hl, wEnemyAIMoveScores - 1
ld de, wEnemyMonMoves
ld c, NUM_MOVES + 1
.checkmove
diff --git a/engine/battle/core.asm b/engine/battle/core.asm
index 39e4e165b..6997a3fba 100644
--- a/engine/battle/core.asm
+++ b/engine/battle/core.asm
@@ -5358,7 +5358,7 @@ MoveSelectionScreen:
hlcoord 6, 17 - NUM_MOVES - 4
.got_start_coord
ld a, SCREEN_WIDTH
- ld [wBuffer1], a
+ ld [wListMovesLineSpacing], a
predef ListMoves
ld b, 5
@@ -6334,8 +6334,7 @@ LoadEnemyMon:
ld [hli], a
ld [hli], a
ld [hl], a
-; Make sure the predef knows this isn't a partymon
- ld [wEvolutionOldSpecies], a
+ ld [wSkipMovesBeforeLevelUp], a
; Fill moves based on level
predef FillMoves
@@ -7616,9 +7615,10 @@ SendOutMonText:
and a
jr z, .not_linked
- ld hl, GoMonText ; If we're in a LinkBattle print just "Go <PlayerMon>"
-
- ld a, [wBattleHasJustStarted] ; unless this (unidentified) variable is set
+; If we're in a LinkBattle print just "Go <PlayerMon>"
+; unless DoBattle already set [wBattleHasJustStarted]
+ ld hl, GoMonText
+ ld a, [wBattleHasJustStarted]
and a
jr nz, .skip_to_textbox
diff --git a/engine/battle/trainer_huds.asm b/engine/battle/trainer_huds.asm
index f701a4dfc..86d7a350a 100644
--- a/engine/battle/trainer_huds.asm
+++ b/engine/battle/trainer_huds.asm
@@ -47,7 +47,7 @@ ShowOTTrainerMonsRemaining:
StageBallTilesData:
ld a, [de]
push af
- ld de, wBuffer1
+ ld de, wBattleHUDTiles
ld c, PARTY_LENGTH
ld a, $34 ; empty slot
.loop1
@@ -56,7 +56,8 @@ StageBallTilesData:
dec c
jr nz, .loop1
pop af
- ld de, wBuffer1
+
+ ld de, wBattleHUDTiles
.loop2
push af
call .GetHUDTile
@@ -200,7 +201,7 @@ LinkBattle_TrainerHuds:
jp LoadTrainerHudOAM
LoadTrainerHudOAM:
- ld de, wBuffer1
+ ld de, wBattleHUDTiles
ld c, PARTY_LENGTH
.loop
ld a, [wPlaceBallsY]
diff --git a/engine/events/daycare.asm b/engine/events/daycare.asm
index 9393ebc93..d5930575e 100644
--- a/engine/events/daycare.asm
+++ b/engine/events/daycare.asm
@@ -616,8 +616,8 @@ DayCare_InitBreeding:
xor a
ld [wEggMonItem], a
ld de, wEggMonMoves
- xor a
- ld [wBuffer1], a
+ xor a ; FALSE
+ ld [wSkipMovesBeforeLevelUp], a
predef FillMoves
farcall InitEggMoves
ld hl, wEggMonID
diff --git a/engine/events/heal_machine_anim.asm b/engine/events/heal_machine_anim.asm
index 166b42b67..6de8c5775 100644
--- a/engine/events/heal_machine_anim.asm
+++ b/engine/events/heal_machine_anim.asm
@@ -17,19 +17,19 @@ HealMachineAnim:
; 1: Left (Elm's Lab)
; 2: Up (Hall of Fame)
ld a, [wScriptVar]
- ld [wBuffer1], a
+ ld [wHealMachineAnimType], a
ldh a, [rOBP1]
- ld [wBuffer2], a
+ ld [wHealMachineTempOBP1], a
call .DoJumptableFunctions
- ld a, [wBuffer2]
+ ld a, [wHealMachineTempOBP1]
call DmgToCgbObjPal1
ret
.DoJumptableFunctions:
xor a
- ld [wBuffer3], a
-.jumpable_loop
- ld a, [wBuffer1]
+ ld [wHealMachineAnimState], a
+.jumptable_loop
+ ld a, [wHealMachineAnimType]
ld e, a
ld d, 0
ld hl, .Pointers
@@ -38,17 +38,17 @@ HealMachineAnim:
ld a, [hli]
ld h, [hl]
ld l, a
- ld a, [wBuffer3]
+ ld a, [wHealMachineAnimState]
ld e, a
inc a
- ld [wBuffer3], a
+ ld [wHealMachineAnimState], a
add hl, de
ld a, [hl]
cp HEALMACHINESTATE_FINISH
jr z, .finish
ld hl, .Jumptable
rst JumpTable
- jr .jumpable_loop
+ jr .jumptable_loop
.finish
ret
@@ -237,7 +237,7 @@ INCLUDE "gfx/overworld/heal_machine.pal"
.PlaceHealingMachineTile:
push bc
- ld a, [wBuffer1]
+ ld a, [wHealMachineAnimType]
bcpixel 2, 4
cp HEALMACHINE_ELMS_LAB
jr z, .okay
diff --git a/engine/events/lucky_number.asm b/engine/events/lucky_number.asm
index f9d17c8a9..66ec205c1 100644
--- a/engine/events/lucky_number.asm
+++ b/engine/events/lucky_number.asm
@@ -125,7 +125,7 @@ CheckForLuckyNumberWinners:
push hl
ld d, h
ld e, l
- ld hl, wBuffer1
+ ld hl, wMonIDDigitsBuffer
lb bc, PRINTNUM_LEADINGZEROS | 2, 5
call PrintNum
ld hl, wLuckyNumberDigitsBuffer
@@ -135,7 +135,7 @@ CheckForLuckyNumberWinners:
ld b, 5
ld c, 0
ld hl, wLuckyNumberDigitsBuffer + 4
- ld de, wBuffer1 + 4
+ ld de, wMonIDDigitsBuffer + 4
.loop
ld a, [de]
cp [hl]
diff --git a/engine/events/pokecenter_pc.asm b/engine/events/pokecenter_pc.asm
index 0503ee6f2..74645a92c 100644
--- a/engine/events/pokecenter_pc.asm
+++ b/engine/events/pokecenter_pc.asm
@@ -361,15 +361,15 @@ PlayerWithdrawItemMenu:
.withdraw
ld a, [wItemQuantityChangeBuffer]
- ld [wBuffer1], a ; quantity
+ ld [wPCItemQuantityChangeBuffer], a
ld a, [wCurItemQuantity]
- ld [wBuffer2], a
+ ld [wPCItemQuantity], a
ld hl, wNumItems
call ReceiveItem
jr nc, .PackFull
- ld a, [wBuffer1]
+ ld a, [wPCItemQuantityChangeBuffer]
ld [wItemQuantityChangeBuffer], a
- ld a, [wBuffer2]
+ ld a, [wPCItemQuantity]
ld [wCurItemQuantity], a
ld hl, wNumPCItems
call TossItem
@@ -490,15 +490,15 @@ PlayerDepositItemMenu:
ret
.tossable
- ld a, [wBuffer1]
+ ld a, [wPCItemQuantityChangeBuffer]
push af
- ld a, [wBuffer2]
+ ld a, [wPCItemQuantity]
push af
call .DepositItem
pop af
- ld [wBuffer2], a
+ ld [wPCItemQuantity], a
pop af
- ld [wBuffer1], a
+ ld [wPCItemQuantityChangeBuffer], a
ret
.DepositItem:
@@ -522,15 +522,15 @@ PlayerDepositItemMenu:
.ContinueDeposit:
ld a, [wItemQuantityChangeBuffer]
- ld [wBuffer1], a
+ ld [wPCItemQuantityChangeBuffer], a
ld a, [wCurItemQuantity]
- ld [wBuffer2], a
+ ld [wPCItemQuantity], a
ld hl, wNumPCItems
call ReceiveItem
jr nc, .NoRoomInPC
- ld a, [wBuffer1]
+ ld a, [wPCItemQuantityChangeBuffer]
ld [wItemQuantityChangeBuffer], a
- ld a, [wBuffer2]
+ ld a, [wPCItemQuantity]
ld [wCurItemQuantity], a
ld hl, wNumItems
call TossItem
diff --git a/engine/events/treemons.asm b/engine/events/treemons.asm
index 9adcdbdc2..231636ea0 100644
--- a/engine/events/treemons.asm
+++ b/engine/events/treemons.asm
@@ -197,11 +197,11 @@ NoTreeMon:
GetTreeScore:
call .CoordScore
- ld [wBuffer1], a
+ ld [wTreeMonCoordScore], a
call .OTIDScore
- ld [wBuffer2], a
+ ld [wTreeMonOTIDScore], a
ld c, a
- ld a, [wBuffer1]
+ ld a, [wTreeMonCoordScore]
sub c
jr z, .rare
jr nc, .ok
diff --git a/engine/items/buy_sell_toss.asm b/engine/items/buy_sell_toss.asm
index 84b42cf4f..310deaeb8 100644
--- a/engine/items/buy_sell_toss.asm
+++ b/engine/items/buy_sell_toss.asm
@@ -8,9 +8,9 @@ SelectQuantityToBuy:
farcall GetItemPrice
RooftopSale_SelectQuantityToBuy:
ld a, d
- ld [wBuffer1], a
+ ld [wBuySellItemPrice + 0], a
ld a, e
- ld [wBuffer2], a
+ ld [wBuySellItemPrice + 1], a
ld hl, BuyItem_MenuHeader
call LoadMenuHeader
call Toss_Sell_Loop
@@ -19,9 +19,9 @@ RooftopSale_SelectQuantityToBuy:
SelectQuantityToSell:
farcall GetItemPrice
ld a, d
- ld [wBuffer1], a
+ ld [wBuySellItemPrice + 0], a
ld a, e
- ld [wBuffer2], a
+ ld [wBuySellItemPrice + 1], a
ld hl, SellItem_MenuHeader
call LoadMenuHeader
call Toss_Sell_Loop
@@ -159,9 +159,9 @@ DisplaySellingPrice:
BuySell_MultiplyPrice:
xor a
ldh [hMultiplicand + 0], a
- ld a, [wBuffer1]
+ ld a, [wBuySellItemPrice + 0]
ldh [hMultiplicand + 1], a
- ld a, [wBuffer2]
+ ld a, [wBuySellItemPrice + 1]
ldh [hMultiplicand + 2], a
ld a, [wItemQuantityChangeBuffer]
ldh [hMultiplier], a
diff --git a/engine/link/link.asm b/engine/link/link.asm
index 3694bfb2a..d9fb40d01 100644
--- a/engine/link/link.asm
+++ b/engine/link/link.asm
@@ -449,6 +449,7 @@ Gen2ToGen2LinkComms:
ld [wOtherTrainerClass], a
call ClearScreen
farcall Link_WaitBGMap
+
ld hl, wOptions
ld a, [hl]
push af
@@ -460,8 +461,6 @@ Gen2ToGen2LinkComms:
ld bc, NAME_LENGTH
call CopyBytes
call ReturnToMapFromSubmenu
-
- ; LET'S DO THIS
ld a, [wDisableTextAcceleration]
push af
ld a, 1
@@ -478,6 +477,7 @@ Gen2ToGen2LinkComms:
pop af
ldh [rIF], a
+ ; LET'S DO THIS
predef StartBattle
ldh a, [rIF]
@@ -492,6 +492,7 @@ Gen2ToGen2LinkComms:
ld [wDisableTextAcceleration], a
pop af
ld [wOptions], a
+
farcall LoadPokemonData
jp ExitLinkCommunications
diff --git a/engine/menus/menu_2.asm b/engine/menus/menu_2.asm
index 08666bfab..5f95832cc 100644
--- a/engine/menus/menu_2.asm
+++ b/engine/menus/menu_2.asm
@@ -206,9 +206,10 @@ StartMenu_PrintBugContestStatus:
FindApricornsInBag:
; Checks the bag for Apricorns.
- ld hl, wBuffer1
+ ld hl, wKurtApricornCount
xor a
ld [hli], a
+ assert wKurtApricornCount + 1 == wKurtApricornItems
dec a
ld bc, 10
call ByteFill
@@ -232,15 +233,15 @@ FindApricornsInBag:
jr .loop
.done
- ld a, [wBuffer1]
+ ld a, [wKurtApricornCount]
and a
ret nz
scf
ret
-.addtobuffer
+.addtobuffer:
push hl
- ld hl, wBuffer1
+ ld hl, wKurtApricornCount
inc [hl]
ld e, [hl]
ld d, 0
diff --git a/engine/overworld/decorations.asm b/engine/overworld/decorations.asm
index 6cc86181a..447ab236f 100644
--- a/engine/overworld/decorations.asm
+++ b/engine/overworld/decorations.asm
@@ -10,17 +10,17 @@ _PlayerDecorationMenu:
push af
ld hl, .MenuHeader
call LoadMenuHeader
- xor a
- ld [wBuffer5], a
- ld a, $1
- ld [wBuffer6], a
+ xor a ; FALSE
+ ld [wChangedDecorations], a
+ ld a, $1 ; bed
+ ld [wCurDecorationCategory], a
.top_loop
- ld a, [wBuffer6]
+ ld a, [wCurDecorationCategory]
ld [wMenuCursorBuffer], a
call .FindCategoriesWithOwnedDecos
call DoNthMenu
ld a, [wMenuCursorY]
- ld [wBuffer6], a
+ ld [wCurDecorationCategory], a
jr c, .exit_menu
ld a, [wMenuSelection]
ld hl, .pointers
@@ -31,7 +31,7 @@ _PlayerDecorationMenu:
call ExitMenu
pop af
ld [wWhichIndexSet], a
- ld a, [wBuffer5]
+ ld a, [wChangedDecorations]
ld c, a
ret
@@ -71,7 +71,7 @@ _PlayerDecorationMenu:
xor a
ld [wWhichIndexSet], a
call .ClearStringBuffer2
- call .FindOwndDecos
+ call .FindOwnedDecos
ld a, 7
call .AppendToStringBuffer2
ld hl, wStringBuffer2
@@ -98,7 +98,7 @@ _PlayerDecorationMenu:
ld [hl], a
ret
-.FindOwndDecos:
+.FindOwnedDecos:
ld hl, .dw
.loop
ld a, [hli]
@@ -642,12 +642,12 @@ DecoAction_putawaybigdoll:
DecoAction_TrySetItUp:
ld a, [hl]
- ld [wBuffer1], a
+ ld [wCurDecoration], a
push hl
call DecoAction_SetItUp
jr c, .failed
- ld a, 1
- ld [wBuffer5], a
+ ld a, TRUE
+ ld [wChangedDecorations], a
pop hl
ld a, [wMenuSelection]
ld [hl], a
@@ -661,7 +661,7 @@ DecoAction_TrySetItUp:
DecoAction_SetItUp:
; See if there's anything of the same type already out
- ld a, [wBuffer1]
+ ld a, [wCurDecoration]
and a
jr z, .nothingthere
; See if that item is already out
@@ -673,7 +673,7 @@ DecoAction_SetItUp:
ld a, [wMenuSelection]
ld hl, wStringBuffer4
call GetDecorationName
- ld a, [wBuffer1]
+ ld a, [wCurDecoration]
ld hl, wStringBuffer3
call GetDecorationName
ld hl, PutAwayAndSetUpText
@@ -699,16 +699,16 @@ DecoAction_SetItUp:
DecoAction_TryPutItAway:
; If there is no item of that type already set, there is nothing to put away.
ld a, [hl]
- ld [wBuffer1], a
+ ld [wCurDecoration], a
xor a
ld [hl], a
- ld a, [wBuffer1]
+ ld a, [wCurDecoration]
and a
jr z, .nothingthere
; Put it away.
- ld a, $1
- ld [wBuffer5], a
- ld a, [wBuffer1]
+ ld a, TRUE
+ ld [wChangedDecorations], a
+ ld a, [wCurDecoration]
ld [wMenuSelection], a
ld hl, wStringBuffer3
call GetDecorationName
@@ -729,8 +729,8 @@ DecoAction_setupornament:
jr c, .cancel
call DecoAction_SetItUp_Ornament
jr c, .cancel
- ld a, $1
- ld [wBuffer5], a
+ ld a, TRUE
+ ld [wChangedDecorations], a
jr DecoAction_FinishUp_Ornament
.cancel
@@ -816,8 +816,8 @@ DecoAction_PutItAway_Ornament:
jr z, .nothingthere
ld hl, wStringBuffer3
call GetDecorationName
- ld a, $1
- ld [wBuffer5], a
+ ld a, TRUE
+ ld [wChangedDecorations], a
xor a
ld [wSelectedDecoration], a
ld hl, PutAwayTheDecoText
@@ -843,9 +843,9 @@ DecoAction_AskWhichSide:
call CopyMenuData
jr c, .nope
ld a, [wMenuCursorY]
- cp 3
+ cp 3 ; cancel
jr z, .nope
- ld [wBuffer2], a
+ ld [wSelectedDecorationSide], a
call QueryWhichSide
ld a, [hl]
ld [wSelectedDecoration], a
@@ -861,9 +861,10 @@ DecoAction_AskWhichSide:
QueryWhichSide:
ld hl, wDecoRightOrnament
ld de, wDecoLeftOrnament
- ld a, [wBuffer2]
- cp 1
+ ld a, [wSelectedDecorationSide]
+ cp 1 ; right side
ret z
+ ; left side, swap hl and de
push hl
ld h, d
ld l, e
diff --git a/engine/overworld/time.asm b/engine/overworld/time.asm
index 4299a69ab..4bddc3292 100644
--- a/engine/overworld/time.asm
+++ b/engine/overworld/time.asm
@@ -261,15 +261,15 @@ DoMysteryGiftIfDayHasPassed:
call OpenSRAM
ld hl, sMysteryGiftTimer
ld a, [hli]
- ld [wBuffer1], a
+ ld [wTempMysteryGiftTimer], a
ld a, [hl]
- ld [wBuffer2], a
+ ld [wTempMysteryGiftTimer + 1], a
call CloseSRAM
- ld hl, wBuffer1
+ ld hl, wTempMysteryGiftTimer
call CheckDayDependentEventHL
jr nc, .not_timed_out
- ld hl, wBuffer1
+ ld hl, wTempMysteryGiftTimer
call InitOneDayCountdown
call CloseSRAM
farcall ResetDailyMysteryGiftLimitIfUnlocked
@@ -277,7 +277,7 @@ DoMysteryGiftIfDayHasPassed:
.not_timed_out
ld a, BANK(sMysteryGiftTimer)
call OpenSRAM
- ld hl, wBuffer1
+ ld hl, wTempMysteryGiftTimer
ld a, [hli]
ld [sMysteryGiftTimer], a
ld a, [hl]
diff --git a/engine/phone/phone.asm b/engine/phone/phone.asm
index 5b808cf67..08ef07280 100644
--- a/engine/phone/phone.asm
+++ b/engine/phone/phone.asm
@@ -62,7 +62,7 @@ Phone_FindOpenSlot:
GetRemainingSpaceInPhoneList:
xor a
- ld [wBuffer1], a
+ ld [wRegisteredPhoneNumbers], a
ld hl, PermanentNumbers
.loop
ld a, [hli]
@@ -76,7 +76,7 @@ GetRemainingSpaceInPhoneList:
ld c, a
call _CheckCellNum
jr c, .permanent
- ld hl, wBuffer1
+ ld hl, wRegisteredPhoneNumbers
inc [hl]
.permanent
pop hl
@@ -87,7 +87,7 @@ GetRemainingSpaceInPhoneList:
.done
ld a, CONTACT_LIST_SIZE
- ld hl, wBuffer1
+ ld hl, wRegisteredPhoneNumbers
sub [hl]
ret
diff --git a/engine/pokemon/evolve.asm b/engine/pokemon/evolve.asm
index 3e6c4f969..d91d741dc 100644
--- a/engine/pokemon/evolve.asm
+++ b/engine/pokemon/evolve.asm
@@ -509,7 +509,7 @@ FillMoves:
ld a, [wCurPartyLevel]
cp b
jp c, .done
- ld a, [wEvolutionOldSpecies]
+ ld a, [wSkipMovesBeforeLevelUp]
and a
jr z, .CheckMove
ld a, [wPrevPartyLevel]
diff --git a/engine/pokemon/learn.asm b/engine/pokemon/learn.asm
index 2c66dcd50..183551bcf 100644
--- a/engine/pokemon/learn.asm
+++ b/engine/pokemon/learn.asm
@@ -142,7 +142,7 @@ ForgetMove:
call Textbox
hlcoord 5 + 2, 2 + 2
ld a, SCREEN_WIDTH * 2
- ld [wBuffer1], a
+ ld [wListMovesLineSpacing], a
predef ListMoves
; w2DMenuData
ld a, $4
diff --git a/engine/pokemon/mail.asm b/engine/pokemon/mail.asm
index 940061461..e3b881465 100644
--- a/engine/pokemon/mail.asm
+++ b/engine/pokemon/mail.asm
@@ -322,7 +322,8 @@ InitMail:
; initialize wMailboxCount from sMailboxCount
ld hl, wMailboxCount
- ld [hli], a ; now hl = wMailboxItems
+ ld [hli], a
+ assert wMailboxCount + 1 == wMailboxItems
and a
jr z, .done ; if no mail, we're done
diff --git a/engine/pokemon/mail_2.asm b/engine/pokemon/mail_2.asm
index 934a6bece..634d5c69d 100644
--- a/engine/pokemon/mail_2.asm
+++ b/engine/pokemon/mail_2.asm
@@ -1,3 +1,17 @@
+; MailGFXPointers indexes
+; LoadMailPalettes.MailPals indexes (see gfx/mail/mail.pal)
+ const_def
+ const FLOWER_MAIL_INDEX ; 0
+ const SURF_MAIL_INDEX ; 1
+ const LITEBLUEMAIL_INDEX ; 2
+ const PORTRAITMAIL_INDEX ; 3
+ const LOVELY_MAIL_INDEX ; 4
+ const EON_MAIL_INDEX ; 5
+ const MORPH_MAIL_INDEX ; 6
+ const BLUESKY_MAIL_INDEX ; 7
+ const MUSIC_MAIL_INDEX ; 8
+ const MIRAGE_MAIL_INDEX ; 9
+
ReadPartyMonMail:
ld a, [wCurPartyMon]
ld hl, sPartyMail
@@ -35,7 +49,7 @@ ReadAnyMail:
call .LoadGFX
call EnableLCD
call WaitBGMap
- ld a, [wBuffer3]
+ ld a, [wCurMailIndex]
ld e, a
farcall LoadMailPalettes
call SetPalettes
@@ -72,13 +86,13 @@ ReadAnyMail:
call OpenSRAM
ld de, sPartyMon1MailAuthorID - sPartyMon1Mail
add hl, de
+ ld a, [hli] ; author id
+ ld [wCurMailAuthorID], a
ld a, [hli]
- ld [wBuffer1], a
- ld a, [hli]
- ld [wBuffer2], a
- ld a, [hli]
+ ld [wCurMailAuthorID + 1], a
+ ld a, [hli] ; species
ld [wCurPartySpecies], a
- ld b, [hl]
+ ld b, [hl] ; type
call CloseSRAM
ld hl, MailGFXPointers
ld c, 0
@@ -99,7 +113,7 @@ ReadAnyMail:
.got_pointer
ld a, c
- ld [wBuffer3], a
+ ld [wCurMailIndex], a
ld a, [hli]
ld h, [hl]
ld l, a
@@ -111,6 +125,7 @@ ReadAnyMail:
ret
MailGFXPointers:
+; entries correspond to *MAIL_INDEX constants
dbw FLOWER_MAIL, LoadFlowerMailGFX
dbw SURF_MAIL, LoadSurfMailGFX
dbw LITEBLUEMAIL, LoadLiteBlueMailGFX
@@ -121,7 +136,7 @@ MailGFXPointers:
dbw BLUESKY_MAIL, LoadBlueSkyMailGFX
dbw MUSIC_MAIL, LoadMusicMailGFX
dbw MIRAGE_MAIL, LoadMirageMailGFX
- db -1
+ db -1 ; end
LoadSurfMailGFX:
push bc
@@ -697,12 +712,12 @@ MailGFX_PlaceMessage:
ld a, [de]
and a
ret z
- ld a, [wBuffer3]
+ ld a, [wCurMailIndex]
hlcoord 8, 14
- cp $3 ; PORTRAITMAIL
+ cp PORTRAITMAIL_INDEX
jr z, .place_author
hlcoord 6, 14
- cp $6 ; MORPH_MAIL
+ cp MORPH_MAIL_INDEX
jr z, .place_author
hlcoord 5, 14
diff --git a/engine/pokemon/mon_menu.asm b/engine/pokemon/mon_menu.asm
index 95cfce2f8..135a26e46 100644
--- a/engine/pokemon/mon_menu.asm
+++ b/engine/pokemon/mon_menu.asm
@@ -1145,7 +1145,7 @@ SetUpMoveList:
ld bc, NUM_MOVES
call CopyBytes
ld a, SCREEN_WIDTH * 2
- ld [wBuffer1], a
+ ld [wListMovesLineSpacing], a
hlcoord 2, 3
predef ListMoves
hlcoord 10, 4
diff --git a/engine/pokemon/mon_stats.asm b/engine/pokemon/mon_stats.asm
index b8592a971..3262f22e3 100644
--- a/engine/pokemon/mon_stats.asm
+++ b/engine/pokemon/mon_stats.asm
@@ -242,9 +242,9 @@ ListMovePP:
sub c
ld b, a
push hl
- ld a, [wBuffer1]
+ ld a, [wListMovesLineSpacing]
ld e, a
- ld d, $0
+ ld d, 0
ld a, $3e ; P
call .load_loop
ld a, b
@@ -299,7 +299,7 @@ ListMovePP:
lb bc, 1, 2
call PrintNum
pop hl
- ld a, [wBuffer1]
+ ld a, [wListMovesLineSpacing]
ld e, a
ld d, 0
add hl, de
@@ -354,7 +354,7 @@ Unused_PlaceEnemyHPLevel:
push hl
ld bc, -12
add hl, bc
- ld b, $0
+ ld b, 0
call DrawEnemyHP
pop hl
ld bc, 5
@@ -367,6 +367,7 @@ Unused_PlaceEnemyHPLevel:
ret
PlaceStatusString:
+; Return nz if the status is not OK
push de
inc de
inc de
@@ -381,7 +382,7 @@ PlaceStatusString:
ld de, FntString
call CopyStatusString
pop de
- ld a, $1
+ ld a, TRUE
and a
ret
@@ -420,7 +421,7 @@ PlaceNonFaintStatus:
.place
call CopyStatusString
- ld a, $1
+ ld a, TRUE
and a
.no_status
@@ -434,9 +435,9 @@ FrzString: db "FRZ@"
ParString: db "PAR@"
ListMoves:
-; List moves at hl, spaced every [wBuffer1] tiles.
+; List moves at hl, spaced every [wListMovesLineSpacing] tiles.
ld de, wListMoves_MoveIndicesBuffer
- ld b, $0
+ ld b, 0
.moves_loop
ld a, [de]
inc de
@@ -459,7 +460,7 @@ ListMoves:
inc b
pop hl
push bc
- ld a, [wBuffer1]
+ ld a, [wListMovesLineSpacing]
ld c, a
ld b, 0
add hl, bc
@@ -475,7 +476,7 @@ ListMoves:
.nonmove_loop
push af
ld [hl], "-"
- ld a, [wBuffer1]
+ ld a, [wListMovesLineSpacing]
ld c, a
ld b, 0
add hl, bc
diff --git a/engine/pokemon/mon_submenu.asm b/engine/pokemon/mon_submenu.asm
index bd20b7c1f..09f1ab3f7 100644
--- a/engine/pokemon/mon_submenu.asm
+++ b/engine/pokemon/mon_submenu.asm
@@ -25,8 +25,8 @@ MonSubmenu:
db 1 ; default option
.GetTopCoord:
-; TopCoord = 1 + BottomCoord - 2 * (NumSubmenuItems + 1)
- ld a, [wBuffer1]
+; [wMenuBorderTopCoord] = 1 + [wMenuBorderBottomCoord] - 2 * ([wMonSubmenuCount] + 1)
+ ld a, [wMonSubmenuCount]
inc a
add a
ld b, a
@@ -41,7 +41,7 @@ MonMenuLoop:
.loop
ld a, MENU_UNUSED_3 | MENU_BACKUP_TILES_2 ; flags
ld [wMenuDataFlags], a
- ld a, [wBuffer1] ; items
+ ld a, [wMonSubmenuCount] ; items
ld [wMenuDataItems], a
call InitVerticalMenuCursor
ld hl, w2DMenuFlags1
@@ -65,7 +65,7 @@ MonMenuLoop:
dec a
ld c, a
ld b, 0
- ld hl, wBuffer2
+ ld hl, wMonSubmenuItems
add hl, bc
ld a, [hl]
ret
@@ -74,7 +74,7 @@ PopulateMonMenu:
call MenuBoxCoord2Tile
ld bc, 2 * SCREEN_WIDTH + 2
add hl, bc
- ld de, wBuffer2
+ ld de, wMonSubmenuItems
.loop
ld a, [de]
inc de
@@ -170,7 +170,7 @@ GetMonSubmenuItems:
call AddMonMenuItem
.skip2
- ld a, [wBuffer1]
+ ld a, [wMonSubmenuCount]
cp NUM_MONMENU_ITEMS
jr z, .ok2
ld a, MONMENUITEM_CANCEL
@@ -212,17 +212,17 @@ IsFieldMove:
ResetMonSubmenu:
xor a
- ld [wBuffer1], a
- ld hl, wBuffer2
+ ld [wMonSubmenuCount], a
+ ld hl, wMonSubmenuItems
ld bc, NUM_MONMENU_ITEMS + 1
call ByteFill
ret
TerminateMonSubmenu:
- ld a, [wBuffer1]
+ ld a, [wMonSubmenuCount]
ld e, a
ld d, 0
- ld hl, wBuffer2
+ ld hl, wMonSubmenuItems
add hl, de
ld [hl], -1
ret
@@ -231,12 +231,12 @@ AddMonMenuItem:
push hl
push de
push af
- ld a, [wBuffer1]
+ ld a, [wMonSubmenuCount]
ld e, a
inc a
- ld [wBuffer1], a
+ ld [wMonSubmenuCount], a
ld d, 0
- ld hl, wBuffer2
+ ld hl, wMonSubmenuItems
add hl, de
pop af
ld [hl], a
diff --git a/engine/pokemon/move_mon.asm b/engine/pokemon/move_mon.asm
index 3fc4dbc73..5c9e36744 100644
--- a/engine/pokemon/move_mon.asm
+++ b/engine/pokemon/move_mon.asm
@@ -132,7 +132,7 @@ rept NUM_MOVES - 1
ld [hli], a
endr
ld [hl], a
- ld [wEvolutionOldSpecies], a
+ ld [wSkipMovesBeforeLevelUp], a
predef FillMoves
.next
@@ -876,8 +876,8 @@ RetrieveBreedmon:
call AddNTimes
ld d, h
ld e, l
- ld a, $1
- ld [wBuffer1], a
+ ld a, TRUE
+ ld [wSkipMovesBeforeLevelUp], a
predef FillMoves
ld a, [wPartyCount]
dec a
diff --git a/engine/pokemon/stats_screen.asm b/engine/pokemon/stats_screen.asm
index c9a5fbbe3..f94ee91ba 100644
--- a/engine/pokemon/stats_screen.asm
+++ b/engine/pokemon/stats_screen.asm
@@ -635,7 +635,7 @@ LoadPinkPage:
call .CalcExpToNextLevel
hlcoord 13, 13
lb bc, 3, 7
- ld de, wBuffer1
+ ld de, wExpToNextLevel
call PrintNum
ld de, .LevelUpStr
hlcoord 10, 12
@@ -679,18 +679,18 @@ LoadPinkPage:
ldh a, [hQuotient + 3]
sub [hl]
dec hl
- ld [wBuffer3], a
+ ld [wExpToNextLevel + 2], a
ldh a, [hQuotient + 2]
sbc [hl]
dec hl
- ld [wBuffer2], a
+ ld [wExpToNextLevel + 1], a
ldh a, [hQuotient + 1]
sbc [hl]
- ld [wBuffer1], a
+ ld [wExpToNextLevel], a
ret
.AlreadyAtMaxLevel:
- ld hl, wBuffer1
+ ld hl, wExpToNextLevel
xor a
ld [hli], a
ld [hli], a
@@ -732,11 +732,11 @@ LoadGreenPage:
call CopyBytes
hlcoord 8, 10
ld a, SCREEN_WIDTH * 2
- ld [wBuffer1], a
+ ld [wListMovesLineSpacing], a
predef ListMoves
hlcoord 12, 11
ld a, SCREEN_WIDTH * 2
- ld [wBuffer1], a
+ ld [wListMovesLineSpacing], a
predef ListMovePP
ret
diff --git a/engine/pokemon/switchpartymons.asm b/engine/pokemon/switchpartymons.asm
index 2c00b34b4..512332fcc 100644
--- a/engine/pokemon/switchpartymons.asm
+++ b/engine/pokemon/switchpartymons.asm
@@ -1,17 +1,17 @@
_SwitchPartyMons:
ld a, [wSwitchMon]
dec a
- ld [wBuffer3], a
+ ld [wSwitchMonFrom], a
ld b, a
ld a, [wMenuCursorY]
dec a
- ld [wBuffer2], a
+ ld [wSwitchMonTo], a
cp b
jr z, .skip
call .SwapMonAndMail
- ld a, [wBuffer3]
+ ld a, [wSwitchMonFrom]
call .ClearSprite
- ld a, [wBuffer2]
+ ld a, [wSwitchMonTo]
call .ClearSprite
.skip
ret
@@ -44,13 +44,13 @@ _SwitchPartyMons:
push de
push bc
ld bc, wPartySpecies
- ld a, [wBuffer2]
+ ld a, [wSwitchMonTo]
ld l, a
ld h, $0
add hl, bc
ld d, h
ld e, l
- ld a, [wBuffer3]
+ ld a, [wSwitchMonFrom]
ld l, a
ld h, $0
add hl, bc
@@ -60,7 +60,7 @@ _SwitchPartyMons:
ld [hl], a
pop af
ld [de], a
- ld a, [wBuffer2]
+ ld a, [wSwitchMonTo]
ld hl, wPartyMon1Species
ld bc, PARTYMON_STRUCT_LENGTH
call AddNTimes
@@ -68,7 +68,7 @@ _SwitchPartyMons:
ld de, wSwitchMonBuffer
ld bc, PARTYMON_STRUCT_LENGTH
call CopyBytes
- ld a, [wBuffer3]
+ ld a, [wSwitchMonFrom]
ld hl, wPartyMon1
ld bc, PARTYMON_STRUCT_LENGTH
call AddNTimes
@@ -80,12 +80,12 @@ _SwitchPartyMons:
ld hl, wSwitchMonBuffer
ld bc, PARTYMON_STRUCT_LENGTH
call CopyBytes
- ld a, [wBuffer2]
+ ld a, [wSwitchMonTo]
ld hl, wPartyMonOT
call SkipNames
push hl
call .CopyNameToSwitchMonBuffer
- ld a, [wBuffer3]
+ ld a, [wSwitchMonFrom]
ld hl, wPartyMonOT
call SkipNames
pop de
@@ -95,12 +95,12 @@ _SwitchPartyMons:
ld hl, wSwitchMonBuffer
call .CopyName
ld hl, wPartyMonNicknames
- ld a, [wBuffer2]
+ ld a, [wSwitchMonTo]
call SkipNames
push hl
call .CopyNameToSwitchMonBuffer
ld hl, wPartyMonNicknames
- ld a, [wBuffer3]
+ ld a, [wSwitchMonFrom]
call SkipNames
pop de
push hl
@@ -109,7 +109,7 @@ _SwitchPartyMons:
ld hl, wSwitchMonBuffer
call .CopyName
ld hl, sPartyMail
- ld a, [wBuffer2]
+ ld a, [wSwitchMonTo]
ld bc, MAIL_STRUCT_LENGTH
call AddNTimes
push hl
@@ -119,7 +119,7 @@ _SwitchPartyMons:
call OpenSRAM
call CopyBytes
ld hl, sPartyMail
- ld a, [wBuffer3]
+ ld a, [wSwitchMonFrom]
ld bc, MAIL_STRUCT_LENGTH
call AddNTimes
pop de
diff --git a/engine/rtc/restart_clock.asm b/engine/rtc/restart_clock.asm
index 15b1fd135..ddec83567 100644
--- a/engine/rtc/restart_clock.asm
+++ b/engine/rtc/restart_clock.asm
@@ -1,3 +1,10 @@
+; RestartClock_GetWraparoundTime.WrapAroundTimes indexes
+ const_def 1
+ const RESTART_CLOCK_DAY
+ const RESTART_CLOCK_HOUR
+ const RESTART_CLOCK_MIN
+NUM_RESTART_CLOCK_DIVISIONS EQU const_value - 1
+
RestartClock_GetWraparoundTime:
push hl
dec a
@@ -18,14 +25,15 @@ endr
ret
.WrapAroundTimes:
- dw wBuffer4
- db 7, 4
-
- dw wBuffer5
- db 24, 12
-
- dw wBuffer6
- db 60, 15
+; entries correspond to RESTART_CLOCK_* constants
+wraparound_time: MACRO
+ dw \1 ; value pointer
+ db \2 ; maximum value
+ db \3 ; up/down arrow x coord (pairs with wRestartClockUpArrowYCoord)
+ENDM
+ wraparound_time wRestartClockDay, 7, 4
+ wraparound_time wRestartClockHour, 24, 12
+ wraparound_time wRestartClockMin, 60, 15
RestartClock:
; If we're here, we had an RTC overflow.
@@ -56,18 +64,18 @@ RestartClock:
text_end
.SetClock:
- ld a, 1
- ld [wBuffer1], a ; which digit
- ld [wBuffer2], a
+ ld a, RESTART_CLOCK_DAY
+ ld [wRestartClockCurDivision], a
+ ld [wRestartClockPrevDivision], a
ld a, 8
- ld [wBuffer3], a
+ ld [wRestartClockUpArrowYCoord], a
call UpdateTime
call GetWeekday
- ld [wBuffer4], a
+ ld [wRestartClockDay], a
ldh a, [hHours]
- ld [wBuffer5], a
+ ld [wRestartClockHour], a
ldh a, [hMinutes]
- ld [wBuffer6], a
+ ld [wRestartClockMin], a
.loop
call .joy_loop
@@ -79,11 +87,11 @@ RestartClock:
call PrintText
call YesNoBox
jr c, .cancel
- ld a, [wBuffer4]
+ ld a, [wRestartClockDay]
ld [wStringBuffer2], a
- ld a, [wBuffer5]
+ ld a, [wRestartClockHour]
ld [wStringBuffer2 + 1], a
- ld a, [wBuffer6]
+ ld a, [wRestartClockMin]
ld [wStringBuffer2 + 2], a
xor a
ld [wStringBuffer2 + 3], a
@@ -92,11 +100,11 @@ RestartClock:
ld hl, .ClockHasResetText
call PrintText
call WaitPressAorB_BlinkCursor
- xor a
+ xor a ; FALSE
ret
.cancel
- ld a, $1
+ ld a, TRUE
ret
.ClockIsThisOKText:
@@ -128,29 +136,29 @@ RestartClock:
jr .joy_loop
.press_A
- ld a, $0
+ ld a, FALSE
scf
ret
.press_B
- ld a, $1
+ ld a, TRUE
scf
ret
.pressed_up
- ld a, [wBuffer1]
+ ld a, [wRestartClockCurDivision]
call RestartClock_GetWraparoundTime
ld a, [de]
inc a
ld [de], a
cp b
jr c, .done_scroll
- ld a, $0
+ ld a, 0
ld [de], a
jr .done_scroll
.pressed_down
- ld a, [wBuffer1]
+ ld a, [wRestartClockCurDivision]
call RestartClock_GetWraparoundTime
ld a, [de]
dec a
@@ -163,22 +171,22 @@ RestartClock:
jr .done_scroll
.pressed_left
- ld hl, wBuffer1
+ ld hl, wRestartClockCurDivision
dec [hl]
jr nz, .done_scroll
- ld [hl], $3
+ ld [hl], RESTART_CLOCK_MIN
jr .done_scroll
.pressed_right
- ld hl, wBuffer1
+ ld hl, wRestartClockCurDivision
inc [hl]
ld a, [hl]
- cp $4
+ cp NUM_RESTART_CLOCK_DIVISIONS + 1
jr c, .done_scroll
- ld [hl], $1
+ ld [hl], RESTART_CLOCK_DAY
.done_scroll
- xor a
+ xor a ; FALSE
ret
.PrintTime:
@@ -187,27 +195,27 @@ RestartClock:
ld c, 18
call Textbox
decoord 1, 8
- ld a, [wBuffer4]
+ ld a, [wRestartClockDay]
ld b, a
farcall PrintDayOfWeek
- ld a, [wBuffer5]
+ ld a, [wRestartClockHour]
ld b, a
- ld a, [wBuffer6]
+ ld a, [wRestartClockMin]
ld c, a
decoord 11, 8
farcall PrintHoursMins
- ld a, [wBuffer2]
+ ld a, [wRestartClockPrevDivision]
lb de, " ", " "
call .PlaceChars
- ld a, [wBuffer1]
+ ld a, [wRestartClockCurDivision]
lb de, "▲", "▼"
call .PlaceChars
- ld a, [wBuffer1]
- ld [wBuffer2], a
+ ld a, [wRestartClockCurDivision]
+ ld [wRestartClockPrevDivision], a
ret
.UnusedPlaceCharsFragment: ; unreferenced
- ld a, [wBuffer3]
+ ld a, [wRestartClockUpArrowYCoord]
ld b, a
call Coord2Tile
ret
@@ -215,7 +223,7 @@ RestartClock:
.PlaceChars:
push de
call RestartClock_GetWraparoundTime
- ld a, [wBuffer3]
+ ld a, [wRestartClockUpArrowYCoord]
dec a
ld b, a
call Coord2Tile
diff --git a/gfx/mail/mail.pal b/gfx/mail/mail.pal
index 4096ffae1..7b27c67c4 100644
--- a/gfx/mail/mail.pal
+++ b/gfx/mail/mail.pal
@@ -1,49 +1,10 @@
- RGB 20, 31, 11
- RGB 31, 19, 00
- RGB 31, 10, 09
- RGB 00, 00, 00
-
- RGB 15, 20, 31
- RGB 30, 26, 00
- RGB 31, 12, 00
- RGB 00, 00, 00
-
- RGB 24, 17, 31
- RGB 30, 26, 00
- RGB 08, 11, 31
- RGB 00, 00, 00
-
- RGB 31, 25, 17
- RGB 31, 18, 04
- RGB 28, 12, 05
- RGB 00, 00, 00
-
- RGB 19, 26, 31
- RGB 31, 05, 08
- RGB 31, 09, 31
- RGB 00, 00, 00
-
- RGB 31, 19, 28
- RGB 31, 21, 00
- RGB 12, 22, 00
- RGB 00, 00, 00
-
- RGB 19, 17, 23
- RGB 30, 26, 00
- RGB 31, 12, 00
- RGB 00, 00, 00
-
- RGB 07, 26, 31
- RGB 26, 26, 27
- RGB 31, 11, 11
- RGB 00, 00, 00
-
- RGB 21, 31, 21
- RGB 30, 26, 00
- RGB 31, 12, 00
- RGB 00, 00, 00
-
- RGB 07, 26, 31
- RGB 31, 31, 00
- RGB 00, 21, 00
- RGB 00, 00, 00
+ RGB 20,31,11, 31,19,00, 31,10,09, 00,00,00 ; FLOWER_MAIL
+ RGB 15,20,31, 30,26,00, 31,12,00, 00,00,00 ; SURF_MAIL
+ RGB 24,17,31, 30,26,00, 08,11,31, 00,00,00 ; LITEBLUEMAIL
+ RGB 31,25,17, 31,18,04, 28,12,05, 00,00,00 ; PORTRAITMAIL
+ RGB 19,26,31, 31,05,08, 31,09,31, 00,00,00 ; LOVELY_MAIL
+ RGB 31,19,28, 31,21,00, 12,22,00, 00,00,00 ; EON_MAIL
+ RGB 19,17,23, 30,26,00, 31,12,00, 00,00,00 ; MORPH_MAIL
+ RGB 07,26,31, 26,26,27, 31,11,11, 00,00,00 ; BLUESKY_MAIL
+ RGB 21,31,21, 30,26,00, 31,12,00, 00,00,00 ; MUSIC_MAIL
+ RGB 07,26,31, 31,31,00, 00,21,00, 00,00,00 ; MIRAGE_MAIL
diff --git a/maps/PlayersHouse2F.asm b/maps/PlayersHouse2F.asm
index 73a9fdc58..c36e3d76d 100644
--- a/maps/PlayersHouse2F.asm
+++ b/maps/PlayersHouse2F.asm
@@ -29,7 +29,7 @@ PlayersHouse2F_MapScripts:
special ToggleMaptileDecorations
endcallback
- db 0, 0, 0 ; filler
+ db 0, 0, 0 ; unused
Doll1Script::
describedecoration DECODESC_LEFT_DOLL
diff --git a/wram.asm b/wram.asm
index b661ba31a..3004c52d5 100644
--- a/wram.asm
+++ b/wram.asm
@@ -2227,7 +2227,7 @@ wEvolvableFlags:: flag_array PARTY_LENGTH
wForceEvolution:: db
UNION
-; general-purpose buffers
+; unidentified
wBuffer1:: db
wBuffer2:: db
wBuffer3:: db
@@ -2248,11 +2248,76 @@ wCurHPAnimLowHP:: db
wCurHPAnimHighHP:: db
NEXTU
+; battle AI
+wEnemyAIMoveScores:: ds NUM_MOVES
+
+NEXTU
+; battle HUD
+wBattleHUDTiles:: ds PARTY_LENGTH
+
+NEXTU
; evolution data
wEvolutionOldSpecies:: db
wEvolutionNewSpecies:: db
-wEvolutionPicOffset:: db
-wEvolutionCanceled:: db
+wEvolutionPicOffset:: db
+wEvolutionCanceled:: db
+
+NEXTU
+; experience
+wExpToNextLevel:: ds 3
+
+NEXTU
+; lucky number show
+wMonIDDigitsBuffer:: ds 5
+
+NEXTU
+; mon submenu
+wMonSubmenuCount:: db
+wMonSubmenuItems:: ds NUM_MONMENU_ITEMS + 1
+
+NEXTU
+; heal machine anim
+wHealMachineAnimType:: db
+wHealMachineTempOBP1:: db
+wHealMachineAnimState:: db
+
+NEXTU
+; decorations
+wCurDecoration:: db
+wSelectedDecorationSide:: db
+wSelectedDecoration:: db
+wOtherDecoration:: db
+wChangedDecorations:: db
+wCurDecorationCategory:: db
+
+NEXTU
+; withdraw/deposit items
+wPCItemQuantityChangeBuffer:: db
+wPCItemQuantity:: db
+
+NEXTU
+; mail
+wCurMailAuthorID:: dw
+wCurMailIndex:: db
+
+NEXTU
+; kurt
+wKurtApricornCount:: db
+wKurtApricornItems:: ds 10
+
+NEXTU
+; tree mons
+wTreeMonCoordScore:: db
+wTreeMonOTIDScore:: db
+
+NEXTU
+; restart clock
+wRestartClockCurDivision:: db
+wRestartClockPrevDivision:: db
+wRestartClockUpArrowYCoord:: db
+wRestartClockDay:: db
+wRestartClockHour:: db
+wRestartClockMin:: db
NEXTU
; link
@@ -2273,12 +2338,20 @@ wd1f2:: ds 1
wd1f3:: ds 1
NEXTU
-; miscellaneous
-wMagikarpLength:: dw
-wSelectedDecoration:: db
-wOtherDecoration:: db
- ds 3
+; miscellaneous bytes
+wSkipMovesBeforeLevelUp::
+wRegisteredPhoneNumbers::
+wListMovesLineSpacing:: db
+wSwitchMonTo:: db
+wSwitchMonFrom:: db
+ ds 4
wCurEnemyItem:: db
+
+NEXTU
+; miscellaneous words
+wBuySellItemPrice::
+wTempMysteryGiftTimer::
+wMagikarpLength:: dw
ENDU
wTempEnemyMonSpecies:: db
@@ -3254,7 +3327,7 @@ wBattleAnimTempPalette:: db
ENDU
UNION
- ds $32
+ ds 50
wBattleAnimEnd::
NEXTU