ref: 994c2cbf289efa2e23eabf1af96ba62e4f066005
parent: 07dd7056372288de7bb5b64f9416d741adb3b499
author: YamaArashi <shadow962@live.com>
date: Tue Jul 14 19:16:06 EDT 2015
named wram variables
--- a/engine/battle/animations.asm
+++ b/engine/battle/animations.asm
@@ -2500,27 +2500,29 @@
ld a, [H_WHOSETURN]
and a
ld a, $31 ; base tile ID of player mon sprite
- jr z, .asm_79ab6
+ jr z, .next
; enemy turn
xor a ; base tile ID of enemy mon sprite
-.asm_79ab6
+.next
ld [hBaseTileID], a
- jr asm_79acb
+ jr CopyTileIDs_NoBGTransfer
-; copy the tiles used when a mon is being sent out
-; and "growing" out of the pokeball
-CopyGrowingMonTiles: ; 79aba (1e:5aba)
+; copy the tiles used when a mon is being sent out of or into a pokeball
+CopyDownscaledMonTiles: ; 79aba (1e:5aba)
call GetPredefRegisters
- ld a, [wcd6c]
+ ld a, [wDownscaledMonSize]
and a
- jr nz, .asm_79ac8
- ld de, Unknown_79b02 ; 5x5
- jr asm_79acb
-.asm_79ac8
- ld de, Unknown_79b1b ; 3x3
-asm_79acb: ; 79acb (1e:5acb)
+ jr nz, .smallerSize
+ ld de, DownscaledMonTiles_5x5
+ jr CopyTileIDs_NoBGTransfer
+.smallerSize
+ ld de, DownscaledMonTiles_3x3
+; fall through
+
+CopyTileIDs_NoBGTransfer: ; 79acb (1e:5acb)
xor a
ld [H_AUTOBGTRANSFERENABLED], a
+; fall through
; b = number of rows
; c = number of columns
@@ -2567,7 +2569,7 @@
dw Unknown_79c50
db $3C
-Unknown_79b02: ; 79b02 (1e:5b02)
+DownscaledMonTiles_5x5: ; 79b02 (1e:5b02)
db $31,$38,$46,$54,$5B
db $32,$39,$47,$55,$5C
db $34,$3B,$49,$57,$5E
@@ -2574,7 +2576,7 @@
db $36,$3D,$4B,$59,$60
db $37,$3E,$4C,$5A,$61
-Unknown_79b1b: ; 79b1b (1e:5b1b)
+DownscaledMonTiles_3x3: ; 79b1b (1e:5b1b)
db $31,$46,$5B
db $34,$49,$5E
db $37,$4C,$61
--- a/engine/battle/bank_e_misc.asm
+++ b/engine/battle/bank_e_misc.asm
@@ -24,7 +24,7 @@
jr .copyNameLoop
.doneCopyingName
ld a, b
- ld [wcd6c], a
+ ld [wNumMovesMinusOne], a
inc b
ld a, $4e ; line break
ld [de], a
@@ -70,7 +70,7 @@
.notPlayer
cp INIT_MON_LIST
jr nz, .notMonster
- ld hl, wStringBuffer2 + 11
+ ld hl, wItemList
ld de, MonsterNames
ld a, MONSTER_NAME
jr .done
@@ -82,15 +82,15 @@
ld a, ITEM_NAME
jr .done
.notBag
- ld hl, wStringBuffer2 + 11
+ ld hl, wItemList
ld de, ItemNames
ld a, ITEM_NAME
.done
ld [wNameListType], a
ld a, l
- ld [wList], a
+ ld [wListPointer], a
ld a, h
- ld [wList + 1], a
+ ld [wListPointer + 1], a
ld a, e
ld [wcf8d], a
ld a, d
--- a/engine/battle/core.asm
+++ b/engine/battle/core.asm
@@ -225,7 +225,7 @@
xor a
ld [wPartyGainExpFlags], a
ld [wPartyFoughtCurrentEnemyFlags], a
- ld [wcd6a], a
+ ld [wActionResultOrTookBattleTurn], a
inc a
ld [wd11d], a
ld hl, wEnemyMon1HP
@@ -260,7 +260,7 @@
.displaySafariZoneBattleMenu
call DisplayBattleMenu
ret c ; return if the player ran from battle
- ld a, [wcd6a]
+ ld a, [wActionResultOrTookBattleTurn]
and a ; was the item used successfully?
jr z, .displaySafariZoneBattleMenu ; if not, display the menu again; XXX does this ever jump?
ld a, [W_NUMSAFARIBALLS]
@@ -415,8 +415,8 @@
ld [wPlayerSelectedMove], a
jr .selectEnemyMove
.selectPlayerMove
- ld a, [wcd6a]
- and a
+ ld a, [wActionResultOrTookBattleTurn]
+ and a ; has the player already used the turn (e.g. by using an item, trying to run or switching pokemon)
jr nz, .selectEnemyMove
ld [wMoveMenuType], a
inc a
@@ -816,11 +816,11 @@
call ChooseNextMon
.skipReplacingBattleMon
ld a, $1
- ld [wcd6a], a
+ ld [wActionResultOrTookBattleTurn], a
call ReplaceFaintedEnemyMon
jp z, EnemyRan
xor a
- ld [wcd6a], a
+ ld [wActionResultOrTookBattleTurn], a
jp MainInBattleLoop
FaintEnemyPokemon: ; 0x3c567
@@ -990,7 +990,7 @@
call EnemySendOut
xor a
ld [W_ENEMYMOVENUM], a
- ld [wcd6a], a
+ ld [wActionResultOrTookBattleTurn], a
ld [wAILayer2Encouragement], a
inc a ; reset Z flag
ret
@@ -1075,11 +1075,11 @@
jp nz, MainInBattleLoop ; if the enemy mon has more than 0 HP, go back to battle loop
; the enemy mon has 0 HP
ld a, $1
- ld [wcd6a], a
+ ld [wActionResultOrTookBattleTurn], a
call ReplaceFaintedEnemyMon
jp z, EnemyRan ; if enemy ran from battle rather than sending out another mon, jump
xor a
- ld [wcd6a], a
+ ld [wActionResultOrTookBattleTurn], a
jp MainInBattleLoop
; resets flags, slides mon's pic down, plays cry, and prints fainted message
@@ -1177,11 +1177,11 @@
cp LINK_STATE_BATTLING
jr nz, .notLinkBattle
inc a
- ld [wcd6a], a
+ ld [wActionResultOrTookBattleTurn], a
call LinkBattleExchangeData
.notLinkBattle
xor a
- ld [wcd6a], a
+ ld [wActionResultOrTookBattleTurn], a
call ClearSprites
ld a, [wWhichPokemon]
ld [wPlayerMonNumber], a
@@ -1646,7 +1646,7 @@
; plus 30 times the number of attempts, the player can escape
; can't escape
ld a, $1
- ld [wcd6a], a
+ ld [wActionResultOrTookBattleTurn], a ; you lose your turn when you can't escape
ld hl, CantEscapeText
jr .printCantEscapeOrNoRunningText
.trainerBattle
@@ -1666,7 +1666,7 @@
; link battle
call SaveScreenTilesToBuffer1
xor a
- ld [wcd6a], a
+ ld [wActionResultOrTookBattleTurn], a
ld a, $f
ld [wPlayerMoveListIndex], a
call LinkBattleExchangeData
@@ -1842,7 +1842,7 @@
call PrintEmptyString
jp SaveScreenTilesToBuffer1
-; show 2 stages of the player getting smaller before disappearing
+; show 2 stages of the player mon getting smaller before disappearing
AnimateRetreatingPlayerMon: ; 3ccfa (f:4cfa)
hlCoord 1, 5
ld bc, $707
@@ -1850,9 +1850,9 @@
hlCoord 3, 7
ld bc, $505
xor a
- ld [wcd6c], a
+ ld [wDownscaledMonSize], a
ld [H_DOWNARROWBLINKCNT1], a
- predef CopyGrowingMonTiles
+ predef CopyDownscaledMonTiles
ld c, 4
call DelayFrames
call .clearScreenArea
@@ -1859,10 +1859,10 @@
hlCoord 4, 9
ld bc, $303
ld a, $1
- ld [wcd6c], a
+ ld [wDownscaledMonSize], a
xor a
ld [H_DOWNARROWBLINKCNT1], a
- predef CopyGrowingMonTiles
+ predef CopyDownscaledMonTiles
call Delay3
call .clearScreenArea
ld a, $4c
@@ -2276,9 +2276,9 @@
jr nz, DisplayPlayerBag ; no, it is a normal battle
ld hl, OldManItemList
ld a, l
- ld [wList], a
+ ld [wListPointer], a
ld a, h
- ld [wList + 1], a
+ ld [wListPointer + 1], a
jr DisplayBagMenu
OldManItemList:
@@ -2290,9 +2290,9 @@
; get the pointer to player's bag when in a normal battle
ld hl, wNumBagItems
ld a, l
- ld [wList], a
+ ld [wListPointer], a
ld a, h
- ld [wList + 1], a
+ ld [wListPointer + 1], a
DisplayBagMenu:
xor a
@@ -2326,7 +2326,7 @@
cp $2 ; is it a safari battle?
jr z, .checkIfMonCaptured
- ld a, [wcd6a]
+ ld a, [wActionResultOrTookBattleTurn]
and a ; was the item used successfully?
jp z, BagWasSelected ; if not, go back to the bag menu
@@ -2479,7 +2479,7 @@
call HasMonFainted
jp z, .partyMonDeselected ; can't switch to fainted mon
ld a, $1
- ld [wcd6a], a
+ ld [wActionResultOrTookBattleTurn], a
call GBPalWhiteOut
call ClearSprites
call LoadHudTilePatterns
@@ -2525,9 +2525,9 @@
ld a, $0
ld [wd11f], a
ret c
- ld a, [wcd6a]
+ ld a, [wActionResultOrTookBattleTurn]
and a
- ret nz
+ ret nz ; return if the player couldn't escape
jp DisplayBattleMenu
MoveSelectionMenu: ; 3d219 (f:5219)
@@ -2604,9 +2604,9 @@
ld a, $7
.menuset
ld hl, wTopMenuItemY
- ld [hli], a
+ ld [hli], a ; wTopMenuItemY
ld a, b
- ld [hli], a
+ ld [hli], a ; wTopMenuItemX
ld a, [wMoveMenuType]
cp $1
jr z, .selectedmoveknown
@@ -2615,18 +2615,18 @@
ld a, [wPlayerMoveListIndex]
inc a
.selectedmoveknown
- ld [hli], a
+ ld [hli], a ; wCurrentMenuItem
inc hl ; wTileBehindCursor untouched
- ld a, [wcd6c]
+ ld a, [wNumMovesMinusOne]
inc a
inc a
- ld [hli], a
+ ld [hli], a ; wMaxMenuItem
ld a, [wMoveMenuType]
dec a
- ld b, $c1 ; can't use B
+ ld b, D_UP | D_DOWN | A_BUTTON
jr z, .matchedkeyspicked
dec a
- ld b, $c3
+ ld b, D_UP | D_DOWN | A_BUTTON | B_BUTTON
jr z, .matchedkeyspicked
ld a, [wLinkState]
cp LINK_STATE_BATTLING
@@ -2633,12 +2633,12 @@
jr z, .matchedkeyspicked
ld a, [W_FLAGS_D733]
bit 0, a
- ld b, $c7
+ ld b, D_UP | D_DOWN | A_BUTTON | B_BUTTON | SELECT
jr z, .matchedkeyspicked
ld b, $ff
.matchedkeyspicked
ld a, b
- ld [hli], a
+ ld [hli], a ; wMenuWatchedKeys
ld a, [wMoveMenuType]
cp $1
jr z, .movelistindex1
@@ -2759,7 +2759,7 @@
and a
jp nz, SelectMenuItem
call EraseMenuCursor
- ld a, [wcd6c]
+ ld a, [wNumMovesMinusOne]
inc a
ld [wCurrentMenuItem], a
jp SelectMenuItem
@@ -2767,7 +2767,7 @@
CursorDown: ; 3d3dd (f:53dd)
ld a, [wCurrentMenuItem]
ld b, a
- ld a, [wcd6c]
+ ld a, [wNumMovesMinusOne]
inc a
inc a
cp b
@@ -2983,7 +2983,7 @@
SelectEnemyMove: ; 3d564 (f:5564)
ld a, [wLinkState]
- sub $4
+ sub LINK_STATE_BATTLING
jr nz, .noLinkBattle
; link battle
call SaveScreenTilesToBuffer1
@@ -3079,46 +3079,47 @@
ld [wSerialExchangeNybbleReceiveData], a
ld a, [wPlayerMoveListIndex]
cp $f ; is the player running from battle?
- jr z, .asm_3d630
- ld a, [wcd6a]
- and a
- jr nz, .asm_3d629
+ jr z, .doExchange
+ ld a, [wActionResultOrTookBattleTurn]
+ and a ; is the player switching in another mon?
+ jr nz, .switching
+; the player used a move
ld a, [wPlayerSelectedMove]
cp STRUGGLE
ld b, $e
- jr z, .asm_3d62f
+ jr z, .next
dec b
inc a
- jr z, .asm_3d62f
+ jr z, .next
ld a, [wPlayerMoveListIndex]
- jr .asm_3d630
-.asm_3d629
+ jr .doExchange
+.switching
ld a, [wWhichPokemon]
- add $4
+ add 4
ld b, a
-.asm_3d62f
+.next
ld a, b
-.asm_3d630
+.doExchange
ld [wSerialExchangeNybbleSendData], a
callab PrintWaitingText
-.asm_3d63b
+.syncLoop1
call Serial_ExchangeNybble
call DelayFrame
ld a, [wSerialExchangeNybbleReceiveData]
inc a
- jr z, .asm_3d63b
- ld b, $a
-.asm_3d649
+ jr z, .syncLoop1
+ ld b, 10
+.syncLoop2
call DelayFrame
call Serial_ExchangeNybble
dec b
- jr nz, .asm_3d649
- ld b, $a
-.asm_3d654
+ jr nz, .syncLoop2
+ ld b, 10
+.syncLoop3
call DelayFrame
call Serial_SendZeroByte
dec b
- jr nz, .asm_3d654
+ jr nz, .syncLoop3
ret
ExecutePlayerMove: ; 3d65e (f:565e)
@@ -3133,8 +3134,8 @@
ld [wMoveDidntMiss], a
ld a, $a
ld [wDamageMultipliers], a
- ld a, [wcd6a]
- and a
+ ld a, [wActionResultOrTookBattleTurn]
+ and a ; has the player already used the turn (e.g. by using an item, trying to run or switching pokemon)
jp nz, ExecutePlayerMoveDone
call PrintGhostText
jp z, ExecutePlayerMoveDone
@@ -3324,7 +3325,7 @@
ExecutePlayerMoveDone: ; 3d80a (f:580a)
xor a
- ld [wcd6a],a
+ ld [wActionResultOrTookBattleTurn],a
ld b,1
ret
@@ -6998,7 +6999,7 @@
ld [wc0f2], a
jp PlaySound
-; animtes the mon "growing" out of the pokeball
+; animates the mon "growing" out of the pokeball
AnimateSendingOutMon: ; 3f073 (f:7073)
ld a, [wPredefRegisters]
ld h, a
@@ -7016,17 +7017,17 @@
ld bc, -41
add hl, bc
ld a, $1
- ld [wcd6c], a
+ ld [wDownscaledMonSize], a
ld bc, $303
- predef CopyGrowingMonTiles
+ predef CopyDownscaledMonTiles
ld c, 4
call DelayFrames
ld bc, -41
add hl, bc
xor a
- ld [wcd6c], a
+ ld [wDownscaledMonSize], a
ld bc, $505
- predef CopyGrowingMonTiles
+ predef CopyDownscaledMonTiles
ld c, 5
call DelayFrames
ld bc, -41
--- a/engine/battle/init_battle_variables.asm
+++ b/engine/battle/init_battle_variables.asm
@@ -2,7 +2,7 @@
ld a, [hTilesetType]
ld [wd0d4], a
xor a
- ld [wcd6a], a
+ ld [wActionResultOrTookBattleTurn], a
ld [wBattleResult], a
ld hl, wcc2b
ld [hli], a
--- a/engine/battle/trainer_ai.asm
+++ b/engine/battle/trainer_ai.asm
@@ -559,7 +559,7 @@
AIUseFullRestore: ; 3a6a0 (e:66a0)
call AICureStatus
ld a,FULL_RESTORE
- ld [wcf05],a
+ ld [wAIItem],a
ld de,wHPBarOldHP
ld hl,wEnemyMonHP + 1
ld a,[hld]
@@ -600,7 +600,7 @@
AIRecoverHP: ; 3a6da (e:66da)
; heal b HP and print "trainer used $(a) on pokemon!"
- ld [wcf05],a
+ ld [wAIItem],a
ld hl,wEnemyMonHP + 1
ld a,[hl]
ld [wHPBarOldHP],a
@@ -797,7 +797,7 @@
; fallthrough
AIIncreaseStat: ; 3a808 (e:6808)
- ld [wcf05],a
+ ld [wAIItem],a
push bc
call AIPrintItemUse_
pop bc
@@ -819,13 +819,13 @@
jp DecrementAICount
AIPrintItemUse: ; 3a82c (e:682c)
- ld [wcf05],a
+ ld [wAIItem],a
call AIPrintItemUse_
jp DecrementAICount
AIPrintItemUse_: ; 3a835 (e:6835)
-; print "x used [wcf05] on z!"
- ld a,[wcf05]
+; print "x used [wAIItem] on z!"
+ ld a,[wAIItem]
ld [wd11e],a
call GetItemName
ld hl, AIBattleUseItemText
--- a/engine/items/items.asm
+++ b/engine/items/items.asm
@@ -1,6 +1,6 @@
UseItem_: ; d5c7 (3:55c7)
ld a,1
- ld [wcd6a],a
+ ld [wActionResultOrTookBattleTurn],a ; initialise to success value
ld a,[wcf91] ;contains item_ID
cp a,HM_01
jp nc,ItemUseTMHM
@@ -661,7 +661,7 @@
call ItemUseNoEffect
.canceledItemUse
xor a
- ld [wcd6a],a
+ ld [wActionResultOrTookBattleTurn],a ; item not used
pop af
ret
@@ -691,7 +691,7 @@
.emptyParty
ld hl,.emptyPartyText
xor a
- ld [wcd6a],a ; item use failed
+ ld [wActionResultOrTookBattleTurn],a ; item use failed
jp PrintText
.emptyPartyText
text "You don't have"
@@ -706,7 +706,7 @@
ld a,[wWhichPokemon]
call AddNTimes
ld a,[wWhichPokemon]
- ld [wcf06],a
+ ld [wUsedItemOnWhichPokemon],a
ld d,a
ld a,[wcf91]
ld e,a
@@ -803,7 +803,7 @@
push hl
push de
push bc
- ld a,[wcf06]
+ ld a,[wUsedItemOnWhichPokemon]
ld c,a
ld hl,wPartyFoughtCurrentEnemyFlags
ld b,$02
@@ -811,7 +811,7 @@
ld a,c
and a
jr z,.next
- ld a,[wcf06]
+ ld a,[wUsedItemOnWhichPokemon]
ld c,a
ld hl,wPartyGainExpFlags
ld b,$01
@@ -1106,7 +1106,7 @@
jr .done
.canceledItemUse
xor a
- ld [wcd6a],a ; item use failed
+ ld [wActionResultOrTookBattleTurn],a ; item use failed
pop af
pop af
.done
@@ -1384,7 +1384,7 @@
ld [W_SAFARIZONEENTRANCECURSCRIPT],a
inc a
ld [wEscapedFromBattle],a
- ld [wcd6a],a ; item used
+ ld [wActionResultOrTookBattleTurn],a ; item used
ld a,[wd152]
and a ; using Dig?
ret nz ; if so, return
@@ -1550,7 +1550,7 @@
jr nz,.inBattle
call ItemUseNotTime
ld a,2
- ld [wcd6a],a ; item not used
+ ld [wActionResultOrTookBattleTurn],a ; item not used
ret
.inBattle
ld hl,W_PLAYERMOVENUM
@@ -2043,7 +2043,7 @@
call GoPAL_SET_CF1C
pop af
xor a
- ld [wcd6a],a ; item use failed
+ ld [wActionResultOrTookBattleTurn],a ; item use failed
ret
RaisePPWhichTechniqueText: ; e45d (3:645d)
@@ -2104,7 +2104,7 @@
and a
jr z,.useMachine
ld a,2
- ld [wcd6a],a ; item not used
+ ld [wActionResultOrTookBattleTurn],a ; item not used
ret
.useMachine
ld a,[wWhichPokemon]
@@ -2234,7 +2234,7 @@
ItemUseFailed: ; e5b9 (3:65b9)
xor a
- ld [wcd6a],a ; item use failed
+ ld [wActionResultOrTookBattleTurn],a ; item use failed
jp PrintText
ItemUseNotTimeText: ; e5c0 (3:65c0)
@@ -2301,13 +2301,13 @@
ld a,[wWhichPokemon]
call AddNTimes
push hl
- ld de,wcd78 - 1
- predef LoadMovePPs ; loads the normal max PP of each of the pokemon's moves to wcd78
+ ld de,wNormalMaxPPList - 1
+ predef LoadMovePPs ; loads the normal max PP of each of the pokemon's moves to wNormalMaxPPList
pop hl
ld c,21
ld b,0
add hl,bc ; hl now points to move 1 PP
- ld de,wcd78
+ ld de,wNormalMaxPPList
ld b,0 ; initialize move counter to zero
; loop through the pokemon's moves
.loop
@@ -2420,7 +2420,7 @@
ld de,wcd6d
ld a,BANK(Moves)
call FarCopyData
- ld de,wcd72
+ ld de,wcd6d + 5 ; PP is byte 5 of move data
ld a,[de]
ld b,a ; b = normal max PP
pop hl
--- a/engine/learn_move.asm
+++ b/engine/learn_move.asm
@@ -134,18 +134,18 @@
res 2, a
ld [hFlags_0xFFF6], a
ld hl, wTopMenuItemY
- ld a, $8
- ld [hli], a
- ld a, $5
- ld [hli], a
+ ld a, 8
+ ld [hli], a ; wTopMenuItemY
+ ld a, 5
+ ld [hli], a ; wTopMenuItemX
xor a
- ld [hli], a
+ ld [hli], a ; wCurrentMenuItem
inc hl
- ld a, [wcd6c]
- ld [hli], a
- ld a, $3
- ld [hli], a
- ld [hl], $0
+ ld a, [wNumMovesMinusOne]
+ ld [hli], a ; wMaxMenuItem
+ ld a, A_BUTTON | B_BUTTON
+ ld [hli], a ; wMenuWatchedKeys
+ ld [hl], 0 ; wLastMenuItem
ld hl, hFlags_0xFFF6
set 1, [hl]
call HandleMenuInput
--- a/engine/menu/bills_pc.asm
+++ b/engine/menu/bills_pc.asm
@@ -325,9 +325,9 @@
Func_216be: ; 216be (8:56be)
ld a, l
- ld [wList], a
+ ld [wListPointer], a
ld a, h
- ld [wList + 1], a
+ ld [wListPointer + 1], a
xor a
ld [wPrintItemPrices], a
ld [wListMenuID], a
--- a/engine/menu/party_menu.asm
+++ b/engine/menu/party_menu.asm
@@ -227,7 +227,7 @@
ld h,[hl]
ld l,a
push hl
- ld a,[wcf06]
+ ld a,[wUsedItemOnWhichPokemon]
ld hl,wPartyMonNicks
call GetPartyMonName
pop hl
--- a/engine/menu/players_pc.asm
+++ b/engine/menu/players_pc.asm
@@ -97,9 +97,9 @@
call PrintText
ld hl, wNumBagItems
ld a, l
- ld [wList], a
+ ld [wListPointer], a
ld a, h
- ld [wList + 1], a
+ ld [wListPointer + 1], a
xor a
ld [wPrintItemPrices], a
ld a, $3
@@ -151,9 +151,9 @@
call PrintText
ld hl, wNumBoxItems
ld a, l
- ld [wList], a
+ ld [wListPointer], a
ld a, h
- ld [wList + 1], a
+ ld [wListPointer + 1], a
xor a
ld [wPrintItemPrices], a
ld a, $3
@@ -205,9 +205,9 @@
call PrintText
ld hl, wNumBoxItems
ld a, l
- ld [wList], a
+ ld [wListPointer], a
ld a, h
- ld [wList + 1], a
+ ld [wListPointer + 1], a
xor a
ld [wPrintItemPrices], a
ld a, $3
--- a/engine/menu/start_sub_menus.asm
+++ b/engine/menu/start_sub_menus.asm
@@ -153,7 +153,7 @@
bit 1,a ; does the player have the Cascade Badge?
jp z,.newBadgeRequired
predef UsedCut
- ld a,[wcd6a]
+ ld a,[wActionResultOrTookBattleTurn]
and a
jp z,.loop
jp CloseTextDisplay
@@ -169,7 +169,7 @@
ld [wcf91],a
ld [wd152],a
call UseItem
- ld a,[wcd6a]
+ ld a,[wActionResultOrTookBattleTurn]
and a
jp z,.loop
call GBPalWhiteOutWithDelay3
@@ -197,7 +197,7 @@
ld [wcf91],a
ld [wd152],a
call UseItem
- ld a,[wcd6a]
+ ld a,[wActionResultOrTookBattleTurn]
and a
jp z,.loop
call GBPalWhiteOutWithDelay3
@@ -308,10 +308,10 @@
jr .exitMenu
.notInCableClubRoom
ld bc,wNumBagItems
- ld hl,wList
+ ld hl,wListPointer
ld a,c
ld [hli],a
- ld [hl],b ; store item bag pointer at wList (for DisplayListMenuID)
+ ld [hl],b ; store item bag pointer in wListPointer (for DisplayListMenuID)
xor a
ld [wPrintItemPrices],a
ld a,ITEMLISTMENU
@@ -401,7 +401,7 @@
xor a
ld [wd152],a
call UseItem
- ld a,[wcd6a]
+ ld a,[wActionResultOrTookBattleTurn]
and a
jp z,ItemMenuLoop
jp CloseStartMenu
@@ -409,7 +409,7 @@
ld a,[wUpdateSpritesEnabled]
push af
call UseItem
- ld a,[wcd6a]
+ ld a,[wActionResultOrTookBattleTurn]
cp a,$02
jp z,.partyMenuNotDisplayed
call GBPalWhiteOutWithDelay3
--- a/engine/menu/status_screen.asm
+++ b/engine/menu/status_screen.asm
@@ -316,7 +316,7 @@
hlCoord 2, 9
ld de, wMovesString
call PlaceString ; Print moves
- ld a, [wcd6c]
+ ld a, [wNumMovesMinusOne]
inc a
ld c, a
ld a, $4
@@ -335,7 +335,7 @@
.InitPP ; 12bbb
ld hl, wLoadedMonMoves
deCoord 14, 10
- ld b, $0
+ ld b, 0
.PrintPP ; 12bc3
ld a, [hli]
and a
@@ -356,15 +356,15 @@
pop de
pop hl
push hl
- ld bc, $0014
+ ld bc, wPartyMon1PP - wPartyMon1Moves - 1
add hl, bc
ld a, [hl]
and $3f
- ld [wcd71], a
+ ld [wStatusScreenCurrentPP], a
ld h, d
ld l, e
push hl
- ld de, wcd71
+ ld de, wStatusScreenCurrentPP
ld bc, $0102
call PrintNumber
ld a, "/"
--- a/engine/overworld/cut.asm
+++ b/engine/overworld/cut.asm
@@ -1,6 +1,6 @@
UsedCut: ; ef54 (3:6f54)
xor a
- ld [wcd6a], a
+ ld [wActionResultOrTookBattleTurn], a ; initialise to failure value
ld a, [W_CURMAPTILESET]
and a ; OVERWORLD
jr z, .asm_ef6b
@@ -28,7 +28,7 @@
.asm_ef82
ld [wCutTile], a
ld a, $1
- ld [wcd6a], a
+ ld [wActionResultOrTookBattleTurn], a ; used cut
ld a, [wWhichPokemon]
ld hl, wPartyMonNicks
call GetPartyMonName
--- a/engine/overworld/pokemart.asm
+++ b/engine/overworld/pokemart.asm
@@ -57,9 +57,9 @@
call DisplayTextBoxID ; draw money text box
ld hl,wNumBagItems
ld a,l
- ld [wList],a
+ ld [wListPointer],a
ld a,h
- ld [wList + 1],a
+ ld [wListPointer + 1],a
xor a
ld [wPrintItemPrices],a
ld [wCurrentMenuItem],a
@@ -136,11 +136,11 @@
ld a,MONEY_BOX
ld [wTextBoxID],a
call DisplayTextBoxID
- ld hl,wStringBuffer2 + 11
+ ld hl,wItemList
ld a,l
- ld [wList],a
+ ld [wListPointer],a
ld a,h
- ld [wList + 1],a
+ ld [wListPointer + 1],a
xor a
ld [wCurrentMenuItem],a
inc a
--- a/engine/predefs.asm
+++ b/engine/predefs.asm
@@ -57,7 +57,7 @@
add_predef AnimateSendingOutMon
add_predef ScaleSpriteByTwo
add_predef LoadMonBackPic
- add_predef CopyGrowingMonTiles
+ add_predef CopyDownscaledMonTiles
add_predef LoadMissableObjects
add_predef HealParty
add_predef MoveAnimation; 08 play move animation
--- a/engine/predefs7.asm
+++ b/engine/predefs7.asm
@@ -1,11 +1,11 @@
Func_1c9c6: ; 1c9c6 (7:49c6)
ld hl, WhichFloorText
call PrintText
- ld hl, wStringBuffer2 + 11
+ ld hl, wItemList
ld a, l
- ld [wList], a
+ ld [wListPointer], a
ld a, h
- ld [wList + 1], a
+ ld [wListPointer + 1], a
ld a, [wListScrollOffset]
push af
xor a
--- a/home.asm
+++ b/home.asm
@@ -1055,7 +1055,7 @@
ld a,[H_LOADEDROMBANK]
push af
callba DisplayTextIDInit ; initialization
- ld hl,wcf11
+ ld hl,wTextPredefFlag
bit 0,[hl]
res 0,[hl]
jr nz,.skipSwitchToMapBank
@@ -1225,7 +1225,7 @@
ld [wItemListPointer],a
ld a,l
ld [wItemListPointer + 1],a
- ld de,wStringBuffer2 + 11
+ ld de,wItemList
.loop
ld a,[hli]
ld [de],a
@@ -1372,7 +1372,7 @@
; INPUT:
; [wListMenuID] = list menu ID
-; [wList] = address of the list (2 bytes)
+; [wListPointer] = address of the list (2 bytes)
DisplayListMenuID:: ; 2be6 (0:2be6)
xor a
ld [H_AUTOBGTRANSFERENABLED],a ; disable auto-transfer
@@ -1392,9 +1392,9 @@
xor a
ld [wMenuItemToSwap],a ; 0 means no item is currently being swapped
ld [wListCount],a
- ld a,[wList]
+ ld a,[wListPointer]
ld l,a
- ld a,[wList + 1]
+ ld a,[wListPointer + 1]
ld h,a ; hl = address of the list
ld a,[hl] ; the first byte is the number of entries in the list
ld [wListCount],a
@@ -1488,9 +1488,9 @@
; if it's an item menu
sla c ; item entries are 2 bytes long, so multiply by 2
.skipMultiplying
- ld a,[wList]
+ ld a,[wListPointer]
ld l,a
- ld a,[wList + 1]
+ ld a,[wListPointer + 1]
ld h,a
inc hl ; hl = beginning of list entries
ld b,0
@@ -1519,7 +1519,7 @@
jr .storeChosenEntry
.pokemonList
ld hl,wPartyCount
- ld a,[wList]
+ ld a,[wListPointer]
cp l ; is it a list of party pokemon or box pokemon?
ld hl,wPartyMonNicks
jr z,.getPokemonName
@@ -1710,9 +1710,9 @@
ld b,$09
ld c,$0e
call ClearScreenArea
- ld a,[wList]
+ ld a,[wListPointer]
ld e,a
- ld a,[wList + 1]
+ ld a,[wListPointer + 1]
ld d,a
inc de ; de = beginning of list entries
ld a,[wListScrollOffset]
@@ -1756,7 +1756,7 @@
.pokemonPCMenu
push hl
ld hl,wPartyCount
- ld a,[wList]
+ ld a,[wListPointer]
cp l ; is it a list of party pokemon or box pokemon?
ld hl,wPartyMonNicks
jr z,.getPokemonName
@@ -1801,7 +1801,7 @@
push af
push hl
ld hl,wPartyCount
- ld a,[wList]
+ ld a,[wListPointer]
cp l ; is it a list of party pokemon or box pokemon?
ld a,$00
jr z,.next
@@ -1914,7 +1914,7 @@
push de
ld bc,10
call CopyData
- ld hl,wcd77
+ ld hl,wcd6d + 10
ld [hl], "@"
pop de
pop af
@@ -2090,7 +2090,7 @@
; INPUT:
; [wcf91] = item ID
; OUTPUT:
-; [wcd6a] = success
+; [wActionResultOrTookBattleTurn] = success
; 00: unsucessful
; 01: successful
; 02: not able to be used right now, no extra menu displayed (only certain items use this)
@@ -2960,10 +2960,10 @@
BankswitchHome:: ; 35bc (0:35bc)
; switches to bank # in a
; Only use this when in the home bank!
- ld [wcf09],a
+ ld [wBankswitchHomeTemp],a
ld a,[H_LOADEDROMBANK]
- ld [wcf08],a
- ld a,[wcf09]
+ ld [wBankswitchHomeSavedROMBank],a
+ ld a,[wBankswitchHomeTemp]
ld [H_LOADEDROMBANK],a
ld [MBC1RomBank],a
ret
@@ -2970,7 +2970,7 @@
BankswitchBack:: ; 35cd (0:35cd)
; returns from BankswitchHome
- ld a,[wcf08]
+ ld a,[wBankswitchHomeSavedROMBank]
ld [H_LOADEDROMBANK],a
ld [MBC1RomBank],a
ret
@@ -4656,7 +4656,7 @@
ld [H_DOWNARROWBLINKCNT2], a
ld hl, TextPredefs
call SetMapTextPointer
- ld hl, wcf11
+ ld hl, wTextPredefFlag
set 0, [hl]
call DisplayTextID
--- a/home/overworld.asm
+++ b/home/overworld.asm
@@ -106,7 +106,7 @@
bit 0,a
jr nz,.checkForOpponent
aCoord 8, 9
- ld [wcf0e],a
+ ld [wTilePlayerStandingOn],a ; unused?
call DisplayTextID ; display either the start menu or the NPC/sign text
ld a,[wcc47]
and a
@@ -1280,7 +1280,7 @@
CheckForTilePairCollisions2:: ; 0c44 (0:0c44)
aCoord 8, 9 ; tile the player is on
- ld [wcf0e],a
+ ld [wTilePlayerStandingOn],a
CheckForTilePairCollisions:: ; 0c4a (0:0c4a)
ld a,[wTileInFrontOfPlayer]
@@ -1298,7 +1298,7 @@
inc hl
jr .tilePairCollisionLoop
.tilesetMatches
- ld a,[wcf0e] ; tile the player is on
+ ld a,[wTilePlayerStandingOn] ; tile the player is on
ld b,a
ld a,[hl]
cp b
--- a/main.asm
+++ b/main.asm
@@ -808,7 +808,7 @@
cp a,ITEMLISTMENU
jp nz,DisplayListMenuIDLoop ; only rearrange item list menus
push hl
- ld hl,wList
+ ld hl,wListPointer
ld a,[hli]
ld h,[hl]
ld l,a
@@ -854,7 +854,7 @@
call DelayFrames
push hl
push de
- ld hl,wList
+ ld hl,wListPointer
ld a,[hli]
ld h,[hl]
ld l,a
@@ -916,7 +916,7 @@
jr .done
.combineItemSlots
ld [hl],a ; put the sum in the second item slot
- ld hl,wList
+ ld hl,wListPointer
ld a,[hli]
ld h,[hl]
ld l,a
@@ -2065,7 +2065,7 @@
ld [hJoyPressed], a
ld [hJoyReleased], a
ld [hJoyHeld], a
- ld [wcd6a], a
+ ld [wActionResultOrTookBattleTurn], a
ld [wd5a3], a
ld hl, wCardKeyDoorY
ld [hli], a
@@ -3810,7 +3810,7 @@
pop bc
pop de
pop hl
- ld a, [wcd72] ; sixth move byte = pp
+ ld a, [wcd6d + 5] ; PP is byte 5 of move data
.empty
inc de
ld [de], a
@@ -4167,12 +4167,12 @@
push bc
ld hl, Moves
- ld bc, $0006
+ ld bc, 6
call AddNTimes
ld de, wcd6d
ld a, BANK(Moves)
call FarCopyData
- ld a, [wcd72] ; default pp
+ ld a, [wcd6d + 5] ; PP is byte 5 of move data
pop bc
pop de
--- a/scripts/ceruleanhouse2.asm
+++ b/scripts/ceruleanhouse2.asm
@@ -20,11 +20,11 @@
call PrintText
ld hl, BadgeItemList
call LoadItemList
- ld hl, wStringBuffer2 + 11
+ ld hl, wItemList
ld a, l
- ld [wList], a
+ ld [wListPointer], a
ld a, h
- ld [wList + 1], a
+ ld [wListPointer + 1], a
xor a
ld [wPrintItemPrices], a
ld [wMenuItemToSwap], a
--- a/wram.asm
+++ b/wram.asm
@@ -852,20 +852,43 @@
ds 9
-wcd6a:: ds 1 ; used as the output of the outcome of an item (successful, unsuccessful, can't be used now, etc.)
+wActionResultOrTookBattleTurn:: ; cd6a
+; This has overlapping related uses.
+; When the player tries to use an item or use certain field moves, 0 is stored
+; when the attempt fails and 1 is stored when the attempt succeeds.
+; In addition, some items store 2 for certain types of failures, but this
+; cannot happen in battle.
+; In battle, a non-zero value indicates the player has taken their turn using
+; something other than a move (e.g. using an item or switching pokemon).
+; So, when an item is successfully used in battle, this value becomes non-zero
+; and the player is not allowed to make a move and the two uses are compatible.
+ ds 1
wJoyIgnore:: ; cd6b
; Set buttons are ignored.
ds 1
-; as well as the said function, these values are used as a buffer for PlaceString
-wcd6c:: ds 1 ; used in pokemon status screen and battle stuff
-wcd6d:: ds 4 ; used solely for PlaceString
-wcd71:: ds 1 ; used with pokemon status screen
-wcd72:: ds 5 ; used with restoring PP
-wcd77:: ds 1 ; used as an end terminator for GetMonName: (@ is written to this location)
-wcd78:: ds 9 ; also used with restoring PP
+wDownscaledMonSize:: ; cd6c
+; size of downscaled mon pic used in pokeball entering/exiting animation
+; $00 = 5×5
+; $01 = 3×3
+wNumMovesMinusOne:: ; cd6c
+; FormatMovesString stores the number of moves minus one here
+ ds 1
+
+wcd6d:: ds 4 ; buffer for various data
+
+wStatusScreenCurrentPP:: ; cd71
+; temp variable used to print a move's current PP on the status screen
+ ds 1
+
+ ds 6
+
+wNormalMaxPPList:: ; cd78
+; list of normal max PP (without PP up) values
+ ds 9
+
wSerialOtherGameboyRandomNumberListBlock:: ; cd81
; buffer for transferring the random number list generated by the other gameboy
@@ -895,16 +918,25 @@
ds 1
ds 7
-wcf05:: ds 1 ; used with enemy using healing moves
-wcf06:: ds 1 ; used with healing items as a storage value to store wWhichPokemon
+wAIItem:: ; cf05
+; the item that the AI used
+ ds 1
+wUsedItemOnWhichPokemon:: ; cf05
+ ds 1
+
wAnimSoundID:: ; cf07
; sound ID during battle animations
ds 1
-wcf08:: ds 1 ; used as a storage value for the bank to return to after a BankswitchHome (bankswitch in homebank)
-wcf09:: ds 1 ; used as a temp storage value for the bank to switch to
+wBankswitchHomeSavedROMBank:: ; cf08
+; used as a storage value for the bank to return to after a BankswitchHome (bankswitch in homebank)
+ ds 1
+wBankswitchHomeTemp:: ; cf09
+; used as a temp storage value for the bank to switch to
+ ds 1
+
wBoughtOrSoldItemInMart:: ; cf0a
; 0 = nothing bought or sold in pokemart
; 1 = bought or sold something in pokemart
@@ -922,7 +954,11 @@
ds 1
wcf0d:: ds 1 ; used with some overworld scripts (not exactly sure what it's used for)
-wcf0e:: ds 1 ; used with some overworld collison check
+
+wTilePlayerStandingOn:: ; cf0e
+; used in CheckForTilePairCollisions2 to store the tile the player is on
+ ds 1
+
wcf0f:: ds 1 ; used with moving overworld sprites
wNPCMovementScriptFunctionNum:: ; cf10
@@ -930,7 +966,10 @@
; wNPCMovementScriptPointerTableNum
ds 1
-wcf11:: ds 1 ; used as a flag if the game needs to switch to the bank which the map is in when displaying a text id (flag is set during predefs)
+wTextPredefFlag:: ; cf11
+; bit 0: set when printing a text predef so that DisplayTextID doesn't switch
+; to the current map's bank
+ ds 1
wPredefParentBank:: ; cf12
ds 1
@@ -972,15 +1011,15 @@
ds 17
wGymCityName:: ; cf5f
-wStringBuffer1:: ; cf5f
- ds 16 + 1
+ ds 17
+
wGymLeaderName:: ; cf70
-wStringBuffer2:: ; cf70
- ds 16 + 1
-wStringBuffer3:: ; cf81
- ds 9 + 1
+ ds 11
-wList:: ; cf8b
+wItemList:: ; cf7b
+ ds 16
+
+wListPointer:: ; cf8b
ds 2
wcf8d:: ds 1 ; used in GetMonName