aboutsummaryrefslogtreecommitdiffstats
path: root/engine
diff options
context:
space:
mode:
authordannye <33dannye@gmail.com>2024-09-25 00:45:00 -0500
committerdannye <33dannye@gmail.com>2024-09-25 00:45:00 -0500
commita02a98ee7ada1a658e28698484058be2796dc0df (patch)
tree945986054565bd8b5212fc755415096050d1d3a8 /engine
parentUse long option flags for rgbgfx, same as tools/gfx (diff)
parentUse `const_skip` (diff)
downloadpokeyellow-a02a98ee7ada1a658e28698484058be2796dc0df.tar.gz
pokeyellow-a02a98ee7ada1a658e28698484058be2796dc0df.tar.xz
pokeyellow-a02a98ee7ada1a658e28698484058be2796dc0df.zip
Merge branch 'master' of https://github.com/pret/pokered
Diffstat (limited to 'engine')
-rw-r--r--engine/battle/animations.asm32
-rw-r--r--engine/battle/battle_transitions.asm24
-rw-r--r--engine/battle/common_text.asm2
-rw-r--r--engine/battle/core.asm152
-rw-r--r--engine/battle/effects.asm12
-rw-r--r--engine/battle/end_of_battle.asm4
-rw-r--r--engine/battle/experience.asm26
-rw-r--r--engine/battle/get_trainer_name.asm8
-rw-r--r--engine/battle/init_battle.asm14
-rw-r--r--engine/battle/misc.asm14
-rw-r--r--engine/battle/move_effects/pay_day.asm6
-rw-r--r--engine/battle/move_effects/transform.asm2
-rw-r--r--engine/battle/print_type.asm2
-rw-r--r--engine/battle/read_trainer_party.asm12
-rw-r--r--engine/battle/safari_zone.asm2
-rw-r--r--engine/battle/save_trainer_name.asm2
-rw-r--r--engine/battle/trainer_ai.asm10
-rw-r--r--engine/battle/wild_encounters.asm12
-rw-r--r--engine/debug/debug_menu.asm136
-rw-r--r--engine/debug/debug_party.asm6
-rw-r--r--engine/events/black_out.asm12
-rw-r--r--engine/events/card_key.asm6
-rw-r--r--engine/events/cinnabar_lab.asm16
-rw-r--r--engine/events/diploma.asm8
-rw-r--r--engine/events/display_pokedex.asm10
-rw-r--r--engine/events/elevator.asm8
-rw-r--r--engine/events/give_pokemon.asm10
-rw-r--r--engine/events/heal_party.asm6
-rw-r--r--engine/events/hidden_items.asm2
-rw-r--r--engine/events/hidden_objects/bills_house_pc.asm8
-rw-r--r--engine/events/hidden_objects/cinnabar_gym_quiz.asm2
-rw-r--r--engine/events/hidden_objects/fanclub_pictures.asm4
-rw-r--r--engine/events/hidden_objects/indigo_plateau_statues.asm2
-rw-r--r--engine/events/hidden_objects/museum_fossils.asm4
-rw-r--r--engine/events/hidden_objects/museum_fossils2.asm5
-rw-r--r--engine/events/hidden_objects/pokecenter_pc.asm2
-rw-r--r--engine/events/hidden_objects/route_15_binoculars.asm2
-rw-r--r--engine/events/hidden_objects/safari_game.asm2
-rw-r--r--engine/events/hidden_objects/school_blackboard.asm24
-rw-r--r--engine/events/hidden_objects/town_map.asm8
-rw-r--r--engine/events/hidden_objects/vermilion_gym_trash.asm2
-rw-r--r--engine/events/in_game_trades.asm14
-rw-r--r--engine/events/pick_up_item.asm4
-rw-r--r--engine/events/poison.asm19
-rw-r--r--engine/events/pokecenter.asm8
-rw-r--r--engine/events/pokemart.asm6
-rw-r--r--engine/events/prize_menu.asm55
-rw-r--r--engine/events/vending_machine.asm8
-rw-r--r--engine/gfx/bg_map_attributes.asm4
-rw-r--r--engine/gfx/hp_bar.asm2
-rw-r--r--engine/gfx/mon_icons.asm10
-rw-r--r--engine/gfx/palettes.asm16
-rw-r--r--engine/gfx/screen_effects.asm2
-rw-r--r--engine/gfx/sprite_oam.asm6
-rw-r--r--engine/items/inventory.asm6
-rw-r--r--engine/items/item_effects.asm201
-rw-r--r--engine/items/tm_prices.asm4
-rw-r--r--engine/items/tms.asm12
-rw-r--r--engine/items/town_map.asm41
-rw-r--r--engine/joypad.asm4
-rw-r--r--engine/link/cable_club.asm32
-rw-r--r--engine/link/cable_club_npc.asm4
-rw-r--r--engine/menus/display_text_id_init.asm12
-rw-r--r--engine/menus/draw_start_menu.asm12
-rw-r--r--engine/menus/league_pc.asm14
-rw-r--r--engine/menus/link_menu.asm64
-rw-r--r--engine/menus/main_menu.asm40
-rw-r--r--engine/menus/naming_screen.asm18
-rw-r--r--engine/menus/options.asm12
-rw-r--r--engine/menus/party_menu.asm16
-rw-r--r--engine/menus/pc.asm20
-rw-r--r--engine/menus/players_pc.asm28
-rw-r--r--engine/menus/pokedex.asm74
-rw-r--r--engine/menus/save.asm23
-rw-r--r--engine/menus/start_sub_menus.asm58
-rw-r--r--engine/menus/text_box.asm44
-rw-r--r--engine/menus/unused_input.asm2
-rw-r--r--engine/movie/credits.asm8
-rw-r--r--engine/movie/evolution.asm16
-rw-r--r--engine/movie/hall_of_fame.asm14
-rw-r--r--engine/movie/intro.asm4
-rw-r--r--engine/movie/oak_speech/init_player_data.asm2
-rw-r--r--engine/movie/oak_speech/oak_speech.asm20
-rw-r--r--engine/movie/oak_speech/oak_speech2.asm4
-rw-r--r--engine/movie/title.asm6
-rw-r--r--engine/movie/trade.asm18
-rw-r--r--engine/movie/trade2.asm10
-rw-r--r--engine/overworld/auto_movement.asm80
-rw-r--r--engine/overworld/clear_variables.asm2
-rw-r--r--engine/overworld/cut.asm8
-rw-r--r--engine/overworld/dungeon_warps.asm12
-rw-r--r--engine/overworld/emotion_bubbles.asm4
-rw-r--r--engine/overworld/field_move_messages.asm26
-rw-r--r--engine/overworld/ledges.asm8
-rw-r--r--engine/overworld/map_sprites.asm6
-rw-r--r--engine/overworld/movement.asm36
-rw-r--r--engine/overworld/pathfinding.asm26
-rw-r--r--engine/overworld/player_animations.asm30
-rw-r--r--engine/overworld/player_state.asm47
-rw-r--r--engine/overworld/push_boulder.asm46
-rw-r--r--engine/overworld/special_warps.asm32
-rw-r--r--engine/overworld/specific_script_flags.asm4
-rw-r--r--engine/overworld/spinners.asm2
-rw-r--r--engine/overworld/trainer_sight.asm4
-rw-r--r--engine/pikachu/pikachu_emotions.asm14
-rw-r--r--engine/pikachu/pikachu_follow.asm32
-rw-r--r--engine/pikachu/pikachu_movement.asm6
-rw-r--r--engine/pokemon/add_mon.asm40
-rw-r--r--engine/pokemon/bills_pc.asm26
-rw-r--r--engine/pokemon/evos_moves.asm80
-rw-r--r--engine/pokemon/experience.asm2
-rw-r--r--engine/pokemon/learn_move.asm12
-rw-r--r--engine/pokemon/load_mon_data.asm10
-rw-r--r--engine/pokemon/set_types.asm6
-rw-r--r--engine/pokemon/status_screen.asm26
-rw-r--r--engine/printer/printer.asm2
-rw-r--r--engine/printer/printer2.asm14
-rw-r--r--engine/slots/slot_machine.asm35
118 files changed, 1159 insertions, 1137 deletions
diff --git a/engine/battle/animations.asm b/engine/battle/animations.asm
index da758332..45fbc1d5 100644
--- a/engine/battle/animations.asm
+++ b/engine/battle/animations.asm
@@ -138,13 +138,13 @@ DrawFrameBlock:
ld [de], a ; store tile ID
inc de
ld a, [hli]
- bit 5, a ; is horizontal flip enabled?
+ bit OAM_X_FLIP, a
jr nz, .disableHorizontalFlip
.enableHorizontalFlip
- set 5, a
+ set OAM_X_FLIP, a
jr .storeFlags2
.disableHorizontalFlip
- res 5, a
+ res OAM_X_FLIP, a
.storeFlags2
ld b, a
ld a, [wdef5]
@@ -452,7 +452,7 @@ MoveAnimation:
xor a
vc_hook Stop_reducing_move_anim_flashing_Haze_Hyper_Beam
ld [wSubAnimSubEntryAddr], a
- ld [wUnusedD09B], a
+ ld [wUnusedMoveAnimByte], a
ld [wSubAnimTransform], a
dec a ; NO_MOVE - 1
ld [wAnimSoundID], a
@@ -722,7 +722,7 @@ DoSpecialEffectByAnimationId:
INCLUDE "data/battle_anims/special_effects.asm"
DoBallTossSpecialEffects:
- ld a, [wcf91]
+ ld a, [wCurItem]
cp ULTRA_BALL + 1 ; is it a Master Ball or Ultra Ball?
jr nc, .skipFlashingEffect
.flashingEffect ; do a flashing effect if it's Master Ball or Ultra Ball
@@ -741,7 +741,7 @@ DoBallTossSpecialEffects:
ld a, [wIsInBattle]
cp 2 ; is it a trainer battle?
jr z, .isTrainerBattle
- ld a, [wd11e]
+ ld a, [wPokeBallAnimData]
cp $10 ; is the enemy pokemon the Ghost Marowak?
ret nz
; if the enemy pokemon is the Ghost Marowak, make it dodge during the last 3 frames
@@ -1169,12 +1169,12 @@ AnimationWaterDropletsEverywhere:
ld a, 16
ld [wBaseCoordY], a
ld a, 0
- ld [wUnusedD08A], a
+ ld [wUnusedWaterDropletsByte], a
call _AnimationWaterDroplets
ld a, 24
ld [wBaseCoordY], a
ld a, 32
- ld [wUnusedD08A], a
+ ld [wUnusedWaterDropletsByte], a
call _AnimationWaterDroplets
dec d
jr nz, .loop
@@ -2109,8 +2109,8 @@ HideSubstituteShowMonAnim:
and a
jr nz, .monIsMinimized
ld a, [wBattleMonSpecies]
- ld [wcf91], a
- ld [wd0b5], a
+ ld [wCurPartySpecies], a
+ ld [wCurSpecies], a
call GetMonHeader
predef LoadMonBackPic
ret
@@ -2119,8 +2119,8 @@ HideSubstituteShowMonAnim:
and a
jr nz, .monIsMinimized
ld a, [wEnemyMonSpecies]
- ld [wcf91], a
- ld [wd0b5], a
+ ld [wCurPartySpecies], a
+ ld [wCurSpecies], a
call GetMonHeader
ld de, vFrontPic
jp LoadMonFrontSprite
@@ -2174,8 +2174,8 @@ ChangeMonPic:
and a
jr z, .playerTurn
ld a, [wChangeMonPicEnemyTurnSpecies]
- ld [wcf91], a
- ld [wd0b5], a
+ ld [wCurPartySpecies], a
+ ld [wCurSpecies], a
xor a
ld [wSpriteFlipped], a
call GetMonHeader
@@ -2187,7 +2187,7 @@ ChangeMonPic:
push af
ld a, [wChangeMonPicPlayerTurnSpecies]
ld [wBattleMonSpecies2], a
- ld [wd0b5], a
+ ld [wCurSpecies], a
call GetMonHeader
predef LoadMonBackPic
xor a ; TILEMAP_MON_PIC
@@ -2795,7 +2795,7 @@ TossBallAnimation:
ld hl, .PokeBallAnimations
; choose which toss animation to use
- ld a, [wcf91]
+ ld a, [wCurItem]
cp POKE_BALL
ld b, TOSS_ANIM
jr z, .done
diff --git a/engine/battle/battle_transitions.asm b/engine/battle/battle_transitions.asm
index 77f2ba89..69cc1203 100644
--- a/engine/battle/battle_transitions.asm
+++ b/engine/battle/battle_transitions.asm
@@ -11,7 +11,7 @@ BattleTransition:
; Determine which OAM block is being used by the enemy trainer sprite (if there
; is one).
ld hl, wSpritePlayerStateData1ImageIndex
- ldh a, [hSpriteIndexOrTextID] ; enemy trainer sprite index (0 if wild battle)
+ ldh a, [hSpriteIndex] ; enemy trainer sprite index (0 if wild battle)
ld c, a
ld b, 0
ld de, $10
@@ -64,6 +64,12 @@ BattleTransition:
ld l, a
jp hl
+ const_def
+ const BIT_TRAINER_BATTLE_TRANSITION ; 0
+ const BIT_STRONGER_BATTLE_TRANSITION ; 1
+ const BIT_DUNGEON_BATTLE_TRANSITION ; 2
+DEF NUM_BATTLE_TRANSITION_BITS EQU const_value
+
; the three GetBattleTransitionID functions set the first
; three bits of c, which determines what transition animation
; to play at the beginning of a battle
@@ -71,6 +77,7 @@ BattleTransition:
; bit 1: set if enemy is at least 3 levels higher than player
; bit 2: set if dungeon map
BattleTransitions:
+ table_width 2, BattleTransitions
dw BattleTransition_DoubleCircle ; %000
dw BattleTransition_Spiral ; %001
dw BattleTransition_Circle ; %010
@@ -79,15 +86,16 @@ BattleTransitions:
dw BattleTransition_Shrink ; %101
dw BattleTransition_VerticalStripes ; %110
dw BattleTransition_Split ; %111
+ assert_table_length 1 << NUM_BATTLE_TRANSITION_BITS
GetBattleTransitionID_WildOrTrainer:
ld a, [wCurOpponent]
cp OPP_ID_OFFSET
jr nc, .trainer
- res 0, c
+ res BIT_TRAINER_BATTLE_TRANSITION, c
ret
.trainer
- set 0, c
+ set BIT_TRAINER_BATTLE_TRANSITION, c
ret
GetBattleTransitionID_CompareLevels:
@@ -105,15 +113,15 @@ GetBattleTransitionID_CompareLevels:
ld a, [hl]
add $3
ld e, a
- ld a, [wCurEnemyLVL]
+ ld a, [wCurEnemyLevel]
sub e
jr nc, .highLevelEnemy
- res 1, c
+ res BIT_STRONGER_BATTLE_TRANSITION, c
ld a, 1
ld [wBattleTransitionSpiralDirection], a
ret
.highLevelEnemy
- set 1, c
+ set BIT_STRONGER_BATTLE_TRANSITION, c
xor a
ld [wBattleTransitionSpiralDirection], a
ret
@@ -129,7 +137,7 @@ GetBattleTransitionID_IsDungeonMap:
cp e
jr nz, .loop1
.match
- set 2, c
+ set BIT_DUNGEON_BATTLE_TRANSITION, c
ret
.noMatch1
ld hl, DungeonMaps2
@@ -145,7 +153,7 @@ GetBattleTransitionID_IsDungeonMap:
cp d
jr nc, .match
.noMatch2
- res 2, c
+ res BIT_DUNGEON_BATTLE_TRANSITION, c
ret
INCLUDE "data/maps/dungeon_maps.asm"
diff --git a/engine/battle/common_text.asm b/engine/battle/common_text.asm
index 95c06bf5..a074fff7 100644
--- a/engine/battle/common_text.asm
+++ b/engine/battle/common_text.asm
@@ -48,7 +48,7 @@ PrintBeginningBattleText:
ld b, SILPH_SCOPE
call IsItemInBag
ld a, [wEnemyMonSpecies2]
- ld [wcf91], a
+ ld [wCurPartySpecies], a
cp RESTLESS_SOUL
jr z, .isMarowak
ld a, b
diff --git a/engine/battle/core.asm b/engine/battle/core.asm
index b0f4f13f..926910fc 100644
--- a/engine/battle/core.asm
+++ b/engine/battle/core.asm
@@ -238,7 +238,7 @@ StartBattle:
ld b, 0
add hl, bc
ld a, [hl] ; species
- ld [wcf91], a
+ ld [wCurPartySpecies], a
ld [wBattleMonSpecies2], a
call LoadScreenTilesFromBuffer1
hlcoord 1, 5
@@ -426,7 +426,7 @@ MainInBattleLoop:
jr c, .AIActionUsedEnemyFirst
call ExecuteEnemyMove
ld a, [wEscapedFromBattle]
- and a ; was Teleport, Road, or Whirlwind used to escape from battle?
+ and a ; was Teleport, Roar, or Whirlwind used to escape from battle?
ret nz ; if so, return
ld a, b
and a
@@ -437,7 +437,7 @@ MainInBattleLoop:
call DrawHUDsAndHPBars
call ExecutePlayerMove
ld a, [wEscapedFromBattle]
- and a ; was Teleport, Road, or Whirlwind used to escape from battle?
+ and a ; was Teleport, Roar, or Whirlwind used to escape from battle?
ret nz ; if so, return
ld a, b
and a
@@ -450,7 +450,7 @@ MainInBattleLoop:
.playerMovesFirst
call ExecutePlayerMove
ld a, [wEscapedFromBattle]
- and a ; was Teleport, Road, or Whirlwind used to escape from battle?
+ and a ; was Teleport, Roar, or Whirlwind used to escape from battle?
ret nz ; if so, return
ld a, b
and a
@@ -464,7 +464,7 @@ MainInBattleLoop:
jr c, .AIActionUsedPlayerFirst
call ExecuteEnemyMove
ld a, [wEscapedFromBattle]
- and a ; was Teleport, Road, or Whirlwind used to escape from battle?
+ and a ; was Teleport, Roar, or Whirlwind used to escape from battle?
ret nz ; if so, return
ld a, b
and a
@@ -853,7 +853,7 @@ FaintEnemyPokemon:
; the player has exp all
; now, set the gain exp flag for every party member
; half of the total stat exp and normal exp will divided evenly amongst every party member
- ld a, $1
+ ld a, TRUE
ld [wBoostExpByExpAll], a
ld a, [wPartyCount]
ld b, 0
@@ -938,8 +938,8 @@ TrainerBattleVictory:
cp RIVAL3 ; final battle against rival
jr nz, .notrival
ld b, MUSIC_DEFEATED_GYM_LEADER
- ld hl, wFlags_D733
- set 1, [hl]
+ ld hl, wStatusFlags7
+ set BIT_NO_MAP_MUSIC, [hl]
.notrival
ld a, [wLinkState]
cp LINK_STATE_BATTLING
@@ -1019,12 +1019,12 @@ RemoveFaintedPlayerMon:
ld b, FLAG_RESET
predef FlagActionPredef ; clear gain exp flag for fainted mon
ld hl, wEnemyBattleStatus1
- res 2, [hl] ; reset "attacking multiple times" flag
+ res ATTACKING_MULTIPLE_TIMES, [hl]
ld a, [wLowHealthAlarm]
- bit 7, a ; skip sound flag (red bar (?))
+ bit BIT_LOW_HEALTH_ALARM, a
jr z, .skipWaitForSound
- ld a, $ff
- ld [wLowHealthAlarm], a ;disable low health alarm
+ ld a, DISABLE_LOW_HEALTH_ALARM
+ ld [wLowHealthAlarm], a
call WaitForSoundToFinish
xor a
.skipWaitForSound
@@ -1196,9 +1196,9 @@ HandlePlayerBlackOut:
ld hl, LinkBattleLostText
.noLinkBattle
call PrintText
- ld a, [wd732]
- res 5, a
- ld [wd732], a
+ ld a, [wStatusFlags6]
+ res BIT_ALWAYS_ON_BIKE, a
+ ld [wStatusFlags6], a
call ClearScreen
scf
ret
@@ -1218,10 +1218,10 @@ LinkBattleLostText:
; slides pic of fainted mon downwards until it disappears
; bug: when this is called, [hAutoBGTransferEnabled] is non-zero, so there is screen tearing
SlideDownFaintedMonPic:
- ld a, [wd730]
+ ld a, [wStatusFlags5]
push af
- set 6, a
- ld [wd730], a
+ set BIT_NO_TEXT_DELAY, a
+ ld [wStatusFlags5], a
ld b, 7 ; number of times to slide
.slideStepLoop ; each iteration, the mon is slid down one row
push bc
@@ -1260,7 +1260,7 @@ SlideDownFaintedMonPic:
dec b
jr nz, .slideStepLoop
pop af
- ld [wd730], a
+ ld [wStatusFlags5], a
ret
SevenSpacesText:
@@ -1344,7 +1344,7 @@ EnemySendOutFirstMon:
dec a
ld [wAICount], a
ld hl, wPlayerBattleStatus1
- res 5, [hl]
+ res USING_TRAPPING_MOVE, [hl]
hlcoord 18, 0
ld a, 8
call SlideTrainerPicOffScreen
@@ -1383,7 +1383,7 @@ EnemySendOutFirstMon:
ld bc, wEnemyMon2 - wEnemyMon1
call AddNTimes
ld a, [hl]
- ld [wCurEnemyLVL], a
+ ld [wCurEnemyLevel], a
ld a, [wWhichPokemon]
inc a
ld hl, wEnemyPartyCount
@@ -1392,7 +1392,7 @@ EnemySendOutFirstMon:
add hl, bc
ld a, [hl]
ld [wEnemyMonSpecies2], a
- ld [wcf91], a
+ ld [wCurPartySpecies], a
call LoadEnemyMonData
ld hl, wEnemyMonHP
ld a, [hli]
@@ -1459,8 +1459,8 @@ EnemySendOutFirstMon:
ld hl, TrainerSentOutText
call PrintText
ld a, [wEnemyMonSpecies2]
- ld [wcf91], a
- ld [wd0b5], a
+ ld [wCurPartySpecies], a
+ ld [wCurSpecies], a
call GetMonHeader
ld de, vFrontPic
call LoadMonFrontSprite
@@ -1683,7 +1683,7 @@ LoadBattleMonFromParty:
ld bc, wBattleMonPP - wBattleMonLevel
call CopyData
ld a, [wBattleMonSpecies2]
- ld [wd0b5], a
+ ld [wCurSpecies], a
call GetMonHeader
ld hl, wPartyMonNicks
ld a, [wPlayerMonNumber]
@@ -1727,7 +1727,7 @@ LoadEnemyMonFromParty:
ld bc, wEnemyMonPP - wEnemyMonLevel
call CopyData
ld a, [wEnemyMonSpecies]
- ld [wd0b5], a
+ ld [wCurSpecies], a
call GetMonHeader
ld hl, wEnemyMonNicks
ld a, [wWhichPokemon]
@@ -1817,7 +1817,7 @@ SendOutMon:
callfar PlayPikachuSoundClip
jr .done
.playRegularCry
- ld a, [wcf91]
+ ld a, [wCurPartySpecies]
call PlayCry
.done
call PrintEmptyString
@@ -1916,7 +1916,7 @@ DrawPlayerHUDAndHPBar:
call PrintLevel
.doNotPrintLevel
ld a, [wLoadedMonSpecies]
- ld [wcf91], a
+ ld [wCurPartySpecies], a
hlcoord 10, 9
predef DrawHP
ld a, $1
@@ -1935,15 +1935,15 @@ DrawPlayerHUDAndHPBar:
jr z, .setLowHealthAlarm
.fainted
ld hl, wLowHealthAlarm
- bit 7, [hl] ;low health alarm enabled?
- ld [hl], $0
+ bit BIT_LOW_HEALTH_ALARM, [hl]
+ ld [hl], 0
ret z
xor a
ld [wChannelSoundIDs + CHAN5], a
ret
.setLowHealthAlarm
ld hl, wLowHealthAlarm
- set 7, [hl] ;enable low health alarm
+ set BIT_LOW_HEALTH_ALARM, [hl]
ret
DrawEnemyHUDAndHPBar:
@@ -2208,7 +2208,7 @@ DisplayBattleMenu::
ld a, D_LEFT | A_BUTTON
ld [hli], a ; wMenuWatchedKeys
call HandleMenuInput
- bit 5, a ; check if left was pressed
+ bit BIT_D_LEFT, a
jr nz, .leftColumn ; if left was pressed, jump
ld a, [wCurrentMenuItem]
add $2 ; if we're in the right column, the actual id is +2
@@ -2249,7 +2249,7 @@ DisplayBattleMenu::
jp LoadScreenTilesFromBuffer1 ; restore saved screen and return
.throwSafariBallWasSelected
ld a, SAFARI_BALL
- ld [wcf91], a
+ ld [wCurItem], a
jp UseBagItem
.handleUnusedBattle
ld a, [wCurrentMenuItem]
@@ -2285,7 +2285,7 @@ DisplayBattleMenu::
; bait was selected
ld a, SAFARI_BAIT
- ld [wcf91], a
+ ld [wCurItem], a
jr UseBagItem
BagWasSelected:
@@ -2341,8 +2341,8 @@ DisplayBagMenu:
UseBagItem:
; either use an item from the bag or use a safari zone item
- ld a, [wcf91]
- ld [wd11e], a
+ ld a, [wCurItem]
+ ld [wNamedObjectIndex], a
call GetItemName
call CopyToStringBuffer
xor a
@@ -2410,7 +2410,7 @@ PartyMenuOrRockOrRun:
jr nz, .partyMenuWasSelected
; safari battle
ld a, SAFARI_ROCK
- ld [wcf91], a
+ ld [wCurItem], a
jp UseBagItem
.partyMenuWasSelected
call LoadScreenTilesFromBuffer1
@@ -2486,8 +2486,8 @@ PartyMenuOrRockOrRun:
jr nz, .doEnemyMonAnimation
; enemy mon is not minimised
ld a, [wEnemyMonSpecies]
- ld [wcf91], a
- ld [wd0b5], a
+ ld [wCurPartySpecies], a
+ ld [wCurSpecies], a
call GetMonHeader
ld de, vFrontPic
call LoadMonFrontSprite
@@ -2580,11 +2580,11 @@ MoveSelectionMenu:
.writemoves
ld de, wMovesString
ldh a, [hUILayoutFlags]
- set 2, a
+ set BIT_SINGLE_SPACED_LINES, a
ldh [hUILayoutFlags], a
call PlaceString
ldh a, [hUILayoutFlags]
- res 2, a
+ res BIT_SINGLE_SPACED_LINES, a
ldh [hUILayoutFlags], a
ret
@@ -2660,7 +2660,7 @@ MoveSelectionMenu:
cp LINK_STATE_BATTLING
jr z, .matchedkeyspicked
; Disable left, right, and START buttons in regular battles.
- ld a, [wFlags_D733]
+ ld a, [wStatusFlags7]
bit BIT_TEST_BATTLE, a
ld b, D_UP | D_DOWN | A_BUTTON | B_BUTTON | SELECT
jr z, .matchedkeyspicked
@@ -2689,7 +2689,7 @@ SelectMenuItem:
jr .select
.battleselect
; Hide move swap cursor in TestBattle.
- ld a, [wFlags_D733]
+ ld a, [wStatusFlags7]
bit BIT_TEST_BATTLE, a
; This causes PrintMenuItem to not run in TestBattle.
; MoveSelectionMenu still draws part of its window, an issue
@@ -2706,10 +2706,10 @@ SelectMenuItem:
ld [hl], "▷"
.select
ld hl, hUILayoutFlags
- set 1, [hl]
+ set BIT_DOUBLE_SPACED_MENU, [hl]
call HandleMenuInput
ld hl, hUILayoutFlags
- res 1, [hl]
+ res BIT_DOUBLE_SPACED_MENU, [hl]
bit BIT_D_UP, a
jp nz, SelectMenuItem_CursorUp
bit BIT_D_DOWN, a
@@ -2762,7 +2762,7 @@ ENDC
cp c
jr z, .disabled
ld a, [wPlayerBattleStatus3]
- bit 3, a ; transformed
+ bit TRANSFORMED, a
jr nz, .transformedMoveSelected
.transformedMoveSelected ; pointless
; Allow moves copied by Transform to be used.
@@ -2863,7 +2863,7 @@ Func_3d536:
ret z
cp STRUGGLE
ret nc
- ld [wd11e], a
+ ld [wNamedObjectIndex], a
call GetMoveName
hlcoord 13, 17
jp PlaceString
@@ -2920,7 +2920,7 @@ NoMovesLeftText:
SwapMovesInMenu:
IF DEF(_DEBUG)
- ld a, [wFlags_D733]
+ ld a, [wStatusFlags7]
bit BIT_TEST_BATTLE, a
jp nz, Func_3d4f5
ENDC
@@ -3047,7 +3047,7 @@ PrintMenuItem:
add hl, bc
ld a, [hl]
and $3f
- ld [wcd6d], a
+ ld [wBattleMenuCurrentPP], a
; print TYPE/<type> and <curPP>/<maxPP>
hlcoord 1, 9
ld de, TypeText
@@ -3057,7 +3057,7 @@ PrintMenuItem:
hlcoord 5, 9
ld [hl], "/"
hlcoord 5, 11
- ld de, wcd6d
+ ld de, wBattleMenuCurrentPP
lb bc, 1, 2
call PrintNumber
hlcoord 8, 11
@@ -3733,7 +3733,7 @@ CheckPlayerStatusConditions:
bit USING_RAGE, a ; is mon using rage?
jp z, .checkPlayerStatusConditionsDone ; if we made it this far, mon can move normally this turn
ld a, RAGE
- ld [wd11e], a
+ ld [wNamedObjectIndex], a
call GetMoveName
call CopyToStringBuffer
xor a
@@ -3823,7 +3823,7 @@ PrintMoveIsDisabledText:
res CHARGING_UP, a ; end the pokemon's
ld [de], a
ld a, [hl]
- ld [wd11e], a
+ ld [wNamedObjectIndex], a
call GetMoveName
ld hl, MoveIsDisabledText
jp PrintText
@@ -3897,13 +3897,13 @@ MonName1Text:
ld hl, wEnemyUsedMove
.playerTurn
ld [hl], a
- ld [wd11e], a
+ ld [wMoveGrammar], a
call DetermineExclamationPointTextNum
ld a, [wMonIsDisobedient]
and a
ld hl, Used2Text
ret nz
- ld a, [wd11e]
+ ld a, [wMoveGrammar]
cp 3
ld hl, Used2Text
ret c
@@ -3940,7 +3940,7 @@ _PrintMoveName:
text_far _MoveNameText
text_asm
ld hl, ExclamationPointPointerTable
- ld a, [wd11e] ; exclamation point num
+ ld a, [wMoveGrammar]
add a
push bc
ld b, $0
@@ -3988,7 +3988,7 @@ ExclamationPoint5Text:
; but the functionality didn't get removed
DetermineExclamationPointTextNum:
push bc
- ld a, [wd11e] ; move ID
+ ld a, [wMoveGrammar] ; move ID
ld c, a
ld b, $0
ld hl, ExclamationPointMoveSets
@@ -4004,7 +4004,7 @@ DetermineExclamationPointTextNum:
jr .loop
.done
ld a, b
- ld [wd11e], a ; exclamation point num
+ ld [wMoveGrammar], a
pop bc
ret
@@ -4019,7 +4019,7 @@ PrintMoveFailureText:
.playersTurn
ld hl, DoesntAffectMonText
ld a, [wDamageMultipliers]
- and $7f
+ and EFFECTIVENESS_MASK
jr z, .gotTextToPrint
ld hl, AttackMissedText
ld a, [wCriticalHitOrOHKO]
@@ -4573,9 +4573,9 @@ GetEnemyMonStat:
ret
.notLinkBattle
ld a, [wEnemyMonLevel]
- ld [wCurEnemyLVL], a
+ ld [wCurEnemyLevel], a
ld a, [wEnemyMonSpecies]
- ld [wd0b5], a
+ ld [wCurSpecies], a
call GetMonHeader
ld hl, wEnemyMonDVs
ld de, wLoadedMonSpeedExp
@@ -4779,7 +4779,7 @@ CriticalHitTest:
jr nz, .handleEnemy
ld a, [wBattleMonSpecies]
.handleEnemy
- ld [wd0b5], a
+ ld [wCurSpecies], a
call GetMonHeader
ld a, [wMonHBaseSpeed]
ld b, a
@@ -5289,7 +5289,7 @@ MirrorMoveFailedText:
; function used to reload move data for moves like Mirror Move and Metronome
ReloadMoveData:
- ld [wd11e], a
+ ld [wNamedObjectIndex], a
dec a
ld hl, Moves
ld bc, MOVE_LENGTH
@@ -5417,7 +5417,7 @@ AdjustDamageForMoveType:
ld a, l
ld [wDamage + 1], a
ld hl, wDamageMultipliers
- set 7, [hl]
+ set BIT_STAB_DAMAGE, [hl]
.skipSameTypeAttackBonus
ld a, [wMoveType]
ld b, a
@@ -5440,7 +5440,7 @@ AdjustDamageForMoveType:
push bc
inc hl
ld a, [wDamageMultipliers]
- and $80
+ and 1 << BIT_STAB_DAMAGE
ld b, a
ld a, [hl] ; a = damage multiplier
ldh [hMultiplier], a
@@ -5805,13 +5805,13 @@ EnemyCanExecuteChargingMove:
res CHARGING_UP, [hl] ; no longer charging up for attack
res INVULNERABLE, [hl] ; no longer invulnerable to typical attacks
ld a, [wEnemyMoveNum]
- ld [wd0b5], a
+ ld [wNameListIndex], a
ld a, BANK(MoveNames)
ld [wPredefBank], a
ld a, MOVE_NAME
ld [wNameListType], a
call GetName
- ld de, wcd6d
+ ld de, wNameBuffer
call CopyToStringBuffer
EnemyCanExecuteMove:
xor a
@@ -6247,7 +6247,7 @@ CheckEnemyStatusConditions:
bit USING_RAGE, a ; is mon using rage?
jp z, .checkEnemyStatusConditionsDone ; if we made it this far, mon can move normally this turn
ld a, RAGE
- ld [wd11e], a
+ ld [wNamedObjectIndex], a
call GetMoveName
call CopyToStringBuffer
xor a
@@ -6272,13 +6272,13 @@ GetCurrentMove:
.player
ld de, wPlayerMoveNum
; Apply InitBattleVariables to TestBattle.
- ld a, [wFlags_D733]
+ ld a, [wStatusFlags7]
bit BIT_TEST_BATTLE, a
ld a, [wTestBattlePlayerSelectedMove]
jr nz, .selected
ld a, [wPlayerSelectedMove]
.selected
- ld [wd0b5], a
+ ld [wNameListIndex], a
dec a
ld hl, Moves
ld bc, MOVE_LENGTH
@@ -6291,7 +6291,7 @@ GetCurrentMove:
ld a, MOVE_NAME
ld [wNameListType], a
call GetName
- ld de, wcd6d
+ ld de, wNameBuffer
jp CopyToStringBuffer
LoadEnemyMonData:
@@ -6300,7 +6300,7 @@ LoadEnemyMonData:
jp z, LoadEnemyMonFromParty
ld a, [wEnemyMonSpecies2]
ld [wEnemyMonSpecies], a
- ld [wd0b5], a
+ ld [wCurSpecies], a
call GetMonHeader
ld a, [wEnemyBattleStatus3]
bit TRANSFORMED, a ; is enemy mon transformed?
@@ -6323,7 +6323,7 @@ LoadEnemyMonData:
ld [hli], a
ld [hl], b
ld de, wEnemyMonLevel
- ld a, [wCurEnemyLVL]
+ ld a, [wCurEnemyLevel]
ld [de], a
inc de
ld b, $0
@@ -6425,16 +6425,16 @@ LoadEnemyMonData:
ld a, [hl] ; base exp
ld [de], a
ld a, [wEnemyMonSpecies2]
- ld [wd11e], a
+ ld [wNamedObjectIndex], a
call GetMonName
- ld hl, wcd6d
+ ld hl, wNameBuffer
ld de, wEnemyMonNick
ld bc, NAME_LENGTH
call CopyData
ld a, [wEnemyMonSpecies2]
- ld [wd11e], a
+ ld [wPokedexNum], a
predef IndexToPokedex
- ld a, [wd11e]
+ ld a, [wPokedexNum]
dec a
ld c, a
ld b, FLAG_SET
diff --git a/engine/battle/effects.asm b/engine/battle/effects.asm
index 51dc1d37..1feebb21 100644
--- a/engine/battle/effects.asm
+++ b/engine/battle/effects.asm
@@ -204,7 +204,7 @@ ExplodeEffect:
FreezeBurnParalyzeEffect:
xor a
ld [wAnimationType], a
- call CheckTargetSubstitute ; test bit 4 of d063/d068 flags [target has substitute flag]
+ call CheckTargetSubstitute
ret nz ; return if they have a substitute, can't effect them
ldh a, [hWhoseTurn]
and a
@@ -848,7 +848,7 @@ SwitchAndTeleportEffect:
ld a, [wIsInBattle]
dec a
jr nz, .notWildBattle1
- ld a, [wCurEnemyLVL]
+ ld a, [wCurEnemyLevel]
ld b, a
ld a, [wBattleMonLevel]
cp b ; is the player's level greater than the enemy's level?
@@ -892,7 +892,7 @@ SwitchAndTeleportEffect:
jr nz, .notWildBattle2
ld a, [wBattleMonLevel]
ld b, a
- ld a, [wCurEnemyLVL]
+ ld a, [wCurEnemyLevel]
cp b
jr nc, .enemyMoveWasSuccessful
add b
@@ -1318,7 +1318,7 @@ MimicEffect:
add hl, bc
ld a, d
ld [hl], a
- ld [wd11e], a
+ ld [wNamedObjectIndex], a
call GetMoveName
call PlayCurrentMoveAnimation
ld hl, MimicLearnedMoveText
@@ -1365,7 +1365,7 @@ DisableEffect:
pop hl
and a
jr z, .pickMoveToDisable ; loop until a non-00 move slot is found
- ld [wd11e], a ; store move number
+ ld [wNamedObjectIndex], a ; store move number
push hl
ldh a, [hWhoseTurn]
and a
@@ -1410,7 +1410,7 @@ DisableEffect:
jr nz, .printDisableText
inc hl ; wEnemyDisabledMoveNumber
.printDisableText
- ld a, [wd11e] ; move number
+ ld a, [wNamedObjectIndex] ; move number
ld [hl], a
call GetMoveName
ld hl, MoveWasDisabledText
diff --git a/engine/battle/end_of_battle.asm b/engine/battle/end_of_battle.asm
index e07c243e..53946250 100644
--- a/engine/battle/end_of_battle.asm
+++ b/engine/battle/end_of_battle.asm
@@ -70,8 +70,8 @@ EndOfBattle:
ld [hli], a
dec b
jr nz, .loop
- ld hl, wd72c
- set 0, [hl]
+ ld hl, wStatusFlags2
+ set BIT_WILD_ENCOUNTER_COOLDOWN, [hl]
call WaitForSoundToFinish
call GBPalWhiteOut
ld a, $ff
diff --git a/engine/battle/experience.asm b/engine/battle/experience.asm
index 61fbdfa3..35f9f1a4 100644
--- a/engine/battle/experience.asm
+++ b/engine/battle/experience.asm
@@ -113,8 +113,8 @@ GainExperience:
ld b, 0
ld hl, wPartySpecies
add hl, bc
- ld a, [hl] ; species
- ld [wd0b5], a
+ ld a, [hl]
+ ld [wCurSpecies], a
call GetMonHeader
ld d, MAX_LEVEL
callfar CalcExperience ; get max exp
@@ -160,17 +160,17 @@ GainExperience:
ld a, [hl] ; current level
cp d
jp z, .nextMon ; if level didn't change, go to next mon
- ld a, [wCurEnemyLVL]
+ ld a, [wCurEnemyLevel]
push af
push hl
ld a, d
- ld [wCurEnemyLVL], a
+ ld [wCurEnemyLevel], a
ld [hl], a
ld bc, wPartyMon1Species - wPartyMon1Level
add hl, bc
- ld a, [hl] ; species
- ld [wd0b5], a
- ld [wd11e], a
+ ld a, [hl]
+ ld [wCurSpecies], a
+ ld [wPokedexNum], a
call GetMonHeader
ld bc, (wPartyMon1MaxHP + 1) - wPartyMon1Species
add hl, bc
@@ -224,7 +224,7 @@ GainExperience:
call CopyData
pop hl
ld a, [wPlayerBattleStatus3]
- bit 3, a ; is the mon transformed?
+ bit TRANSFORMED, a
jr nz, .recalcStatChanges
; the mon is not transformed, so update the unmodified stats
ld de, wPlayerMonUnmodifiedLevel
@@ -257,8 +257,8 @@ GainExperience:
call LoadScreenTilesFromBuffer1
xor a ; PLAYER_PARTY_DATA
ld [wMonDataLocation], a
- ld a, [wd0b5]
- ld [wd11e], a
+ ld a, [wCurSpecies]
+ ld [wPokedexNum], a
predef LearnMoveFromLevelUp
ld hl, wCanEvolveFlags
ld a, [wWhichPokemon]
@@ -267,7 +267,7 @@ GainExperience:
predef FlagActionPredef
pop hl
pop af
- ld [wCurEnemyLVL], a
+ ld [wCurEnemyLevel], a
.nextMon
ld a, [wPartyCount]
@@ -312,7 +312,7 @@ DivideExpDataByNumMonsGainingExp:
jr nz, .countSetBitsLoop
cp $2
ret c ; return if only one mon is gaining exp
- ld [wd11e], a ; store number of mons gaining exp
+ ld [wTempByteValue], a ; store number of mons gaining exp
ld hl, wEnemyMonBaseStats
ld c, wEnemyMonBaseExp + 1 - wEnemyMonBaseStats
.divideLoop
@@ -320,7 +320,7 @@ DivideExpDataByNumMonsGainingExp:
ldh [hDividend], a
ld a, [hl]
ldh [hDividend + 1], a
- ld a, [wd11e]
+ ld a, [wTempByteValue]
ldh [hDivisor], a
ld b, $2
call Divide ; divide value by number of mons gaining exp
diff --git a/engine/battle/get_trainer_name.asm b/engine/battle/get_trainer_name.asm
index b2daebfe..a0e869fc 100644
--- a/engine/battle/get_trainer_name.asm
+++ b/engine/battle/get_trainer_name.asm
@@ -1,5 +1,5 @@
GetTrainerName_::
- ld hl, wGrassRate
+ ld hl, wLinkEnemyTrainerName
ld a, [wLinkState]
and a
jr nz, .foundName
@@ -11,14 +11,14 @@ GetTrainerName_::
jr z, .foundName
cp RIVAL3
jr z, .foundName
- ld [wd0b5], a
+ ld [wNameListIndex], a
ld a, TRAINER_NAME
ld [wNameListType], a
ld a, BANK(TrainerNames)
ld [wPredefBank], a
call GetName
- ld hl, wcd6d
+ ld hl, wNameBuffer
.foundName
ld de, wTrainerName
- ld bc, $d
+ ld bc, ITEM_NAME_LENGTH
jp CopyData
diff --git a/engine/battle/init_battle.asm b/engine/battle/init_battle.asm
index d23df283..58e18a3f 100644
--- a/engine/battle/init_battle.asm
+++ b/engine/battle/init_battle.asm
@@ -5,12 +5,12 @@ InitBattle::
InitOpponent:
ld a, [wCurOpponent]
- ld [wcf91], a
+ ld [wCurPartySpecies], a
ld [wEnemyMonSpecies2], a
jr InitBattleCommon
DetermineWildOpponent:
- ld a, [wd732]
+ ld a, [wStatusFlags6]
bit BIT_DEBUG_MODE, a
jr z, .notDebugMode
ldh a, [hJoyHeld]
@@ -28,7 +28,7 @@ InitBattleCommon:
ld hl, wLetterPrintingDelayFlags
ld a, [hl]
push af
- res 1, [hl]
+ res BIT_TEXT_DELAY, [hl] ; no delay
call InitBattleVariables
ld a, [wEnemyMonSpecies2]
sub OPP_ID_OFFSET
@@ -87,14 +87,14 @@ InitWildBattle:
ld a, "T"
ld [hli], a
ld [hl], "@"
- ld a, [wcf91]
+ ld a, [wCurPartySpecies]
push af
ld a, MON_GHOST
- ld [wcf91], a
+ ld [wCurPartySpecies], a
ld de, vFrontPic
call LoadMonFrontSprite ; load ghost sprite
pop af
- ld [wcf91], a
+ ld [wCurPartySpecies], a
jr .spriteLoaded
.isNoGhost
ld de, vFrontPic
@@ -171,7 +171,7 @@ LoadMonBackPic:
; Assumes the monster's attributes have
; been loaded with GetMonHeader.
ld a, [wBattleMonSpecies2]
- ld [wcf91], a
+ ld [wCurPartySpecies], a
hlcoord 1, 5
lb bc, 7, 8
call ClearScreenArea
diff --git a/engine/battle/misc.asm b/engine/battle/misc.asm
index df9145f2..b8ee4c2f 100644
--- a/engine/battle/misc.asm
+++ b/engine/battle/misc.asm
@@ -8,16 +8,16 @@ FormatMovesString:
and a ; end of move list?
jr z, .printDashLoop ; print dashes when no moves are left
push hl
- ld [wd0b5], a
+ ld [wNameListIndex], a
ld a, BANK(MoveNames)
ld [wPredefBank], a
ld a, MOVE_NAME
ld [wNameListType], a
call GetName
- ld hl, wcd6d
+ ld hl, wNameBuffer
.copyNameLoop
ld a, [hli]
- cp $50
+ cp "@"
jr z, .doneCopyingName
ld [de], a
inc de
@@ -26,7 +26,7 @@ FormatMovesString:
ld a, b
ld [wNumMovesMinusOne], a
inc b
- ld a, $4e ; line break
+ ld a, "<NEXT>"
ld [de], a
inc de
pop hl
@@ -42,7 +42,7 @@ FormatMovesString:
ld a, b
cp NUM_MOVES
jr z, .done
- ld a, $4e ; line break
+ ld a, "<NEXT>"
ld [de], a
inc de
jr .printDashLoop
@@ -92,9 +92,9 @@ InitList:
ld a, h
ld [wListPointer + 1], a
ld a, e
- ld [wUnusedCF8D], a
+ ld [wUnusedNamePointer], a
ld a, d
- ld [wUnusedCF8D + 1], a
+ ld [wUnusedNamePointer + 1], a
ld bc, ItemPrices
ld a, c
ld [wItemPrices], a
diff --git a/engine/battle/move_effects/pay_day.asm b/engine/battle/move_effects/pay_day.asm
index fa373038..9aab3feb 100644
--- a/engine/battle/move_effects/pay_day.asm
+++ b/engine/battle/move_effects/pay_day.asm
@@ -1,6 +1,6 @@
PayDayEffect_:
xor a
- ld hl, wcd6d
+ ld hl, wPayDayMoney
ld [hli], a
ldh a, [hWhoseTurn]
and a
@@ -21,7 +21,7 @@ PayDayEffect_:
ld b, $4
call Divide
ldh a, [hQuotient + 3]
- ld [hli], a
+ ld [hli], a ; wPayDayMoney + 1
ldh a, [hRemainder]
ldh [hDividend + 3], a
ld a, 10
@@ -33,7 +33,7 @@ PayDayEffect_:
ld b, a
ldh a, [hRemainder]
add b
- ld [hl], a
+ ld [hl], a ; wPayDayMoney + 2
ld de, wTotalPayDayMoney + 2
ld c, $3
predef AddBCDPredef
diff --git a/engine/battle/move_effects/transform.asm b/engine/battle/move_effects/transform.asm
index af47ae1b..775816c7 100644
--- a/engine/battle/move_effects/transform.asm
+++ b/engine/battle/move_effects/transform.asm
@@ -109,7 +109,7 @@ TransformEffect_:
; original (unmodified) stats and stat mods
pop hl
ld a, [hl]
- ld [wd11e], a
+ ld [wNamedObjectIndex], a
call GetMonName
ld hl, wEnemyMonUnmodifiedAttack
ld de, wPlayerMonUnmodifiedAttack
diff --git a/engine/battle/print_type.asm b/engine/battle/print_type.asm
index 7da0dc8c..e7c6729c 100644
--- a/engine/battle/print_type.asm
+++ b/engine/battle/print_type.asm
@@ -1,4 +1,4 @@
-; [wd0b5] = pokemon ID
+; [wCurSpecies] = pokemon ID
; hl = dest addr
PrintMonType:
call GetPredefRegisters
diff --git a/engine/battle/read_trainer_party.asm b/engine/battle/read_trainer_party.asm
index 8fa323b5..344d7ce8 100644
--- a/engine/battle/read_trainer_party.asm
+++ b/engine/battle/read_trainer_party.asm
@@ -49,12 +49,12 @@ ReadTrainer:
ld a, [hli]
cp $FF ; is the trainer special?
jr z, .SpecialTrainer ; if so, check for special moves
- ld [wCurEnemyLVL], a
+ ld [wCurEnemyLevel], a
.LoopTrainerData
ld a, [hli]
and a ; have we reached the end of the trainer data?
jp z, .AddAdditionalMoveData
- ld [wcf91], a ; write species somewhere (XXX why?)
+ ld [wCurPartySpecies], a
ld a, ENEMY_PARTY_DATA
ld [wMonDataLocation], a
push hl
@@ -69,9 +69,9 @@ ReadTrainer:
ld a, [hli]
and a ; have we reached the end of the trainer data?
jr z, .AddAdditionalMoveData
- ld [wCurEnemyLVL], a
+ ld [wCurEnemyLevel], a
ld a, [hli]
- ld [wcf91], a
+ ld [wCurPartySpecies], a
ld a, ENEMY_PARTY_DATA
ld [wMonDataLocation], a
push hl
@@ -129,7 +129,7 @@ ReadTrainer:
ld [de], a
inc de
ld [de], a
- ld a, [wCurEnemyLVL]
+ ld a, [wCurEnemyLevel]
ld b, a
.LastLoop
; update wAmountMoneyWon addresses (money to win) based on enemy's level
@@ -141,5 +141,5 @@ ReadTrainer:
inc de
inc de
dec b
- jr nz, .LastLoop ; repeat wCurEnemyLVL times
+ jr nz, .LastLoop ; repeat wCurEnemyLevel times
ret
diff --git a/engine/battle/safari_zone.asm b/engine/battle/safari_zone.asm
index a61f402f..ca3ff8a2 100644
--- a/engine/battle/safari_zone.asm
+++ b/engine/battle/safari_zone.asm
@@ -16,7 +16,7 @@ PrintSafariZoneBattleText:
jr nz, .done
push hl
ld a, [wEnemyMonSpecies]
- ld [wd0b5], a
+ ld [wCurSpecies], a
call GetMonHeader
ld a, [wMonHCatchRate]
ld [wEnemyMonActualCatchRate], a
diff --git a/engine/battle/save_trainer_name.asm b/engine/battle/save_trainer_name.asm
index 4d40fd82..b25d5a11 100644
--- a/engine/battle/save_trainer_name.asm
+++ b/engine/battle/save_trainer_name.asm
@@ -9,7 +9,7 @@ SaveTrainerName::
ld a, [hli]
ld h, [hl]
ld l, a
- ld de, wcd6d
+ ld de, wNameBuffer
.CopyCharacter
ld a, [hli]
ld [de], a
diff --git a/engine/battle/trainer_ai.asm b/engine/battle/trainer_ai.asm
index 41325ce7..d714109d 100644
--- a/engine/battle/trainer_ai.asm
+++ b/engine/battle/trainer_ai.asm
@@ -641,27 +641,27 @@ AICureStatus:
ld [hl], a ; clear status in enemy team roster
ld [wEnemyMonStatus], a ; clear status of active enemy
ld hl, wEnemyBattleStatus3
- res 0, [hl]
+ res BADLY_POISONED, [hl]
ret
AIUseXAccuracy: ; unused
call AIPlayRestoringSFX
ld hl, wEnemyBattleStatus2
- set 0, [hl]
+ set USING_X_ACCURACY, [hl]
ld a, X_ACCURACY
jp AIPrintItemUse
AIUseGuardSpec:
call AIPlayRestoringSFX
ld hl, wEnemyBattleStatus2
- set 1, [hl]
+ set PROTECTED_BY_MIST, [hl]
ld a, GUARD_SPEC
jp AIPrintItemUse
AIUseDireHit: ; unused
call AIPlayRestoringSFX
ld hl, wEnemyBattleStatus2
- set 2, [hl]
+ set GETTING_PUMPED, [hl]
ld a, DIRE_HIT
jp AIPrintItemUse
@@ -741,7 +741,7 @@ AIPrintItemUse:
AIPrintItemUse_:
; print "x used [wAIItem] on z!"
ld a, [wAIItem]
- ld [wd11e], a
+ ld [wNamedObjectIndex], a
call GetItemName
ld hl, AIBattleUseItemText
jp PrintText
diff --git a/engine/battle/wild_encounters.asm b/engine/battle/wild_encounters.asm
index d16c6515..9fe0c96c 100644
--- a/engine/battle/wild_encounters.asm
+++ b/engine/battle/wild_encounters.asm
@@ -4,8 +4,8 @@ TryDoWildEncounter:
ld a, [wNPCMovementScriptPointerTableNum]
and a
ret nz
- ld a, [wd736]
- and a
+ ld a, [wMovementFlags]
+ and a ; is player exiting a door, jumping over a ledge, or fishing?
ret nz
callfar IsPlayerStandingOnDoorTileOrWarpTile
jr nc, .notStandingOnDoorOrWarpTile
@@ -73,23 +73,23 @@ TryDoWildEncounter:
ld b, 0
add hl, bc
ld a, [hli]
- ld [wCurEnemyLVL], a
+ ld [wCurEnemyLevel], a
ld a, [hl]
- ld [wcf91], a
+ ld [wCurPartySpecies], a
ld [wEnemyMonSpecies2], a
ld a, [wRepelRemainingSteps]
and a
jr z, .willEncounter
ld a, [wPartyMon1Level]
ld b, a
- ld a, [wCurEnemyLVL]
+ ld a, [wCurEnemyLevel]
cp b
jr c, .CantEncounter2 ; repel prevents encounters if the leading party mon's level is higher than the wild mon
jr .willEncounter
.lastRepelStep
ld [wRepelRemainingSteps], a
ld a, TEXT_REPEL_WORE_OFF
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call EnableAutoTextBoxDrawing
call DisplayTextID
.CantEncounter2
diff --git a/engine/debug/debug_menu.asm b/engine/debug/debug_menu.asm
index 25e36cae..ae4a328b 100644
--- a/engine/debug/debug_menu.asm
+++ b/engine/debug/debug_menu.asm
@@ -55,7 +55,7 @@ IF DEF(_DEBUG)
jp z, TestBattle
; DEBUG
- ld hl, wd732
+ ld hl, wStatusFlags6
set BIT_DEBUG_MODE, [hl]
ld hl, StartNewGameDebug
ret
@@ -78,7 +78,7 @@ TestBattle: ; unreferenced except in _DEBUG
ld a, 1 << BIT_EARTHBADGE
ld [wObtainedBadges], a
- ld hl, wFlags_D733
+ ld hl, wStatusFlags7
set BIT_TEST_BATTLE, [hl]
ld hl, wNumBagItems
@@ -88,7 +88,7 @@ TestBattle: ; unreferenced except in _DEBUG
cp -1
jr z, .done
inc de
- ld [wcf91], a
+ ld [wCurItem], a
ld a, [de]
inc de
ld [wItemQuantity], a
@@ -186,7 +186,7 @@ Func_fe812:
; fallthrough
Func_fe81a:
ld [de], a
- ld [wd11e], a
+ ld [wTempByteValue], a
push bc
push hl
push de
@@ -201,7 +201,7 @@ Func_fe81a:
ld de, Text_fed9c
call PlaceString
pop hl
- ld a, [wd11e]
+ ld a, [wNamedObjectIndex]
and a
jr nz, .asm_fe845
ld de, Text_feda2
@@ -424,17 +424,17 @@ Func_fe97f:
ld [wIsInBattle], a
.asm_fe990
ld a, b
- ld [wcf91], a
+ ld [wCurPartySpecies], a
ld a, [hl]
ld b, a
inc de
ld a, [de]
and a
jr z, .asm_fe9ab
- ld [wCurEnemyLVL], a
+ ld [wCurEnemyLevel], a
xor a
ld [wMonDataLocation], a
- ld a, [wcf91]
+ ld a, [wCurPartySpecies]
and a
jr z, .asm_fe9ab
call AddPartyMon
@@ -487,9 +487,9 @@ Func_fe97f:
dec a
jr z, .asm_fea40
ld a, [wTrainerClass]
- ld [wd11e], a
+ ld [wTempByteValue], a
ld b, a
- ld de, wd11e
+ ld de, wTempByteValue
hlcoord 1, 8
push bc
lb bc, LEADING_ZEROES | 1, 3
@@ -507,7 +507,7 @@ Func_fe97f:
ld a, b
and a
jr z, .asm_fea65
- ld de, wd11e
+ ld de, wTempByteValue
ld [de], a
hlcoord 1, 8
push bc
@@ -523,7 +523,7 @@ Func_fe97f:
.asm_fea65
ld a, [wEnemyMonLevel]
ld c, a
- ld de, wd11e
+ ld de, wTempByteValue
ld [de], a
hlcoord 16, 8
push bc
@@ -626,13 +626,13 @@ Func_feb13:
; fallthrough
Func_feb35:
ld a, b
- ld [wd11e], a
- ld de, wd11e
+ ld [wTempByteValue], a
+ ld de, wTempByteValue
hlcoord 1, 8
push bc
lb bc, LEADING_ZEROES | 1, 3
call PrintNumber
- ld a, [wd11e]
+ ld a, [wTempByteValue]
ld [wTrainerClass], a
call GetTrainerName
hlcoord 5, 8
@@ -649,8 +649,8 @@ Func_feb35:
; fallthrough
Func_feb64:
ld a, b
- ld [wd11e], a
- ld de, wd11e
+ ld [wTempByteValue], a
+ ld de, wTempByteValue
hlcoord 1, 8
push bc
lb bc, LEADING_ZEROES | 1, 3
@@ -725,7 +725,7 @@ Func_febe6:
Func_febee:
hlcoord 16, 8
ld a, c
- ld de, wCurEnemyLVL
+ ld de, wCurEnemyLevel
ld [de], a
push bc
lb bc, LEADING_ZEROES | 1, 3
@@ -761,11 +761,11 @@ Func_fec10:
ld [wTrainerNo], a
.asm_fec28
ld a, c
- ld [wCurEnemyLVL], a
+ ld [wCurEnemyLevel], a
ld a, b
ld [wCurOpponent], a
xor a
- ld [wd72d], a
+ ld [wStatusFlags3], a
predef InitOpponent
xor a
ld [wNumRunAttempts], a
@@ -817,7 +817,7 @@ Func_fec9b:
ld a, [de]
cp -1
jp z, Func_fed01
- ld [wd11e], a
+ ld [wTempByteValue], a
push hl
lb bc, LEADING_ZEROES | 1, 3
call PrintNumber
@@ -838,7 +838,7 @@ Func_fec9b:
ld d, h
ld e, l
ld a, [de]
- ld [wCurEnemyLVL], a
+ ld [wCurEnemyLevel], a
pop hl
lb bc, LEADING_ZEROES | 1, 3
call PrintNumber
@@ -849,7 +849,7 @@ Func_fec9b:
jr nc, .asm_fecee
inc d
.asm_fecee
- ld a, [wCurEnemyLVL]
+ ld a, [wCurEnemyLevel]
ld [de], a
pop hl
ld a, [wWhichPokemon]
@@ -935,8 +935,8 @@ Func_fedfe:
ld [hl], a
inc a
ldh [hJoy7], a
- ld [wcf91], a
- ld [wCurEnemyLVL], a
+ ld [wCurPartySpecies], a
+ ld [wCurEnemyLevel], a
; fallthrough
Func_fee23:
hlcoord 0, 3
@@ -957,7 +957,7 @@ Func_fee23:
jr .asm_fee30
Func_fee49:
- ld hl, wcf91
+ ld hl, wCurPartySpecies
inc [hl]
ld a, [hl]
cp NUM_POKEMON + 1
@@ -966,7 +966,7 @@ Func_fee49:
jr Func_fee23
Func_fee56:
- ld hl, wcf91
+ ld hl, wCurPartySpecies
dec [hl]
jr nz, Func_fee23
ld [hl], DEX_MEW
@@ -977,19 +977,19 @@ Func_fee60:
lb bc, 2, 9
call ClearScreenArea
hlcoord 1, 1
- ld de, wcf91
+ ld de, wCurPartySpecies
lb bc, LEADING_ZEROES | 1, 3
call PrintNumber
inc hl
push hl
- ld a, [wcf91]
- ld [wd11e], a
+ ld a, [wCurPartySpecies]
+ ld [wPokedexNum], a
callfar PokedexToIndex
call GetMonName
pop hl
call PlaceString
- ld a, [wd11e]
- ld [wd0b5], a
+ ld a, [wPokedexNum]
+ ld [wCurSpecies], a
call GetMonHeader
ret
@@ -1005,7 +1005,7 @@ Func_fee96:
.asm_feeab
call DelayFrame
call JoypadLowSensitivity
- ld hl, wCurEnemyLVL
+ ld hl, wCurEnemyLevel
ldh a, [hJoy5]
bit BIT_A_BUTTON, a
jp nz, Func_feed1
@@ -1035,7 +1035,7 @@ Func_feedb:
Func_feee2:
hlcoord 1, 3
- ld de, wCurEnemyLVL
+ ld de, wCurEnemyLevel
lb bc, LEADING_ZEROES | 1, 3
call PrintNumber
ret
@@ -1044,9 +1044,9 @@ Func_feeef:
hlcoord 1, 4
lb bc, 8, 11
call ClearScreenArea
- ld a, [wcf91]
+ ld a, [wCurPartySpecies]
push af
- ld [wd11e], a
+ ld [wPokedexNum], a
ld hl, BaseStats + 15
dec a
ld bc, BASE_DATA_SIZE
@@ -1056,8 +1056,8 @@ Func_feeef:
ld a, BANK(BaseStats)
call FarCopyData
callfar PokedexToIndex
- ld a, [wd11e]
- ld [wcf91], a
+ ld a, [wPokedexNum]
+ ld [wCurPartySpecies], a
xor a
ld [wChangeMonPicEnemyTurnSpecies], a
ld de, wMoves
@@ -1073,8 +1073,8 @@ Func_feeef:
push de
push bc
push hl
- ld [wd11e], a
- ld de, wd11e
+ ld [wTempByteValue], a
+ ld de, wTempByteValue
lb bc, LEADING_ZEROES | 1, 3
call PrintNumber
inc hl
@@ -1089,7 +1089,7 @@ Func_feeef:
jr nz, .asm_fef36
.asm_fef5b
pop af
- ld [wcf91], a
+ ld [wCurPartySpecies], a
ret
Func_fef60:
@@ -1183,11 +1183,11 @@ Func_fefc5:
pop hl
inc hl
ld a, [de]
- ld de, wd11e
+ ld de, wTempByteValue
ld [de], a
lb bc, LEADING_ZEROES | 1, 3
call PrintNumber
- ld a, [wd11e]
+ ld a, [wTempByteValue]
and a
jr z, .asm_ff002
call Func_ff006
@@ -1201,19 +1201,19 @@ Func_fefc5:
ret
Func_ff006:
- ld a, [wcf91]
+ ld a, [wCurPartySpecies]
push af
- ld a, [wd11e]
+ ld a, [wPokedexNum]
push af
push hl
- ld a, [wcf91]
- ld [wd11e], a
+ ld a, [wCurPartySpecies]
+ ld [wPokedexNum], a
callfar PokedexToIndex
- ld a, [wd11e]
- ld [wcf91], a
+ ld a, [wPokedexNum]
+ ld [wCurPartySpecies], a
pop hl
pop af
- ld [wd11e], a
+ ld [wPokedexNum], a
push hl
callfar Func_3b079
pop hl
@@ -1221,7 +1221,7 @@ Func_ff006:
ld [hl], "×"
.asm_ff036
pop af
- ld [wcf91], a
+ ld [wCurPartySpecies], a
ret
Func_ff03b:
@@ -1306,7 +1306,7 @@ Func_ff09e:
pop hl
inc hl
ld a, [de]
- ld de, wd11e
+ ld de, wTempByteValue
ld [de], a
lb bc, LEADING_ZEROES | 1, 3
call PrintNumber
@@ -1366,17 +1366,17 @@ Text_ff113:
next "とくしゅ@" ; special
Func_ff12c:
- ld a, [wCurEnemyLVL]
+ ld a, [wCurEnemyLevel]
ld [wEnemyMonLevel], a
- ld a, [wcf91]
- ld [wd11e], a
+ ld a, [wCurPartySpecies]
+ ld [wPokedexNum], a
callfar PokedexToIndex
- ld a, [wd11e]
- ld [wcf91], a
- ld [wd0b5], a
+ ld a, [wPokedexNum]
+ ld [wCurPartySpecies], a
+ ld [wCurSpecies], a
call GetMonHeader
ld hl, wEnemyMon
- ld a, [wcf91]
+ ld a, [wCurPartySpecies]
ld [hli], a
ld a, [wLoadedMonStats]
ld [hli], a
@@ -1436,7 +1436,7 @@ Func_ff1b9:
ld a, 1
ldh [hJoy7], a
ld a, 2
- ld [wCurEnemyLVL], a
+ ld [wCurEnemyLevel], a
ld hl, Text_ff290
call PrintText
call YesNoChoice
@@ -1463,7 +1463,7 @@ Func_ff1e7:
ld [hl], "ル"
inc hl
inc hl
- ld de, wCurEnemyLVL
+ ld de, wCurEnemyLevel
lb bc, LEADING_ZEROES | 1, 3
call PrintNumber
call DelayFrame
@@ -1478,20 +1478,20 @@ Func_ff1e7:
jr Func_ff1e7
Func_ff21b:
- ld a, [wCurEnemyLVL]
+ ld a, [wCurEnemyLevel]
inc a
cp MAX_LEVEL + 1
jr c, Func_ff231
ld a, 2
jr Func_ff231
Func_ff227:
- ld a, [wCurEnemyLVL]
+ ld a, [wCurEnemyLevel]
dec a
cp 2
jr nc, Func_ff231
ld a, MAX_LEVEL
Func_ff231:
- ld [wCurEnemyLVL], a
+ ld [wCurEnemyLevel], a
jr Func_ff1e7
Func_ff236:
@@ -1511,16 +1511,16 @@ Func_ff236:
push bc
push de
ld a, c
- ld [wd11e], a
+ ld [wPokedexNum], a
callfar PokedexToIndex
- ld a, [wd11e]
+ ld a, [wPokedexNum]
ld [wEnemyMonSpecies2], a
- ld [wcf91], a
+ ld [wCurPartySpecies], a
xor a
ld [wEnemyBattleStatus3], a
callfar LoadEnemyMonData
ld a, [wEnemyMonSpecies2]
- ld [wcf91], a
+ ld [wCurPartySpecies], a
callfar SendNewMonToBox
pop de
pop bc
diff --git a/engine/debug/debug_party.asm b/engine/debug/debug_party.asm
index e00ee471..3c617938 100644
--- a/engine/debug/debug_party.asm
+++ b/engine/debug/debug_party.asm
@@ -4,10 +4,10 @@ SetDebugNewGameParty: ; unreferenced except in _DEBUG
ld a, [de]
cp -1
ret z
- ld [wcf91], a
+ ld [wCurPartySpecies], a
inc de
ld a, [de]
- ld [wCurEnemyLVL], a
+ ld [wCurEnemyLevel], a
inc de
call AddPartyMon
jr .loop
@@ -58,7 +58,7 @@ IF DEF(_DEBUG)
ld a, [de]
cp -1
jr z, .items_end
- ld [wcf91], a
+ ld [wCurItem], a
inc de
ld a, [de]
inc de
diff --git a/engine/events/black_out.asm b/engine/events/black_out.asm
index 6d3d91b8..2a74125a 100644
--- a/engine/events/black_out.asm
+++ b/engine/events/black_out.asm
@@ -10,7 +10,7 @@ ResetStatusAndHalveMoneyOnBlackout::
ld [wNPCMovementScriptFunctionNum], a
ldh [hJoyHeld], a
ld [wNPCMovementScriptPointerTableNum], a
- ld [wFlags_0xcd60], a
+ ld [wMiscFlags], a
ldh [hMoney], a
ldh [hMoney + 1], a
@@ -39,10 +39,10 @@ ResetStatusAndHalveMoneyOnBlackout::
ld [wPlayerMoney + 2], a
.lostmoney
- ld hl, wd732
- set 2, [hl]
- res 3, [hl]
- set 6, [hl]
- ld a, %11111111
+ ld hl, wStatusFlags6
+ set BIT_FLY_OR_DUNGEON_WARP, [hl]
+ res BIT_FLY_WARP, [hl]
+ set BIT_ESCAPE_WARP, [hl]
+ ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
ld [wJoyIgnore], a
predef_jump HealParty
diff --git a/engine/events/card_key.asm b/engine/events/card_key.asm
index 10de5ed2..d8f4e773 100644
--- a/engine/events/card_key.asm
+++ b/engine/events/card_key.asm
@@ -28,7 +28,7 @@ PrintCardKeyText:
xor a
ld [wPlayerMovingDirection], a
tx_pre_id CardKeySuccessText
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call PrintPredefTextID
call GetCoordsInFrontOfPlayer
srl d
@@ -50,12 +50,12 @@ PrintCardKeyText:
ld [wNewTileBlockID], a
predef ReplaceTileBlock
ld hl, wCurrentMapScriptFlags
- set 5, [hl]
+ set BIT_CUR_MAP_LOADED_1, [hl]
ld a, SFX_GO_INSIDE
jp PlaySound
.noCardKey
tx_pre_id CardKeyFailText
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
jp PrintPredefTextID
INCLUDE "data/events/card_key_maps.asm"
diff --git a/engine/events/cinnabar_lab.asm b/engine/events/cinnabar_lab.asm
index 545baf13..d8066fb8 100644
--- a/engine/events/cinnabar_lab.asm
+++ b/engine/events/cinnabar_lab.asm
@@ -1,6 +1,6 @@
GiveFossilToCinnabarLab::
- ld hl, wd730
- set 6, [hl]
+ ld hl, wStatusFlags5
+ set BIT_NO_TEXT_DELAY, [hl]
xor a
ld [wCurrentMenuItem], a
ld a, A_BUTTON | B_BUTTON
@@ -24,8 +24,8 @@ GiveFossilToCinnabarLab::
call TextBoxBorder
call UpdateSprites
call PrintFossilsInBag
- ld hl, wd730
- res 6, [hl]
+ ld hl, wStatusFlags5
+ res BIT_NO_TEXT_DELAY, [hl]
call HandleMenuInput
bit BIT_B_BUTTON, a
jr nz, .cancelledGivingFossil
@@ -98,13 +98,13 @@ PrintFossilsInBag:
cp $ff
ret z
push hl
- ld [wd11e], a
+ ld [wNamedObjectIndex], a
call GetItemName
hlcoord 2, 2
ldh a, [hItemCounter]
ld bc, SCREEN_WIDTH * 2
call AddNTimes
- ld de, wcd6d
+ ld de, wNameBuffer
call PlaceString
ld hl, hItemCounter
inc [hl]
@@ -114,10 +114,10 @@ PrintFossilsInBag:
; loads the names of the fossil item and the resulting mon
LoadFossilItemAndMonName::
ld a, [wFossilMon]
- ld [wd11e], a
+ ld [wNamedObjectIndex], a
call GetMonName
call CopyToStringBuffer
ld a, [wFossilItem]
- ld [wd11e], a
+ ld [wNamedObjectIndex], a
call GetItemName
ret
diff --git a/engine/events/diploma.asm b/engine/events/diploma.asm
index a5a007fa..67837475 100644
--- a/engine/events/diploma.asm
+++ b/engine/events/diploma.asm
@@ -4,12 +4,12 @@ DisplayDiploma::
call ClearScreen
xor a
ld [wUpdateSpritesEnabled], a
- ld hl, wd730
- set 6, [hl]
+ ld hl, wStatusFlags5
+ set BIT_NO_TEXT_DELAY, [hl]
callfar _DisplayDiploma
call WaitForTextScrollButtonPress
- ld hl, wd730
- res 6, [hl]
+ ld hl, wStatusFlags5
+ res BIT_NO_TEXT_DELAY, [hl]
call GBPalWhiteOutWithDelay3
call ReloadTilesetTilePatterns
call RestoreScreenTilesAndReloadTilePatterns
diff --git a/engine/events/display_pokedex.asm b/engine/events/display_pokedex.asm
index d657ea85..46b45d77 100644
--- a/engine/events/display_pokedex.asm
+++ b/engine/events/display_pokedex.asm
@@ -1,14 +1,14 @@
_DisplayPokedex::
- ld hl, wd730
- set 6, [hl]
+ ld hl, wStatusFlags5
+ set BIT_NO_TEXT_DELAY, [hl]
predef ShowPokedexData
- ld hl, wd730
- res 6, [hl]
+ ld hl, wStatusFlags5
+ res BIT_NO_TEXT_DELAY, [hl]
call ReloadMapData
ld c, 10
call DelayFrames
predef IndexToPokedex
- ld a, [wd11e]
+ ld a, [wPokedexNum]
dec a
ld c, a
ld b, FLAG_SET
diff --git a/engine/events/elevator.asm b/engine/events/elevator.asm
index 004893a0..1c7221bc 100644
--- a/engine/events/elevator.asm
+++ b/engine/events/elevator.asm
@@ -1,12 +1,12 @@
DisplayElevatorFloorMenu:
- ld hl, wd730
+ ld hl, wStatusFlags5
ld a, [hl]
push af
- set 6, [hl]
+ set BIT_NO_TEXT_DELAY, [hl]
ld hl, WhichFloorText
call PrintText
pop af
- ld [wd730], a
+ ld [wStatusFlags5], a
ld hl, wItemList
ld a, l
ld [wListPointer], a
@@ -26,7 +26,7 @@ DisplayElevatorFloorMenu:
ld [wListScrollOffset], a
ret c
ld hl, wCurrentMapScriptFlags
- set 7, [hl]
+ set BIT_CUR_MAP_USED_ELEVATOR, [hl]
ld hl, wElevatorWarpMaps
ld a, [wWhichPokemon]
add a
diff --git a/engine/events/give_pokemon.asm b/engine/events/give_pokemon.asm
index 00c642bb..e33d5165 100644
--- a/engine/events/give_pokemon.asm
+++ b/engine/events/give_pokemon.asm
@@ -13,7 +13,7 @@ _GivePokemon::
; add to box
xor a
ld [wEnemyBattleStatus3], a
- ld a, [wcf91]
+ ld a, [wCurPartySpecies]
ld [wEnemyMonSpecies2], a
callfar LoadEnemyMonData
call SetPokedexOwnedFlag
@@ -54,18 +54,18 @@ _GivePokemon::
ret
SetPokedexOwnedFlag:
- ld a, [wcf91]
+ ld a, [wCurPartySpecies]
push af
- ld [wd11e], a
+ ld [wPokedexNum], a
predef IndexToPokedex
- ld a, [wd11e]
+ ld a, [wPokedexNum]
dec a
ld c, a
ld hl, wPokedexOwned
ld b, FLAG_SET
predef FlagActionPredef
pop af
- ld [wd11e], a
+ ld [wNamedObjectIndex], a
call GetMonName
ld hl, GotMonText
jp PrintText
diff --git a/engine/events/heal_party.asm b/engine/events/heal_party.asm
index b26bc90f..8bf162a7 100644
--- a/engine/events/heal_party.asm
+++ b/engine/events/heal_party.asm
@@ -37,10 +37,10 @@ HealParty:
ld hl, Moves
ld bc, MOVE_LENGTH
call AddNTimes
- ld de, wcd6d
+ ld de, wMoveData
ld a, BANK(Moves)
call FarCopyData
- ld a, [wcd6d + 5] ; PP is byte 5 of move data
+ ld a, [wMoveData + MOVE_PP]
pop bc
pop de
@@ -84,7 +84,7 @@ HealParty:
.done
xor a
ld [wWhichPokemon], a
- ld [wd11e], a
+ ld [wUsingPPUp], a
ld a, [wPartyCount]
ld b, a
diff --git a/engine/events/hidden_items.asm b/engine/events/hidden_items.asm
index 63b95bcf..62c40ce4 100644
--- a/engine/events/hidden_items.asm
+++ b/engine/events/hidden_items.asm
@@ -14,7 +14,7 @@ HiddenItems:
ld a, 1
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
ld a, [wHiddenObjectFunctionArgument] ; item ID
- ld [wd11e], a
+ ld [wNamedObjectIndex], a
call GetItemName
tx_pre_jump FoundHiddenItemText
diff --git a/engine/events/hidden_objects/bills_house_pc.asm b/engine/events/hidden_objects/bills_house_pc.asm
index 1299ac23..cd3827ea 100644
--- a/engine/events/hidden_objects/bills_house_pc.asm
+++ b/engine/events/hidden_objects/bills_house_pc.asm
@@ -80,8 +80,8 @@ BillsHousePokemonList::
ld a, 1
ld [wTopMenuItemX], a
.billsPokemonLoop
- ld hl, wd730
- set 6, [hl]
+ ld hl, wStatusFlags5
+ set BIT_NO_TEXT_DELAY, [hl]
hlcoord 0, 0
lb bc, 10, 9
call TextBoxBorder
@@ -110,8 +110,8 @@ BillsHousePokemonList::
call LoadScreenTilesFromBuffer2
jr .billsPokemonLoop
.cancel
- ld hl, wd730
- res 6, [hl]
+ ld hl, wStatusFlags5
+ res BIT_NO_TEXT_DELAY, [hl]
call LoadScreenTilesFromBuffer2
jp TextScriptEnd
diff --git a/engine/events/hidden_objects/cinnabar_gym_quiz.asm b/engine/events/hidden_objects/cinnabar_gym_quiz.asm
index 6a45c2be..f5a2db44 100644
--- a/engine/events/hidden_objects/cinnabar_gym_quiz.asm
+++ b/engine/events/hidden_objects/cinnabar_gym_quiz.asm
@@ -94,7 +94,7 @@ CinnabarGymQuiz_AskQuestion:
cp c
jr nz, .wrongAnswer
ld hl, wCurrentMapScriptFlags
- set 5, [hl]
+ set BIT_CUR_MAP_LOADED_1, [hl]
ldh a, [hGymGateIndex]
ldh [hBackupGymGateIndex], a
ld hl, CinnabarGymQuizCorrectText
diff --git a/engine/events/hidden_objects/fanclub_pictures.asm b/engine/events/hidden_objects/fanclub_pictures.asm
index 30bc72c7..2a3db4bc 100644
--- a/engine/events/hidden_objects/fanclub_pictures.asm
+++ b/engine/events/hidden_objects/fanclub_pictures.asm
@@ -1,6 +1,6 @@
FanClubPicture1:
ld a, RAPIDASH
- ld [wcf91], a
+ ld [wCurPartySpecies], a
call DisplayMonFrontSpriteInBox
call EnableAutoTextBoxDrawing
tx_pre FanClubPicture1Text
@@ -12,7 +12,7 @@ FanClubPicture1Text::
FanClubPicture2:
ld a, FEAROW
- ld [wcf91], a
+ ld [wCurPartySpecies], a
call DisplayMonFrontSpriteInBox
call EnableAutoTextBoxDrawing
tx_pre FanClubPicture2Text
diff --git a/engine/events/hidden_objects/indigo_plateau_statues.asm b/engine/events/hidden_objects/indigo_plateau_statues.asm
index 23e94fcf..f78a5a72 100644
--- a/engine/events/hidden_objects/indigo_plateau_statues.asm
+++ b/engine/events/hidden_objects/indigo_plateau_statues.asm
@@ -3,7 +3,7 @@ IndigoPlateauStatues::
ld hl, IndigoPlateauStatuesText1
call PrintText
ld a, [wXCoord]
- bit 0, a
+ bit 0, a ; even or odd?
ld hl, IndigoPlateauStatuesText2
jr nz, .ok
ld hl, IndigoPlateauStatuesText3
diff --git a/engine/events/hidden_objects/museum_fossils.asm b/engine/events/hidden_objects/museum_fossils.asm
index 539f2c3f..9e02aeba 100644
--- a/engine/events/hidden_objects/museum_fossils.asm
+++ b/engine/events/hidden_objects/museum_fossils.asm
@@ -1,6 +1,6 @@
AerodactylFossil:
ld a, FOSSIL_AERODACTYL
- ld [wcf91], a
+ ld [wCurPartySpecies], a
call DisplayMonFrontSpriteInBox
call EnableAutoTextBoxDrawing
tx_pre AerodactylFossilText
@@ -12,7 +12,7 @@ AerodactylFossilText::
KabutopsFossil:
ld a, FOSSIL_KABUTOPS
- ld [wcf91], a
+ ld [wCurPartySpecies], a
call DisplayMonFrontSpriteInBox
call EnableAutoTextBoxDrawing
tx_pre KabutopsFossilText
diff --git a/engine/events/hidden_objects/museum_fossils2.asm b/engine/events/hidden_objects/museum_fossils2.asm
index d8090e0a..240b7ece 100644
--- a/engine/events/hidden_objects/museum_fossils2.asm
+++ b/engine/events/hidden_objects/museum_fossils2.asm
@@ -1,6 +1,5 @@
DisplayMonFrontSpriteInBox:
; Displays a pokemon's front sprite in a pop-up window.
-; [wcf91] = pokemon internal id number
ld a, 1
ldh [hAutoBGTransferEnabled], a
call Delay3
@@ -11,8 +10,8 @@ DisplayMonFrontSpriteInBox:
ld [wTextBoxID], a
call DisplayTextBoxID
call UpdateSprites
- ld a, [wcf91]
- ld [wd0b5], a
+ ld a, [wCurPartySpecies]
+ ld [wCurSpecies], a
call GetMonHeader
ld de, vChars1 tile $31
call LoadMonFrontSprite
diff --git a/engine/events/hidden_objects/pokecenter_pc.asm b/engine/events/hidden_objects/pokecenter_pc.asm
index f20f40ed..59867d1a 100644
--- a/engine/events/hidden_objects/pokecenter_pc.asm
+++ b/engine/events/hidden_objects/pokecenter_pc.asm
@@ -3,7 +3,7 @@ OpenPokemonCenterPC:
cp SPRITE_FACING_UP
ret nz
call EnableAutoTextBoxDrawing
- ld a, TRUE
+ ld a, 1 << BIT_NO_AUTO_TEXT_BOX
ld [wAutoTextBoxDrawingControl], a
tx_pre_jump PokemonCenterPCText
diff --git a/engine/events/hidden_objects/route_15_binoculars.asm b/engine/events/hidden_objects/route_15_binoculars.asm
index 9734e833..a9b8ca37 100644
--- a/engine/events/hidden_objects/route_15_binoculars.asm
+++ b/engine/events/hidden_objects/route_15_binoculars.asm
@@ -5,7 +5,7 @@ Route15GateLeftBinoculars:
call EnableAutoTextBoxDrawing
tx_pre Route15UpstairsBinocularsText
ld a, ARTICUNO
- ld [wcf91], a
+ ld [wCurPartySpecies], a
call PlayCry
call DisplayMonFrontSpriteInBox
xor a
diff --git a/engine/events/hidden_objects/safari_game.asm b/engine/events/hidden_objects/safari_game.asm
index e7d1a729..7fd59ea9 100644
--- a/engine/events/hidden_objects/safari_game.asm
+++ b/engine/events/hidden_objects/safari_game.asm
@@ -40,7 +40,7 @@ SafariZoneGameOver:
cp SFX_SAFARI_ZONE_PA
jr nz, .waitForMusicToPlay
ld a, TEXT_SAFARI_GAME_OVER
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
xor a
ld [wPlayerMovingDirection], a
diff --git a/engine/events/hidden_objects/school_blackboard.asm b/engine/events/hidden_objects/school_blackboard.asm
index e1cf1312..c40530a6 100644
--- a/engine/events/hidden_objects/school_blackboard.asm
+++ b/engine/events/hidden_objects/school_blackboard.asm
@@ -24,8 +24,8 @@ LinkCableHelp::
ld a, 1
ld [wTopMenuItemX], a
.linkHelpLoop
- ld hl, wd730
- set 6, [hl]
+ ld hl, wStatusFlags5
+ set BIT_NO_TEXT_DELAY, [hl]
hlcoord 0, 0
lb bc, 8, 13
call TextBoxBorder
@@ -40,8 +40,8 @@ LinkCableHelp::
ld a, [wCurrentMenuItem]
cp 3 ; pressed a on "STOP READING"
jr z, .exit
- ld hl, wd730
- res 6, [hl]
+ ld hl, wStatusFlags5
+ res BIT_NO_TEXT_DELAY, [hl]
ld hl, LinkCableInfoTexts
add a
ld d, 0
@@ -53,8 +53,8 @@ LinkCableHelp::
call PrintText
jp .linkHelpLoop
.exit
- ld hl, wd730
- res 6, [hl]
+ ld hl, wStatusFlags5
+ res BIT_NO_TEXT_DELAY, [hl]
call LoadScreenTilesFromBuffer1
jp TextScriptEnd
@@ -107,8 +107,8 @@ ViridianSchoolBlackboard::
ld a, 1
ld [wTopMenuItemX], a
.blackboardLoop
- ld hl, wd730
- set 6, [hl]
+ ld hl, wStatusFlags5
+ set BIT_NO_TEXT_DELAY, [hl]
hlcoord 0, 0
lb bc, 6, 10
call TextBoxBorder
@@ -157,8 +157,8 @@ ViridianSchoolBlackboard::
jr z, .exitBlackboard
; we must have pressed a on a status condition
; so print the text
- ld hl, wd730
- res 6, [hl]
+ ld hl, wStatusFlags5
+ res BIT_NO_TEXT_DELAY, [hl]
ld hl, ViridianBlackboardStatusPointers
add a
ld d, 0
@@ -170,8 +170,8 @@ ViridianSchoolBlackboard::
call PrintText
jp .blackboardLoop
.exitBlackboard
- ld hl, wd730
- res 6, [hl]
+ ld hl, wStatusFlags5
+ res BIT_NO_TEXT_DELAY, [hl]
call LoadScreenTilesFromBuffer1
jp TextScriptEnd
diff --git a/engine/events/hidden_objects/town_map.asm b/engine/events/hidden_objects/town_map.asm
index 4284214f..11f7cbc7 100644
--- a/engine/events/hidden_objects/town_map.asm
+++ b/engine/events/hidden_objects/town_map.asm
@@ -4,8 +4,8 @@ TownMapText::
text_asm
ld a, $1
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
- ld hl, wd730
- set 6, [hl]
+ ld hl, wStatusFlags5
+ set BIT_NO_TEXT_DELAY, [hl]
call GBPalWhiteOutWithDelay3
xor a
ldh [hWY], a
@@ -13,8 +13,8 @@ TownMapText::
ldh [hAutoBGTransferEnabled], a
call LoadFontTilePatterns
farcall DisplayTownMap
- ld hl, wd730
- res 6, [hl]
+ ld hl, wStatusFlags5
+ res BIT_NO_TEXT_DELAY, [hl]
ld de, TextScriptEnd
push de
ldh a, [hLoadedROMBank]
diff --git a/engine/events/hidden_objects/vermilion_gym_trash.asm b/engine/events/hidden_objects/vermilion_gym_trash.asm
index 21dd3ee0..428746f7 100644
--- a/engine/events/hidden_objects/vermilion_gym_trash.asm
+++ b/engine/events/hidden_objects/vermilion_gym_trash.asm
@@ -61,7 +61,7 @@ GymTrashScript:
; Completed the trash can puzzle.
SetEvent EVENT_2ND_LOCK_OPENED
ld hl, wCurrentMapScriptFlags
- set 6, [hl]
+ set BIT_CUR_MAP_LOADED_2, [hl]
tx_pre_id VermilionGymTrashSuccessText3
diff --git a/engine/events/in_game_trades.asm b/engine/events/in_game_trades.asm
index 1b7d2678..7ba5fe51 100644
--- a/engine/events/in_game_trades.asm
+++ b/engine/events/in_game_trades.asm
@@ -69,9 +69,9 @@ DoInGameTradeDialogue:
; copies name of species a to hl
InGameTrade_GetMonName:
push de
- ld [wd11e], a
+ ld [wNamedObjectIndex], a
call GetMonName
- ld hl, wcd6d
+ ld hl, wNameBuffer
pop de
ld bc, NAME_LENGTH
jp CopyData
@@ -91,7 +91,7 @@ InGameTrade_DoTrade:
jp c, .tradeFailed ; jump if the player didn't select a pokemon
ld a, [wInGameTradeGiveMonSpecies]
ld b, a
- ld a, [wcf91]
+ ld a, [wCurPartySpecies]
cp b
ld a, $2
jr nz, .tradeFailed ; jump if the selected mon's species is not the required one
@@ -100,24 +100,24 @@ InGameTrade_DoTrade:
ld bc, wPartyMon2 - wPartyMon1
call AddNTimes
ld a, [hl]
- ld [wCurEnemyLVL], a
+ ld [wCurEnemyLevel], a
ld b, FLAG_SET
call InGameTrade_FlagActionPredef
ld hl, ConnectCableText
call PrintText
ld a, [wWhichPokemon]
push af
- ld a, [wCurEnemyLVL]
+ ld a, [wCurEnemyLevel]
push af
call LoadHpBarAndStatusTilePatterns
call InGameTrade_PrepareTradeData
predef InternalClockTradeAnim
pop af
- ld [wCurEnemyLVL], a
+ ld [wCurEnemyLevel], a
pop af
ld [wWhichPokemon], a
ld a, [wInGameTradeReceiveMonSpecies]
- ld [wcf91], a
+ ld [wCurPartySpecies], a
xor a
ld [wMonDataLocation], a ; not used
ld [wRemoveMonFromBox], a
diff --git a/engine/events/pick_up_item.asm b/engine/events/pick_up_item.asm
index 548db5be..8fbdcfa2 100644
--- a/engine/events/pick_up_item.asm
+++ b/engine/events/pick_up_item.asm
@@ -1,7 +1,7 @@
PickUpItem:
call EnableAutoTextBoxDrawing
- ldh a, [hSpriteIndexOrTextID]
+ ldh a, [hSpriteIndex]
ld b, a
ld hl, wMissableObjectList
.missableObjectsListLoop
@@ -18,7 +18,7 @@ PickUpItem:
ldh [hMissableObjectIndex], a
ld hl, wMapSpriteExtraData
- ldh a, [hSpriteIndexOrTextID]
+ ldh a, [hSpriteIndex]
dec a
add a
ld d, 0
diff --git a/engine/events/poison.asm b/engine/events/poison.asm
index 9f3ad391..3b0acbe4 100644
--- a/engine/events/poison.asm
+++ b/engine/events/poison.asm
@@ -1,12 +1,13 @@
ApplyOutOfBattlePoisonDamage:
- ld a, [wd730]
- add a
+ ld a, [wStatusFlags5]
+ assert BIT_SCRIPTED_MOVEMENT_STATE == 7
+ add a ; overflows scripted movement state bit into carry flag
jp c, .noBlackOut ; no black out if joypad states are being simulated
ld a, [wd492]
bit 7, a
jp nz, .noBlackOut
- ld a, [wd72e]
- bit 6, a
+ ld a, [wStatusFlags4]
+ bit BIT_LINK_CONNECTED, a
jp nz, .noBlackOut
ld a, [wPartyCount]
and a
@@ -50,7 +51,7 @@ ApplyOutOfBattlePoisonDamage:
inc hl
ld [hl], a
ld a, [de]
- ld [wd11e], a
+ ld [wPokedexNum], a
push de
ld a, [wWhichPokemon]
ld hl, wPartyMonNicks
@@ -59,7 +60,7 @@ ApplyOutOfBattlePoisonDamage:
ld [wJoyIgnore], a
call EnableAutoTextBoxDrawing
ld a, TEXT_MON_FAINTED
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
callfar IsThisPartymonStarterPikachu_Party
jr nc, .curMonNotPlayerPikachu
@@ -112,10 +113,10 @@ ApplyOutOfBattlePoisonDamage:
jr nz, .noBlackOut
call EnableAutoTextBoxDrawing
ld a, TEXT_BLACKED_OUT
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
- ld hl, wd72e
- set 5, [hl]
+ ld hl, wStatusFlags4
+ set BIT_BATTLE_OVER_OR_BLACKOUT, [hl]
ld a, $ff
jr .done
.noBlackOut
diff --git a/engine/events/pokecenter.asm b/engine/events/pokecenter.asm
index e007030a..820be66a 100644
--- a/engine/events/pokecenter.asm
+++ b/engine/events/pokecenter.asm
@@ -11,10 +11,10 @@ DisplayPokemonCenterDialogue_::
call SaveScreenTilesToBuffer1 ; save screen
ld hl, PokemonCenterWelcomeText
call PrintText
- ld hl, wd72e
- bit 2, [hl]
- set 1, [hl]
- set 2, [hl]
+ ld hl, wStatusFlags4
+ bit BIT_USED_POKECENTER, [hl]
+ set BIT_UNKNOWN_4_1, [hl]
+ set BIT_USED_POKECENTER, [hl]
jr nz, .skipShallWeHealYourPokemon
ld hl, ShallWeHealYourPokemonText
call PrintText
diff --git a/engine/events/pokemart.asm b/engine/events/pokemart.asm
index a1d69c72..b280c711 100644
--- a/engine/events/pokemart.asm
+++ b/engine/events/pokemart.asm
@@ -72,7 +72,7 @@ DisplayPokemartDialogue_::
ld a, [wIsKeyItem]
and a
jr nz, .unsellableItem
- ld a, [wcf91]
+ ld a, [wCurItem]
call IsItemHM
jr c, .unsellableItem
ld a, PRICEDITEMLISTMENU
@@ -156,8 +156,8 @@ DisplayPokemartDialogue_::
call DisplayChooseQuantityMenu
inc a
jr z, .buyMenuLoop ; if the player closed the choose quantity menu with the B button
- ld a, [wcf91] ; item ID
- ld [wd11e], a ; store item ID for GetItemName
+ ld a, [wCurItem]
+ ld [wNamedObjectIndex], a
call GetItemName
call CopyToStringBuffer
ld hl, PokemartTellBuyPriceText
diff --git a/engine/events/prize_menu.asm b/engine/events/prize_menu.asm
index 47bb1062..a365f45f 100644
--- a/engine/events/prize_menu.asm
+++ b/engine/events/prize_menu.asm
@@ -5,8 +5,8 @@ CeladonPrizeMenu::
ld hl, RequireCoinCaseTextPtr
jp PrintText
.havingCoinCase
- ld hl, wd730
- set 6, [hl] ; disable letter-printing delay
+ ld hl, wStatusFlags5
+ set BIT_NO_TEXT_DELAY, [hl]
ld hl, ExchangeCoinsForPrizesTextPtr
call PrintText
; the following are the menu settings
@@ -37,8 +37,8 @@ CeladonPrizeMenu::
jr z, .noChoice
call HandlePrizeChoice
.noChoice
- ld hl, wd730
- res 6, [hl]
+ ld hl, wStatusFlags5
+ res BIT_NO_TEXT_DELAY, [hl]
ret
RequireCoinCaseTextPtr:
@@ -55,17 +55,14 @@ WhichPrizeTextPtr:
text_end
GetPrizeMenuId:
-; determine which one among the three
-; prize-texts has been selected
-; using the text ID (stored in [hSpriteIndexOrTextID])
-; load the three prizes at wd13d-wd13f
-; load the three prices at wd141-wd146
-; display the three prizes' names
-; (distinguishing between Pokemon names
-; and Items (specifically TMs) names)
- ldh a, [hSpriteIndexOrTextID]
- sub 3 ; prize-texts' id are 3, 4 and 5
- ld [wWhichPrizeWindow], a ; prize-texts' id (relative, i.e. 0, 1 or 2)
+; determine which one among the three prize texts has been selected using the text ID (stored in [hTextID])
+; prize texts' IDs are TEXT_GAMECORNERPRIZEROOM_PRIZE_VENDOR_1-TEXT_GAMECORNERPRIZEROOM_PRIZE_VENDOR_3
+; load the three prizes at wPrize1-wPrice3
+; load the three prices at wPrize1Price-wPrize3Price
+; display the three prizes' names, distinguishing between Pokemon names and item names (specifically TMs)
+ ldh a, [hTextID]
+ sub TEXT_GAMECORNERPRIZEROOM_PRIZE_VENDOR_1
+ ld [wWhichPrizeWindow], a ; prize texts' relative ID (i.e. 0-2)
add a
add a
ld d, 0
@@ -87,37 +84,37 @@ GetPrizeMenuId:
ld bc, 6
call CopyData
ld a, [wWhichPrizeWindow]
- cp 2 ;is TM_menu?
+ cp 2 ; is TM_menu?
jr nz, .putMonName
ld a, [wPrize1]
- ld [wd11e], a
+ ld [wNamedObjectIndex], a
call GetItemName
hlcoord 2, 4
call PlaceString
ld a, [wPrize2]
- ld [wd11e], a
+ ld [wNamedObjectIndex], a
call GetItemName
hlcoord 2, 6
call PlaceString
ld a, [wPrize3]
- ld [wd11e], a
+ ld [wNamedObjectIndex], a
call GetItemName
hlcoord 2, 8
call PlaceString
jr .putNoThanksText
.putMonName
ld a, [wPrize1]
- ld [wd11e], a
+ ld [wNamedObjectIndex], a
call GetMonName
hlcoord 2, 4
call PlaceString
ld a, [wPrize2]
- ld [wd11e], a
+ ld [wNamedObjectIndex], a
call GetMonName
hlcoord 2, 6
call PlaceString
ld a, [wPrize3]
- ld [wd11e], a
+ ld [wNamedObjectIndex], a
call GetMonName
hlcoord 2, 8
call PlaceString
@@ -193,7 +190,7 @@ HandlePrizeChoice:
ld hl, wPrize1
add hl, de
ld a, [hl]
- ld [wd11e], a
+ ld [wNamedObjectIndex], a
ld a, [wWhichPrizeWindow]
cp 2 ; is prize a TM?
jr nz, .getMonName
@@ -212,9 +209,9 @@ HandlePrizeChoice:
call HasEnoughCoins
jr c, .notEnoughCoins
ld a, [wWhichPrizeWindow]
- cp $02
+ cp 2 ; is prize a TM?
jr nz, .giveMon
- ld a, [wd11e]
+ ld a, [wNamedObjectIndex]
ld b, a
ld a, 1
ld c, a
@@ -222,8 +219,8 @@ HandlePrizeChoice:
jr nc, .bagFull
jr .subtractCoins
.giveMon
- ld a, [wd11e]
- ld [wcf91], a
+ ld a, [wNamedObjectIndex]
+ ld [wCurPartySpecies], a
push af
call GetPrizeMonLevel
ld c, a
@@ -288,7 +285,7 @@ OhFineThenTextPtr:
text_end
GetPrizeMonLevel:
- ld a, [wcf91]
+ ld a, [wCurPartySpecies]
ld b, a
ld hl, PrizeMonLevelDictionary
.loop
@@ -299,7 +296,7 @@ GetPrizeMonLevel:
jr .loop
.matchFound
ld a, [hl]
- ld [wCurEnemyLVL], a
+ ld [wCurEnemyLevel], a
ret
INCLUDE "data/events/prize_mon_levels.asm"
diff --git a/engine/events/vending_machine.asm b/engine/events/vending_machine.asm
index 68dfadfb..bfe32ef6 100644
--- a/engine/events/vending_machine.asm
+++ b/engine/events/vending_machine.asm
@@ -15,8 +15,8 @@ VendingMachineMenu::
ld [wTopMenuItemY], a
ld a, 1
ld [wTopMenuItemX], a
- ld hl, wd730
- set 6, [hl]
+ ld hl, wStatusFlags5
+ set BIT_NO_TEXT_DELAY, [hl]
hlcoord 0, 3
lb bc, 8, 12
call TextBoxBorder
@@ -27,8 +27,8 @@ VendingMachineMenu::
hlcoord 9, 6
ld de, DrinkPriceText
call PlaceString
- ld hl, wd730
- res 6, [hl]
+ ld hl, wStatusFlags5
+ res BIT_NO_TEXT_DELAY, [hl]
call HandleMenuInput
bit BIT_B_BUTTON, a
jr nz, .notThirsty
diff --git a/engine/gfx/bg_map_attributes.asm b/engine/gfx/bg_map_attributes.asm
index 55313846..740e9994 100644
--- a/engine/gfx/bg_map_attributes.asm
+++ b/engine/gfx/bg_map_attributes.asm
@@ -34,7 +34,7 @@ LoadBGMapAttributes::
ldh [rHDMA4], a
ldh a, [rLCDC]
- and rLCDC_ENABLE_MASK ; is LCD off?
+ and 1 << rLCDC_ENABLE ; is LCD off?
jr z, .lcdOff ; if off, transfer immediately
; wait for VBlank if LCD is on
.waitForVBlankLoop1
@@ -68,7 +68,7 @@ LoadBGMapAttributes::
ldh [rHDMA4], a
; LCD check again
ldh a, [rLCDC]
- and rLCDC_ENABLE_MASK ; is LCD off?
+ and 1 << rLCDC_ENABLE ; is LCD off?
jr z, .lcdOff2 ; if off, transfer immediately
; wait for VBlank if LCD is on
.waitForVBlankLoop2
diff --git a/engine/gfx/hp_bar.asm b/engine/gfx/hp_bar.asm
index 6db3956d..b25f5c49 100644
--- a/engine/gfx/hp_bar.asm
+++ b/engine/gfx/hp_bar.asm
@@ -215,7 +215,7 @@ UpdateHPBar_PrintHPNumber:
push hl
ld de, $15
ldh a, [hUILayoutFlags]
- bit 0, a
+ bit BIT_PARTY_MENU_HP_BAR, a
jr z, .hpBelowBar
ld de, $9
.hpBelowBar
diff --git a/engine/gfx/mon_icons.asm b/engine/gfx/mon_icons.asm
index dce62c9a..c82e00c0 100644
--- a/engine/gfx/mon_icons.asm
+++ b/engine/gfx/mon_icons.asm
@@ -208,9 +208,9 @@ WriteMonPartySpriteOAMBySpecies:
UnusedPartyMonSpriteFunction:
; This function is unused and doesn't appear to do anything useful. It looks
; like it may have been intended to load the tile patterns and OAM data for
-; the mon party sprite associated with the species in [wcf91].
+; the mon party sprite associated with the species in [wCurPartySpecies].
; However, its calculations are off and it loads garbage data.
- ld a, [wcf91]
+ ld a, [wCurPartySpecies]
call GetPartyMonSpriteID
push af
ld hl, vSprites tile $00
@@ -270,9 +270,9 @@ WriteMonPartySpriteOAM:
jp CopyData
GetPartyMonSpriteID:
- ld [wd11e], a
+ ld [wPokedexNum], a
predef IndexToPokedex
- ld a, [wd11e]
+ ld a, [wPokedexNum]
ld c, a
dec a
srl a
@@ -281,7 +281,7 @@ GetPartyMonSpriteID:
ld d, 0
add hl, de
ld a, [hl]
- bit 0, c
+ bit 0, c ; even or odd?
jr nz, .skipSwap
swap a ; use lower nybble if pokedex num is even
.skipSwap
diff --git a/engine/gfx/palettes.asm b/engine/gfx/palettes.asm
index 26bffb4f..d9ae4369 100644
--- a/engine/gfx/palettes.asm
+++ b/engine/gfx/palettes.asm
@@ -75,7 +75,7 @@ SetPal_StatusScreen:
ld de, wPalPacket
ld bc, $10
call CopyData
- ld a, [wcf91]
+ ld a, [wCurPartySpecies]
cp NUM_POKEMON_INDEXES + 1
jr c, .pokemon
ld a, $1 ; not pokemon
@@ -103,7 +103,7 @@ SetPal_Pokedex:
ld de, wPalPacket
ld bc, $10
call CopyData
- ld a, [wcf91]
+ ld a, [wCurPartySpecies]
call DeterminePaletteIDOutOfBattle
ld hl, wPalPacket + 3
ld [hl], a
@@ -297,13 +297,13 @@ BadgeBlkDataLengths:
DeterminePaletteID:
ld a, [hl]
DeterminePaletteIDOutOfBattle:
- ld [wd11e], a
+ ld [wPokedexNum], a
and a ; is the mon index 0?
jr z, .skipDexNumConversion
push bc
predef IndexToPokedex
pop bc
- ld a, [wd11e]
+ ld a, [wPokedexNum]
.skipDexNumConversion
ld e, a
ld d, 0
@@ -723,7 +723,7 @@ SendSGBPackets:
pop hl
call InitGBCPalettes
ldh a, [rLCDC]
- and rLCDC_ENABLE_MASK
+ and 1 << rLCDC_ENABLE
ret z
call Delay3
ret
@@ -853,7 +853,7 @@ TransferCurBGPData::
ld hl, wGBCPal
ld b, %10 ; mask for non-V-blank/non-H-blank STAT mode
ldh a, [rLCDC]
- and rLCDC_ENABLE_MASK
+ and 1 << rLCDC_ENABLE
jr nz, .lcdEnabled
REPT NUM_PAL_COLORS
call TransferPalColorLCDDisabled
@@ -892,7 +892,7 @@ BufferBGPPal::
TransferBGPPals::
; Transfer the buffered BG palettes.
ldh a, [rLCDC]
- and rLCDC_ENABLE_MASK
+ and 1 << rLCDC_ENABLE
jr z, .lcdDisabled
di
.waitLoop
@@ -929,7 +929,7 @@ TransferCurOBPData:
ld hl, wGBCPal
ld b, %10 ; mask for non-V-blank/non-H-blank STAT mode
ldh a, [rLCDC]
- and rLCDC_ENABLE_MASK
+ and 1 << rLCDC_ENABLE
jr nz, .lcdEnabled
REPT NUM_PAL_COLORS
call TransferPalColorLCDDisabled
diff --git a/engine/gfx/screen_effects.asm b/engine/gfx/screen_effects.asm
index 973a951a..0b4da01b 100644
--- a/engine/gfx/screen_effects.asm
+++ b/engine/gfx/screen_effects.asm
@@ -63,7 +63,7 @@ PredefShakeScreenHorizontally:
ldh a, [hMutateWX]
xor b
ldh [hMutateWX], a
- bit 7, a
+ bit 7, a ; negative?
jr z, .skipZeroing
xor a ; zero a if it's negative
.skipZeroing
diff --git a/engine/gfx/sprite_oam.asm b/engine/gfx/sprite_oam.asm
index 4660eaf6..c0cc0b4f 100644
--- a/engine/gfx/sprite_oam.asm
+++ b/engine/gfx/sprite_oam.asm
@@ -113,7 +113,7 @@ PrepareOAMData::
inc hl
inc e
ld a, [hl]
- bit 1, a ; is the tile allowed to set the sprite priority bit?
+ bit BIT_SPRITE_UNDER_GRASS, a
jr z, .skipPriority
ldh a, [hSpritePriority]
or [hl]
@@ -139,8 +139,8 @@ PrepareOAMData::
; Clear unused OAM.
.asm_4a41
- ld a, [wd736]
- bit 6, a ; jumping down ledge or fishing animation?
+ ld a, [wMovementFlags]
+ bit BIT_LEDGE_OR_FISHING, a
ld c, $a0
jr z, .clear
diff --git a/engine/items/inventory.asm b/engine/items/inventory.asm
index e28edc6c..758c81d7 100644
--- a/engine/items/inventory.asm
+++ b/engine/items/inventory.asm
@@ -1,7 +1,7 @@
; function to add an item (in varying quantities) to the player's bag or PC box
; INPUT:
; hl = address of inventory (either wNumBagItems or wNumBoxItems)
-; [wcf91] = item ID
+; [wCurItem] = item ID
; [wItemQuantity] = item quantity
; sets carry flag if successful, unsets carry flag if unsuccessful
AddItemToInventory_::
@@ -30,7 +30,7 @@ AddItemToInventory_::
.notAtEndOfInventory
ld a, [hli]
ld b, a ; b = ID of current item in table
- ld a, [wcf91] ; a = ID of item being added
+ ld a, [wCurItem] ; a = ID of item being added
cp b ; does the current item in the table match the item being added?
jp z, .increaseItemQuantity ; if so, increase the item's quantity
inc hl
@@ -51,7 +51,7 @@ AddItemToInventory_::
ld c, a
ld b, 0
add hl, bc ; hl = address to store the item
- ld a, [wcf91]
+ ld a, [wCurItem]
ld [hli], a ; store item ID
ld a, [wItemQuantity]
ld [hli], a ; store item quantity
diff --git a/engine/items/item_effects.asm b/engine/items/item_effects.asm
index 5e502cfa..c39e223b 100644
--- a/engine/items/item_effects.asm
+++ b/engine/items/item_effects.asm
@@ -1,7 +1,7 @@
UseItem_::
ld a, 1
ld [wActionResultOrTookBattleTurn], a ; initialise to success value
- ld a, [wcf91] ;contains item_ID
+ ld a, [wCurItem]
cp HM01
jp nc, ItemUseTMHM
ld hl, ItemUsePtrTable
@@ -199,7 +199,7 @@ ItemUseBall:
ld b, a
; Get the item ID.
- ld hl, wcf91
+ ld hl, wCurItem
ld a, [hl]
; The Master Ball always succeeds.
@@ -263,7 +263,7 @@ ItemUseBall:
call Multiply
; Determine BallFactor. It's 8 for Great Balls and 12 for the others.
- ld a, [wcf91]
+ ld a, [wCurItem]
cp GREAT_BALL
ld a, 12
jr nz, .skip1
@@ -349,7 +349,7 @@ ItemUseBall:
; Poké Ball: BallFactor2 = 255
; Great Ball: BallFactor2 = 200
; Ultra/Safari Ball: BallFactor2 = 150
- ld a, [wcf91]
+ ld a, [wCurItem]
ld b, 255
cp POKE_BALL
jr z, .skip4
@@ -442,11 +442,11 @@ ItemUseBall:
ld [wDamageMultipliers], a
ld a, [wWhichPokemon]
push af
- ld a, [wcf91]
+ ld a, [wCurItem]
push af
predef MoveAnimation
pop af
- ld [wcf91], a
+ ld [wCurItem], a
pop af
ld [wWhichPokemon], a
@@ -504,15 +504,15 @@ ItemUseBall:
ld [hl], a
.skip6
- ld a, [wcf91]
+ ld a, [wCurPartySpecies]
push af
ld a, [wEnemyMonSpecies2]
- ld [wcf91], a
+ ld [wCurPartySpecies], a
ld a, [wEnemyMonLevel]
- ld [wCurEnemyLVL], a
+ ld [wCurEnemyLevel], a
callfar LoadEnemyMonData
pop af
- ld [wcf91], a
+ ld [wCurPartySpecies], a
pop hl
pop af
ld [hld], a
@@ -523,8 +523,8 @@ ItemUseBall:
ld [hl], a
ld a, [wEnemyMonSpecies]
ld [wCapturedMonSpecies], a
- ld [wcf91], a
- ld [wd11e], a
+ ld [wCurPartySpecies], a
+ ld [wPokedexNum], a
ld a, [wBattleType]
cp BATTLE_TYPE_OLD_MAN ; is this the old man battle?
jp z, .oldManCaughtMon ; if so, don't give the player the caught Pokémon
@@ -535,7 +535,7 @@ ItemUseBall:
; Add the caught Pokémon to the Pokédex.
predef IndexToPokedex
- ld a, [wd11e]
+ ld a, [wPokedexNum]
dec a
ld c, a
ld b, FLAG_TEST
@@ -543,7 +543,7 @@ ItemUseBall:
predef FlagActionPredef
ld a, c
push af
- ld a, [wd11e]
+ ld a, [wPokedexNum]
dec a
ld c, a
ld b, FLAG_SET
@@ -557,7 +557,7 @@ ItemUseBall:
call PrintText
call ClearSprites
ld a, [wEnemyMonSpecies]
- ld [wd11e], a
+ ld [wPokedexNum], a
predef ShowPokedexData
.skipShowingPokedexData
@@ -710,8 +710,8 @@ ItemUseSurfboard:
jp c, SurfingAttemptFailed
.surf
call .makePlayerMoveForward
- ld hl, wd730
- set 7, [hl]
+ ld hl, wStatusFlags5
+ set BIT_SCRIPTED_MOVEMENT_STATE, [hl]
ld a, 2
ld [wWalkBikeSurfState], a ; change player state to surfing
call PlayDefaultMusic ; play surfing music
@@ -720,11 +720,11 @@ ItemUseSurfboard:
.tryToStopSurfing
xor a
- ldh [hSpriteIndexOrTextID], a
+ ldh [hSpriteIndex], a
ld d, 16 ; talking range in pixels (normal range)
call IsSpriteInFrontOfPlayer2
- res 7, [hl]
- ldh a, [hSpriteIndexOrTextID]
+ res BIT_FACE_PLAYER, [hl]
+ ldh a, [hSpriteIndex]
and a ; is there a sprite in the way?
jr nz, .cannotStopSurfing
ld hl, TilePairCollisionsWater
@@ -744,8 +744,8 @@ ItemUseSurfboard:
ld [wPikachuSpawnState], a
ld hl, wPikachuOverworldStateFlags
set 5, [hl]
- ld hl, wd730
- set 7, [hl]
+ ld hl, wStatusFlags5
+ set BIT_SCRIPTED_MOVEMENT_STATE, [hl]
xor a
ld [wWalkBikeSurfState], a ; change player state to walking
dec a
@@ -771,7 +771,7 @@ ItemUseSurfboard:
ld a, b
ld [wSimulatedJoypadStatesEnd], a
xor a
- ld [wUnusedCD39], a
+ ld [wUnusedSimulatedJoypadStatesMask], a
inc a
ld [wSimulatedJoypadStatesIndex], a
ret
@@ -793,7 +793,7 @@ ItemUseEvoStone:
jp nz, ItemUseNotTime
ld a, [wWhichPokemon]
push af
- ld a, [wcf91]
+ ld a, [wCurItem]
ld [wEvoStoneItemID], a
push af
ld a, EVO_STONE_PARTY_MENU
@@ -801,12 +801,12 @@ ItemUseEvoStone:
ld a, $ff
ld [wUpdateSpritesEnabled], a
call DisplayPartyMenu
- ld a, [wcf91]
+ ld a, [wCurPartySpecies]
ld [wLoadedMon], a
pop bc
jr c, .canceledItemUse
ld a, b
- ld [wcf91], a
+ ld [wCurPartySpecies], a
call Func_d85d
jr nc, .noEffect
callfar IsThisPartymonStarterPikachu_Party
@@ -854,19 +854,19 @@ Func_d85d:
ld b, $0
add hl, bc
add hl, bc
- ld de, wcd6d
+ ld de, wEvoDataBuffer
ld a, BANK(TryEvolvingMon)
ld bc, $2
call FarCopyData
- ld hl, wcd6d
+ ld hl, wEvoDataBuffer
ld a, [hli]
ld h, [hl]
ld l, a
- ld de, wcd6d
+ ld de, wEvoDataBuffer
ld a, BANK(TryEvolvingMon)
ld bc, 13
call FarCopyData
- ld hl, wcd6d
+ ld hl, wEvoDataBuffer
.loop
ld a, [hli]
and a
@@ -878,7 +878,7 @@ Func_d85d:
dec hl
dec hl
ld b, [hl]
- ld a, [wcf91]
+ ld a, [wCurItem]
inc hl
inc hl
inc hl
@@ -906,7 +906,7 @@ ItemUseMedicine:
jp z, Func_e4bf
ld a, [wWhichPokemon]
push af
- ld a, [wcf91]
+ ld a, [wCurItem]
push af
ld a, USE_ITEM_PARTY_MENU
ld [wPartyMenuTypeOrMessageID], a
@@ -929,9 +929,9 @@ ItemUseMedicine:
ld a, [wWhichPokemon]
ld [wUsedItemOnWhichPokemon], a
ld d, a
- ld a, [wcf91]
+ ld a, [wCurPartySpecies]
ld e, a
- ld [wd0b5], a
+ ld [wCurSpecies], a
pop af
push af
cp CALCIUM + 1
@@ -943,7 +943,7 @@ ItemUseMedicine:
pop hl
.noHappinessBoost
pop af
- ld [wcf91], a
+ ld [wCurItem], a
pop af
ld [wWhichPokemon], a
ld a, [wPseudoItemID]
@@ -954,7 +954,7 @@ ItemUseMedicine:
cp d ; is the pokemon trying to use softboiled on itself?
jr z, ItemUseMedicine ; if so, force another choice
.checkItemType
- ld a, [wcf91]
+ ld a, [wCurItem]
cp REVIVE
jr nc, .healHP ; if it's a Revive or Max Revive
cp FULL_HEAL
@@ -967,7 +967,7 @@ ItemUseMedicine:
.cureStatusAilment
ld bc, wPartyMon1Status - wPartyMon1
add hl, bc ; hl now points to status
- ld a, [wcf91]
+ ld a, [wCurItem]
lb bc, ANTIDOTE_MSG, 1 << PSN
cp ANTIDOTE
jr z, .checkMonStatus
@@ -1022,7 +1022,7 @@ ItemUseMedicine:
or b
jr nz, .notFainted
.fainted
- ld a, [wcf91]
+ ld a, [wCurItem]
cp REVIVE
jr z, .updateInBattleFaintedData
cp MAX_REVIVE
@@ -1070,7 +1070,7 @@ ItemUseMedicine:
jr .compareCurrentHPToMaxHP
.notFainted
- ld a, [wcf91]
+ ld a, [wCurItem]
cp REVIVE
jp z, .healingItemNoEffect
cp MAX_REVIVE
@@ -1090,7 +1090,7 @@ ItemUseMedicine:
pop hl
jr nz, .notFullHP
.fullHP ; if the pokemon's current HP equals its max HP
- ld a, [wcf91]
+ ld a, [wCurItem]
cp FULL_RESTORE
jp nz, .healingItemNoEffect
inc hl
@@ -1099,7 +1099,7 @@ ItemUseMedicine:
and a ; does the pokemon have a status ailment?
jp z, .healingItemNoEffect
ld a, FULL_HEAL
- ld [wcf91], a
+ ld [wCurItem], a
dec hl
dec hl
dec hl
@@ -1169,13 +1169,13 @@ ItemUseMedicine:
ld a, SFX_HEAL_HP
call PlaySoundWaitForCurrent
ldh a, [hUILayoutFlags]
- set 0, a
+ set BIT_PARTY_MENU_HP_BAR, a
ldh [hUILayoutFlags], a
ld a, $02
ld [wHPBarType], a
predef UpdateHPBar2 ; animate HP bar decrease of pokemon that used Softboiled
ldh a, [hUILayoutFlags]
- res 0, a
+ res BIT_PARTY_MENU_HP_BAR, a
ldh [hUILayoutFlags], a
pop af
ld b, a ; store heal amount (1/5 of max HP)
@@ -1191,7 +1191,7 @@ ItemUseMedicine:
jr .addHealAmount
.notUsingSoftboiled2
- ld a, [wcf91]
+ ld a, [wCurItem]
cp SODA_POP
ld b, 60 ; Soda Pop heal amount
jr z, .addHealAmount
@@ -1226,7 +1226,7 @@ ItemUseMedicine:
ld e, l ; de now points to current HP
ld hl, (wPartyMon1MaxHP + 1) - (wPartyMon1HP + 1)
add hl, de ; hl now points to max HP
- ld a, [wcf91]
+ ld a, [wCurItem]
cp REVIVE
jr z, .setCurrentHPToHalfMaxHP
ld a, [hld]
@@ -1238,7 +1238,7 @@ ItemUseMedicine:
ld a, [de]
sbc b
jr nc, .setCurrentHPToMaxHp ; if current HP exceeds max HP after healing
- ld a, [wcf91]
+ ld a, [wCurItem]
cp HYPER_POTION
jr c, .setCurrentHPToMaxHp ; if using a Full Restore or Max Potion
cp MAX_REVIVE
@@ -1270,7 +1270,7 @@ ItemUseMedicine:
ld [wHPBarNewHP], a
dec de
.doneHealingPartyHP ; done updating the pokemon's current HP in the party data structure
- ld a, [wcf91]
+ ld a, [wCurItem]
cp FULL_RESTORE
jr nz, .updateInBattleData
ld bc, wPartyMon1Status - (wPartyMon1MaxHP + 1)
@@ -1289,7 +1289,7 @@ ItemUseMedicine:
ld [wBattleMonHP], a
ld a, [hld]
ld [wBattleMonHP + 1], a
- ld a, [wcf91]
+ ld a, [wCurItem]
cp FULL_RESTORE
jr nz, .calculateHPBarCoords
xor a
@@ -1316,7 +1316,7 @@ ItemUseMedicine:
call RemoveUsedItem
pop hl
.skipRemovingItem
- ld a, [wcf91]
+ ld a, [wCurItem]
cp FULL_RESTORE
jr c, .playStatusAilmentCuringSound
cp FULL_HEAL
@@ -1324,17 +1324,17 @@ ItemUseMedicine:
ld a, SFX_HEAL_HP
call PlaySoundWaitForCurrent
ldh a, [hUILayoutFlags]
- set 0, a
+ set BIT_PARTY_MENU_HP_BAR, a
ldh [hUILayoutFlags], a
ld a, $02
ld [wHPBarType], a
predef UpdateHPBar2 ; animate the HP bar lengthening
ldh a, [hUILayoutFlags]
- res 0, a
+ res BIT_PARTY_MENU_HP_BAR, a
ldh [hUILayoutFlags], a
ld a, REVIVE_MSG
ld [wPartyMenuTypeOrMessageID], a
- ld a, [wcf91]
+ ld a, [wCurItem]
cp REVIVE
jr z, .showHealingItemMessage
cp MAX_REVIVE
@@ -1379,12 +1379,12 @@ ItemUseMedicine:
.useVitamin
push hl
ld a, [hl]
- ld [wd0b5], a
- ld [wd11e], a
+ ld [wCurSpecies], a
+ ld [wPokedexNum], a
ld bc, wPartyMon1Level - wPartyMon1
add hl, bc ; hl now points to level
ld a, [hl] ; a = level
- ld [wCurEnemyLVL], a ; store level
+ ld [wCurEnemyLevel], a ; store level
call GetMonHeader
push de
ld a, d
@@ -1392,7 +1392,7 @@ ItemUseMedicine:
call GetPartyMonName
pop de
pop hl
- ld a, [wcf91]
+ ld a, [wCurItem]
cp RARE_CANDY
jp z, .useRareCandy
push hl
@@ -1418,7 +1418,7 @@ ItemUseMedicine:
pop hl
call .recalculateStats
ld hl, VitaminStats
- ld a, [wcf91]
+ ld a, [wCurItem]
sub HP_UP - 1
ld c, a
.statNameLoop ; loop to get the address of the name of the stat the vitamin increases
@@ -1466,7 +1466,7 @@ ItemUseMedicine:
jr z, .vitaminNoEffect ; can't raise level above 100
inc a
ld [hl], a ; store incremented level
- ld [wCurEnemyLVL], a
+ ld [wCurEnemyLevel], a
push hl
push de
ld d, a
@@ -1485,7 +1485,7 @@ ItemUseMedicine:
pop hl
ld a, [wWhichPokemon]
push af
- ld a, [wcf91]
+ ld a, [wCurItem]
push af
push de
push hl
@@ -1524,7 +1524,7 @@ ItemUseMedicine:
ld a, d
ld [wWhichPokemon], a
ld a, e
- ld [wd11e], a
+ ld [wPokedexNum], a
xor a ; PLAYER_PARTY_DATA
ld [wMonDataLocation], a
call LoadMonData
@@ -1550,7 +1550,7 @@ ItemUseMedicine:
ld a, $01
ld [wUpdateSpritesEnabled], a
pop af
- ld [wcf91], a
+ ld [wCurItem], a
pop af
ld [wWhichPokemon], a
jp RemoveUsedItem
@@ -1647,12 +1647,12 @@ ItemUseEscapeRope:
jr z, .notUsable
cp b
jr nz, .loop
- ld hl, wd732
- set 3, [hl]
- set 6, [hl]
+ ld hl, wStatusFlags6
+ set BIT_FLY_WARP, [hl]
+ set BIT_ESCAPE_WARP, [hl]
call Func_1510
- ld hl, wd72e
- res 4, [hl]
+ ld hl, wStatusFlags4
+ res BIT_NO_BATTLES, [hl]
ResetEvent EVENT_IN_SAFARI_ZONE
xor a
ld [wNumSafariBalls], a
@@ -1698,7 +1698,7 @@ ItemUseXAccuracy:
; The Card Key is handled in a different way.
ItemUseCardKey:
xor a
- ld [wUnusedD71F], a
+ ld [wUnusedCardKeyGateID], a
call GetTileAndCoordsInFrontOfPlayer
ld a, [GetTileAndCoordsInFrontOfPlayer]
cp $18
@@ -1732,7 +1732,7 @@ ItemUseCardKey:
cp e
jr nz, .nextEntry3
ld a, [hl]
- ld [wUnusedD71F], a
+ ld [wUnusedCardKeyGateID], a
jr .done
.nextEntry1
@@ -1746,8 +1746,8 @@ ItemUseCardKey:
.done
ld hl, ItemUseText00
call PrintText
- ld hl, wd728
- set 7, [hl]
+ ld hl, wStatusFlags1
+ set BIT_UNUSED_CARD_KEY, [hl] ; never checked
ret
INCLUDE "data/events/card_key_coords.asm"
@@ -1818,7 +1818,7 @@ ItemUseXStat:
ld a, [hl]
push af ; save [wPlayerMoveEffect]
push hl
- ld a, [wcf91]
+ ld a, [wCurItem]
sub X_ATTACK - ATTACK_UP1_EFFECT
ld [hl], a ; store player move effect
call PrintItemUseTextAndRemoveItem
@@ -2087,7 +2087,7 @@ RodResponse:
ld a, 1
ld [wMoveMissed], a
ld a, b ; level
- ld [wCurEnemyLVL], a
+ ld [wCurEnemyLevel], a
ld a, c ; species
ld [wCurOpponent], a
@@ -2175,7 +2175,7 @@ ItemUsePPUp:
ItemUsePPRestore:
ld a, [wWhichPokemon]
push af
- ld a, [wcf91]
+ ld a, [wCurItem]
ld [wPPRestoreItem], a
.chooseMon
xor a
@@ -2225,7 +2225,7 @@ ItemUsePPRestore:
call GetSelectedMoveOffset
push hl
ld a, [hl]
- ld [wd11e], a
+ ld [wNamedObjectIndex], a
call GetMoveName
call CopyToStringBuffer
pop hl
@@ -2247,7 +2247,7 @@ ItemUsePPRestore:
add 1 << 6 ; increase PP Up count by 1
ld [hl], a
ld a, 1 ; 1 PP Up used
- ld [wd11e], a
+ ld [wUsingPPUp], a
call RestoreBonusPP ; add the bonus PP to current PP
ld a, SFX_HEAL_AILMENT
call PlaySound
@@ -2400,16 +2400,16 @@ ItemUseTMHM:
ld a, [wIsInBattle]
and a
jp nz, ItemUseNotTime
- ld a, [wcf91]
+ ld a, [wCurItem]
sub TM01 ; underflows below 0 for HM items (before TM items)
push af
jr nc, .skipAdding
add NUM_TMS + NUM_HMS ; adjust HM IDs to come after TM IDs
.skipAdding
inc a
- ld [wd11e], a
+ ld [wTempTMHM], a
predef TMToMove ; get move ID from TM/HM ID
- ld a, [wd11e]
+ ld a, [wTempTMHM]
ld [wMoveNum], a
call GetMoveName
call CopyToStringBuffer
@@ -2436,7 +2436,7 @@ ItemUseTMHM:
.useMachine
ld a, [wWhichPokemon]
push af
- ld a, [wcf91]
+ ld a, [wCurItem]
push af
.chooseMon
ld hl, wStringBuffer
@@ -2486,7 +2486,7 @@ ItemUseTMHM:
ld a, [wWhichPokemon]
ld d, a
pop af
- ld [wcf91], a
+ ld [wCurItem], a
pop af
ld [wWhichPokemon], a
ld a, b
@@ -2500,7 +2500,7 @@ ItemUseTMHM:
callabd_ModifyPikachuHappiness PIKAHAPPY_USEDTMHM
callfar IsThisPartymonStarterPikachu_Party
jr nc, .notTeachingThunderboltOrThunderToPikachu
- ld a, [wcf91]
+ ld a, [wCurItem]
cp TM_THUNDERBOLT ; are we teaching thunderbolt to the player pikachu?
jr z, .teachingThunderboltOrThunderToPlayerPikachu
cp TM_THUNDER ; are we teaching thunder then?
@@ -2514,7 +2514,7 @@ ItemUseTMHM:
pop af
ld [wWhichPokemon], a
- ld a, [wcf91]
+ ld a, [wCurItem]
call IsItemHM
ret c
jp RemoveUsedItem
@@ -2775,10 +2775,10 @@ GetMaxPP:
ld hl, Moves
ld bc, MOVE_LENGTH
call AddNTimes
- ld de, wcd6d
+ ld de, wMoveData
ld a, BANK(Moves)
call FarCopyData
- ld de, wcd6d + 5 ; PP is byte 5 of move data
+ ld de, wMoveData + MOVE_PP
ld a, [de]
ld b, a ; b = normal max PP
pop hl
@@ -2794,9 +2794,10 @@ GetMaxPP:
and %11000000 ; get PP Up count
pop bc
or b ; place normal max PP in 6 lower bits of a
+ assert wMoveData + MOVE_PP + 1 == wPPUpCountAndMaxPP
ld h, d
ld l, e
- inc hl ; hl = wcd73
+ inc hl ; hl = wPPUpCountAndMaxPP
ld [hl], a
xor a ; add the bonus for the existing PP Up count
ld [wUsingPPUp], a
@@ -2820,14 +2821,14 @@ GetSelectedMoveOffset2:
; confirms the item toss and then tosses the item
; INPUT:
; hl = address of inventory (either wNumBagItems or wNumBoxItems)
-; [wcf91] = item ID
+; [wCurItem] = item ID
; [wWhichPokemon] = index of item within inventory
; [wItemQuantity] = quantity to toss
; OUTPUT:
; clears carry flag if the item is tossed, sets carry flag if not
TossItem_::
push hl
- ld a, [wcf91]
+ ld a, [wCurItem]
call IsItemHM
pop hl
jr c, .tooImportantToToss
@@ -2838,8 +2839,8 @@ TossItem_::
and a
jr nz, .tooImportantToToss
push hl
- ld a, [wcf91]
- ld [wd11e], a
+ ld a, [wCurItem]
+ ld [wNamedObjectIndex], a
call GetItemName
call CopyToStringBuffer
ld hl, IsItOKToTossItemText
@@ -2858,8 +2859,8 @@ TossItem_::
push hl
ld a, [wWhichPokemon]
call RemoveItemFromInventory
- ld a, [wcf91]
- ld [wd11e], a
+ ld a, [wCurItem]
+ ld [wNamedObjectIndex], a
call GetItemName
call CopyToStringBuffer
ld hl, ThrewAwayItemText
@@ -2890,7 +2891,7 @@ TooImportantToTossText:
; checks if an item is a key item
; INPUT:
-; [wcf91] = item ID
+; [wCurItem] = item ID
; OUTPUT:
; [wIsKeyItem] = result
; 00: item is not key item
@@ -2898,7 +2899,7 @@ TooImportantToTossText:
IsKeyItem_::
ld a, $01
ld [wIsKeyItem], a
- ld a, [wcf91]
+ ld a, [wCurItem]
cp HM01 ; is the item an HM or TM?
jr nc, .checkIfItemIsHM
; if the item is not an HM or TM
@@ -2918,7 +2919,7 @@ IsKeyItem_::
and a
ret nz
.checkIfItemIsHM
- ld a, [wcf91]
+ ld a, [wCurItem]
call IsItemHM
ret c
xor a
@@ -2932,8 +2933,8 @@ SendNewMonToBox:
ld a, [de]
inc a
ld [de], a
- ld a, [wcf91]
- ld [wd0b5], a
+ ld a, [wCurPartySpecies]
+ ld [wCurSpecies], a
ld c, a
.loop
inc de
@@ -3057,7 +3058,7 @@ SendNewMonToBox:
ld [de], a
inc de
push de
- ld a, [wCurEnemyLVL]
+ ld a, [wCurEnemyLevel]
ld d, a
callfar CalcExperience
pop de
@@ -3091,7 +3092,7 @@ SendNewMonToBox:
ld [de], a
dec b
jr nz, .loop6
- ld a, [wcf91]
+ ld a, [wCurPartySpecies]
cp KADABRA
jr nz, .notKadabra
ld a, TWISTEDSPOON_GSC
@@ -3131,7 +3132,7 @@ ItemUseReloadOverworldData:
call LoadCurrentMapView
jp UpdateSprites
-; creates a list at wBuffer of maps where the mon in [wd11e] can be found.
+; creates a list at wBuffer of maps where the mon in [wPokedexNum] can be found.
; this is used by the pokedex to display locations the mon can be found on the map.
FindWildLocationsOfMon:
ld hl, WildDataPointers
@@ -3166,7 +3167,7 @@ CheckMapForMon:
inc hl
ld b, NUM_WILDMONS
.loop
- ld a, [wd11e]
+ ld a, [wPokedexNum]
cp [hl]
jr nz, .nextEntry
ld a, c
diff --git a/engine/items/tm_prices.asm b/engine/items/tm_prices.asm
index df9761bd..8e64e5d0 100644
--- a/engine/items/tm_prices.asm
+++ b/engine/items/tm_prices.asm
@@ -1,7 +1,7 @@
GetMachinePrice::
-; Input: [wcf91] = Item Id of a TM
+; Input: [wCurItem] = Item ID of a TM
; Output: Stores the TM price at hItemPrice
- ld a, [wcf91] ; a contains TM item id
+ ld a, [wCurItem]
sub TM01 ; underflows below 0 for HM items (before TM items)
ret c ; HMs are priceless
ld d, a
diff --git a/engine/items/tms.asm b/engine/items/tms.asm
index 40030675..06d60ad3 100644
--- a/engine/items/tms.asm
+++ b/engine/items/tms.asm
@@ -1,7 +1,7 @@
-; tests if mon [wcf91] can learn move [wMoveNum]
+; tests if mon [wCurPartySpecies] can learn move [wMoveNum]
CanLearnTM:
- ld a, [wcf91]
- ld [wd0b5], a
+ ld a, [wCurPartySpecies]
+ ld [wCurSpecies], a
call GetMonHeader
ld hl, wMonHLearnset
push hl
@@ -26,17 +26,17 @@ CanLearnTM:
ld c, 0
ret
-; converts TM/HM number in wd11e into move number
+; converts TM/HM number in [wTempTMHM] into move number
; HMs start at 51
TMToMove:
- ld a, [wd11e]
+ ld a, [wTempTMHM]
dec a
ld hl, TechnicalMachines
ld b, $0
ld c, a
add hl, bc
ld a, [hl]
- ld [wd11e], a
+ ld [wTempTMHM], a
ret
INCLUDE "data/moves/tmhm_moves.asm"
diff --git a/engine/items/town_map.asm b/engine/items/town_map.asm
index 1ed146f2..a49e751e 100644
--- a/engine/items/town_map.asm
+++ b/engine/items/town_map.asm
@@ -1,5 +1,7 @@
DEF NOT_VISITED EQU $fe
+DEF BIRD_BASE_TILE EQU $04
+
DisplayTownMap:
call LoadTownMap
ld hl, wUpdateSpritesEnabled
@@ -12,15 +14,15 @@ DisplayTownMap:
ld a, [wCurMap]
push af
ld b, $0
- call DrawPlayerOrBirdSprite ; player sprite
+ call DrawPlayerOrBirdSprite
hlcoord 1, 0
- ld de, wcd6d
+ ld de, wNameBuffer
call PlaceString
ld hl, wShadowOAM
ld de, wTileMapBackup
ld bc, $10
call CopyData
- ld hl, vSprites tile $04
+ ld hl, vSprites tile BIRD_BASE_TILE
ld de, TownMapCursor
lb bc, BANK(TownMapCursor), (TownMapCursorEnd - TownMapCursor) / $8
call CopyVideoDataDouble
@@ -50,15 +52,15 @@ DisplayTownMap:
ld hl, wShadowOAMSprite04
call WriteTownMapSpriteOAM ; town map cursor sprite
pop hl
- ld de, wcd6d
+ ld de, wNameBuffer
.copyMapName
ld a, [hli]
ld [de], a
inc de
- cp $50
+ cp "@"
jr nz, .copyMapName
hlcoord 1, 0
- ld de, wcd6d
+ ld de, wNameBuffer
call PlaceString
ld hl, wShadowOAMSprite04
ld de, wTileMapBackup + 16
@@ -73,9 +75,9 @@ DisplayTownMap:
jr z, .inputLoop
ld a, SFX_TINK
call PlaySound
- bit 6, b
+ bit BIT_D_UP, b
jr nz, .pressedUp
- bit 7, b
+ bit BIT_D_DOWN, b
jr nz, .pressedDown
xor a
ld [wTownMapSpriteBlinkingEnabled], a
@@ -153,7 +155,7 @@ LoadTownMap_Fly::
ld de, BirdSprite
ld b, BANK(BirdSprite)
ld c, 12
- ld hl, vSprites tile $04
+ ld hl, vSprites tile BIRD_BASE_TILE
call CopyVideoData
ld de, TownMapUpArrow
ld hl, vChars1 tile $6d
@@ -183,10 +185,10 @@ LoadTownMap_Fly::
call ClearScreenArea
pop hl
ld a, [hl]
- ld b, $4
- call DrawPlayerOrBirdSprite ; draw bird sprite
+ ld b, BIRD_BASE_TILE
+ call DrawPlayerOrBirdSprite
hlcoord 3, 0
- ld de, wcd6d
+ ld de, wNameBuffer
call PlaceString
ld c, 15
call DelayFrames
@@ -204,13 +206,13 @@ LoadTownMap_Fly::
pop hl
and A_BUTTON | B_BUTTON | D_UP | D_DOWN
jr z, .inputLoop
- bit 0, b
+ bit BIT_A_BUTTON, b
jr nz, .pressedA
ld a, SFX_TINK
call PlaySound
- bit 6, b
+ bit BIT_D_UP, b
jr nz, .pressedUp
- bit 7, b
+ bit BIT_D_DOWN, b
jr nz, .pressedDown
jr .pressedB
.pressedA
@@ -218,10 +220,11 @@ LoadTownMap_Fly::
call PlaySound
ld a, [hl]
ld [wDestinationMap], a
- ld hl, wd732
- set 3, [hl]
+ ld hl, wStatusFlags6
+ set BIT_FLY_WARP, [hl]
+ assert wStatusFlags6 + 1 == wStatusFlags7
inc hl
- set 7, [hl]
+ set BIT_USED_FLY, [hl]
.pressedB
xor a
ld [wTownMapSpriteBlinkingEnabled], a
@@ -365,7 +368,7 @@ DrawPlayerOrBirdSprite:
call TownMapCoordsToOAMCoords
call WritePlayerOrBirdSpriteOAM
pop hl
- ld de, wcd6d
+ ld de, wNameBuffer
.loop
ld a, [hli]
ld [de], a
diff --git a/engine/joypad.asm b/engine/joypad.asm
index d50eea08..8b514999 100644
--- a/engine/joypad.asm
+++ b/engine/joypad.asm
@@ -53,8 +53,8 @@ _Joypad::
ld a, b
ldh [hJoyLast], a
- ld a, [wd730]
- bit 5, a
+ ld a, [wStatusFlags5]
+ bit BIT_DISABLE_JOYPAD, a
jr nz, DiscardButtonPresses
ldh a, [hJoyLast]
diff --git a/engine/link/cable_club.asm b/engine/link/cable_club.asm
index 3c8ffcc2..f2b651fe 100644
--- a/engine/link/cable_club.asm
+++ b/engine/link/cable_club.asm
@@ -256,9 +256,9 @@ CableClub_DoBattleOrTradeAgain:
dec c
jr nz, .unpatchEnemyMonsLoop
ld a, LOW(wEnemyMonOT)
- ld [wUnusedCF8D], a
+ ld [wUnusedNamePointer], a
ld a, HIGH(wEnemyMonOT)
- ld [wUnusedCF8D + 1], a
+ ld [wUnusedNamePointer + 1], a
xor a
ld [wTradeCenterPointerTableIndex], a
call StopAllMusic
@@ -280,7 +280,7 @@ CableClub_DoBattleOrTradeAgain:
ld b, SET_PAL_OVERWORLD
call RunPaletteCommand
ld hl, wOptions
- res 7, [hl]
+ res BIT_BATTLE_ANIMATION, [hl]
ld a, [wLetterPrintingDelayFlags]
push af
xor a
@@ -349,10 +349,10 @@ TradeCenter_SelectMon:
ld [wTopMenuItemX], a
.enemyMonMenu_HandleInput
ld hl, hUILayoutFlags
- set 1, [hl]
+ set BIT_DOUBLE_SPACED_MENU, [hl]
call HandleMenuInput
ld hl, hUILayoutFlags
- res 1, [hl]
+ res BIT_DOUBLE_SPACED_MENU, [hl]
and a
jp z, .getNewInput
bit BIT_A_BUTTON, a
@@ -414,10 +414,10 @@ TradeCenter_SelectMon:
call ClearScreenArea
.playerMonMenu_HandleInput
ld hl, hUILayoutFlags
- set 1, [hl]
+ set BIT_DOUBLE_SPACED_MENU, [hl]
call HandleMenuInput
ld hl, hUILayoutFlags
- res 1, [hl]
+ res BIT_DOUBLE_SPACED_MENU, [hl]
and a ; was anything pressed?
jr nz, .playerMonMenu_SomethingPressed
jp .getNewInput
@@ -495,7 +495,7 @@ TradeCenter_SelectMon:
ld a, 1
ld [wTopMenuItemX], a
call HandleMenuInput
- bit 4, a ; Right pressed?
+ bit BIT_D_RIGHT, a
jr nz, .selectTradeMenuItem
bit BIT_B_BUTTON, a
jr z, .displayPlayerMonStats
@@ -591,9 +591,9 @@ ReturnToCableClubRoom:
ld a, [hl]
push af
push hl
- res 0, [hl]
+ res BIT_FONT_LOADED, [hl]
xor a
- ld [wd72d], a
+ ld [wStatusFlags3], a ; clears BIT_INIT_TRADE_CENTER_FACING
dec a
ld [wDestinationWarpID], a
call LoadMapData
@@ -666,7 +666,7 @@ TradeCenter_PrintPartyListNames:
ld a, [de]
cp $ff
ret z
- ld [wd11e], a
+ ld [wNamedObjectIndex], a
push bc
push hl
push de
@@ -702,9 +702,9 @@ TradeCenter_Trade:
ld b, 0
add hl, bc
ld a, [hl]
- ld [wd11e], a
+ ld [wNamedObjectIndex], a
call GetMonName
- ld hl, wcd6d
+ ld hl, wNameBuffer
ld de, wNameOfPlayerMonToBeTraded
ld bc, NAME_LENGTH
call CopyData
@@ -714,7 +714,7 @@ TradeCenter_Trade:
ld b, 0
add hl, bc
ld a, [hl]
- ld [wd11e], a
+ ld [wNamedObjectIndex], a
call GetMonName
ld hl, WillBeTradedText
bccoord 1, 14
@@ -810,7 +810,7 @@ TradeCenter_Trade:
ld e, a
add hl, de
ld a, [hl]
- ld [wcf91], a
+ ld [wCurPartySpecies], a
ld hl, wEnemyMons
ld a, c
ld bc, wEnemyMon2 - wEnemyMon1
@@ -843,7 +843,7 @@ TradeCenter_Trade:
call ClearScreen
call LoadHpBarAndStatusTilePatterns
xor a
- ld [wUnusedCC5B], a
+ ld [wUnusedFlag], a
ldh a, [hSerialConnectionStatus]
cp USING_EXTERNAL_CLOCK
jr z, .usingExternalClock
diff --git a/engine/link/cable_club_npc.asm b/engine/link/cable_club_npc.asm
index 1ba3becb..975f4e03 100644
--- a/engine/link/cable_club_npc.asm
+++ b/engine/link/cable_club_npc.asm
@@ -113,8 +113,8 @@ CableClubNPC::
ld hl, wUnknownSerialCounter
ld [hli], a
ld [hl], a
- ld hl, wd72e
- res 6, [hl]
+ ld hl, wStatusFlags4
+ res BIT_LINK_CONNECTED, [hl]
xor a
ld [wMenuJoypadPollCount], a
ret
diff --git a/engine/menus/display_text_id_init.asm b/engine/menus/display_text_id_init.asm
index 17f290b4..74fb5800 100644
--- a/engine/menus/display_text_id_init.asm
+++ b/engine/menus/display_text_id_init.asm
@@ -3,9 +3,9 @@ DisplayTextIDInit::
xor a
ld [wListMenuID], a
ld a, [wAutoTextBoxDrawingControl]
- bit 0, a
+ bit BIT_NO_AUTO_TEXT_BOX, a
jr nz, .skipDrawingTextBoxBorder
- ldh a, [hSpriteIndexOrTextID] ; text ID (or sprite ID)
+ ldh a, [hTextID]
and a
jr nz, .notStartMenu
; if text ID is 0 (i.e. the start menu)
@@ -28,10 +28,10 @@ DisplayTextIDInit::
call TextBoxBorder
.skipDrawingTextBoxBorder
ld hl, wFontLoaded
- set 0, [hl]
- ld hl, wFlags_0xcd60
- bit 4, [hl]
- res 4, [hl]
+ set BIT_FONT_LOADED, [hl]
+ ld hl, wMiscFlags
+ bit BIT_NO_SPRITE_UPDATES, [hl]
+ res BIT_NO_SPRITE_UPDATES, [hl]
jr nz, .skipMovingSprites
call UpdateSprites
.skipMovingSprites
diff --git a/engine/menus/draw_start_menu.asm b/engine/menus/draw_start_menu.asm
index 7ca75ecb..cb2e5988 100644
--- a/engine/menus/draw_start_menu.asm
+++ b/engine/menus/draw_start_menu.asm
@@ -21,8 +21,8 @@ DrawStartMenu::
ld [wLastMenuItem], a
xor a
ld [wMenuWatchMovingOutOfBounds], a
- ld hl, wd730
- set 6, [hl] ; no pauses between printing each letter
+ ld hl, wStatusFlags5
+ set BIT_NO_TEXT_DELAY, [hl]
hlcoord 12, 2
CheckEvent EVENT_GOT_POKEDEX
; case for not having pokedex
@@ -40,8 +40,8 @@ DrawStartMenu::
call PrintStartMenuItem
ld de, wPlayerName ; player's name
call PrintStartMenuItem
- ld a, [wd72e]
- bit 6, a ; is the player using the link feature?
+ ld a, [wStatusFlags4]
+ bit BIT_LINK_CONNECTED, a
; case for not using link feature
ld de, StartMenuSaveText
jr z, .printSaveOrResetText
@@ -53,8 +53,8 @@ DrawStartMenu::
call PrintStartMenuItem
ld de, StartMenuExitText
call PlaceString
- ld hl, wd730
- res 6, [hl] ; turn pauses between printing letters back on
+ ld hl, wStatusFlags5
+ res BIT_NO_TEXT_DELAY, [hl]
ret
StartMenuPokedexText:
diff --git a/engine/menus/league_pc.asm b/engine/menus/league_pc.asm
index 882565ca..b9151084 100644
--- a/engine/menus/league_pc.asm
+++ b/engine/menus/league_pc.asm
@@ -1,8 +1,8 @@
PKMNLeaguePC:
ld hl, AccessedHoFPCText
call PrintText
- ld hl, wd730
- set 6, [hl]
+ ld hl, wStatusFlags5
+ set BIT_NO_TEXT_DELAY, [hl]
push hl
ld a, [wUpdateSpritesEnabled]
push af
@@ -44,7 +44,7 @@ PKMNLeaguePC:
pop af
ld [wUpdateSpritesEnabled], a
pop hl
- res 6, [hl]
+ res BIT_NO_TEXT_DELAY, [hl]
call GBPalWhiteOutWithDelay3
call ClearScreen
call RunDefaultPaletteCommand
@@ -57,7 +57,7 @@ LeaguePCShowTeam:
call LeaguePCShowMon
call WaitForTextScrollButtonPress
ldh a, [hJoyHeld]
- bit 1, a
+ bit BIT_B_BUTTON, a
jr nz, .exit
ld hl, wHallOfFame + HOF_MON
ld de, wHallOfFame
@@ -83,13 +83,13 @@ LeaguePCShowMon:
ld hl, wHallOfFame
ld a, [hli]
ld [wHoFMonSpecies], a
- ld [wcf91], a
- ld [wd0b5], a
+ ld [wCurPartySpecies], a
+ ld [wCurSpecies], a
ld [wBattleMonSpecies2], a
ld [wWholeScreenPaletteMonSpecies], a
ld a, [hli]
ld [wHoFMonLevel], a
- ld de, wcd6d
+ ld de, wNameBuffer
ld bc, NAME_LENGTH
call CopyData
ld b, SET_PAL_POKEMON_WHOLE_SCREEN
diff --git a/engine/menus/link_menu.asm b/engine/menus/link_menu.asm
index 170d5d64..e0f39eda 100644
--- a/engine/menus/link_menu.asm
+++ b/engine/menus/link_menu.asm
@@ -22,9 +22,9 @@ Func_f531b::
call TextBoxBorder
call UpdateSprites
xor a
- ld [wUnusedCD37], a
- ld [wd72d], a
- ld [wd11e], a
+ ld [wUnusedLinkMenuByte], a
+ ld [wCableClubDestinationMap], a
+ ld [wNamedObjectIndex], a
ld hl, wTopMenuItemY
ld a, $2
ld [hli], a
@@ -90,7 +90,7 @@ Func_f531b::
jr z, .asm_f53df
.asm_f53d1
ld a, $1
- ld [wd11e], a
+ ld [wNamedObjectIndex], a
ld a, b
ld [wLinkMenuSelectionSendBuffer], a
and $3
@@ -310,21 +310,21 @@ PetitCup::
jp z, DuplicateSpecies
dec hl
ld a, [hl]
- ld [wcf91], a
+ ld [wCurPartySpecies], a
push hl
callfar Func_3b10f
pop hl
jp c, asm_f56ad
inc hl
ld a, [hl]
- ld [wcf91], a
+ ld [wCurPartySpecies], a
push hl
callfar Func_3b10f
pop hl
jp c, asm_f56ad
inc hl
ld a, [hl]
- ld [wcf91], a
+ ld [wCurPartySpecies], a
push hl
callfar Func_3b10f
pop hl
@@ -343,19 +343,19 @@ PetitCup::
ld hl, PokedexEntryPointers
add hl, bc
add hl, bc
- ld de, wcd6d
+ ld de, wNameBuffer
ld bc, $2
ld a, BANK(PokedexEntryPointers)
call FarCopyData
- ld hl, wcd6d
+ ld hl, wNameBuffer
ld a, [hli]
ld h, [hl]
ld l, a
- ld de, wcd6d
+ ld de, wNameBuffer
ld bc, $14
ld a, BANK(PokedexEntryPointers)
call FarCopyData
- ld hl, wcd6d
+ ld hl, wNameBuffer
.loop2
ld a, [hli]
cp "@"
@@ -483,7 +483,7 @@ asm_f5689::
pop af
pop bc
pop hl
- ld [wd11e], a
+ ld [wNamedObjectIndex], a
call GetMonName
ld hl, ColosseumHeightText
call PrintText
@@ -494,7 +494,7 @@ asm_f569b::
pop af
pop bc
pop hl
- ld [wd11e], a
+ ld [wNamedObjectIndex], a
call GetMonName
ld hl, ColosseumWeightText
call PrintText
@@ -503,7 +503,7 @@ asm_f569b::
asm_f56ad::
ld a, [hl]
- ld [wd11e], a
+ ld [wNamedObjectIndex], a
call GetMonName
ld hl, ColosseumEvolvedText
call PrintText
@@ -635,8 +635,8 @@ ColosseumIneligibleText::
LinkMenu:
xor a
ld [wLetterPrintingDelayFlags], a
- ld hl, wd72e
- set 6, [hl]
+ ld hl, wStatusFlags4
+ set BIT_LINK_CONNECTED, [hl]
ld hl, TextTerminator_f5a16
call PrintText
call SaveScreenTilesToBuffer1
@@ -650,20 +650,26 @@ LinkMenu:
ld de, TradeCenterText
call PlaceString
xor a
- ld [wUnusedCD37], a
- ld [wd72d], a
- ld [wd11e], a
+ ld [wUnusedLinkMenuByte], a
+ ld [wCableClubDestinationMap], a
+ ld [wNamedObjectIndex], a
ld hl, wTopMenuItemY
- ld a, $5
+ ld a, 5
ld [hli], a
- ld a, $6
+ assert wTopMenuItemY + 1 == wTopMenuItemX
+ ld a, 6
ld [hli], a
+ assert wTopMenuItemX + 1 == wCurrentMenuItem
xor a
ld [hli], a
inc hl
- ld a, $3
+ assert wCurrentMenuItem + 2 == wMaxMenuItem
+ ld a, 3
ld [hli], a
+ assert wMaxMenuItem + 1 == wMenuWatchedKeys
+ assert 2 == B_BUTTON
ld [hli], a
+ assert wMenuWatchedKeys + 1 == wLastMenuItem
xor a
ld [hl], a
.waitForInputLoop
@@ -716,7 +722,7 @@ LinkMenu:
jr z, .doneChoosingMenuSelection
.useEnemyMenuSelection
ld a, $1
- ld [wd11e], a
+ ld [wNamedObjectIndex], a
ld a, b
ld [wLinkMenuSelectionSendBuffer], a
and $3
@@ -769,12 +775,12 @@ LinkMenu:
jr nz, .next
ld a, TRADE_CENTER
.next
- ld [wd72d], a
+ ld [wCableClubDestinationMap], a
ld hl, ColosseumPleaseWaitText
call PrintText
ld c, 50
call DelayFrames
- ld hl, wd732
+ ld hl, wStatusFlags6
res BIT_DEBUG_MODE, [hl]
ld a, [wDefaultMap]
ld [wDestinationMap], a
@@ -796,13 +802,13 @@ LinkMenu:
ld hl, ColosseumCanceledText
vc_hook Wireless_net_stop
call PrintText
- ld hl, wd72e
- res 6, [hl]
+ ld hl, wStatusFlags4
+ res BIT_LINK_CONNECTED, [hl]
vc_hook Wireless_net_end
ret
.asm_f5963
- ld a, [wd11e]
+ ld a, [wNamedObjectIndex]
and a
jr nz, .asm_f5974
ld b, " "
@@ -847,7 +853,7 @@ LinkMenu:
xor a
ld [wUnknownSerialCounter], a
ld [wUnknownSerialCounter+1], a
- ld a, [wd11e]
+ ld a, [wNamedObjectIndex]
and a
jr z, .asm_f59cd
ld b, " "
diff --git a/engine/menus/main_menu.asm b/engine/menus/main_menu.asm
index 06f3c2a7..817205a9 100644
--- a/engine/menus/main_menu.asm
+++ b/engine/menus/main_menu.asm
@@ -21,14 +21,14 @@ MainMenu:
ld [hli], a
ld [hl], a
ld [wDefaultMap], a
- ld hl, wd72e
- res 6, [hl]
+ ld hl, wStatusFlags4
+ res BIT_LINK_CONNECTED, [hl]
call ClearScreen
call RunDefaultPaletteCommand
call LoadTextBoxTilePatterns
call LoadFontTilePatterns
- ld hl, wd730
- set 6, [hl]
+ ld hl, wStatusFlags5
+ set BIT_NO_TEXT_DELAY, [hl]
ld a, [wSaveFileStatus]
cp 1
jr z, .noSaveFile
@@ -48,8 +48,8 @@ MainMenu:
ld de, NewGameText
call PlaceString
.next2
- ld hl, wd730
- res 6, [hl]
+ ld hl, wStatusFlags5
+ res BIT_NO_TEXT_DELAY, [hl]
call UpdateSprites
xor a
ld [wCurrentMenuItem], a
@@ -83,13 +83,13 @@ MainMenu:
cp 1
jp z, StartNewGame
call DisplayOptionMenu
- ld a, 1
+ ld a, TRUE
ld [wOptionsInitialized], a
jp .mainMenuLoop
.choseContinue
call DisplayContinueGameInfo
ld hl, wCurrentMapScriptFlags
- set 5, [hl]
+ set BIT_CUR_MAP_LOADED_1, [hl]
.inputLoop
xor a
ldh [hJoyPressed], a
@@ -100,7 +100,7 @@ MainMenu:
bit BIT_A_BUTTON, a
jr nz, .pressedA
bit BIT_B_BUTTON, a
- jp nz, .mainMenuLoop ; pressed B
+ jp nz, .mainMenuLoop
jr .inputLoop
.pressedA
call GBPalWhiteOutWithDelay3
@@ -112,18 +112,18 @@ MainMenu:
ld a, [wNumHoFTeams]
and a
jp z, SpecialEnterMap
- ld a, [wCurMap] ; map ID
+ ld a, [wCurMap]
cp HALL_OF_FAME
jp nz, SpecialEnterMap
xor a
ld [wDestinationMap], a
- ld hl, wd732
- set 2, [hl] ; fly warp or dungeon warp
+ ld hl, wStatusFlags6
+ set BIT_FLY_OR_DUNGEON_WARP, [hl]
call PrepareForSpecialWarp
jp SpecialEnterMap
InitOptions:
- ld a, TEXT_DELAY_FAST
+ ld a, 1 << BIT_FAST_TEXT_DELAY
ld [wLetterPrintingDelayFlags], a
ld a, TEXT_DELAY_MEDIUM
ld [wOptions], a
@@ -145,11 +145,9 @@ NotEnoughMemoryText:
text_end
StartNewGame:
- ld hl, wd732
- ; Ensure debug mode is not used when
- ; starting a regular new game.
- ; Debug mode persists in saved games for
- ; both debug and non-debug builds, and is
+ ld hl, wStatusFlags6
+ ; Ensure debug mode is not used when starting a regular new game.
+ ; Debug mode persists in saved games for both debug and non-debug builds, and is
; only reset here by the main menu.
res BIT_DEBUG_MODE, [hl]
; fallthrough
@@ -166,9 +164,9 @@ SpecialEnterMap::
ldh [hJoyPressed], a
ldh [hJoyHeld], a
ldh [hJoy5], a
- ld [wd72d], a
- ld hl, wd732
- set 0, [hl] ; count play time
+ ld [wCableClubDestinationMap], a
+ ld hl, wStatusFlags6
+ set BIT_GAME_TIMER_COUNTING, [hl]
call ResetPlayerSpriteData
ld c, 20
call DelayFrames
diff --git a/engine/menus/naming_screen.asm b/engine/menus/naming_screen.asm
index 7969cdda..9d477b34 100644
--- a/engine/menus/naming_screen.asm
+++ b/engine/menus/naming_screen.asm
@@ -7,8 +7,8 @@ AskName:
hlcoord 0, 0
lb bc, 4, 11
call z, ClearScreenArea ; only if in wild battle
- ld a, [wcf91]
- ld [wd11e], a
+ ld a, [wCurPartySpecies]
+ ld [wNamedObjectIndex], a
call GetMonName
ld hl, DoYouWantToNicknameText
call PrintText
@@ -44,7 +44,7 @@ AskName:
.declinedNickname
ld d, h
ld e, l
- ld hl, wcd6d
+ ld hl, wNameBuffer
ld bc, NAME_LENGTH
jp CopyData
@@ -82,8 +82,8 @@ DisplayNameRaterScreen::
DisplayNamingScreen:
push hl
- ld hl, wd730
- set 6, [hl]
+ ld hl, wStatusFlags5
+ set BIT_NO_TEXT_DELAY, [hl]
call GBPalWhiteOutWithDelay3
call ClearScreen
call UpdateSprites
@@ -165,8 +165,8 @@ DisplayNamingScreen:
call GBPalNormal
xor a
ld [wAnimCounter], a
- ld hl, wd730
- res 6, [hl]
+ ld hl, wStatusFlags5
+ res BIT_NO_TEXT_DELAY, [hl]
ld a, [wIsInBattle]
and a
jp z, LoadTextBoxTilePatterns
@@ -472,12 +472,12 @@ PrintNamingText:
ld de, RivalsTextString
dec a
jr z, .notNickname
- ld a, [wcf91]
+ ld a, [wCurPartySpecies]
ld [wMonPartySpriteSpecies], a
push af
farcall WriteMonPartySpriteOAMBySpecies
pop af
- ld [wd11e], a
+ ld [wNamedObjectIndex], a
call GetMonName
hlcoord 4, 1
call PlaceString
diff --git a/engine/menus/options.asm b/engine/menus/options.asm
index e2c02e42..a2a96dd6 100644
--- a/engine/menus/options.asm
+++ b/engine/menus/options.asm
@@ -43,9 +43,9 @@ OptionMenuJumpTable:
OptionsMenu_TextSpeed:
call GetTextSpeed
ldh a, [hJoy5]
- bit 4, a ; right
+ bit BIT_D_RIGHT, a
jr nz, .pressedRight
- bit 5, a
+ bit BIT_D_LEFT, a
jr nz, .pressedLeft
jr .nonePressed
.pressedRight
@@ -193,9 +193,9 @@ OptionsMenu_SpeakerSettings:
swap a
ld c, a
ldh a, [hJoy5]
- bit 4, a
+ bit BIT_D_RIGHT, a
jr nz, .pressedRight
- bit 5, a
+ bit BIT_D_LEFT, a
jr nz, .pressedLeft
jr .asm_41dca
.pressedRight
@@ -248,9 +248,9 @@ Earphone3SoundText:
OptionsMenu_GBPrinterBrightness:
call Func_41e7b
ldh a, [hJoy5]
- bit 4, a
+ bit BIT_D_RIGHT, a
jr nz, .pressedRight
- bit 5, a
+ bit BIT_D_LEFT, a
jr nz, .pressedLeft
jr .asm_41e32
.pressedRight
diff --git a/engine/menus/party_menu.asm b/engine/menus/party_menu.asm
index 022ae206..169a0ac7 100644
--- a/engine/menus/party_menu.asm
+++ b/engine/menus/party_menu.asm
@@ -78,12 +78,12 @@ RedrawPartyMenu_::
push hl
ld bc, SCREEN_WIDTH + 1 ; down 1 row and right 1 column
ldh a, [hUILayoutFlags]
- set 0, a
+ set BIT_PARTY_MENU_HP_BAR, a
ldh [hUILayoutFlags], a
add hl, bc
predef DrawHP2 ; draw HP bar and prints current / max HP
ldh a, [hUILayoutFlags]
- res 0, a
+ res BIT_PARTY_MENU_HP_BAR, a
ldh [hUILayoutFlags], a
call SetPartyMenuHPBarColor ; color the HP bar (on SGB)
pop hl
@@ -129,19 +129,19 @@ RedrawPartyMenu_::
rl b
ld c, a
add hl, bc
- ld de, wcd6d
+ ld de, wEvoDataBuffer
ld a, BANK(EvosMovesPointerTable)
ld bc, 2
call FarCopyData
- ld hl, wcd6d
+ ld hl, wEvoDataBuffer
ld a, [hli]
ld h, [hl]
ld l, a
- ld de, wcd6d
+ ld de, wEvoDataBuffer
ld a, BANK(EvosMovesPointerTable)
ld bc, 4 * 3 + 1 ; enough for Eevee's three 4-byte evolutions and 0 terminator
call FarCopyData
- ld hl, wcd6d
+ ld hl, wEvoDataBuffer
ld de, .notAbleToEvolveText
; loop through the pokemon's evolution entries
.checkEvolutionsLoop
@@ -180,11 +180,11 @@ RedrawPartyMenu_::
ld b, SET_PAL_PARTY_MENU
call RunPaletteCommand
.printMessage
- ld hl, wd730
+ ld hl, wStatusFlags5
ld a, [hl]
push af
push hl
- set 6, [hl] ; turn off letter printing delay
+ set BIT_NO_TEXT_DELAY, [hl]
ld a, [wPartyMenuTypeOrMessageID] ; message ID
cp FIRST_PARTY_MENU_TEXT_ID
jr nc, .printItemUseMessage
diff --git a/engine/menus/pc.asm b/engine/menus/pc.asm
index 6a15eaa5..33dd3c2c 100644
--- a/engine/menus/pc.asm
+++ b/engine/menus/pc.asm
@@ -5,14 +5,14 @@ ActivatePC::
ld hl, TurnedOnPC1Text
call PrintText
call WaitForSoundToFinish
- ld hl, wFlags_0xcd60
- set 3, [hl]
+ ld hl, wMiscFlags
+ set BIT_USING_GENERIC_PC, [hl]
call LoadScreenTilesFromBuffer2
call Delay3
PCMainMenu:
farcall DisplayPCMainMenu
- ld hl, wFlags_0xcd60
- set 5, [hl]
+ ld hl, wMiscFlags
+ set BIT_NO_MENU_BUTTON_SOUND, [hl]
call HandleMenuInput
bit BIT_B_BUTTON, a
jp nz, LogOff
@@ -48,9 +48,9 @@ PCMainMenu:
jp z, PKMNLeague ;if current menu item id is 3, it's pkmnleague
jp LogOff ;otherwise, it's 4, and you're logging off
.playersPC
- ld hl, wFlags_0xcd60
- res 5, [hl]
- set 3, [hl]
+ ld hl, wMiscFlags
+ res BIT_NO_MENU_BUTTON_SOUND, [hl]
+ set BIT_USING_GENERIC_PC, [hl]
ld a, SFX_ENTER_PC
call PlaySound
call WaitForSoundToFinish
@@ -93,9 +93,9 @@ LogOff:
ld a, SFX_TURN_OFF_PC
call PlaySound
call WaitForSoundToFinish
- ld hl, wFlags_0xcd60
- res 3, [hl]
- res 5, [hl]
+ ld hl, wMiscFlags
+ res BIT_USING_GENERIC_PC, [hl]
+ res BIT_NO_MENU_BUTTON_SOUND, [hl]
ret
TurnedOnPC1Text:
diff --git a/engine/menus/players_pc.asm b/engine/menus/players_pc.asm
index 1fac030b..630b8f87 100644
--- a/engine/menus/players_pc.asm
+++ b/engine/menus/players_pc.asm
@@ -5,8 +5,8 @@ PlayerPC::
xor a
ld [wBagSavedMenuItem], a
ld [wParentMenuItem], a
- ld a, [wFlags_0xcd60]
- bit 3, a ; accessing player's PC through another PC?
+ ld a, [wMiscFlags]
+ bit BIT_USING_GENERIC_PC, a
jr nz, PlayerPCMenu
; accessing it directly
ld a, SFX_TURN_ON_PC
@@ -15,12 +15,12 @@ PlayerPC::
call PrintText
PlayerPCMenu:
- ld hl, wd730
- set 6, [hl]
+ ld hl, wStatusFlags5
+ set BIT_NO_TEXT_DELAY, [hl]
ld a, [wParentMenuItem]
ld [wCurrentMenuItem], a
- ld hl, wFlags_0xcd60
- set 5, [hl]
+ ld hl, wMiscFlags
+ set BIT_NO_MENU_BUTTON_SOUND, [hl]
call LoadScreenTilesFromBuffer2
hlcoord 0, 0
lb bc, 8, 14
@@ -49,7 +49,7 @@ PlayerPCMenu:
ld hl, WhatDoYouWantText
call PrintText
call HandleMenuInput
- bit 1, a
+ bit BIT_B_BUTTON, a
jp nz, ExitPlayerPC
call PlaceUnfilledArrowMenuCursor
ld a, [wCurrentMenuItem]
@@ -62,22 +62,22 @@ PlayerPCMenu:
jp z, PlayerPCToss
ExitPlayerPC:
- ld a, [wFlags_0xcd60]
- bit 3, a ; accessing player's PC through another PC?
+ ld a, [wMiscFlags]
+ bit BIT_USING_GENERIC_PC, a
jr nz, .next
; accessing it directly
ld a, SFX_TURN_OFF_PC
call PlaySound
call WaitForSoundToFinish
.next
- ld hl, wFlags_0xcd60
- res 5, [hl]
+ ld hl, wMiscFlags
+ res BIT_NO_MENU_BUTTON_SOUND, [hl]
call LoadScreenTilesFromBuffer2
xor a
ld [wListScrollOffset], a
ld [wBagSavedMenuItem], a
- ld hl, wd730
- res 6, [hl]
+ ld hl, wStatusFlags5
+ res BIT_NO_TEXT_DELAY, [hl]
xor a
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
ret
@@ -224,7 +224,7 @@ PlayerPCToss:
ld a, [wIsKeyItem]
and a
jr nz, .next
- ld a, [wcf91]
+ ld a, [wCurItem]
call IsItemHM
jr c, .next
; if it's not a key item, there can be more than one of the item
diff --git a/engine/menus/pokedex.asm b/engine/menus/pokedex.asm
index 899b70ed..f4637cd0 100644
--- a/engine/menus/pokedex.asm
+++ b/engine/menus/pokedex.asm
@@ -9,7 +9,7 @@ ShowPokedexMenu:
ld [wListScrollOffset], a
ld [wLastMenuItem], a
inc a
- ld [wd11e], a
+ ld [wPokedexNum], a
ldh [hJoy7], a
.setUpGraphics
callfar LoadPokedexTilePatterns
@@ -37,7 +37,7 @@ ShowPokedexMenu:
ld [wCurrentMenuItem], a
ld [wLastMenuItem], a
ldh [hJoy7], a
- ld [wUnusedCD3A], a
+ ld [wUnusedOverrideSimulatedJoypadStatesIndex], a
ld [wOverrideSimulatedJoypadStatesMask], a
pop af
ld [wListScrollOffset], a
@@ -72,8 +72,8 @@ HandlePokedexSideMenu:
push af
add b
inc a
- ld [wd11e], a
- ld a, [wd11e]
+ ld [wPokedexNum], a
+ ld a, [wPokedexNum]
push af
ld a, [wDexMaxSeenMon]
push af ; this doesn't need to be preserved
@@ -124,7 +124,7 @@ ENDC
pop af
ld [wDexMaxSeenMon], a
pop af
- ld [wd11e], a
+ ld [wPokedexNum], a
pop af
ld [wListScrollOffset], a
pop af
@@ -157,7 +157,7 @@ ENDC
; play pokemon cry
.choseCry
- ld a, [wd11e]
+ ld a, [wPokedexNum]
call GetCryData
call PlaySound
jr .handleMenuInput
@@ -172,8 +172,8 @@ ENDC
push af
xor a
ldh [hTileAnimations], a
- ld a, [wd11e]
- ld [wcf91], a
+ ld a, [wPokedexNum]
+ ld [wCurPartySpecies], a
callfar PrintPokedexEntry
xor a
ldh [hAutoBGTransferEnabled], a
@@ -359,7 +359,7 @@ Pokedex_PlacePokemonList:
call ClearScreenArea
hlcoord 1, 3
ld a, [wListScrollOffset]
- ld [wd11e], a
+ ld [wPokedexNum], a
ld d, 7
ld a, [wDexMaxSeenMon]
cp 7
@@ -370,17 +370,17 @@ Pokedex_PlacePokemonList:
; loop to print pokemon pokedex numbers and names
; if the player has owned the pokemon, it puts a pokeball beside the name
.printPokemonLoop
- ld a, [wd11e]
+ ld a, [wPokedexNum]
inc a
- ld [wd11e], a
+ ld [wPokedexNum], a
push af
push de
push hl
ld de, -SCREEN_WIDTH
add hl, de
- ld de, wd11e
+ ld de, wPokedexNum
lb bc, LEADING_ZEROES | 1, 3
- call PrintNumber ; print the pokedex number
+ call PrintNumber
ld de, SCREEN_WIDTH
add hl, de
dec hl
@@ -413,7 +413,7 @@ Pokedex_PlacePokemonList:
add hl, bc
pop de
pop af
- ld [wd11e], a
+ ld [wPokedexNum], a
dec d
jr nz, .printPokemonLoop
ld a, 01
@@ -423,10 +423,10 @@ Pokedex_PlacePokemonList:
; tests if a pokemon's bit is set in the seen or owned pokemon bit fields
; INPUT:
-; [wd11e] = pokedex number
+; [wPokedexNum] = pokedex number
; hl = address of bit field
IsPokemonBitSet:
- ld a, [wd11e]
+ ld a, [wPokedexNum]
dec a
ld c, a
ld b, FLAG_TEST
@@ -444,8 +444,8 @@ ShowPokedexData:
; function to display pokedex data from inside the pokedex
ShowPokedexDataInternal:
- ld hl, wd72c
- set 1, [hl]
+ ld hl, wStatusFlags2
+ set BIT_NO_AUDIO_FADE_OUT, [hl]
ld a, $33 ; 3/7 volume
ldh [rNR50], a
ldh a, [hTileAnimations]
@@ -453,13 +453,13 @@ ShowPokedexDataInternal:
xor a
ldh [hTileAnimations], a
call GBPalWhiteOut ; zero all palettes
- ld a, [wd11e] ; pokemon ID
- ld [wcf91], a
+ ld a, [wPokedexNum]
+ ld [wCurPartySpecies], a
push af
ld b, SET_PAL_POKEDEX
call RunPaletteCommand
pop af
- ld [wd11e], a
+ ld [wPokedexNum], a
call DrawDexEntryOnScreen
call c, Pokedex_PrintFlavorTextAtRow11
.waitForButtonPress
@@ -474,8 +474,8 @@ ShowPokedexDataInternal:
call RunDefaultPaletteCommand
call LoadTextBoxTilePatterns
call GBPalNormal
- ld hl, wd72c
- res 1, [hl]
+ ld hl, wStatusFlags2
+ res BIT_NO_AUDIO_FADE_OUT, [hl]
ld a, $77 ; max volume
ldh [rNR50], a
ret
@@ -537,7 +537,7 @@ DrawDexEntryOnScreen:
call PlaceString
ld hl, PokedexEntryPointers
- ld a, [wd11e]
+ ld a, [wPokedexNum]
dec a
ld e, a
ld d, 0
@@ -553,7 +553,7 @@ DrawDexEntryOnScreen:
ld h, b
ld l, c
push de
- ld a, [wd11e]
+ ld a, [wPokedexNum]
push af
call IndexToPokedex
@@ -562,16 +562,16 @@ DrawDexEntryOnScreen:
ld [hli], a
ld a, "<DOT>"
ld [hli], a
- ld de, wd11e
+ ld de, wPokedexNum
lb bc, LEADING_ZEROES | 1, 3
call PrintNumber ; print pokedex number
ld hl, wPokedexOwned
call IsPokemonBitSet
pop af
- ld [wd11e], a
- ld a, [wcf91]
- ld [wd0b5], a
+ ld [wPokedexNum], a
+ ld a, [wCurPartySpecies]
+ ld [wCurSpecies], a
pop de
push af
@@ -584,8 +584,8 @@ DrawDexEntryOnScreen:
call GetMonHeader ; load pokemon picture location
hlcoord 1, 1
call LoadFlippedFrontSpriteByMonIndex ; draw pokemon picture
- ld a, [wcf91]
- call PlayCry ; play pokemon cry
+ ld a, [wCurPartySpecies]
+ call PlayCry
pop hl
pop de
@@ -712,10 +712,10 @@ DrawTileLine:
INCLUDE "data/pokemon/dex_entries.asm"
PokedexToIndex:
- ; converts the Pokédex number at wd11e to an index
+ ; converts the Pokédex number at [wPokedexNum] to an index
push bc
push hl
- ld a, [wd11e]
+ ld a, [wPokedexNum]
ld b, a
ld c, 0
ld hl, PokedexOrder
@@ -727,23 +727,23 @@ PokedexToIndex:
jr nz, .loop
ld a, c
- ld [wd11e], a
+ ld [wPokedexNum], a
pop hl
pop bc
ret
IndexToPokedex:
- ; converts the index number at wd11e to a Pokédex number
+ ; converts the index number at [wPokedexNum] to a Pokédex number
push bc
push hl
- ld a, [wd11e]
+ ld a, [wPokedexNum]
dec a
ld hl, PokedexOrder
ld b, 0
ld c, a
add hl, bc
ld a, [hl]
- ld [wd11e], a
+ ld [wPokedexNum], a
pop hl
pop bc
ret
diff --git a/engine/menus/save.asm b/engine/menus/save.asm
index 5b7cebc5..a2760d0a 100644
--- a/engine/menus/save.asm
+++ b/engine/menus/save.asm
@@ -1,6 +1,5 @@
LoadSAV:
-;(if carry -> write
-;"the file data is destroyed")
+; if carry, write "the file data is destroyed"
call ClearScreen
call LoadFontTilePatterns
call LoadTextBoxTilePatterns
@@ -13,15 +12,15 @@ LoadSAV:
ld a, $2 ; good checksum
jr .goodsum
.badsum
- ld hl, wd730
+ ld hl, wStatusFlags5
push hl
- set 6, [hl]
+ set BIT_NO_TEXT_DELAY, [hl]
ld hl, FileDataDestroyedText
call PrintText
ld c, 100
call DelayFrames
pop hl
- res 6, [hl]
+ res BIT_NO_TEXT_DELAY, [hl]
ld a, $1 ; bad checksum
.goodsum
ld [wSaveFileStatus], a
@@ -65,7 +64,7 @@ LoadSAV0:
ld bc, wMainDataEnd - wMainDataStart
call CopyData
ld hl, wCurMapTileset
- set 7, [hl]
+ set BIT_NO_PREVIOUS_MAP, [hl]
ld hl, sSpriteData
ld de, wSpriteDataStart
ld bc, wSpriteDataEnd - wSpriteDataStart
@@ -341,15 +340,15 @@ ChangeBox::
and a
ret nz ; return if No was chosen
ld hl, wCurrentBoxNum
- bit 7, [hl] ; is it the first time player is changing the box?
+ bit BIT_HAS_CHANGED_BOXES, [hl] ; is it the first time player is changing the box?
call z, EmptyAllSRAMBoxes ; if so, empty all boxes in SRAM
call DisplayChangeBoxMenu
call UpdateSprites
ld hl, hUILayoutFlags
- set 1, [hl]
+ set BIT_DOUBLE_SPACED_MENU, [hl]
call HandleMenuInput
ld hl, hUILayoutFlags
- res 1, [hl]
+ res BIT_DOUBLE_SPACED_MENU, [hl]
bit BIT_B_BUTTON, a
ret nz
ld a, $b6
@@ -361,7 +360,7 @@ ChangeBox::
ld hl, wBoxDataStart
call CopyBoxToOrFromSRAM ; copy old box from WRAM to SRAM
ld a, [wCurrentMenuItem]
- set 7, a
+ set BIT_HAS_CHANGED_BOXES, a
ld [wCurrentBoxNum], a
call GetBoxSRAMLocation
ld de, wBoxDataStart
@@ -433,12 +432,12 @@ DisplayChangeBoxMenu:
lb bc, 12, 7
call TextBoxBorder
ld hl, hUILayoutFlags
- set 2, [hl]
+ set BIT_SINGLE_SPACED_LINES, [hl]
ld de, BoxNames
hlcoord 13, 1
call PlaceString
ld hl, hUILayoutFlags
- res 2, [hl]
+ res BIT_SINGLE_SPACED_LINES, [hl]
ld a, [wCurrentBoxNum]
and $7f
cp 9
diff --git a/engine/menus/start_sub_menus.asm b/engine/menus/start_sub_menus.asm
index 3e8ce5d1..04032dfd 100644
--- a/engine/menus/start_sub_menus.asm
+++ b/engine/menus/start_sub_menus.asm
@@ -142,12 +142,12 @@ StartMenu_Pokemon::
jp .loop
.canFly
call ChooseFlyDestination
- ld a, [wd732]
- bit 3, a ; did the player decide to fly?
+ ld a, [wStatusFlags6]
+ bit BIT_FLY_WARP, a
jr nz, .asm_5d4c
call LoadFontTilePatterns
- ld hl, wd72e
- set 1, [hl]
+ ld hl, wStatusFlags4
+ set BIT_UNKNOWN_4_1, [hl]
jp StartMenu_Pokemon
.asm_5d4c
call Func_1510
@@ -164,11 +164,11 @@ StartMenu_Pokemon::
bit BIT_SOULBADGE, a
jp z, .newBadgeRequired
farcall IsSurfingAllowed
- ld hl, wd728
- bit 1, [hl]
- res 1, [hl]
+ ld hl, wStatusFlags1
+ bit BIT_SURF_ALLOWED, [hl]
+ res BIT_SURF_ALLOWED, [hl]
jp z, .loop
- ld a, [wcf91]
+ ld a, [wCurPartySpecies]
cp STARTER_PIKACHU
jr z, .surfingPikachu
ld a, $1
@@ -178,7 +178,7 @@ StartMenu_Pokemon::
.continue
ld [wd473], a
ld a, SURFBOARD
- ld [wcf91], a
+ ld [wCurItem], a
ld [wPseudoItemID], a
call UseItem
ld a, [wActionResultOrTookBattleTurn]
@@ -193,7 +193,7 @@ StartMenu_Pokemon::
.strength
bit BIT_RAINBOWBADGE, a
jp z, .newBadgeRequired
- predef PrintStrengthTxt
+ predef PrintStrengthText
call GBPalWhiteOutWithDelay3
jp .goBackToMap
.flash
@@ -210,7 +210,7 @@ StartMenu_Pokemon::
text_end
.dig
ld a, ESCAPE_ROPE
- ld [wcf91], a
+ ld [wCurItem], a
ld [wPseudoItemID], a
call UseItem
ld a, [wActionResultOrTookBattleTurn]
@@ -230,13 +230,13 @@ StartMenu_Pokemon::
.canTeleport
ld hl, .warpToLastPokemonCenterText
call PrintText
- ld hl, wd732
- set 3, [hl]
- set 6, [hl]
+ ld hl, wStatusFlags6
+ set BIT_FLY_WARP, [hl]
+ set BIT_ESCAPE_WARP, [hl]
call Func_1510
- ld hl, wd72e
- set 1, [hl]
- res 4, [hl]
+ ld hl, wStatusFlags4
+ set BIT_UNKNOWN_4_1, [hl]
+ res BIT_NO_BATTLES, [hl]
ld c, 60
call DelayFrames
call GBPalWhiteOutWithDelay3
@@ -276,7 +276,7 @@ StartMenu_Pokemon::
ld a, [wPartyAndBillsPCSavedMenuItem]
push af
ld a, POTION
- ld [wcf91], a
+ ld [wCurItem], a
ld [wPseudoItemID], a
call UseItem
pop af
@@ -354,7 +354,7 @@ StartMenu_Item::
call PlaceUnfilledArrowMenuCursor
xor a
ld [wMenuItemToSwap], a
- ld a, [wcf91]
+ ld a, [wCurItem]
cp BICYCLE
jp z, .useOrTossItem
.notBicycle1
@@ -381,15 +381,15 @@ StartMenu_Item::
jr z, .useOrTossItem
jp ItemMenuLoop
.useOrTossItem ; if the player made the choice to use or toss the item
- ld a, [wcf91]
- ld [wd11e], a
+ ld a, [wCurItem]
+ ld [wNamedObjectIndex], a
call GetItemName
call CopyToStringBuffer
- ld a, [wcf91]
+ ld a, [wCurItem]
cp BICYCLE
jr nz, .notBicycle2
- ld a, [wd732]
- bit 5, a
+ ld a, [wStatusFlags6]
+ bit BIT_ALWAYS_ON_BIKE, a
jr z, .useItem_closeMenu
ld hl, CannotGetOffHereText
call PrintText
@@ -400,14 +400,14 @@ StartMenu_Item::
jr nz, .tossItem
; use item
ld [wPseudoItemID], a ; a must be 0 due to above conditional jump
- ld a, [wcf91]
+ ld a, [wCurItem]
cp HM01
jr nc, .useItem_partyMenu
ld hl, UsableItems_CloseMenu
ld de, 1
call IsInArray
jr c, .useItem_closeMenu
- ld a, [wcf91]
+ ld a, [wCurItem]
ld hl, UsableItems_PartyMenu
ld de, 1
call IsInArray
@@ -443,7 +443,7 @@ StartMenu_Item::
ld a, [wIsKeyItem]
and a
jr nz, .skipAskingQuantity
- ld a, [wcf91]
+ ld a, [wCurItem]
call IsItemHM
jr c, .skipAskingQuantity
call DisplayChooseQuantityMenu
@@ -657,8 +657,8 @@ TrainerInfo_DrawVerticalLine:
ret
StartMenu_SaveReset::
- ld a, [wd72e]
- bit 6, a ; is the player using the link feature?
+ ld a, [wStatusFlags4]
+ bit BIT_LINK_CONNECTED, a
jp nz, Init
predef SaveSAV ; save the game
call LoadScreenTilesFromBuffer2 ; restore saved screen
diff --git a/engine/menus/text_box.asm b/engine/menus/text_box.asm
index 697fe507..43428f67 100644
--- a/engine/menus/text_box.asm
+++ b/engine/menus/text_box.asm
@@ -37,14 +37,14 @@ DisplayTextBoxID_::
call TextBoxBorder
pop hl
call GetTextBoxIDText
- ld a, [wd730]
+ ld a, [wStatusFlags5]
push af
- ld a, [wd730]
- set 6, a ; no pauses between printing each letter
- ld [wd730], a
+ ld a, [wStatusFlags5]
+ set BIT_NO_TEXT_DELAY, a
+ ld [wStatusFlags5], a
call PlaceString
pop af
- ld [wd730], a
+ ld [wStatusFlags5], a
call UpdateSprites
ret
@@ -128,8 +128,8 @@ GetAddressOfScreenCoords:
INCLUDE "data/text_boxes.asm"
DisplayMoneyBox:
- ld hl, wd730
- set 6, [hl]
+ ld hl, wStatusFlags5
+ set BIT_NO_TEXT_DELAY, [hl]
ld a, MONEY_BOX_TEMPLATE
ld [wTextBoxID], a
call DisplayTextBoxID
@@ -140,17 +140,17 @@ DisplayMoneyBox:
ld de, wPlayerMoney
ld c, $a3
call PrintBCDNumber
- ld hl, wd730
- res 6, [hl]
+ ld hl, wStatusFlags5
+ res BIT_NO_TEXT_DELAY, [hl]
ret
CurrencyString:
db " ¥@"
DoBuySellQuitMenu:
- ld a, [wd730]
- set 6, a ; no printing delay
- ld [wd730], a
+ ld a, [wStatusFlags5]
+ set BIT_NO_TEXT_DELAY, a
+ ld [wStatusFlags5], a
xor a
ld [wChosenMenuItem], a
ld a, BUY_SELL_QUIT_MENU_TEMPLATE
@@ -168,9 +168,9 @@ DoBuySellQuitMenu:
ld [wCurrentMenuItem], a
ld [wLastMenuItem], a
ld [wMenuWatchMovingOutOfBounds], a
- ld a, [wd730]
- res 6, a ; turn on the printing delay
- ld [wd730], a
+ ld a, [wStatusFlags5]
+ res BIT_NO_TEXT_DELAY, a
+ ld [wStatusFlags5], a
call HandleMenuInput
call PlaceUnfilledArrowMenuCursor
bit BIT_A_BUTTON, a
@@ -204,9 +204,9 @@ DoBuySellQuitMenu:
; hl = address where the text box border should be drawn
DisplayTwoOptionMenu:
push hl
- ld a, [wd730]
- set 6, a ; no printing delay
- ld [wd730], a
+ ld a, [wStatusFlags5]
+ set BIT_NO_TEXT_DELAY, a
+ ld [wStatusFlags5], a
; pointless because both values are overwritten before they are read
xor a
@@ -226,8 +226,8 @@ DisplayTwoOptionMenu:
ld [wMenuWatchMovingOutOfBounds], a
push hl
ld hl, wTwoOptionMenuID
- bit 7, [hl] ; select second menu item by default?
- res 7, [hl]
+ bit BIT_SECOND_MENU_OPTION_DEFAULT, [hl]
+ res BIT_SECOND_MENU_OPTION_DEFAULT, [hl]
jr z, .storeCurrentMenuItem
inc a
.storeCurrentMenuItem
@@ -278,8 +278,8 @@ DisplayTwoOptionMenu:
call PlaceString
xor a
ld [wTwoOptionMenuID], a
- ld hl, wd730
- res 6, [hl] ; turn on the printing delay
+ ld hl, wStatusFlags5
+ res BIT_NO_TEXT_DELAY, [hl]
call HandleMenuInput
pop hl
bit BIT_B_BUTTON, a
diff --git a/engine/menus/unused_input.asm b/engine/menus/unused_input.asm
index 6fe44b0b..15a0af34 100644
--- a/engine/menus/unused_input.asm
+++ b/engine/menus/unused_input.asm
@@ -42,7 +42,7 @@ HandleMenuInputPokemonSelectionDuplicate: ; unreferenced
ld [wCurrentMenuItem], a ; move selected menu item up one space
jr .checkOtherKeys
.checkIfDownPressed
- bit 7, a
+ bit BIT_D_DOWN, a
jr z, .checkOtherKeys
.downPressed
ld a, [wCurrentMenuItem]
diff --git a/engine/movie/credits.asm b/engine/movie/credits.asm
index 489569d1..7a24b0b8 100644
--- a/engine/movie/credits.asm
+++ b/engine/movie/credits.asm
@@ -65,7 +65,7 @@ DisplayCreditsMon:
xor a
ldh [hAutoBGTransferEnabled], a
ld hl, rLCDC
- set 3, [hl]
+ set rLCDC_BG_TILEMAP, [hl]
call SaveScreenTilesToBuffer2
call FillMiddleOfScreenWithWhite
call GetNextCreditsMon
@@ -80,7 +80,7 @@ DisplayCreditsMon:
ldh [rBGP], a
call UpdateGBCPal_BGP
ld hl, rLCDC
- res 3, [hl]
+ res rLCDC_BG_TILEMAP, [hl]
ld a, 1
ldh [hAutoBGTransferEnabled], a
ld b, 0
@@ -117,8 +117,8 @@ GetNextCreditsMon:
ld hl, CreditsMons
add hl, bc
ld a, [hl]
- ld [wcf91], a
- ld [wd0b5], a
+ ld [wCurPartySpecies], a
+ ld [wCurSpecies], a
hlcoord 8, 6
call GetMonHeader
call LoadFrontSpriteByMonIndex
diff --git a/engine/movie/evolution.asm b/engine/movie/evolution.asm
index 37e10188..99f14322 100644
--- a/engine/movie/evolution.asm
+++ b/engine/movie/evolution.asm
@@ -2,9 +2,9 @@ EvolveMon:
push hl
push de
push bc
- ld a, [wcf91]
+ ld a, [wCurPartySpecies]
push af
- ld a, [wd0b5]
+ ld a, [wCurSpecies]
push af
xor a
ld [wLowHealthAlarm], a
@@ -23,16 +23,16 @@ EvolveMon:
ld c, 0
call EvolutionSetWholeScreenPalette
ld a, [wEvoNewSpecies]
- ld [wcf91], a
- ld [wd0b5], a
+ ld [wCurPartySpecies], a
+ ld [wCurSpecies], a
call Evolution_LoadPic
ld de, vFrontPic
ld hl, vBackPic
ld bc, 7 * 7
call CopyVideoData
ld a, [wEvoOldSpecies]
- ld [wcf91], a
- ld [wd0b5], a
+ ld [wCurPartySpecies], a
+ ld [wCurSpecies], a
call Evolution_LoadPic
ld a, $1
ldh [hAutoBGTransferEnabled], a
@@ -71,9 +71,9 @@ EvolveMon:
ld c, 0
call EvolutionSetWholeScreenPalette
pop af
- ld [wd0b5], a
+ ld [wCurSpecies], a
pop af
- ld [wcf91], a
+ ld [wCurPartySpecies], a
pop bc
pop de
pop hl
diff --git a/engine/movie/hall_of_fame.asm b/engine/movie/hall_of_fame.asm
index 5f441343..5be7d8c5 100644
--- a/engine/movie/hall_of_fame.asm
+++ b/engine/movie/hall_of_fame.asm
@@ -12,7 +12,7 @@ AnimateHallOfFame:
call FillMemory
call EnableLCD
ld hl, rLCDC
- set 3, [hl]
+ set rLCDC_BG_TILEMAP, [hl]
xor a
ld hl, wHallOfFame
ld bc, HOF_TEAM
@@ -87,7 +87,7 @@ AnimateHallOfFame:
xor a
ldh [hWY], a
ld hl, rLCDC
- res 3, [hl]
+ res rLCDC_BG_TILEMAP, [hl]
ret
HallOfFameText:
@@ -100,8 +100,8 @@ HoFShowMonOrPlayer:
ld a, $c0
ldh [hSCX], a
ld a, [wHoFMonSpecies]
- ld [wcf91], a
- ld [wd0b5], a
+ ld [wCurPartySpecies], a
+ ld [wCurSpecies], a
ld [wBattleMonSpecies2], a
ld [wWholeScreenPaletteMonSpecies], a
ld a, [wHoFMonOrPlayer]
@@ -180,13 +180,13 @@ HoFDisplayMonInfo:
ld de, HoFMonInfoText
call PlaceString
hlcoord 1, 4
- ld de, wcd6d
+ ld de, wNameBuffer
call PlaceString
ld a, [wHoFMonLevel]
hlcoord 8, 7
call PrintLevelCommon
ld a, [wHoFMonSpecies]
- ld [wd0b5], a
+ ld [wCurSpecies], a
hlcoord 3, 9
predef PrintMonType
ret
@@ -290,7 +290,7 @@ HoFRecordMonInfo:
ld [hli], a
ld e, l
ld d, h
- ld hl, wcd6d
+ ld hl, wNameBuffer
ld bc, NAME_LENGTH
jp CopyData
diff --git a/engine/movie/intro.asm b/engine/movie/intro.asm
index 691f9c78..ef2374da 100644
--- a/engine/movie/intro.asm
+++ b/engine/movie/intro.asm
@@ -116,8 +116,8 @@ PlayShootingStar:
call EnableLCD
ld hl, rLCDC
- res 5, [hl]
- set 3, [hl]
+ res rLCDC_WINDOW_ENABLE, [hl]
+ set rLCDC_BG_TILEMAP, [hl]
ld c, 64
call DelayFrames
farcall AnimateShootingStar
diff --git a/engine/movie/oak_speech/init_player_data.asm b/engine/movie/oak_speech/init_player_data.asm
index 592aa5f0..25b6067d 100644
--- a/engine/movie/oak_speech/init_player_data.asm
+++ b/engine/movie/oak_speech/init_player_data.asm
@@ -10,7 +10,7 @@ InitPlayerData2:
ld [wPlayerID + 1], a
ld a, $ff
- ld [wUnusedD71B], a
+ ld [wUnusedPlayerDataByte], a
ld a, 90 ; initialize happiness to 90
ld [wPikachuHappiness], a
diff --git a/engine/movie/oak_speech/oak_speech.asm b/engine/movie/oak_speech/oak_speech.asm
index 3884d271..6cdf3e56 100644
--- a/engine/movie/oak_speech/oak_speech.asm
+++ b/engine/movie/oak_speech/oak_speech.asm
@@ -4,11 +4,11 @@ PrepareOakSpeech:
ld a, [wOptions]
push af
; Retrieve BIT_DEBUG_MODE set in DebugMenu for StartNewGameDebug.
- ; BUG: StartNewGame carries over bit 5 from previous save files,
+ ; BUG: StartNewGame carries over BIT_ALWAYS_ON_BIKE from previous save files,
; which causes CheckForceBikeOrSurf to not return.
- ; To fix this in debug builds, reset bit 5 here or in StartNewGame.
+ ; To fix this in debug builds, reset BIT_ALWAYS_ON_BIKE here or in StartNewGame.
; In non-debug builds, the instructions can be removed.
- ld a, [wd732]
+ ld a, [wStatusFlags6]
push af
ld a, [wPrinterSettings]
push af
@@ -27,7 +27,7 @@ PrepareOakSpeech:
pop af
ld [wPrinterSettings], a
pop af
- ld [wd732], a
+ ld [wStatusFlags6], a
pop af
ld [wOptions], a
pop af
@@ -60,7 +60,7 @@ OakSpeech:
predef InitPlayerData2
ld hl, wNumBoxItems
ld a, POTION
- ld [wcf91], a
+ ld [wCurItem], a
ld a, 1
ld [wItemQuantity], a
call AddItemToInventory
@@ -69,7 +69,7 @@ OakSpeech:
call PrepareForSpecialWarp
xor a
ldh [hTileAnimations], a
- ld a, [wd732]
+ ld a, [wStatusFlags6]
bit BIT_DEBUG_MODE, a
jp nz, .skipSpeech
ld de, ProfOakPic
@@ -81,8 +81,8 @@ OakSpeech:
call GBFadeOutToWhite
call ClearScreen
ld a, STARTER_PIKACHU
- ld [wd0b5], a
- ld [wcf91], a
+ ld [wCurSpecies], a
+ ld [wCurPartySpecies], a
call GetMonHeader
hlcoord 6, 4
call LoadFlippedFrontSpriteByMonIndex
@@ -114,8 +114,8 @@ OakSpeech:
lb bc, BANK(RedPicFront), $00
call IntroDisplayPicCenteredOrUpperRight
call GBFadeInFromWhite
- ld a, [wd72d]
- and a
+ ld a, [wStatusFlags3]
+ and a ; ???
jr nz, .next
ld hl, OakSpeechText3
call PrintText
diff --git a/engine/movie/oak_speech/oak_speech2.asm b/engine/movie/oak_speech/oak_speech2.asm
index cf657a7f..39dcf001 100644
--- a/engine/movie/oak_speech/oak_speech2.asm
+++ b/engine/movie/oak_speech/oak_speech2.asm
@@ -72,7 +72,7 @@ OakSpeechSlidePicLeft:
ld c, 10
call DelayFrames
pop de
- ld hl, wcd6d
+ ld hl, wNameBuffer
ld bc, NAME_LENGTH
call CopyData
call Delay3
@@ -209,7 +209,7 @@ GetDefaultName:
.foundName
ld h, d
ld l, e
- ld de, wcd6d
+ ld de, wNameBuffer
ld bc, NAME_BUFFER_LENGTH
jp CopyData
diff --git a/engine/movie/title.asm b/engine/movie/title.asm
index d0a97a6f..2c4b61fb 100644
--- a/engine/movie/title.asm
+++ b/engine/movie/title.asm
@@ -11,9 +11,11 @@ PrepareTitleScreen::
xor a
ldh [hWY], a
ld [wLetterPrintingDelayFlags], a
- ld hl, wd732
+ ld hl, wStatusFlags6
ld [hli], a
+ assert wStatusFlags6 + 1 == wStatusFlags7
ld [hli], a
+ assert wStatusFlags7 + 1 == wElite4Flags
ld [hl], a
ld a, BANK(Music_TitleScreen)
ld [wAudioROMBank], a
@@ -152,7 +154,7 @@ DisplayTitleScreen:
call PlaySound
.loop
xor a
- ld [wUnusedCC5B], a
+ ld [wUnusedFlag], a
ld [wTitleScreenScene], a
ld [wTitleScreenScene + 1], a
ld [wTitleScreenScene + 2], a
diff --git a/engine/movie/trade.asm b/engine/movie/trade.asm
index 7143701b..990f1788 100644
--- a/engine/movie/trade.asm
+++ b/engine/movie/trade.asm
@@ -174,8 +174,8 @@ LoadTradingGFXAndMonNames:
call ClearSprites
ld a, $ff
ld [wUpdateSpritesEnabled], a
- ld hl, wd730
- set 6, [hl] ; turn on instant text printing
+ ld hl, wStatusFlags5
+ set BIT_NO_TEXT_DELAY, [hl]
ld a, [wOnSGB]
and a
ld a, $e4 ; non-SGB OBP0
@@ -188,14 +188,14 @@ LoadTradingGFXAndMonNames:
xor a
ldh [hAutoBGTransferEnabled], a
ld a, [wTradedPlayerMonSpecies]
- ld [wd11e], a
+ ld [wNamedObjectIndex], a
call GetMonName
- ld hl, wcd6d
+ ld hl, wNameBuffer
ld de, wStringBuffer
ld bc, NAME_LENGTH
call CopyData
ld a, [wTradedEnemyMonSpecies]
- ld [wd11e], a
+ ld [wNamedObjectIndex], a
jp GetMonName
Trade_LoadMonPartySpriteGfx:
@@ -221,8 +221,8 @@ Trade_SwapNames:
Trade_Cleanup:
xor a
call LoadGBPal
- ld hl, wd730
- res 6, [hl] ; turn off instant text printing
+ ld hl, wStatusFlags5
+ res BIT_NO_TEXT_DELAY, [hl]
ret
Trade_ShowPlayerMon:
@@ -731,8 +731,8 @@ Trade_CircleOAM3:
; a = species
Trade_LoadMonSprite:
- ld [wcf91], a
- ld [wd0b5], a
+ ld [wCurPartySpecies], a
+ ld [wCurSpecies], a
ld [wWholeScreenPaletteMonSpecies], a
ld b, SET_PAL_POKEMON_WHOLE_SCREEN
ld c, 0
diff --git a/engine/movie/trade2.asm b/engine/movie/trade2.asm
index 98d1158e..d4a4b635 100644
--- a/engine/movie/trade2.asm
+++ b/engine/movie/trade2.asm
@@ -3,10 +3,10 @@ Trade_PrintPlayerMonInfoText:
ld de, Trade_MonInfoText
call PlaceString
ld a, [wTradedPlayerMonSpecies]
- ld [wd11e], a
+ ld [wPokedexNum], a
predef IndexToPokedex
hlcoord 9, 0
- ld de, wd11e
+ ld de, wPokedexNum
lb bc, LEADING_ZEROES | 1, 3
call PrintNumber
hlcoord 5, 2
@@ -25,14 +25,14 @@ Trade_PrintEnemyMonInfoText:
ld de, Trade_MonInfoText
call PlaceString
ld a, [wTradedEnemyMonSpecies]
- ld [wd11e], a
+ ld [wPokedexNum], a
predef IndexToPokedex
hlcoord 9, 10
- ld de, wd11e
+ ld de, wPokedexNum
lb bc, LEADING_ZEROES | 1, 3
call PrintNumber
hlcoord 5, 12
- ld de, wcd6d
+ ld de, wNameBuffer
call PlaceString
hlcoord 8, 14
ld de, wTradedEnemyMonOT
diff --git a/engine/overworld/auto_movement.asm b/engine/overworld/auto_movement.asm
index 39c1f380..8174b273 100644
--- a/engine/overworld/auto_movement.asm
+++ b/engine/overworld/auto_movement.asm
@@ -1,12 +1,12 @@
PlayerStepOutFromDoor::
- ld hl, wd730
- res 1, [hl]
+ ld hl, wStatusFlags5 ; should this be wMovementFlags?
+ res BIT_EXITING_DOOR, [hl]
call IsPlayerStandingOnDoorTile
jr nc, .notStandingOnDoor
ld a, SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
ld [wJoyIgnore], a
- ld hl, wd736
- set 1, [hl]
+ ld hl, wMovementFlags
+ set BIT_EXITING_DOOR, [hl]
ld a, $1
ld [wSimulatedJoypadStatesIndex], a
ld a, D_DOWN
@@ -17,29 +17,29 @@ PlayerStepOutFromDoor::
ret
.notStandingOnDoor
xor a
- ld [wUnusedCD3A], a
+ ld [wUnusedOverrideSimulatedJoypadStatesIndex], a
ld [wSimulatedJoypadStatesIndex], a
ld [wSimulatedJoypadStatesEnd], a
- ld hl, wd736
- res 0, [hl]
- res 1, [hl]
- ld hl, wd730
- res 7, [hl]
+ ld hl, wMovementFlags
+ res BIT_STANDING_ON_DOOR, [hl]
+ res BIT_EXITING_DOOR, [hl]
+ ld hl, wStatusFlags5
+ res BIT_SCRIPTED_MOVEMENT_STATE, [hl]
ret
_EndNPCMovementScript::
- ld hl, wd730
- res 7, [hl]
- ld hl, wd72e
- res 7, [hl]
- ld hl, wd736
- res 0, [hl]
- res 1, [hl]
+ ld hl, wStatusFlags5
+ res BIT_SCRIPTED_MOVEMENT_STATE, [hl]
+ ld hl, wStatusFlags4
+ res BIT_INIT_SCRIPTED_MOVEMENT, [hl]
+ ld hl, wMovementFlags
+ res BIT_STANDING_ON_DOOR, [hl]
+ res BIT_EXITING_DOOR, [hl]
xor a
ld [wNPCMovementScriptSpriteOffset], a
ld [wNPCMovementScriptFunctionNum], a
ld [wNPCMovementScriptPointerTableNum], a
- ld [wUnusedCD3A], a
+ ld [wUnusedOverrideSimulatedJoypadStatesIndex], a
ld [wSimulatedJoypadStatesIndex], a
ld [wSimulatedJoypadStatesEnd], a
ret
@@ -83,15 +83,15 @@ PalletMovementScript_OakMoveLeft:
ld c, a
ld a, MUSIC_MUSEUM_GUY
call PlayMusic
- ld hl, wFlags_D733
- set 1, [hl]
+ ld hl, wStatusFlags7
+ set BIT_NO_MAP_MUSIC, [hl]
ld a, SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
ld [wJoyIgnore], a
ret
PalletMovementScript_PlayerMoveLeft:
- ld a, [wd730]
- bit 0, a ; is an NPC being moved by a script?
+ ld a, [wStatusFlags5]
+ bit BIT_SCRIPTED_NPC_MOVEMENT, a
ret nz ; return if Oak is still moving
ld a, [wNumStepsToTake]
ld [wSimulatedJoypadStatesIndex], a
@@ -123,10 +123,10 @@ PalletMovementScript_WalkToLab:
ld hl, wNPCMovementDirections2
ld de, RLEList_ProfOakWalkToLab
call DecodeRLEList
- ld hl, wd72e
- res 7, [hl]
- ld hl, wd730
- set 7, [hl]
+ ld hl, wStatusFlags4
+ res BIT_INIT_SCRIPTED_MOVEMENT, [hl]
+ ld hl, wStatusFlags5
+ set BIT_SCRIPTED_MOVEMENT_STATE, [hl]
ld a, $4
ld [wNPCMovementScriptFunctionNum], a
ret
@@ -156,10 +156,10 @@ PalletMovementScript_Done:
ld a, HS_PALLET_TOWN_OAK
ld [wMissableObjectIndex], a
predef HideObject
- ld hl, wd730
- res 7, [hl]
- ld hl, wd72e
- res 7, [hl]
+ ld hl, wStatusFlags5
+ res BIT_SCRIPTED_MOVEMENT_STATE, [hl]
+ ld hl, wStatusFlags4
+ res BIT_INIT_SCRIPTED_MOVEMENT, [hl]
jp EndNPCMovementScript
PewterMuseumGuyMovementScriptPointerTable::
@@ -186,8 +186,8 @@ PewterMovementScript_WalkToMuseum:
ld hl, wNPCMovementDirections2
ld de, RLEList_PewterMuseumGuy
call DecodeRLEList
- ld hl, wd72e
- res 7, [hl]
+ ld hl, wStatusFlags4
+ res BIT_INIT_SCRIPTED_MOVEMENT, [hl]
ld a, $1
ld [wNPCMovementScriptFunctionNum], a
ret
@@ -210,10 +210,10 @@ PewterMovementScript_Done:
ld a, [wSimulatedJoypadStatesIndex]
and a
ret nz
- ld hl, wd730
- res 7, [hl]
- ld hl, wd72e
- res 7, [hl]
+ ld hl, wStatusFlags5
+ res BIT_SCRIPTED_MOVEMENT_STATE, [hl]
+ ld hl, wStatusFlags4
+ res BIT_INIT_SCRIPTED_MOVEMENT, [hl]
jp EndNPCMovementScript
PewterGymGuyMovementScriptPointerTable::
@@ -241,10 +241,10 @@ PewterMovementScript_WalkToGym:
ld hl, wNPCMovementDirections2
ld de, RLEList_PewterGymGuy
call DecodeRLEList
- ld hl, wd72e
- res 7, [hl]
- ld hl, wd730
- set 7, [hl]
+ ld hl, wStatusFlags4
+ res BIT_INIT_SCRIPTED_MOVEMENT, [hl]
+ ld hl, wStatusFlags5
+ set BIT_SCRIPTED_MOVEMENT_STATE, [hl]
ld a, $1
ld [wNPCMovementScriptFunctionNum], a
ret
diff --git a/engine/overworld/clear_variables.asm b/engine/overworld/clear_variables.asm
index bbb7c986..6bd44963 100644
--- a/engine/overworld/clear_variables.asm
+++ b/engine/overworld/clear_variables.asm
@@ -10,7 +10,7 @@ ClearVariablesOnEnterMap::
ldh [hJoyReleased], a
ldh [hJoyHeld], a
ld [wActionResultOrTookBattleTurn], a
- ld [wUnusedD5A3], a
+ ld [wUnusedMapVariable], a
ld hl, wCardKeyDoorY
ld [hli], a
ld [hl], a
diff --git a/engine/overworld/cut.asm b/engine/overworld/cut.asm
index 1373f5dd..8cc76104 100644
--- a/engine/overworld/cut.asm
+++ b/engine/overworld/cut.asm
@@ -32,8 +32,8 @@ UsedCut:
ld a, [wWhichPokemon]
ld hl, wPartyMonNicks
call GetPartyMonName
- ld hl, wd730
- set 6, [hl]
+ ld hl, wStatusFlags5
+ set BIT_NO_TEXT_DELAY, [hl]
call GBPalWhiteOutWithDelay3
call ClearSprites
call RestoreScreenTilesAndReloadTilePatterns
@@ -49,8 +49,8 @@ UsedCut:
ld hl, UsedCutText
call PrintText
call LoadScreenTilesFromBuffer2
- ld hl, wd730
- res 6, [hl]
+ ld hl, wStatusFlags5
+ res BIT_NO_TEXT_DELAY, [hl]
ld a, $ff
ld [wUpdateSpritesEnabled], a
call InitCutAnimOAM
diff --git a/engine/overworld/dungeon_warps.asm b/engine/overworld/dungeon_warps.asm
index 7641c688..943c379d 100644
--- a/engine/overworld/dungeon_warps.asm
+++ b/engine/overworld/dungeon_warps.asm
@@ -1,15 +1,15 @@
IsPlayerOnDungeonWarp::
xor a
ld [wWhichDungeonWarp], a
- ld a, [wd72d]
- bit 4, a
+ ld a, [wStatusFlags3]
+ bit BIT_ON_DUNGEON_WARP, a
ret nz
call ArePlayerCoordsInArray
ret nc
ld a, [wCoordIndex]
ld [wWhichDungeonWarp], a
- ld hl, wd72d
- set 4, [hl]
- ld hl, wd732
- set 4, [hl]
+ ld hl, wStatusFlags3
+ set BIT_ON_DUNGEON_WARP, [hl]
+ ld hl, wStatusFlags6
+ set BIT_DUNGEON_WARP, [hl]
ret
diff --git a/engine/overworld/emotion_bubbles.asm b/engine/overworld/emotion_bubbles.asm
index 006bded3..61bbc4f5 100644
--- a/engine/overworld/emotion_bubbles.asm
+++ b/engine/overworld/emotion_bubbles.asm
@@ -18,8 +18,8 @@ EmotionBubble:
push af
ld a, $ff
ld [wUpdateSpritesEnabled], a
- ld a, [wd736]
- bit 6, a ; are the last 4 OAM entries reserved for a shadow or fishing rod?
+ ld a, [wMovementFlags]
+ bit BIT_LEDGE_OR_FISHING, a ; are the last 4 OAM entries reserved for a shadow or fishing rod?
ld hl, wShadowOAMSprite35Attributes
ld de, wShadowOAMSprite39Attributes
jr z, .next
diff --git a/engine/overworld/field_move_messages.asm b/engine/overworld/field_move_messages.asm
index d75ffc21..dadfb753 100644
--- a/engine/overworld/field_move_messages.asm
+++ b/engine/overworld/field_move_messages.asm
@@ -1,6 +1,6 @@
-PrintStrengthTxt:
- ld hl, wd728
- set 0, [hl]
+PrintStrengthText:
+ ld hl, wStatusFlags1
+ set BIT_STRENGTH_ACTIVE, [hl]
ld hl, UsedStrengthText
call PrintText
ld hl, CanMoveBouldersText
@@ -9,7 +9,7 @@ PrintStrengthTxt:
UsedStrengthText:
text_far _UsedStrengthText
text_asm
- ld a, [wcf91]
+ ld a, [wCurPartySpecies]
call PlayCry
call Delay3
jp TextScriptEnd
@@ -19,13 +19,13 @@ CanMoveBouldersText:
text_end
IsSurfingAllowed:
-; Returns whether surfing is allowed in bit 1 of wd728.
+; Returns whether surfing is allowed in BIT_SURF_ALLOWED of wStatusFlags1.
; Surfing isn't allowed on the Cycling Road or in the lowest level of the
; Seafoam Islands before the current has been slowed with boulders.
- ld hl, wd728
- set 1, [hl]
- ld a, [wd732]
- bit 5, a
+ ld hl, wStatusFlags1
+ set BIT_SURF_ALLOWED, [hl]
+ ld a, [wStatusFlags6]
+ bit BIT_ALWAYS_ON_BIKE, a
jr nz, .forcedToRideBike
ld a, [wCurMap]
cp SEAFOAM_ISLANDS_B4F
@@ -35,13 +35,13 @@ IsSurfingAllowed:
ld hl, SeafoamIslandsB4FStairsCoords
call ArePlayerCoordsInArray
ret nc
- ld hl, wd728
- res 1, [hl]
+ ld hl, wStatusFlags1
+ res BIT_SURF_ALLOWED, [hl]
ld hl, CurrentTooFastText
jp PrintText
.forcedToRideBike
- ld hl, wd728
- res 1, [hl]
+ ld hl, wStatusFlags1
+ res BIT_SURF_ALLOWED, [hl]
ld hl, CyclingIsFunText
jp PrintText
diff --git a/engine/overworld/ledges.asm b/engine/overworld/ledges.asm
index 96441838..c08d9eaf 100644
--- a/engine/overworld/ledges.asm
+++ b/engine/overworld/ledges.asm
@@ -1,6 +1,6 @@
HandleLedges::
- ld a, [wd736]
- bit 6, a ; already jumping down ledge
+ ld a, [wMovementFlags]
+ bit BIT_LEDGE_OR_FISHING, a
ret nz
ld a, [wCurMapTileset]
and a ; OVERWORLD
@@ -41,8 +41,8 @@ HandleLedges::
ret z
ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
ld [wJoyIgnore], a
- ld hl, wd736
- set 6, [hl] ; jumping down ledge
+ ld hl, wMovementFlags
+ set BIT_LEDGE_OR_FISHING, [hl]
call StartSimulatingJoypadStates
ld a, e
ld [wSimulatedJoypadStatesEnd], a
diff --git a/engine/overworld/map_sprites.asm b/engine/overworld/map_sprites.asm
index d1bc7832..5d25b6d0 100644
--- a/engine/overworld/map_sprites.asm
+++ b/engine/overworld/map_sprites.asm
@@ -27,7 +27,7 @@ InitOutsideMapSprites:
; if so, choose the appropriate one
ld b, a ; b = spriteSetID
ld a, [wFontLoaded]
- bit 0, a ; reloading upper half of tile patterns after displaying text?
+ bit BIT_FONT_LOADED, a ; reloading upper half of tile patterns after displaying text?
jr nz, .loadSpriteSet ; if so, forcibly reload the sprite set
ld a, [wSpriteSetID]
cp b ; has the sprite set ID changed?
@@ -170,7 +170,7 @@ ReloadWalkingTilePatterns:
LoadStillTilePattern:
ld a, [wFontLoaded]
- bit 0, a ; reloading upper half of tile patterns after displaying text?
+ bit BIT_FONT_LOADED, a ; reloading upper half of tile patterns after displaying text?
ret nz ; if so, skip loading data into the lower half
call ReadSpriteSheetData
ret nc
@@ -186,7 +186,7 @@ LoadWalkingTilePattern:
ld d, h
ld e, l
call GetSpriteVRAMAddress
- set 3, h ; add $80 tiles to hl
+ set 3, h ; add $800 ($80 tiles) to hl (1 << 3 == $8)
call CopyVideoDataAlternate
ret
diff --git a/engine/overworld/movement.asm b/engine/overworld/movement.asm
index 48a6f3aa..c05837eb 100644
--- a/engine/overworld/movement.asm
+++ b/engine/overworld/movement.asm
@@ -57,7 +57,7 @@ UpdatePlayerSprite:
.next
ld [wSpritePlayerStateData1FacingDirection], a ; facing direction
ld a, [wFontLoaded]
- bit 0, a
+ bit BIT_FONT_LOADED, a
jr z, .moving
.notMoving
; zero the animation counters
@@ -67,8 +67,8 @@ UpdatePlayerSprite:
call Func_4e32
jr .skipSpriteAnim
.moving
- ld a, [wd736]
- bit 7, a ; is the player sprite spinning due to a spin tile?
+ ld a, [wMovementFlags]
+ bit BIT_SPINNING, a
jr nz, .skipSpriteAnim
call Func_5274
call Func_4e32
@@ -120,11 +120,11 @@ UpdateNPCSprite:
ld l, a
inc l
ld a, [hl] ; x#SPRITESTATEDATA1_MOVEMENTSTATUS
- bit 7, a ; is the face player flag set?
+ bit BIT_FACE_PLAYER, a
jp nz, MakeNPCFacePlayer
ld b, a
ld a, [wFontLoaded]
- bit 0, a
+ bit BIT_FONT_LOADED, a
jp nz, notYetMoving
ld a, b
cp $2
@@ -162,11 +162,11 @@ UpdateNPCSprite:
jr nz, .next
; reached end of wNPCMovementDirections list
ld [hl], a ; store $ff in movement byte 1, disabling scripted movement
- ld hl, wd730
- res 0, [hl]
+ ld hl, wStatusFlags5
+ res BIT_SCRIPTED_NPC_MOVEMENT, [hl]
xor a
ld [wSimulatedJoypadStatesIndex], a
- ld [wUnusedCD3A], a
+ ld [wUnusedOverrideSimulatedJoypadStatesIndex], a
ret
.next
cp WALK
@@ -367,10 +367,10 @@ MakeNPCFacePlayer:
; Check if the behaviour of the NPC facing the player when spoken to is
; disabled. This is only done when rubbing the S.S. Anne captain's back.
- ld a, [wd72d]
- bit 5, a
+ ld a, [wStatusFlags3]
+ bit BIT_NO_NPC_FACE_PLAYER, a
jr nz, notYetMoving
- res 7, [hl]
+ res BIT_FACE_PLAYER, [hl]
ld a, [wPlayerDirection]
bit PLAYER_DIR_BIT_UP, a
jr z, .notFacingDown
@@ -610,7 +610,7 @@ CanWalkOntoTile:
add SPRITESTATEDATA2_YDISPLACEMENT
ld l, a
ld a, [hli] ; x#SPRITESTATEDATA2_YDISPLACEMENT (initialized at $8, keep track of where a sprite did go)
- bit 7, d ; check if going upwards (d=$ff)
+ bit 7, d ; check if going upwards (d == -1)
jr nz, .upwards
add d
; bug: these tests against $5 probably were supposed to prevent
@@ -628,7 +628,7 @@ CanWalkOntoTile:
.checkHorizontal
ld d, a
ld a, [hl] ; x#SPRITESTATEDATA2_XDISPLACEMENT (initialized at $8, keep track of where a sprite did go)
- bit 7, e ; check if going left (e=$ff)
+ bit 7, e ; check if going left (e == -1)
jr nz, .left
add e
cp $5 ; compare, but no conditional jump like in the vertical check above (bug?)
@@ -710,12 +710,12 @@ DoScriptedNPCMovement:
; a few times in the game. It is used when the NPC and player must walk together
; in sync, such as when the player is following the NPC somewhere. An NPC can't
; be moved in sync with the player using the other method.
- ld a, [wd730]
- bit 7, a
+ ld a, [wStatusFlags5]
+ bit BIT_SCRIPTED_MOVEMENT_STATE, a
ret z
- ld hl, wd72e
- bit 7, [hl]
- set 7, [hl]
+ ld hl, wStatusFlags4
+ bit BIT_INIT_SCRIPTED_MOVEMENT, [hl]
+ set BIT_INIT_SCRIPTED_MOVEMENT, [hl]
jp z, InitScriptedNPCMovement
ld hl, wNPCMovementDirections2
ld a, [wNPCMovementDirections2Index]
diff --git a/engine/overworld/pathfinding.asm b/engine/overworld/pathfinding.asm
index d067345e..58fa1da9 100644
--- a/engine/overworld/pathfinding.asm
+++ b/engine/overworld/pathfinding.asm
@@ -16,7 +16,7 @@ FindPathToPlayer:
and a
jr nz, .stillHasYProgress
ldh a, [hFindPathFlags]
- set 0, a ; current end of path matches the player's Y coordinate
+ set BIT_PATH_FOUND_Y, a
ldh [hFindPathFlags], a
.stillHasYProgress
ldh a, [hFindPathXProgress]
@@ -27,11 +27,11 @@ FindPathToPlayer:
and a
jr nz, .stillHasXProgress
ldh a, [hFindPathFlags]
- set 1, a ; current end of path matches the player's X coordinate
+ set BIT_PATH_FOUND_X, a
ldh [hFindPathFlags], a
.stillHasXProgress
ldh a, [hFindPathFlags]
- cp $3 ; has the end of the path reached the player's position?
+ cp (1 << BIT_PATH_FOUND_X) | (1 << BIT_PATH_FOUND_Y)
jr z, .done
; Compare whether the X distance between the player and the current of the path
; is greater or if the Y distance is. Then, try to reduce whichever is greater.
@@ -40,7 +40,7 @@ FindPathToPlayer:
jr c, .yDistanceGreater
; x distance is greater
ldh a, [hNPCPlayerRelativePosFlags]
- bit 1, a
+ bit BIT_PLAYER_LOWER_X, a
jr nz, .playerIsLeftOfNPC
ld d, NPC_MOVEMENT_RIGHT
jr .next1
@@ -53,7 +53,7 @@ FindPathToPlayer:
jr .storeDirection
.yDistanceGreater
ldh a, [hNPCPlayerRelativePosFlags]
- bit 0, a
+ bit BIT_PLAYER_LOWER_Y, a
jr nz, .playerIsAboveNPC
ld d, NPC_MOVEMENT_DOWN
jr .next2
@@ -97,15 +97,15 @@ CalcPositionOfPlayerRelativeToNPC:
.NPCNorthOfPlayer
push hl
ld hl, hNPCPlayerRelativePosFlags
- bit 0, [hl]
- set 0, [hl]
+ bit BIT_PLAYER_LOWER_Y, [hl]
+ set BIT_PLAYER_LOWER_Y, [hl]
pop hl
jr .divideYDistance
.NPCSouthOfOrAlignedWithPlayer
push hl
ld hl, hNPCPlayerRelativePosFlags
- bit 0, [hl]
- res 0, [hl]
+ bit BIT_PLAYER_LOWER_Y, [hl]
+ res BIT_PLAYER_LOWER_Y, [hl]
pop hl
.divideYDistance
push hl
@@ -125,15 +125,15 @@ CalcPositionOfPlayerRelativeToNPC:
.NPCWestOfPlayer
push hl
ld hl, hNPCPlayerRelativePosFlags
- bit 1, [hl]
- set 1, [hl]
+ bit BIT_PLAYER_LOWER_X, [hl]
+ set BIT_PLAYER_LOWER_X, [hl]
pop hl
jr .divideXDistance
.NPCEastOfOrAlignedWithPlayer
push hl
ld hl, hNPCPlayerRelativePosFlags
- bit 1, [hl]
- res 1, [hl]
+ bit BIT_PLAYER_LOWER_X, [hl]
+ res BIT_PLAYER_LOWER_X, [hl]
pop hl
.divideXDistance
ldh [hDividend2], a
diff --git a/engine/overworld/player_animations.asm b/engine/overworld/player_animations.asm
index 6f8a5c18..aed6954c 100644
--- a/engine/overworld/player_animations.asm
+++ b/engine/overworld/player_animations.asm
@@ -5,14 +5,14 @@ EnterMapAnim::
call Delay3
push hl
call GBFadeInFromWhite
- ld hl, wFlags_D733
- bit 7, [hl] ; used fly out of battle?
- res 7, [hl]
+ ld hl, wStatusFlags7
+ bit BIT_USED_FLY, [hl]
+ res BIT_USED_FLY, [hl]
jr nz, .flyAnimation
ld a, SFX_TELEPORT_ENTER_1
call PlaySound
- ld hl, wd732
- bit 4, [hl] ; used dungeon warp?
+ ld hl, wStatusFlags6
+ bit BIT_DUNGEON_WARP, [hl]
pop hl
jr nz, .dungeonWarpAnimation
call PlayerSpinWhileMovingDown
@@ -126,8 +126,8 @@ _LeaveMapAnim::
.playerNotStandingOnWarpPadOrHole
ld a, $4
call StopMusic
- ld a, [wd732]
- bit 6, a ; is the last used pokemon center the destination?
+ ld a, [wStatusFlags6]
+ bit BIT_ESCAPE_WARP, a
jr z, .flyAnimation
; if going to the last used pokemon center
ld hl, wPlayerSpinInPlaceAnimFrameDelay
@@ -384,8 +384,8 @@ INCLUDE "data/tilesets/warp_pad_hole_tile_ids.asm"
FishingAnim:
ld c, 10
call DelayFrames
- ld hl, wd736
- set 6, [hl] ; reserve the last 4 OAM entries
+ ld hl, wMovementFlags
+ set BIT_LEDGE_OR_FISHING, [hl]
ld hl, vNPCSprites
ld de, RedSprite
ld b, BANK(RedSprite)
@@ -452,8 +452,8 @@ FishingAnim:
.done
call PrintText
- ld hl, wd736
- res 6, [hl] ; unreserve the last 4 OAM entries
+ ld hl, wMovementFlags
+ res BIT_LEDGE_OR_FISHING, [hl]
call LoadFontTilePatterns
ret
@@ -519,10 +519,10 @@ _HandleMidJump::
ldh [hJoyPressed], a
ldh [hJoyReleased], a
ld [wPlayerJumpingYScreenCoordsIndex], a
- ld hl, wd736
- res 6, [hl] ; not jumping down a ledge any more
- ld hl, wd730
- res 7, [hl] ; not simulating joypad states any more
+ ld hl, wMovementFlags
+ res BIT_LEDGE_OR_FISHING, [hl]
+ ld hl, wStatusFlags5
+ res BIT_SCRIPTED_MOVEMENT_STATE, [hl]
xor a
ld [wJoyIgnore], a
ret
diff --git a/engine/overworld/player_state.asm b/engine/overworld/player_state.asm
index 1cedcf7c..1da1b36d 100644
--- a/engine/overworld/player_state.asm
+++ b/engine/overworld/player_state.asm
@@ -1,4 +1,4 @@
-; only used for setting bit 2 of wd736 upon entering a new map
+; only used for setting BIT_STANDING_ON_WARP of wMovementFlags upon entering a new map
IsPlayerStandingOnWarp::
ld a, [wNumberOfWarps]
and a
@@ -18,8 +18,8 @@ IsPlayerStandingOnWarp::
ld [wDestinationWarpID], a
ld a, [hl] ; target map
ldh [hWarpDestinationMap], a
- ld hl, wd736
- set 2, [hl] ; standing on warp flag
+ ld hl, wMovementFlags
+ set BIT_STANDING_ON_WARP, [hl]
ret
.nextWarp1
inc hl
@@ -32,8 +32,8 @@ IsPlayerStandingOnWarp::
ret
CheckForceBikeOrSurf::
- ld hl, wd732
- bit 5, [hl]
+ ld hl, wStatusFlags6
+ bit BIT_ALWAYS_ON_BIKE, [hl]
ret nz
ld hl, ForcedBikeOrSurfMaps
ld a, [wYCoord]
@@ -45,14 +45,14 @@ CheckForceBikeOrSurf::
.loop
ld a, [hli]
cp $ff
- ret z ;if we reach FF then it's not part of the list
- cp d ;compare to current map
+ ret z ; if we reach FF then it's not part of the list
+ cp d ; compare to current map
jr nz, .incorrectMap
ld a, [hli]
- cp b ;compare y-coord
+ cp b ; compare y-coord
jr nz, .incorrectY
ld a, [hli]
- cp c ;compare x-coord
+ cp c ; compare x-coord
jr nz, .loop ; incorrect x-coord, check next item
ld a, [wCurMap]
cp SEAFOAM_ISLANDS_B3F
@@ -64,9 +64,8 @@ CheckForceBikeOrSurf::
ld a, SCRIPT_SEAFOAMISLANDSB4F_MOVE_OBJECT
ld [wSeafoamIslandsB4FCurScript], a
jr z, .forceSurfing
- ;force bike riding
- ld hl, wd732
- set 5, [hl]
+ ld hl, wStatusFlags6
+ set BIT_ALWAYS_ON_BIKE, [hl]
ld a, $1
ld [wWalkBikeSurfState], a
ld [wWalkBikeSurfStateCopy], a
@@ -209,8 +208,8 @@ IsPlayerStandingOnDoorTileOrWarpTile::
lda_coord 8, 9
call IsInArray
jr nc, .done
- ld hl, wd736
- res 2, [hl]
+ ld hl, wMovementFlags
+ res BIT_STANDING_ON_WARP, [hl]
.done
pop bc
pop de
@@ -296,6 +295,13 @@ _GetTileAndCoordsInFrontOfPlayer:
ld [wTileInFrontOfPlayer], a
ret
+; hPlayerFacing
+ const_def
+ const BIT_FACING_DOWN ; 0
+ const BIT_FACING_UP ; 1
+ const BIT_FACING_LEFT ; 2
+ const BIT_FACING_RIGHT ; 3
+
GetTileTwoStepsInFrontOfPlayer:
xor a
ldh [hPlayerFacing], a
@@ -308,7 +314,7 @@ GetTileTwoStepsInFrontOfPlayer:
jr nz, .notFacingDown
; facing down
ld hl, hPlayerFacing
- set 0, [hl]
+ set BIT_FACING_DOWN, [hl]
lda_coord 8, 13
inc d
jr .storeTile
@@ -317,7 +323,7 @@ GetTileTwoStepsInFrontOfPlayer:
jr nz, .notFacingUp
; facing up
ld hl, hPlayerFacing
- set 1, [hl]
+ set BIT_FACING_UP, [hl]
lda_coord 8, 5
dec d
jr .storeTile
@@ -326,7 +332,7 @@ GetTileTwoStepsInFrontOfPlayer:
jr nz, .notFacingLeft
; facing left
ld hl, hPlayerFacing
- set 2, [hl]
+ set BIT_FACING_LEFT, [hl]
lda_coord 4, 9
dec e
jr .storeTile
@@ -335,7 +341,7 @@ GetTileTwoStepsInFrontOfPlayer:
jr nz, .storeTile
; facing right
ld hl, hPlayerFacing
- set 3, [hl]
+ set BIT_FACING_RIGHT, [hl]
lda_coord 12, 9
inc e
.storeTile
@@ -379,7 +385,7 @@ CheckForBoulderCollisionWithSprites:
ld de, $f
ld hl, wSprite01StateData2MapY
ldh a, [hPlayerFacing]
- and $3 ; facing up or down?
+ and (1 << BIT_FACING_UP) | (1 << BIT_FACING_DOWN)
jr z, .pushingHorizontallyLoop
.pushingVerticallyLoop
inc hl
@@ -390,6 +396,7 @@ CheckForBoulderCollisionWithSprites:
ld a, [hli]
ld b, a
ldh a, [hPlayerFacing]
+ assert BIT_FACING_DOWN == 0
rrca
jr c, .pushingDown
; pushing up
@@ -415,7 +422,7 @@ CheckForBoulderCollisionWithSprites:
jr nz, .nextSprite2
ld b, [hl]
ldh a, [hPlayerFacing]
- bit 2, a
+ bit BIT_FACING_LEFT, a
jr nz, .pushingLeft
; pushing right
ldh a, [hPlayerXCoord]
diff --git a/engine/overworld/push_boulder.asm b/engine/overworld/push_boulder.asm
index 96c506c0..1773e818 100644
--- a/engine/overworld/push_boulder.asm
+++ b/engine/overworld/push_boulder.asm
@@ -1,31 +1,31 @@
TryPushingBoulder::
- ld a, [wd728]
- bit 0, a ; using Strength?
+ ld a, [wStatusFlags1]
+ bit BIT_STRENGTH_ACTIVE, a
ret z
- ld a, [wFlags_0xcd60]
- bit 1, a ; has boulder dust animation from previous push played yet?
+ ld a, [wMiscFlags]
+ bit BIT_BOULDER_DUST, a
ret nz
xor a
- ldh [hSpriteIndexOrTextID], a
+ ldh [hSpriteIndex], a
call IsSpriteInFrontOfPlayer
- ldh a, [hSpriteIndexOrTextID]
+ ldh a, [hSpriteIndex]
ld [wBoulderSpriteIndex], a
and a
jp z, ResetBoulderPushFlags
ld hl, wSpritePlayerStateData1MovementStatus
ld d, $0
- ldh a, [hSpriteIndexOrTextID]
+ ldh a, [hSpriteIndex]
swap a
ld e, a
add hl, de
- res 7, [hl]
+ res BIT_FACE_PLAYER, [hl]
call GetSpriteMovementByte2Pointer
ld a, [hl]
cp BOULDER_MOVEMENT_BYTE_2
jp nz, ResetBoulderPushFlags
- ld hl, wFlags_0xcd60
- bit 6, [hl]
- set 6, [hl] ; indicate that the player has tried pushing
+ ld hl, wMiscFlags
+ bit BIT_TRIED_PUSH_BOULDER, [hl]
+ set BIT_TRIED_PUSH_BOULDER, [hl]
ret z ; the player must try pushing twice before the boulder will move
ldh a, [hJoyHeld]
and D_RIGHT | D_LEFT | D_UP | D_DOWN
@@ -44,30 +44,30 @@ TryPushingBoulder::
cp SPRITE_FACING_RIGHT
jr z, .pushBoulderRight
.pushBoulderDown
- bit 7, b
+ bit BIT_D_DOWN, b
ret z
ld de, PushBoulderDownMovementData
jr .done
.pushBoulderUp
- bit 6, b
+ bit BIT_D_UP, b
ret z
ld de, PushBoulderUpMovementData
jr .done
.pushBoulderLeft
- bit 5, b
+ bit BIT_D_LEFT, b
ret z
ld de, PushBoulderLeftMovementData
jr .done
.pushBoulderRight
- bit 4, b
+ bit BIT_D_RIGHT, b
ret z
ld de, PushBoulderRightMovementData
.done
call MoveSprite
ld a, SFX_PUSH_BOULDER
call PlaySound
- ld hl, wFlags_0xcd60
- set 1, [hl]
+ ld hl, wMiscFlags
+ set BIT_BOULDER_DUST, [hl]
ret
PushBoulderUpMovementData:
@@ -87,14 +87,14 @@ PushBoulderRightMovementData:
db -1 ; end
DoBoulderDustAnimation::
- ld a, [wd730]
- bit 0, a
+ ld a, [wStatusFlags5]
+ bit BIT_SCRIPTED_NPC_MOVEMENT, a
ret nz
callfar AnimateBoulderDust
call DiscardButtonPresses
ld [wJoyIgnore], a
call ResetBoulderPushFlags
- set 7, [hl] ; [wFlags_0xcd60]
+ set BIT_PUSHED_BOULDER, [hl]
ld a, [wBoulderSpriteIndex]
ldh [hSpriteIndex], a
call GetSpriteMovementByte2Pointer
@@ -103,7 +103,7 @@ DoBoulderDustAnimation::
jp PlaySound
ResetBoulderPushFlags:
- ld hl, wFlags_0xcd60
- res 1, [hl]
- res 6, [hl]
+ ld hl, wMiscFlags
+ res BIT_BOULDER_DUST, [hl]
+ res BIT_TRIED_PUSH_BOULDER, [hl]
ret
diff --git a/engine/overworld/special_warps.asm b/engine/overworld/special_warps.asm
index 0cc2a474..b20d490e 100644
--- a/engine/overworld/special_warps.asm
+++ b/engine/overworld/special_warps.asm
@@ -1,9 +1,9 @@
PrepareForSpecialWarp::
call LoadSpecialWarpData
predef LoadTilesetHeader
- ld hl, wd732
- bit 2, [hl] ; dungeon warp or fly warp?
- res 2, [hl]
+ ld hl, wStatusFlags6
+ bit BIT_FLY_OR_DUNGEON_WARP, [hl]
+ res BIT_FLY_OR_DUNGEON_WARP, [hl]
jr z, .debugNewGameWarp
ld a, [wDestinationMap]
jr .next
@@ -17,19 +17,19 @@ PrepareForSpecialWarp::
ld a, PALLET_TOWN
.next
ld b, a
- ld a, [wd72d]
- and a
+ ld a, [wStatusFlags3]
+ and a ; ???
jr nz, .next2
ld a, b
.next2
- ld hl, wd732
- bit 4, [hl] ; dungeon warp
+ ld hl, wStatusFlags6
+ bit BIT_DUNGEON_WARP, [hl]
ret nz
ld [wLastMap], a
ret
LoadSpecialWarpData:
- ld a, [wd72d]
+ ld a, [wCableClubDestinationMap]
cp TRADE_CENTER
jr nz, .notTradeCenter
ld hl, TradeCenterPlayerWarp
@@ -48,11 +48,11 @@ LoadSpecialWarpData:
ld hl, ColosseumFriendWarp
jr .copyWarpData
.notColosseum
- ld a, [wd732]
+ ld a, [wStatusFlags6]
bit BIT_DEBUG_MODE, a
; warp to wLastMap (PALLET_TOWN) for StartNewGameDebug
jr nz, .notNewGameWarp
- bit 2, a
+ bit BIT_FLY_OR_DUNGEON_WARP, a
jr nz, .notNewGameWarp
ld hl, NewGameWarp
.copyWarpData
@@ -70,17 +70,17 @@ LoadSpecialWarpData:
jr .done
.notNewGameWarp
ld a, [wLastMap] ; this value is overwritten before it's ever read
- ld hl, wd732
- bit 4, [hl] ; dungeon warp
+ ld hl, wStatusFlags6
+ bit BIT_DUNGEON_WARP, [hl]
jr nz, .usedDungeonWarp
- bit 6, [hl] ; blacked out
- res 6, [hl]
+ bit BIT_ESCAPE_WARP, [hl]
+ res BIT_ESCAPE_WARP, [hl]
jr z, .otherDestination
ld a, [wLastBlackoutMap]
jr .usedFlyWarp
.usedDungeonWarp
- ld hl, wd72d
- res 4, [hl]
+ ld hl, wStatusFlags3
+ res BIT_ON_DUNGEON_WARP, [hl]
ld a, [wDungeonWarpDestinationMap]
ld b, a
ld [wCurMap], a
diff --git a/engine/overworld/specific_script_flags.asm b/engine/overworld/specific_script_flags.asm
index b59aa9d0..bd045145 100644
--- a/engine/overworld/specific_script_flags.asm
+++ b/engine/overworld/specific_script_flags.asm
@@ -14,12 +14,12 @@ SetMapSpecificScriptFlagsOnMapReload::
.vermilion_gym
ld hl, wCurrentMapScriptFlags
- set 6, [hl]
+ set BIT_CUR_MAP_LOADED_2, [hl]
ret
.in_list
ld hl, wCurrentMapScriptFlags
- set 5, [hl]
+ set BIT_CUR_MAP_LOADED_1, [hl]
ret
INCLUDE "data/maps/bit_5_maps.asm"
diff --git a/engine/overworld/spinners.asm b/engine/overworld/spinners.asm
index 98b478c4..261a939e 100644
--- a/engine/overworld/spinners.asm
+++ b/engine/overworld/spinners.asm
@@ -15,7 +15,7 @@ LoadSpinnerArrowTiles::
ld hl, GymSpinnerArrows
.gotSpinnerArrows
ld a, [wSimulatedJoypadStatesIndex]
- bit 0, a
+ bit 0, a ; even or odd?
jr nz, .alternateGraphics
ld de, 6 * 4
add hl, de
diff --git a/engine/overworld/trainer_sight.asm b/engine/overworld/trainer_sight.asm
index 816dea7f..f32b558a 100644
--- a/engine/overworld/trainer_sight.asm
+++ b/engine/overworld/trainer_sight.asm
@@ -221,8 +221,8 @@ TrainerEngage:
ld a, [wTrainerSpriteOffset]
and a
jr z, .noEngage
- ld hl, wFlags_0xcd60
- set 0, [hl]
+ ld hl, wMiscFlags
+ set BIT_SEEN_BY_TRAINER, [hl]
call EngageMapTrainer
ld a, $ff
.noEngage
diff --git a/engine/pikachu/pikachu_emotions.asm b/engine/pikachu/pikachu_emotions.asm
index 71020138..de6230a6 100644
--- a/engine/pikachu/pikachu_emotions.asm
+++ b/engine/pikachu/pikachu_emotions.asm
@@ -2,18 +2,18 @@ IsPlayerTalkingToPikachu::
ld a, [wd436]
and a
ret z
- ldh a, [hSpriteIndexOrTextID]
+ ldh a, [hSpriteIndex]
cp $f
ret nz
call InitializePikachuTextID
xor a
- ldh [hSpriteIndexOrTextID], a
+ ldh [hSpriteIndex], a
ld [wd436], a
ret
InitializePikachuTextID::
ld a, TEXT_PIKACHU_ANIM ; display
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
xor a
ld [wPlayerMovingDirection], a
ld a, $1
@@ -166,8 +166,8 @@ StarterPikachuEmotionCommand_subcmd:
StarterPikachuEmotionCommand_nop2:
IF DEF(_DEBUG)
push hl
- ld hl, wd732
- bit 1, [hl]
+ ld hl, wStatusFlags6
+ bit BIT_DEBUG_MODE, [hl]
pop hl
ret z
push de
@@ -213,8 +213,8 @@ REPT 5
ENDR
IF DEF(_DEBUG)
push hl
- ld hl, wd732
- bit 1, [hl]
+ ld hl, wStatusFlags6
+ bit BIT_DEBUG_MODE, [hl]
pop hl
ret z
push de
diff --git a/engine/pikachu/pikachu_follow.asm b/engine/pikachu/pikachu_follow.asm
index 9575c341..a33da505 100644
--- a/engine/pikachu/pikachu_follow.asm
+++ b/engine/pikachu/pikachu_follow.asm
@@ -364,7 +364,7 @@ SpawnPikachu_::
bit 7, [hl]
jp nz, Func_fc745
ld a, [wFontLoaded]
- bit 0, a
+ bit BIT_FONT_LOADED, a
jp nz, Func_fc76a
call CheckPikachuFollowingPlayer
jp nz, Func_fc76a
@@ -915,8 +915,8 @@ TryDoubleAddPikachuStepVectorToScreenPixelCoords:
ld a, [wWalkBikeSurfState]
cp $1 ; biking
jr nz, AddPikachuStepVectorToScreenPixelCoords
- ld a, [wd736]
- bit 6, a
+ ld a, [wMovementFlags]
+ bit BIT_LEDGE_OR_FISHING, a
jr nz, AddPikachuStepVectorToScreenPixelCoords
DoubleAddPikachuStepVectorToScreenPixelCoords:
ld hl, wSpritePikachuStateData1YStepVector - wSpritePikachuStateData1
@@ -987,8 +987,8 @@ UpdatePikachuWalkingSprite:
dec a
swap a
ld d, a
- ld a, [wd736]
- bit 7, a
+ ld a, [wMovementFlags]
+ bit BIT_SPINNING, a
jr nz, .copy_player
ld hl, wSpritePikachuStateData1FacingDirection - wSpritePikachuStateData1
add hl, bc
@@ -996,7 +996,7 @@ UpdatePikachuWalkingSprite:
or d
ld d, a
ld a, [wFontLoaded]
- bit 0, a
+ bit BIT_FONT_LOADED, a
jr z, .normal_get_sprite_index
call Func_fcae2
ret c
@@ -1257,8 +1257,8 @@ CheckAbsoluteValueLessThan2:
Func_fcc08::
call Func_fcc23
ret nc
- ld a, [wd736]
- bit 6, a
+ ld a, [wMovementFlags]
+ bit BIT_LEDGE_OR_FISHING, a
jr nz, .asm_fcc1b
call Func_fcc42
ret c
@@ -1294,13 +1294,13 @@ Func_fcc23:
Func_fcc42:
xor a
ld a, [wPlayerDirection]
- bit 3, a
+ bit PLAYER_DIR_BIT_UP, a
jr nz, .asm_fcc58
- bit 2, a
+ bit PLAYER_DIR_BIT_DOWN, a
jr nz, .asm_fcc5b
- bit 1, a
+ bit PLAYER_DIR_BIT_LEFT, a
jr nz, .asm_fcc5e
- bit 0, a
+ bit PLAYER_DIR_BIT_RIGHT, a
jr nz, .asm_fcc61
scf
ret
@@ -1332,13 +1332,13 @@ Func_fcc64:
set 6, [hl]
xor a
ld a, [wPlayerDirection]
- bit 3, a
+ bit PLAYER_DIR_BIT_UP, a
jr nz, .asm_fcc86
- bit 2, a
+ bit PLAYER_DIR_BIT_DOWN, a
jr nz, .asm_fcc89
- bit 1, a
+ bit PLAYER_DIR_BIT_LEFT, a
jr nz, .asm_fcc8c
- bit 0, a
+ bit PLAYER_DIR_BIT_RIGHT, a
jr nz, .asm_fcc8f
scf
ret
diff --git a/engine/pikachu/pikachu_movement.asm b/engine/pikachu/pikachu_movement.asm
index 87f17539..d789f152 100644
--- a/engine/pikachu/pikachu_movement.asm
+++ b/engine/pikachu/pikachu_movement.asm
@@ -154,10 +154,10 @@ AnimatePikachuShadow:
ld hl, wPikachuMovementFlags
bit 6, [hl]
res 6, [hl]
- ld hl, wd736
- res 6, [hl]
+ ld hl, wMovementFlags
+ res BIT_LEDGE_OR_FISHING, [hl]
ret z
- set 6, [hl]
+ set BIT_LEDGE_OR_FISHING, [hl]
call LoadPikachuShadowOAMData
ret
diff --git a/engine/pokemon/add_mon.asm b/engine/pokemon/add_mon.asm
index c498f02a..a0b1ef0a 100644
--- a/engine/pokemon/add_mon.asm
+++ b/engine/pokemon/add_mon.asm
@@ -21,7 +21,7 @@ _AddPartyMon::
jr nc, .noCarry
inc d
.noCarry
- ld a, [wcf91]
+ ld a, [wCurPartySpecies]
ld [de], a ; write species of new mon in party list
inc de
ld a, $ff ; terminator
@@ -64,8 +64,8 @@ _AddPartyMon::
ld e, l
ld d, h
push hl
- ld a, [wcf91]
- ld [wd0b5], a
+ ld a, [wCurPartySpecies]
+ ld [wCurSpecies], a
call GetMonHeader
ld hl, wMonHeader
ld a, [hli]
@@ -80,20 +80,20 @@ _AddPartyMon::
jr nz, .next4
; If the mon is being added to the player's party, update the pokedex.
- ld a, [wcf91]
- ld [wd11e], a
+ ld a, [wCurPartySpecies]
+ ld [wPokedexNum], a
push de
predef IndexToPokedex
pop de
- ld a, [wd11e]
+ ld a, [wPokedexNum]
dec a
ld c, a
ld b, FLAG_TEST
ld hl, wPokedexOwned
call FlagAction
ld a, c ; whether the mon was already flagged as owned
- ld [wUnusedD153], a ; not read
- ld a, [wd11e]
+ ld [wUnusedAlreadyOwnedFlag], a
+ ld a, [wPokedexNum]
dec a
ld c, a
ld b, FLAG_SET
@@ -170,7 +170,7 @@ _AddPartyMon::
inc de
ld a, [hli] ; catch rate (held item in gen 2)
ld [de], a
- ld a, [wcf91]
+ ld a, [wCurPartySpecies]
cp KADABRA
jr nz, .notKadabra
ld a, TWISTEDSPOON_GSC
@@ -205,7 +205,7 @@ _AddPartyMon::
inc de
ld [de], a
push de
- ld a, [wCurEnemyLVL]
+ ld a, [wCurEnemyLevel]
ld d, a
callfar CalcExperience
pop de
@@ -230,7 +230,7 @@ _AddPartyMon::
pop hl
call AddPartyMon_WriteMovePP
inc de
- ld a, [wCurEnemyLVL]
+ ld a, [wCurEnemyLevel]
ld [de], a
inc de
ld a, [wIsInBattle]
@@ -267,13 +267,13 @@ AddPartyMon_WriteMovePP:
ld hl, Moves
ld bc, MOVE_LENGTH
call AddNTimes
- ld de, wcd6d
+ ld de, wMoveData
ld a, BANK(Moves)
call FarCopyData
pop bc
pop de
pop hl
- ld a, [wcd6d + 5] ; PP is byte 5 of move data
+ ld a, [wMoveData + MOVE_PP]
.empty
inc de
ld [de], a
@@ -281,7 +281,7 @@ AddPartyMon_WriteMovePP:
jr nz, .pploop ; there are still moves to read
ret
-; adds enemy mon [wcf91] (at position [wWhichPokemon] in enemy list) to own party
+; adds enemy mon [wCurPartySpecies] (at position [wWhichPokemon] in enemy list) to own party
; used in the cable club trade center
_AddEnemyMonToPlayerParty::
ld hl, wPartyCount
@@ -294,7 +294,7 @@ _AddEnemyMonToPlayerParty::
ld c, a
ld b, $0
add hl, bc
- ld a, [wcf91]
+ ld a, [wCurPartySpecies]
ld [hli], a ; add mon as last list entry
ld [hl], $ff ; write new sentinel
ld hl, wPartyMons
@@ -328,10 +328,10 @@ _AddEnemyMonToPlayerParty::
call SkipFixedLengthTextEntries
ld bc, NAME_LENGTH
call CopyData ; write new mon's nickname (from an enemy mon)
- ld a, [wcf91]
- ld [wd11e], a
+ ld a, [wCurPartySpecies]
+ ld [wPokedexNum], a
predef IndexToPokedex
- ld a, [wd11e]
+ ld a, [wPokedexNum]
dec a
ld c, a
ld b, FLAG_SET
@@ -377,7 +377,7 @@ _MoveMon::
cp DAYCARE_TO_PARTY
ld a, [wDayCareMon]
jr z, .copySpecies
- ld a, [wcf91]
+ ld a, [wCurPartySpecies]
.copySpecies
ld [hli], a ; write new mon ID
ld [hl], $ff ; write new sentinel
@@ -506,7 +506,7 @@ _MoveMon::
call LoadMonData
farcall CalcLevelFromExperience
ld a, d
- ld [wCurEnemyLVL], a
+ ld [wCurEnemyLevel], a
pop hl
ld bc, wBoxMon2 - wBoxMon1
add hl, bc
diff --git a/engine/pokemon/bills_pc.asm b/engine/pokemon/bills_pc.asm
index 6901ef46..bfa86cff 100644
--- a/engine/pokemon/bills_pc.asm
+++ b/engine/pokemon/bills_pc.asm
@@ -90,8 +90,8 @@ PKMNLeaguePCText: db "<PKMN>LEAGUE@"
LogOffPCText: db "LOG OFF@"
BillsPC_::
- ld hl, wd730
- set 6, [hl]
+ ld hl, wStatusFlags5
+ set BIT_NO_TEXT_DELAY, [hl]
xor a
ld [wParentMenuItem], a
inc a ; MONSTER_NAME
@@ -99,8 +99,8 @@ BillsPC_::
call LoadHpBarAndStatusTilePatterns
ld a, [wListScrollOffset]
push af
- ld a, [wFlags_0xcd60]
- bit 3, a ; accessing Bill's PC through another PC?
+ ld a, [wMiscFlags]
+ bit BIT_USING_GENERIC_PC, a
jr nz, BillsPCMenu
; accessing it directly
ld a, SFX_TURN_ON_PC
@@ -185,8 +185,8 @@ BillsPCMenu:
jp z, BillsPCPrintBox
ExitBillsPC:
- ld a, [wFlags_0xcd60]
- bit 3, a ; accessing Bill's PC through another PC?
+ ld a, [wMiscFlags]
+ bit BIT_USING_GENERIC_PC, a
jr nz, .next
; accessing it directly
call LoadTextBoxTilePatterns
@@ -194,13 +194,13 @@ ExitBillsPC:
call PlaySound
call WaitForSoundToFinish
.next
- ld hl, wFlags_0xcd60
- res 5, [hl]
+ ld hl, wMiscFlags
+ res BIT_NO_MENU_BUTTON_SOUND, [hl]
call LoadScreenTilesFromBuffer2
pop af
ld [wListScrollOffset], a
- ld hl, wd730
- res 6, [hl]
+ ld hl, wStatusFlags5
+ res BIT_NO_TEXT_DELAY, [hl]
ret
BillsPCPrintBox:
@@ -241,7 +241,7 @@ BillsPCDeposit:
callfar PlayPikachuSoundClip
jr .asm_215cf
.asm_215c9
- ld a, [wcf91]
+ ld a, [wCurPartySpecies]
call PlayCry
.asm_215cf
callabd_ModifyPikachuHappiness PIKAHAPPY_DEPOSITED
@@ -304,7 +304,7 @@ BillsPCWithdraw:
callfar PlayPikachuSoundClip
jr .asm_21666
.asm_21660
- ld a, [wcf91]
+ ld a, [wCurPartySpecies]
call PlayCry
.asm_21666
xor a ; BOX_TO_PARTY
@@ -341,7 +341,7 @@ BillsPCRelease:
ld [wRemoveMonFromBox], a
call RemovePokemon
call WaitForSoundToFinish
- ld a, [wcf91]
+ ld a, [wCurPartySpecies]
call PlayCry
ld hl, MonWasReleasedText
call PrintText
diff --git a/engine/pokemon/evos_moves.asm b/engine/pokemon/evos_moves.asm
index 4536453e..19250ba2 100644
--- a/engine/pokemon/evos_moves.asm
+++ b/engine/pokemon/evos_moves.asm
@@ -53,13 +53,13 @@ Evolution_PartyMonLoop: ; loop over party mons
ld h, [hl]
ld l, a
push hl
- ld a, [wcf91]
+ ld a, [wCurPartySpecies]
push af
xor a ; PLAYER_PARTY_DATA
ld [wMonDataLocation], a
call LoadMonData
pop af
- ld [wcf91], a
+ ld [wCurPartySpecies], a
pop hl
.evoEntryLoop ; loop over evolution entries
@@ -96,10 +96,10 @@ Evolution_PartyMonLoop: ; loop over party mons
ld a, [wIsInBattle] ; are we in battle?
and a
ld a, [hli]
- jp nz, .nextEvoEntry1 ; don't evolve if we're in a battle as wcf91 could be holding the last mon sent out
+ jp nz, .nextEvoEntry1 ; don't evolve if we're in a battle as wCurPartySpecies could be holding the last mon sent out
ld b, a ; evolution item
- ld a, [wcf91] ; last item used
+ ld a, [wCurItem]
cp b ; was the evolution item in this entry used?
jp nz, .nextEvoEntry1 ; if not, go to the next evolution entry
.checkLevel
@@ -109,7 +109,7 @@ Evolution_PartyMonLoop: ; loop over party mons
cp b ; is the mon's level greater than the evolution requirement?
jp c, .nextEvoEntry2 ; if so, go the next evolution entry
.doEvolution
- ld [wCurEnemyLVL], a
+ ld [wCurEnemyLevel], a
ld a, 1
ld [wEvolutionOccurred], a
push hl
@@ -139,7 +139,7 @@ Evolution_PartyMonLoop: ; loop over party mons
call PrintText
pop hl
ld a, [hl]
- ld [wd0b5], a
+ ld [wCurSpecies], a
ld [wLoadedMonSpecies], a
ld [wEvoNewSpecies], a
ld a, MONSTER_NAME
@@ -157,22 +157,22 @@ Evolution_PartyMonLoop: ; loop over party mons
call DelayFrames
call ClearScreen
call RenameEvolvedMon
- ld a, [wd11e]
+ ld a, [wPokedexNum]
push af
- ld a, [wd0b5]
- ld [wd11e], a
+ ld a, [wCurSpecies]
+ ld [wPokedexNum], a
predef IndexToPokedex
- ld a, [wd11e]
+ ld a, [wPokedexNum]
dec a
ld hl, BaseStats
ld bc, BASE_DATA_SIZE
call AddNTimes
ld de, wMonHeader
call CopyData
- ld a, [wd0b5]
+ ld a, [wCurSpecies]
ld [wMonHIndex], a
pop af
- ld [wd11e], a
+ ld [wPokedexNum], a
ld hl, wLoadedMonHPExp - 1
ld de, wLoadedMonStats
ld b, $1
@@ -207,8 +207,8 @@ Evolution_PartyMonLoop: ; loop over party mons
dec hl
pop bc
call CopyData
- ld a, [wd0b5]
- ld [wd11e], a
+ ld a, [wCurSpecies]
+ ld [wPokedexNum], a
xor a
ld [wMonDataLocation], a
call LearnMoveFromLevelUp
@@ -218,7 +218,7 @@ Evolution_PartyMonLoop: ; loop over party mons
and a
call z, Evolution_ReloadTilesetTilePatterns
predef IndexToPokedex
- ld a, [wd11e]
+ ld a, [wPokedexNum]
dec a
ld c, a
ld b, FLAG_SET
@@ -264,14 +264,15 @@ Evolution_PartyMonLoop: ; loop over party mons
RenameEvolvedMon:
; Renames the mon to its new, evolved form's standard name unless it had a
; nickname, in which case the nickname is kept.
- ld a, [wd0b5]
+ assert wCurSpecies == wNameListIndex ; save+restore wCurSpecies while using wNameListIndex
+ ld a, [wCurSpecies]
push af
ld a, [wMonHIndex]
- ld [wd0b5], a
+ ld [wNameListIndex], a
call GetName
pop af
- ld [wd0b5], a
- ld hl, wcd6d
+ ld [wCurSpecies], a
+ ld hl, wNameBuffer
ld de, wStringBuffer
.compareNamesLoop
ld a, [de]
@@ -287,7 +288,7 @@ RenameEvolvedMon:
call AddNTimes
push hl
call GetName
- ld hl, wcd6d
+ ld hl, wNameBuffer
pop de
jp CopyData
@@ -322,15 +323,15 @@ Evolution_ReloadTilesetTilePatterns:
jp ReloadTilesetTilePatterns
LearnMoveFromLevelUp:
- ld a, [wd11e] ; species
- ld [wcf91], a
+ ld a, [wPokedexNum] ; species
+ ld [wCurPartySpecies], a
call GetMonLearnset
.learnSetLoop ; loop over the learn set until we reach a move that is learnt at the current level or the end of the list
ld a, [hli]
and a ; have we reached the end of the learn set?
jr z, .done ; if we've reached the end of the learn set, jump
ld b, a ; level the move is learnt at
- ld a, [wCurEnemyLVL]
+ ld a, [wCurEnemyLevel]
cp b ; is the move learnt at the mon's current level?
ld a, [hli] ; move ID
jr nz, .learnSetLoop
@@ -356,7 +357,7 @@ LearnMoveFromLevelUp:
jr nz, .checkCurrentMovesLoop
ld a, d
ld [wMoveNum], a
- ld [wd11e], a
+ ld [wNamedObjectIndex], a
call GetMoveName
call CopyToStringBuffer
predef LearnMove
@@ -376,12 +377,12 @@ LearnMoveFromLevelUp:
ld a, $85
ld [wPikachuMood], a
.done
- ld a, [wcf91]
- ld [wd11e], a
+ ld a, [wCurPartySpecies]
+ ld [wPokedexNum], a
ret
Func_3b079:
- ld a, [wcf91]
+ ld a, [wCurPartySpecies]
push af
call Func_3b0a2
jr c, .asm_3b09c
@@ -399,37 +400,36 @@ Func_3b079:
jr c, .asm_3b09c
.asm_3b096
pop af
- ld [wcf91], a
+ ld [wCurPartySpecies], a
and a
ret
.asm_3b09c
pop af
- ld [wcf91], a
+ ld [wCurPartySpecies], a
scf
ret
Func_3b0a2:
-; XXX what is wcf91 entering this function?
- ld a, [wd11e]
+ ld a, [wTempTMHM]
ld [wMoveNum], a
predef CanLearnTM
ld a, c
and a
jr nz, .asm_3b0ec
ld hl, Pointer_3b0ee
- ld a, [wcf91]
+ ld a, [wCurPartySpecies]
ld de, $1
call IsInArray
jr c, .asm_3b0d2
ld a, $ff
ld [wMonHGrowthRate], a
- ld a, [wd11e]
+ ld a, [wTempTMHM]
ld hl, wMonHMoves
ld de, $1
call IsInArray
jr c, .asm_3b0ec
.asm_3b0d2
- ld a, [wd11e]
+ ld a, [wTempTMHM]
ld d, a
call GetMonLearnset
.loop
@@ -437,7 +437,7 @@ Func_3b0a2:
and a
jr z, .asm_3b0ea
ld b, a
- ld a, [wCurEnemyLVL]
+ ld a, [wCurEnemyLevel]
cp b
jr c, .asm_3b0ea
ld a, [hli]
@@ -472,7 +472,7 @@ Func_3b10f:
inc hl
.asm_3b124
inc hl
- ld a, [wcf91]
+ ld a, [wCurPartySpecies]
cp [hl]
jr z, .asm_3b138
inc hl
@@ -489,11 +489,11 @@ Func_3b10f:
.asm_3b138
inc c
ld a, c
- ld [wcf91], a
+ ld [wCurPartySpecies], a
scf
ret
-; writes the moves a mon has at level [wCurEnemyLVL] to [de]
+; writes the moves a mon has at level [wCurEnemyLevel] to [de]
; move slots are being filled up sequentially and shifted if all slots are full
WriteMonMoves:
call GetPredefRegisters
@@ -511,7 +511,7 @@ WriteMonMoves:
and a
jp z, .done ; end of list
ld b, a
- ld a, [wCurEnemyLVL]
+ ld a, [wCurEnemyLevel]
cp b
jp c, .done ; mon level < move level (assumption: learnset is sorted by level)
ld a, [wLearningMovesFromDayCare]
@@ -617,7 +617,7 @@ Evolution_FlagAction:
GetMonLearnset:
ld hl, EvosMovesPointerTable
ld b, 0
- ld a, [wcf91]
+ ld a, [wCurPartySpecies]
dec a
ld c, a
add hl, bc
diff --git a/engine/pokemon/experience.asm b/engine/pokemon/experience.asm
index 427d2a7f..d651321a 100644
--- a/engine/pokemon/experience.asm
+++ b/engine/pokemon/experience.asm
@@ -1,7 +1,7 @@
; calculates the level a mon should be based on its current exp
CalcLevelFromExperience::
ld a, [wLoadedMonSpecies]
- ld [wd0b5], a
+ ld [wCurSpecies], a
call GetMonHeader
ld d, $1 ; init level to 1
.loop
diff --git a/engine/pokemon/learn_move.asm b/engine/pokemon/learn_move.asm
index 03f17bcc..e10c6bcf 100644
--- a/engine/pokemon/learn_move.asm
+++ b/engine/pokemon/learn_move.asm
@@ -3,7 +3,7 @@ LearnMove:
ld a, [wWhichPokemon]
ld hl, wPartyMonNicks
call GetPartyMonName
- ld hl, wcd6d
+ ld hl, wNameBuffer
ld de, wLearnMoveMonName
ld bc, NAME_LENGTH
call CopyData
@@ -29,7 +29,7 @@ DontAbandonLearning:
jp c, AbandonLearning
push hl
push de
- ld [wd11e], a
+ ld [wNamedObjectIndex], a
call GetMoveName
ld hl, OneTwoAndText
call PrintText
@@ -126,11 +126,11 @@ TryingToLearn:
hlcoord 6, 8
ld de, wMovesString
ldh a, [hUILayoutFlags]
- set 2, a
+ set BIT_SINGLE_SPACED_LINES, a
ldh [hUILayoutFlags], a
call PlaceString
ldh a, [hUILayoutFlags]
- res 2, a
+ res BIT_SINGLE_SPACED_LINES, a
ldh [hUILayoutFlags], a
ld hl, wTopMenuItemY
ld a, 8
@@ -146,10 +146,10 @@ TryingToLearn:
ld [hli], a ; wMenuWatchedKeys
ld [hl], 0 ; wLastMenuItem
ld hl, hUILayoutFlags
- set 1, [hl]
+ set BIT_DOUBLE_SPACED_MENU, [hl]
call HandleMenuInput
ld hl, hUILayoutFlags
- res 1, [hl]
+ res BIT_DOUBLE_SPACED_MENU, [hl]
push af
call LoadScreenTilesFromBuffer1
pop af
diff --git a/engine/pokemon/load_mon_data.asm b/engine/pokemon/load_mon_data.asm
index 3d9417a7..964db2e4 100644
--- a/engine/pokemon/load_mon_data.asm
+++ b/engine/pokemon/load_mon_data.asm
@@ -4,11 +4,11 @@ LoadMonData_::
; 1: enemymon
; 2: boxmon
; 3: daycaremon
-; Return monster id at wcf91 and its data at wLoadedMon.
+; Return monster id at wCurPartySpecies and its data at wLoadedMon.
; Also load base stats at wMonHeader for convenience.
ld a, [wDayCareMonSpecies]
- ld [wcf91], a
+ ld [wCurPartySpecies], a
ld a, [wMonDataLocation]
cp DAYCARE_DATA
jr z, .GetMonHeader
@@ -18,8 +18,8 @@ LoadMonData_::
call GetMonSpecies
.GetMonHeader
- ld a, [wcf91]
- ld [wd0b5], a ; input for GetMonHeader
+ ld a, [wCurPartySpecies]
+ ld [wCurSpecies], a
call GetMonHeader
ld hl, wPartyMons
@@ -64,5 +64,5 @@ GetMonSpecies:
ld d, 0
add hl, de
ld a, [hl]
- ld [wcf91], a
+ ld [wCurPartySpecies], a
ret
diff --git a/engine/pokemon/set_types.asm b/engine/pokemon/set_types.asm
index e9235f13..2cf8f14c 100644
--- a/engine/pokemon/set_types.asm
+++ b/engine/pokemon/set_types.asm
@@ -1,10 +1,10 @@
-; updates the types of a party mon (pointed to in hl) to the ones of the mon specified in wd11e
+; updates the types of a party mon (pointed to in hl) to the ones of the mon specified in [wPokedexNum]
SetPartyMonTypes:
call GetPredefRegisters
ld bc, wPartyMon1Type - wPartyMon1 ; $5
add hl, bc
- ld a, [wd11e]
- ld [wd0b5], a
+ ld a, [wPokedexNum]
+ ld [wCurSpecies], a
push hl
call GetMonHeader
pop hl
diff --git a/engine/pokemon/status_screen.asm b/engine/pokemon/status_screen.asm
index 0adfc217..d88ef8c1 100644
--- a/engine/pokemon/status_screen.asm
+++ b/engine/pokemon/status_screen.asm
@@ -41,7 +41,7 @@ DrawHP_:
call DrawHPBar
pop hl
ldh a, [hUILayoutFlags]
- bit 0, a
+ bit BIT_PARTY_MENU_HP_BAR, a
jr z, .printFractionBelowBar
ld bc, $9 ; right of bar
jr .printFraction
@@ -71,14 +71,14 @@ StatusScreen:
; mon is in a box or daycare
ld a, [wLoadedMonBoxLevel]
ld [wLoadedMonLevel], a
- ld [wCurEnemyLVL], a
+ ld [wCurEnemyLevel], a
ld hl, wLoadedMonHPExp - 1
ld de, wLoadedMonStats
ld b, $1
call CalcStats ; Recalculate stats
.DontRecalculate
- ld hl, wd72c
- set 1, [hl]
+ ld hl, wStatusFlags2
+ set BIT_NO_AUDIO_FADE_OUT, [hl]
ld a, $33
ldh [rNR50], a ; Reduce the volume
call GBPalWhiteOutWithDelay3
@@ -139,11 +139,11 @@ StatusScreen:
hlcoord 14, 2
call PrintLevel ; Pokémon level
ld a, [wMonHIndex]
- ld [wd11e], a
- ld [wd0b5], a
+ ld [wPokedexNum], a
+ ld [wCurSpecies], a
predef IndexToPokedex
hlcoord 3, 7
- ld de, wd11e
+ ld de, wPokedexNum
lb bc, LEADING_ZEROES | 1, 3
call PrintNumber ; Pokémon no.
hlcoord 11, 10
@@ -186,10 +186,10 @@ StatusScreen:
callfar PlayPikachuSoundClip
jr .continue
.playRegularCry
- ld a, [wcf91]
- call PlayCry ; play Pokémon cry
+ ld a, [wCurPartySpecies]
+ call PlayCry
.continue
- call WaitForTextScrollButtonPress ; wait for button
+ call WaitForTextScrollButtonPress
pop af
ldh [hTileAnimations], a
ret
@@ -434,7 +434,7 @@ StatusScreen2:
hlcoord 9, 1
call StatusScreen_ClearName
ld a, [wMonHIndex]
- ld [wd11e], a
+ ld [wNamedObjectIndex], a
call GetMonName
hlcoord 9, 1
call PlaceString
@@ -444,8 +444,8 @@ StatusScreen2:
call WaitForTextScrollButtonPress ; wait for button
pop af
ldh [hTileAnimations], a
- ld hl, wd72c
- res 1, [hl]
+ ld hl, wStatusFlags2
+ res BIT_NO_AUDIO_FADE_OUT, [hl]
ld a, $77
ldh [rNR50], a
call GBPalWhiteOut
diff --git a/engine/printer/printer.asm b/engine/printer/printer.asm
index be0aecf1..fd4002c5 100644
--- a/engine/printer/printer.asm
+++ b/engine/printer/printer.asm
@@ -873,7 +873,7 @@ PrintPCBox_PlaceBoxMonInfo:
ld a, [de]
cp $ff
jr z, .done
- ld [wd11e], a
+ ld [wPokedexNum], a
push bc
push hl
push de
diff --git a/engine/printer/printer2.asm b/engine/printer/printer2.asm
index 4a7b68db..944cee0f 100644
--- a/engine/printer/printer2.asm
+++ b/engine/printer/printer2.asm
@@ -42,9 +42,9 @@ Printer_GetMonStats:
lb bc, 2, 3
call PrintNumber
- ld a, [wMonHeader]
- ld [wPokeBallAnimData], a
- ld [wd0b5], a
+ ld a, [wMonHIndex]
+ ld [wPokedexNum], a
+ ld [wCurSpecies], a
ld hl, wPartyMonNicks
call .GetNamePointer
hlcoord 8, 2
@@ -60,7 +60,7 @@ Printer_GetMonStats:
inc hl
ld [hl], $f2
inc hl
- ld de, wPokeBallAnimData
+ ld de, wPokedexNum
lb bc, $80 | 1, 3
call PrintNumber
@@ -85,11 +85,11 @@ Printer_GetMonStats:
hlcoord 9, 8
ld de, .Stats
ldh a, [hUILayoutFlags]
- set 2, a
+ set BIT_SINGLE_SPACED_LINES, a
ldh [hUILayoutFlags], a
call PlaceString
ldh a, [hUILayoutFlags]
- res 2, a
+ res BIT_SINGLE_SPACED_LINES, a
ldh [hUILayoutFlags], a
hlcoord 16, 8
@@ -151,7 +151,7 @@ Printer_GetMonStats:
.PlaceMoveName:
and a
jr z, .no_move
- ld [wPokeBallAnimData], a
+ ld [wNamedObjectIndex], a
call GetMoveName
jr .place_string
diff --git a/engine/slots/slot_machine.asm b/engine/slots/slot_machine.asm
index 3918e879..fd7a7466 100644
--- a/engine/slots/slot_machine.asm
+++ b/engine/slots/slot_machine.asm
@@ -1,8 +1,9 @@
PromptUserToPlaySlots:
call SaveScreenTilesToBuffer2
- ld a, BANK(DisplayTextIDInit) ; TRUE
- ld [wAutoTextBoxDrawingControl], a
- ld b, a
+ ld a, BANK(DisplayTextIDInit)
+ assert BANK(DisplayTextIDInit) == 1 << BIT_NO_AUTO_TEXT_BOX
+ ld [wAutoTextBoxDrawingControl], a ; 1 << BIT_NO_AUTO_TEXT_BOX
+ ld b, a ; BANK(DisplayTextIDInit)
ld hl, DisplayTextIDInit
call Bankswitch
ld hl, PlaySlotMachineText
@@ -28,16 +29,16 @@ PromptUserToPlaySlots:
ld a, $e4
ldh [rOBP0], a
call UpdateGBCPal_OBP0
- ld hl, wd730
- set 6, [hl]
+ ld hl, wStatusFlags5
+ set BIT_NO_TEXT_DELAY, [hl]
xor a
ld [wSlotMachineAllowMatchesCounter], a
ld hl, wStoppingWhichSlotMachineWheel
ld bc, $14
call FillMemory
call MainSlotMachineLoop
- ld hl, wd730
- res 6, [hl]
+ ld hl, wStatusFlags5
+ res BIT_NO_TEXT_DELAY, [hl]
xor a
ld [wSlotMachineAllowMatchesCounter], a
call GBPalWhiteOutWithDelay3
@@ -174,7 +175,7 @@ OneMoreGoSlotMachineText:
SlotMachine_SetFlags:
ld hl, wSlotMachineFlags
- bit 7, [hl]
+ bit BIT_SLOTS_CAN_WIN_WITH_7_OR_BAR, [hl]
ret nz
ld a, [wSlotMachineAllowMatchesCounter]
and a
@@ -192,14 +193,14 @@ SlotMachine_SetFlags:
ld [hl], 0
ret
.allowMatches
- set 6, [hl]
+ set BIT_SLOTS_CAN_WIN, [hl]
ret
.setAllowMatchesCounter
ld a, 60
ld [wSlotMachineAllowMatchesCounter], a
ret
.allowSevenAndBarMatches
- set 7, [hl]
+ set BIT_SLOTS_CAN_WIN_WITH_7_OR_BAR, [hl]
ret
SlotMachine_SpinWheels:
@@ -290,7 +291,7 @@ SlotMachine_StopWheel1Early:
call SlotMachine_GetWheel1Tiles
ld hl, wSlotMachineWheel1BottomTile
ld a, [wSlotMachineFlags]
- and $80
+ and 1 << BIT_SLOTS_CAN_WIN_WITH_7_OR_BAR
jr nz, .sevenAndBarMode
; Stop early if the middle symbol is not a cherry.
inc hl
@@ -318,7 +319,7 @@ SlotMachine_StopWheel1Early:
SlotMachine_StopWheel2Early:
call SlotMachine_GetWheel2Tiles
ld a, [wSlotMachineFlags]
- and $80
+ and 1 << BIT_SLOTS_CAN_WIN_WITH_7_OR_BAR
jr nz, .sevenAndBarMode
; Stop early if any symbols are lined up in the first two wheels.
call SlotMachine_FindWheel1Wheel2Matches
@@ -402,7 +403,7 @@ SlotMachine_CheckForMatches:
call SlotMachine_CheckForMatch
jr z, .foundMatch
ld a, [wSlotMachineFlags]
- and $c0
+ and (1 << BIT_SLOTS_CAN_WIN) | (1 << BIT_SLOTS_CAN_WIN_WITH_7_OR_BAR)
jr z, .noMatch
ld hl, wSlotMachineRerollCounter
dec [hl]
@@ -422,9 +423,9 @@ SlotMachine_CheckForMatches:
jp SlotMachine_CheckForMatches
.foundMatch
ld a, [wSlotMachineFlags]
- and $c0
+ and (1 << BIT_SLOTS_CAN_WIN) | (1 << BIT_SLOTS_CAN_WIN_WITH_7_OR_BAR)
jr z, .rollWheel3DownByOneSymbol ; roll wheel if player isn't allowed to win
- and $80
+ and 1 << BIT_SLOTS_CAN_WIN_WITH_7_OR_BAR
jr nz, .acceptMatch
; if 7/bar matches aren't enabled and the match was a 7/bar symbol, roll wheel
ld a, [hl]
@@ -602,7 +603,7 @@ SlotReward300Func:
call PlaySound
call Random
cp $80
- ld a, $0
+ ld a, 0
jr c, .skip
ld [wSlotMachineFlags], a
.skip
@@ -657,7 +658,7 @@ SlotMachine_PrintPayoutCoins:
jp PrintNumber
SlotMachine_PayCoinsToPlayer:
- ld a, $1
+ ld a, TRUE
ld [wMuteAudioAndPauseMusic], a
call WaitForSoundToFinish