aboutsummaryrefslogtreecommitdiffstats
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
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
-rw-r--r--audio/engine_1.asm17
-rw-r--r--audio/engine_2.asm4
-rw-r--r--audio/low_health_alarm.asm14
-rw-r--r--constants/audio_constants.asm8
-rw-r--r--constants/battle_constants.asm13
-rw-r--r--constants/gfx_constants.asm6
-rw-r--r--constants/hardware_constants.asm15
-rw-r--r--constants/icon_constants.asm26
-rw-r--r--constants/input_constants.asm16
-rw-r--r--constants/map_object_constants.asm11
-rw-r--r--constants/menu_constants.asm3
-rw-r--r--constants/misc_constants.asm12
-rw-r--r--constants/oam_constants.asm24
-rw-r--r--constants/ram_constants.asm156
-rw-r--r--constants/script_constants.asm13
-rw-r--r--data/predef_pointers.asm2
-rw-r--r--data/sprites/facings.asm46
-rw-r--r--data/text/text_1.asm2
-rw-r--r--data/text/text_2.asm20
-rw-r--r--data/text/text_3.asm40
-rw-r--r--data/text/text_4.asm2
-rw-r--r--data/text/text_5.asm6
-rw-r--r--data/text/text_7.asm4
-rw-r--r--data/text/text_8.asm10
-rw-r--r--data/text/text_9.asm16
-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
-rw-r--r--home/audio.asm4
-rw-r--r--home/copy.asm4
-rw-r--r--home/fade_audio.asm4
-rw-r--r--home/give.asm8
-rw-r--r--home/init.asm4
-rw-r--r--home/inventory.asm2
-rw-r--r--home/item.asm6
-rw-r--r--home/item_price.asm4
-rw-r--r--home/lcd.asm4
-rw-r--r--home/list_menu.asm44
-rw-r--r--home/load_font.asm6
-rw-r--r--home/map_objects.asm8
-rw-r--r--home/move_mon.asm4
-rw-r--r--home/names.asm37
-rw-r--r--home/names2.asm14
-rw-r--r--home/npc_movement.asm14
-rw-r--r--home/overworld.asm277
-rw-r--r--home/pathfinding.asm6
-rw-r--r--home/pics.asm2
-rw-r--r--home/play_time.asm16
-rw-r--r--home/pokemon.asm50
-rw-r--r--home/predef_text.asm4
-rw-r--r--home/print_bcd.asm28
-rw-r--r--home/print_text.asm10
-rw-r--r--home/reload_sprites.asm2
-rw-r--r--home/reload_tiles.asm4
-rw-r--r--home/serial.asm2
-rw-r--r--home/text.asm8
-rw-r--r--home/text_script.asm25
-rw-r--r--home/trainers.asm62
-rw-r--r--home/uncompress.asm21
-rw-r--r--home/window.asm14
-rw-r--r--includes.asm1
-rw-r--r--ram/hram.asm3
-rw-r--r--ram/wram.asm241
-rw-r--r--scripts/AgathasRoom.asm8
-rw-r--r--scripts/BikeShop.asm8
-rw-r--r--scripts/BillsHouse.asm10
-rw-r--r--scripts/BrunosRoom.asm8
-rw-r--r--scripts/CeladonGym.asm16
-rw-r--r--scripts/CeladonMansion3F.asm8
-rw-r--r--scripts/CeladonMartElevator.asm8
-rw-r--r--scripts/CeladonMartRoof.asm19
-rw-r--r--scripts/CeruleanBadgeHouse.asm4
-rw-r--r--scripts/CeruleanCity.asm30
-rw-r--r--scripts/CeruleanGym.asm16
-rw-r--r--scripts/CeruleanMelaniesHouse.asm4
-rw-r--r--scripts/ChampionsRoom.asm30
-rw-r--r--scripts/CinnabarGym.asm32
-rw-r--r--scripts/CinnabarIsland.asm4
-rw-r--r--scripts/CinnabarLabFossilRoom.asm7
-rw-r--r--scripts/Daycare.asm6
-rw-r--r--scripts/FightingDojo.asm16
-rw-r--r--scripts/FuchsiaGoodRodHouse.asm8
-rw-r--r--scripts/FuchsiaGym.asm16
-rw-r--r--scripts/GameCorner.asm32
-rw-r--r--scripts/GameCornerPrizeRoom.asm1
-rw-r--r--scripts/HallOfFame.asm9
-rw-r--r--scripts/IndigoPlateauLobby.asm12
-rw-r--r--scripts/LancesRoom.asm10
-rw-r--r--scripts/LoreleisRoom.asm12
-rw-r--r--scripts/MtMoonB2F.asm42
-rw-r--r--scripts/Museum1F.asm4
-rw-r--r--scripts/OaksLab.asm98
-rw-r--r--scripts/PalletTown.asm14
-rw-r--r--scripts/PewterCity.asm22
-rw-r--r--scripts/PewterGym.asm16
-rw-r--r--scripts/PewterMart.asm2
-rw-r--r--scripts/PokemonFanClub.asm8
-rw-r--r--scripts/PokemonMansion1F.asm8
-rw-r--r--scripts/PokemonMansion2F.asm8
-rw-r--r--scripts/PokemonMansion3F.asm18
-rw-r--r--scripts/PokemonMansionB1F.asm6
-rw-r--r--scripts/PokemonTower2F.asm14
-rw-r--r--scripts/PokemonTower5F.asm10
-rw-r--r--scripts/PokemonTower6F.asm14
-rw-r--r--scripts/PokemonTower7F.asm28
-rw-r--r--scripts/RedsHouse1F_2.asm4
-rw-r--r--scripts/RocketHideoutB1F.asm4
-rw-r--r--scripts/RocketHideoutB2F.asm8
-rw-r--r--scripts/RocketHideoutB3F.asm10
-rw-r--r--scripts/RocketHideoutB4F.asm34
-rw-r--r--scripts/RocketHideoutElevator.asm8
-rw-r--r--scripts/Route11Gate2F.asm2
-rw-r--r--scripts/Route12.asm6
-rw-r--r--scripts/Route12SuperRodHouse.asm8
-rw-r--r--scripts/Route15Gate2F.asm4
-rw-r--r--scripts/Route16.asm6
-rw-r--r--scripts/Route16Gate1F.asm12
-rw-r--r--scripts/Route18Gate1F.asm12
-rw-r--r--scripts/Route22.asm36
-rw-r--r--scripts/Route22Gate.asm2
-rw-r--r--scripts/Route23.asm8
-rw-r--r--scripts/Route24.asm16
-rw-r--r--scripts/Route25.asm4
-rw-r--r--scripts/Route2Gate.asm4
-rw-r--r--scripts/Route5Gate.asm20
-rw-r--r--scripts/Route6Gate.asm16
-rw-r--r--scripts/Route7Gate.asm16
-rw-r--r--scripts/Route8Gate.asm16
-rw-r--r--scripts/SSAnne2F.asm18
-rw-r--r--scripts/SSAnneCaptainsRoom.asm12
-rw-r--r--scripts/SafariZoneGate.asm8
-rw-r--r--scripts/SaffronGym.asm16
-rw-r--r--scripts/SeafoamIslands1F.asm6
-rw-r--r--scripts/SeafoamIslandsB1F.asm6
-rw-r--r--scripts/SeafoamIslandsB2F.asm6
-rw-r--r--scripts/SeafoamIslandsB3F.asm22
-rw-r--r--scripts/SeafoamIslandsB4F.asm4
-rw-r--r--scripts/SilphCo10F.asm4
-rw-r--r--scripts/SilphCo11F.asm42
-rw-r--r--scripts/SilphCo2F.asm4
-rw-r--r--scripts/SilphCo3F.asm4
-rw-r--r--scripts/SilphCo4F.asm4
-rw-r--r--scripts/SilphCo5F.asm4
-rw-r--r--scripts/SilphCo6F.asm4
-rw-r--r--scripts/SilphCo7F.asm32
-rw-r--r--scripts/SilphCo8F.asm4
-rw-r--r--scripts/SilphCo9F.asm4
-rw-r--r--scripts/SilphCoElevator.asm8
-rw-r--r--scripts/SummerBeachHouse.asm8
-rw-r--r--scripts/SummerBeachHouse_2.asm8
-rw-r--r--scripts/TradeCenter.asm6
-rw-r--r--scripts/VermilionCity.asm10
-rw-r--r--scripts/VermilionCity_2.asm4
-rw-r--r--scripts/VermilionDock.asm4
-rw-r--r--scripts/VermilionGym.asm20
-rw-r--r--scripts/VermilionOldRodHouse.asm8
-rw-r--r--scripts/VictoryRoad1F.asm6
-rw-r--r--scripts/VictoryRoad2F.asm14
-rw-r--r--scripts/VictoryRoad3F.asm26
-rw-r--r--scripts/ViridianCity.asm20
-rw-r--r--scripts/ViridianGym.asm20
-rw-r--r--scripts/ViridianMart.asm4
-rw-r--r--scripts/WardensHouse.asm2
-rw-r--r--text/ChampionsRoom.asm2
-rw-r--r--text/CinnabarLabFossilRoom.asm4
-rw-r--r--text/Daycare.asm6
-rw-r--r--text/NameRatersHouse.asm6
-rw-r--r--text/OaksLab.asm2
-rw-r--r--text/RocketHideoutB3F.asm2
-rw-r--r--text/Route23.asm8
-rw-r--r--tools/make_patch.c12
-rw-r--r--vc/pokeyellow.constants.asm2
287 files changed, 2580 insertions, 2463 deletions
diff --git a/audio/engine_1.asm b/audio/engine_1.asm
index c155dda6..fc70c73d 100644
--- a/audio/engine_1.asm
+++ b/audio/engine_1.asm
@@ -15,9 +15,9 @@ Audio1_UpdateMusic::
ld a, [wMuteAudioAndPauseMusic]
and a
jr z, .applyAffects
- bit 7, a
+ bit BIT_MUTE_AUDIO, a
jr nz, .nextChannel
- set 7, a
+ set BIT_MUTE_AUDIO, a
ld [wMuteAudioAndPauseMusic], a
xor a ; disable all channels' output
ldh [rNR51], a
@@ -161,7 +161,7 @@ Audio1_PlayNextNote:
cp $4
jr nz, .asm_918c
ld a, [wLowHealthAlarm]
- bit 7, a
+ bit BIT_LOW_HEALTH_ALARM, a
jr z, .asm_918c
call Audio1_EnableChannelOutput
ret
@@ -206,7 +206,7 @@ Audio1_sound_ret:
.dontDisable
jr .afterDisable
.returnFromCall
- res 1, [hl]
+ res BIT_SOUND_CALL, [hl]
ld d, $0
ld a, c
add a
@@ -386,8 +386,8 @@ Audio1_toggle_perfect_pitch:
ld hl, wChannelFlags1
add hl, bc
ld a, [hl]
- xor $1
- ld [hl], a ; flip bit 0 of wChannelFlags1
+ xor 1 << BIT_PERFECT_PITCH
+ ld [hl], a
jp Audio1_sound_ret
Audio1_vibrato:
@@ -841,7 +841,8 @@ Audio1_note_pitch:
bit BIT_PERFECT_PITCH, [hl] ; has toggle_perfect_pitch been used?
jr z, .skipFrequencyInc
inc e ; if yes, increment the frequency by 1
- jr nc, .skipFrequencyInc
+ jr nc, .skipFrequencyInc ; Likely a mistake, because `inc` does not set flag C.
+ ; Fortunately this does not seem to affect any notes that actually occur.
inc d
.skipFrequencyInc
ld hl, wChannelFrequencyLowBytes
@@ -971,7 +972,7 @@ Audio1_ApplyWavePatternAndFrequency:
cp $4
ret nz
ld a, [wLowHealthAlarm]
- bit 7, a
+ bit BIT_LOW_HEALTH_ALARM, a
ret z
xor a
ld [wFrequencyModifier], a
diff --git a/audio/engine_2.asm b/audio/engine_2.asm
index 902db361..2b5a219c 100644
--- a/audio/engine_2.asm
+++ b/audio/engine_2.asm
@@ -198,7 +198,7 @@ INCLUDE "audio/sfx/pokeflute_ch5_ch6.asm"
Audio2_InitMusicVariables::
xor a
- ld [wUnusedC000], a
+ ld [wUnusedMusicByte], a
ld [wDisableChannelOutputWhenSfxEnds], a
ld [wMusicTempo + 1], a
ld [wMusicWaveInstrument], a
@@ -376,7 +376,7 @@ Audio2_StopAllAudio::
ld a, $77
ldh [rNR50], a ; full volume
xor a
- ld [wUnusedC000], a
+ ld [wUnusedMusicByte], a
ld [wDisableChannelOutputWhenSfxEnds], a
ld [wMuteAudioAndPauseMusic], a
ld [wMusicTempo + 1], a
diff --git a/audio/low_health_alarm.asm b/audio/low_health_alarm.asm
index 35fe1815..728f5f65 100644
--- a/audio/low_health_alarm.asm
+++ b/audio/low_health_alarm.asm
@@ -1,12 +1,12 @@
Music_DoLowHealthAlarm::
ld a, [wLowHealthAlarm]
- cp $ff
+ cp DISABLE_LOW_HEALTH_ALARM
jr z, .disableAlarm
- bit 7, a ;alarm enabled?
- ret z ;nope
+ bit BIT_LOW_HEALTH_ALARM, a
+ ret z
- and $7f ;low 7 bits are the timer.
+ and LOW_HEALTH_TIMER_MASK
jr nz, .notToneHi ;if timer > 0, play low tone.
call .playToneHi
@@ -19,15 +19,15 @@ Music_DoLowHealthAlarm::
call .playToneLo ;actually set the sound registers.
.noTone
- ld a, $86
+ ld a, CRY_SFX_END
ld [wChannelSoundIDs + CHAN5], a ;disable sound channel?
ld a, [wLowHealthAlarm]
- and $7f ;decrement alarm timer.
+ and LOW_HEALTH_TIMER_MASK
dec a
.resetTimer
; reset the timer and enable flag.
- set 7, a
+ set BIT_LOW_HEALTH_ALARM, a
ld [wLowHealthAlarm], a
ret
diff --git a/constants/audio_constants.asm b/constants/audio_constants.asm
index 5cecedf3..2932f119 100644
--- a/constants/audio_constants.asm
+++ b/constants/audio_constants.asm
@@ -76,3 +76,11 @@ DEF HW_CH4_DISABLE_MASK EQU (~HW_CH4_ENABLE_MASK & $ff)
; wChannelFlags2 constant (only has one flag)
DEF BIT_EXECUTE_MUSIC EQU 0 ; if in execute music
+
+; wMuteAudioAndPauseMusic
+DEF BIT_MUTE_AUDIO EQU 7
+
+; wLowHealthAlarm
+DEF BIT_LOW_HEALTH_ALARM EQU 7
+DEF LOW_HEALTH_TIMER_MASK EQU %01111111
+DEF DISABLE_LOW_HEALTH_ALARM EQU $ff
diff --git a/constants/battle_constants.asm b/constants/battle_constants.asm
index 90f4c3d3..d945c927 100644
--- a/constants/battle_constants.asm
+++ b/constants/battle_constants.asm
@@ -37,9 +37,6 @@ DEF MOVE_ACC rb
DEF MOVE_PP rb
DEF MOVE_LENGTH EQU _RS
-; D733 flags
-DEF BIT_TEST_BATTLE EQU 0
-
; battle type constants (wBattleType values)
const_def
const BATTLE_TYPE_NORMAL ; 0
@@ -77,10 +74,14 @@ DEF MAX_STAT_VALUE EQU 999
DEF ATKDEFDV_TRAINER EQU $98
DEF SPDSPCDV_TRAINER EQU $88
+; wDamageMultipliers
+DEF BIT_STAB_DAMAGE EQU 7
+DEF EFFECTIVENESS_MASK EQU %01111111
+
; wPlayerBattleStatus1 or wEnemyBattleStatus1 bit flags
const_def
const STORING_ENERGY ; 0 ; Bide
- const THRASHING_ABOUT ; 1 ; e.g. Thrash
+ const THRASHING_ABOUT ; 1 ; Thrash, Petal Dance
const ATTACKING_MULTIPLE_TIMES ; 2 ; e.g. Double Kick, Fury Attack
const FLINCHED ; 3
const CHARGING_UP ; 4 ; e.g. Solar Beam, Fly
@@ -97,11 +98,11 @@ DEF SPDSPCDV_TRAINER EQU $88
const HAS_SUBSTITUTE_UP ; 4
const NEEDS_TO_RECHARGE ; 5 ; Hyper Beam
const USING_RAGE ; 6
- const SEEDED ; 7
+ const SEEDED ; 7 ; Leech Seed
; wPlayerBattleStatus3 or wEnemyBattleStatus3 bit flags
const_def
- const BADLY_POISONED ; 0
+ const BADLY_POISONED ; 0 ; Toxic
const HAS_LIGHT_SCREEN_UP ; 1
const HAS_REFLECT_UP ; 2
const TRANSFORMED ; 3
diff --git a/constants/gfx_constants.asm b/constants/gfx_constants.asm
index 7cb7322e..16f3b985 100644
--- a/constants/gfx_constants.asm
+++ b/constants/gfx_constants.asm
@@ -34,6 +34,12 @@ DEF TRANSFERBOTTOM EQU 2
DEF REDRAW_COL EQU 1
DEF REDRAW_ROW EQU 2
+; hUILayoutFlags
+ const_def
+ const BIT_PARTY_MENU_HP_BAR ; 0
+ const BIT_DOUBLE_SPACED_MENU ; 1
+ const BIT_SINGLE_SPACED_LINES ; 2
+
; tile list ids
; TileIDListPointerTable indexes (see data/tilemaps.asm)
const_def
diff --git a/constants/hardware_constants.asm b/constants/hardware_constants.asm
index dc06a05d..d1dcdd69 100644
--- a/constants/hardware_constants.asm
+++ b/constants/hardware_constants.asm
@@ -82,8 +82,14 @@ DEF rWave_d EQU $ff3d
DEF rWave_e EQU $ff3e
DEF rWave_f EQU $ff3f
DEF rLCDC EQU $ff40 ; LCD Control (R/W)
-DEF rLCDC_ENABLE EQU 7
-DEF rLCDC_ENABLE_MASK EQU 1 << rLCDC_ENABLE
+DEF rLCDC_BG_PRIORITY EQU 0
+DEF rLCDC_SPRITES_ENABLE EQU 1
+DEF rLCDC_SPRITE_SIZE EQU 2
+DEF rLCDC_BG_TILEMAP EQU 3
+DEF rLCDC_TILE_DATA EQU 4
+DEF rLCDC_WINDOW_ENABLE EQU 5
+DEF rLCDC_WINDOW_TILEMAP EQU 6
+DEF rLCDC_ENABLE EQU 7
DEF rSTAT EQU $ff41 ; LCDC Status (R/W)
DEF rSCY EQU $ff42 ; Scroll Y (R/W)
DEF rSCX EQU $ff43 ; Scroll X (R/W)
@@ -112,3 +118,8 @@ DEF rSVBK EQU $ff70 ; CGB Mode Only - WRAM Bank
DEF rPCM12 EQU $ff76 ; Channels 1 & 2 Amplitude (R)
DEF rPCM34 EQU $ff77 ; Channels 3 & 4 Amplitude (R)
DEF rIE EQU $ffff ; Interrupt Enable (R/W)
+DEF rIE_VBLANK EQU 0
+DEF rIE_LCD EQU 1
+DEF rIE_TIMER EQU 2
+DEF rIE_SERIAL EQU 3
+DEF rIE_JOYPAD EQU 4
diff --git a/constants/icon_constants.asm b/constants/icon_constants.asm
index f3c1b150..1a1ee100 100644
--- a/constants/icon_constants.asm
+++ b/constants/icon_constants.asm
@@ -1,18 +1,18 @@
; party menu icons
; used in MonPartySpritePointers (see data/icon_pointers.asm)
const_def
- const ICON_MON ; $0
- const ICON_BALL ; $1
- const ICON_HELIX ; $2
- const ICON_FAIRY ; $3
- const ICON_BIRD ; $4
- const ICON_WATER ; $5
- const ICON_BUG ; $6
- const ICON_GRASS ; $7
- const ICON_SNAKE ; $8
- const ICON_QUADRUPED ; $9
- const ICON_PIKACHU ; $A
-
-DEF ICON_TRADEBUBBLE EQU $e
+ const ICON_MON ; $0
+ const ICON_BALL ; $1
+ const ICON_HELIX ; $2
+ const ICON_FAIRY ; $3
+ const ICON_BIRD ; $4
+ const ICON_WATER ; $5
+ const ICON_BUG ; $6
+ const ICON_GRASS ; $7
+ const ICON_SNAKE ; $8
+ const ICON_QUADRUPED ; $9
+ const ICON_PIKACHU ; $a
+ const_skip 3
+ const ICON_TRADEBUBBLE ; $e
DEF ICONOFFSET EQU $40 ; difference between alternating icon frames' tile IDs
diff --git a/constants/input_constants.asm b/constants/input_constants.asm
index f9070cba..68233dea 100644
--- a/constants/input_constants.asm
+++ b/constants/input_constants.asm
@@ -1,13 +1,13 @@
; joypad buttons
const_def
- const BIT_A_BUTTON
- const BIT_B_BUTTON
- const BIT_SELECT
- const BIT_START
- const BIT_D_RIGHT
- const BIT_D_LEFT
- const BIT_D_UP
- const BIT_D_DOWN
+ const BIT_A_BUTTON ; 0
+ const BIT_B_BUTTON ; 1
+ const BIT_SELECT ; 2
+ const BIT_START ; 3
+ const BIT_D_RIGHT ; 4
+ const BIT_D_LEFT ; 5
+ const BIT_D_UP ; 6
+ const BIT_D_DOWN ; 7
DEF NO_INPUT EQU 0
DEF A_BUTTON EQU 1 << BIT_A_BUTTON
diff --git a/constants/map_object_constants.asm b/constants/map_object_constants.asm
index 377edcea..3b17c6ae 100644
--- a/constants/map_object_constants.asm
+++ b/constants/map_object_constants.asm
@@ -40,9 +40,16 @@ DEF SPRITESTATEDATA2_LENGTH EQU const_value
DEF NUM_SPRITESTATEDATA_STRUCTS EQU 16
+ const_def 6
+ const BIT_TRAINER ; 6
+ const BIT_ITEM ; 7
+
; different kinds of people events
-DEF ITEM EQU $80
-DEF TRAINER EQU $40
+DEF TRAINER EQU 1 << BIT_TRAINER
+DEF ITEM EQU 1 << BIT_ITEM
+
+; movement status
+DEF BIT_FACE_PLAYER EQU 7
DEF WALK EQU $FE
DEF STAY EQU $FF
diff --git a/constants/menu_constants.asm b/constants/menu_constants.asm
index f1f0d417..a6e035e7 100644
--- a/constants/menu_constants.asm
+++ b/constants/menu_constants.asm
@@ -44,6 +44,9 @@ DEF PC_ITEM_CAPACITY EQU 50
const NO_YES_MENU ; 7
DEF NUM_TWO_OPTION_MENUS EQU const_value
+; wTwoOptionMenuID
+DEF BIT_SECOND_MENU_OPTION_DEFAULT EQU 7
+
; menu exit method constants for list menus and the buy/sell/quit menu
DEF CHOSE_MENU_ITEM EQU 1 ; pressed A
DEF CANCELLED_MENU EQU 2 ; pressed B
diff --git a/constants/misc_constants.asm b/constants/misc_constants.asm
index a230b3d7..3562042b 100644
--- a/constants/misc_constants.asm
+++ b/constants/misc_constants.asm
@@ -7,15 +7,3 @@ DEF TRUE EQU 1
const FLAG_RESET ; 0
const FLAG_SET ; 1
const FLAG_TEST ; 2
-
-; wOptions
-DEF TEXT_DELAY_FAST EQU %001 ; 1
-DEF TEXT_DELAY_MEDIUM EQU %011 ; 3
-DEF TEXT_DELAY_SLOW EQU %101 ; 5
-
- const_def 6
- const BIT_BATTLE_SHIFT ; 6
- const BIT_BATTLE_ANIMATION ; 7
-
-; wd732 flags
-DEF BIT_DEBUG_MODE EQU 1
diff --git a/constants/oam_constants.asm b/constants/oam_constants.asm
index 0c9a3c72..d0ae3157 100644
--- a/constants/oam_constants.asm
+++ b/constants/oam_constants.asm
@@ -1,14 +1,20 @@
-; OAM flags used by this game
-DEF OAMFLAG_ENDOFDATA EQU %00000001 ; pseudo OAM flag, only used by game logic
-DEF OAMFLAG_CANBEMASKED EQU %00000010 ; pseudo OAM flag, only used by game logic
+; Pseudo-OAM flags used by game logic
+ const_def
+ const BIT_END_OF_OAM_DATA ; 0
+ const BIT_SPRITE_UNDER_GRASS ; 1
+
+; Used in SpriteFacingAndAnimationTable (see data/sprites/facings.asm)
+DEF FACING_END EQU 1 << BIT_END_OF_OAM_DATA
+DEF UNDER_GRASS EQU 1 << BIT_SPRITE_UNDER_GRASS
; OAM attribute flags
-DEF OAM_PALETTE EQU %111
-DEF OAM_TILE_BANK EQU 3
-DEF OAM_OBP_NUM EQU 4 ; Non CGB Mode Only
-DEF OAM_X_FLIP EQU 5
-DEF OAM_Y_FLIP EQU 6
-DEF OAM_PRIORITY EQU 7 ; 0: OBJ above BG, 1: OBJ behind BG (colors 1-3)
+DEF OAM_PALETTE EQU %111
+ const_def 3
+ const OAM_TILE_BANK ; 3
+ const OAM_OBP_NUM ; 4 ; Non CGB Mode Only
+ const OAM_X_FLIP ; 5
+ const OAM_Y_FLIP ; 6
+ const OAM_PRIORITY ; 7 ; 0: OBJ above BG, 1: OBJ behind BG (colors 1-3)
; OAM attribute masks
DEF OAM_HIGH_PALS EQU 1 << 2 ; palettes %100-%111 are OBP1
diff --git a/constants/ram_constants.asm b/constants/ram_constants.asm
new file mode 100644
index 00000000..c054b542
--- /dev/null
+++ b/constants/ram_constants.asm
@@ -0,0 +1,156 @@
+; wSlotMachineFlags
+ const_def 6
+ const BIT_SLOTS_CAN_WIN ; 6
+ const BIT_SLOTS_CAN_WIN_WITH_7_OR_BAR ; 7
+
+; wMiscFlags
+ const_def
+ const BIT_SEEN_BY_TRAINER ; 0
+ const BIT_BOULDER_DUST ; 1
+ const BIT_TURNING ; 2
+ const BIT_USING_GENERIC_PC ; 3
+ const BIT_NO_SPRITE_UPDATES ; 4
+ const BIT_NO_MENU_BUTTON_SOUND ; 5
+ const BIT_TRIED_PUSH_BOULDER ; 6
+ const BIT_PUSHED_BOULDER ; 7
+
+; wAutoTextBoxDrawingControl
+DEF BIT_NO_AUTO_TEXT_BOX EQU 0
+
+; wTextPredefFlag
+DEF BIT_TEXT_PREDEF EQU 0
+
+; wFontLoaded
+DEF BIT_FONT_LOADED EQU 0
+
+; wCurrentMapScriptFlags
+ const_def 5
+ const BIT_CUR_MAP_LOADED_1 ; 5
+ const BIT_CUR_MAP_LOADED_2 ; 6
+ const BIT_CUR_MAP_USED_ELEVATOR ; 7
+
+; wOptions
+DEF TEXT_DELAY_MASK EQU %000111
+DEF SOUND_MASK EQU %110000
+ const_def 6
+ const BIT_BATTLE_SHIFT ; 6
+ const BIT_BATTLE_ANIMATION ; 7
+
+DEF TEXT_DELAY_FAST EQU %001 ; 1
+DEF TEXT_DELAY_MEDIUM EQU %011 ; 3
+DEF TEXT_DELAY_SLOW EQU %101 ; 5
+
+; wLetterPrintingDelayFlags
+ const_def
+ const BIT_FAST_TEXT_DELAY ; 0
+ const BIT_TEXT_DELAY ; 1
+
+; wCurMapTileset
+DEF BIT_NO_PREVIOUS_MAP EQU 7
+
+; wCurrentBoxNum
+DEF BIT_HAS_CHANGED_BOXES EQU 7
+
+; wObtainedBadges, wBeatGymFlags
+ const_def
+ const BIT_BOULDERBADGE ; 0
+ const BIT_CASCADEBADGE ; 1
+ const BIT_THUNDERBADGE ; 2
+ const BIT_RAINBOWBADGE ; 3
+ const BIT_SOULBADGE ; 4
+ const BIT_MARSHBADGE ; 5
+ const BIT_VOLCANOBADGE ; 6
+ const BIT_EARTHBADGE ; 7
+DEF NUM_BADGES EQU const_value
+
+; wStatusFlags1
+ const_def
+ const BIT_STRENGTH_ACTIVE ; 0
+ const BIT_SURF_ALLOWED ; 1
+ const_skip ; 2 ; unused
+ const BIT_GOT_OLD_ROD ; 3
+ const BIT_GOT_GOOD_ROD ; 4
+ const BIT_GOT_SUPER_ROD ; 5
+ const BIT_GAVE_SAFFRON_GUARDS_DRINK ; 6
+ const BIT_UNUSED_CARD_KEY ; 7
+
+; wStatusFlags2
+ const_def
+ const BIT_WILD_ENCOUNTER_COOLDOWN ; 0
+ const BIT_NO_AUDIO_FADE_OUT ; 1
+
+; wStatusFlags3
+ const_def
+ const BIT_INIT_TRADE_CENTER_FACING ; 0
+ const_skip 2 ; 1-2 ; unused
+ const BIT_WARP_FROM_CUR_SCRIPT ; 3
+ const BIT_ON_DUNGEON_WARP ; 4
+ const BIT_NO_NPC_FACE_PLAYER ; 5
+ const BIT_TALKED_TO_TRAINER ; 6
+ const BIT_PRINT_END_BATTLE_TEXT ; 7
+
+; wStatusFlags4
+ const_def
+ const BIT_GOT_LAPRAS ; 0
+ const BIT_UNKNOWN_4_1 ; 1
+ const BIT_USED_POKECENTER ; 2
+ const BIT_GOT_STARTER ; 3
+ const BIT_NO_BATTLES ; 4
+ const BIT_BATTLE_OVER_OR_BLACKOUT ; 5
+ const BIT_LINK_CONNECTED ; 6
+ const BIT_INIT_SCRIPTED_MOVEMENT ; 7
+
+; wStatusFlags5
+ const_def
+ const BIT_SCRIPTED_NPC_MOVEMENT ; 0
+ const BIT_UNKNOWN_5_1 ; 1
+ const BIT_UNKNOWN_5_2 ; 2
+ const_skip ; 3 ; unused
+ const BIT_UNKNOWN_5_4 ; 4
+ const BIT_DISABLE_JOYPAD ; 5
+ const BIT_NO_TEXT_DELAY ; 6
+ const BIT_SCRIPTED_MOVEMENT_STATE ; 7
+
+; wStatusFlags6
+ const_def
+ const BIT_GAME_TIMER_COUNTING ; 0
+ const BIT_DEBUG_MODE ; 1
+ const BIT_FLY_OR_DUNGEON_WARP ; 2
+ const BIT_FLY_WARP ; 3
+ const BIT_DUNGEON_WARP ; 4
+ const BIT_ALWAYS_ON_BIKE ; 5
+ const BIT_ESCAPE_WARP ; 6
+
+; wStatusFlags7
+ const_def
+ const BIT_TEST_BATTLE ; 0
+ const BIT_NO_MAP_MUSIC ; 1
+ const BIT_FORCED_WARP ; 2
+ const BIT_TRAINER_BATTLE ; 3
+ const BIT_USE_CUR_MAP_SCRIPT ; 4
+ const_skip 2 ; 5-6 ; unused
+ const BIT_USED_FLY ; 7
+
+; wElite4Flags
+ const_def
+ const BIT_UNUSED_BEAT_ELITE_4 ; 0
+ const BIT_STARTED_ELITE_4 ; 1
+
+; wMovementFlags
+ const_def
+ const BIT_STANDING_ON_DOOR ; 0
+ const BIT_EXITING_DOOR ; 1
+ const BIT_STANDING_ON_WARP ; 2
+ const_skip 3 ; 3-5 ; unused
+ const BIT_LEDGE_OR_FISHING ; 6
+ const BIT_SPINNING ; 7
+
+; hFindPathFlags
+ const_def
+ const BIT_PATH_FOUND_Y ; 0
+ const BIT_PATH_FOUND_X ; 1
+
+; hNPCPlayerRelativePosFlags
+ const_def
+ const BIT_PLAYER_LOWER_Y ; 0
+ const BIT_PLAYER_LOWER_X ; 1
diff --git a/constants/script_constants.asm b/constants/script_constants.asm
index 005fbb14..56aee78f 100644
--- a/constants/script_constants.asm
+++ b/constants/script_constants.asm
@@ -44,19 +44,6 @@ DEF NUM_NPC_TRADES EQU const_value
const TRADE_DIALOGSET_EVOLUTION
const TRADE_DIALOGSET_HAPPY
-; badges
-; wObtainedBadges and wBeatGymFlags bits
- const_def
- const BIT_BOULDERBADGE ; 0
- const BIT_CASCADEBADGE ; 1
- const BIT_THUNDERBADGE ; 2
- const BIT_RAINBOWBADGE ; 3
- const BIT_SOULBADGE ; 4
- const BIT_MARSHBADGE ; 5
- const BIT_VOLCANOBADGE ; 6
- const BIT_EARTHBADGE ; 7
-DEF NUM_BADGES EQU const_value
-
; OaksAideScript results
DEF OAKS_AIDE_BAG_FULL EQU $00
DEF OAKS_AIDE_GOT_ITEM EQU $01
diff --git a/data/predef_pointers.asm b/data/predef_pointers.asm
index eaef75f6..e960d49b 100644
--- a/data/predef_pointers.asm
+++ b/data/predef_pointers.asm
@@ -101,7 +101,7 @@ PredefPointers::
add_predef EnterMapAnim, $1E ; wrong bank
add_predef GetTileTwoStepsInFrontOfPlayer
add_predef CheckForCollisionWhenPushingBoulder
- add_predef PrintStrengthTxt
+ add_predef PrintStrengthText
add_predef PickUpItem
add_predef PrintMoveType
add_predef LoadMovePPs
diff --git a/data/sprites/facings.asm b/data/sprites/facings.asm
index d3455d74..74eb2525 100644
--- a/data/sprites/facings.asm
+++ b/data/sprites/facings.asm
@@ -47,71 +47,71 @@ SpriteFacingAndAnimationTable:
db 4 ; #
db 0, 0, $00, 0
db 0, 8, $01, 0
- db 8, 0, $02, OAMFLAG_CANBEMASKED
- db 8, 8, $03, OAMFLAG_CANBEMASKED | OAMFLAG_ENDOFDATA
+ db 8, 0, $02, UNDER_GRASS
+ db 8, 8, $03, UNDER_GRASS | FACING_END
.WalkingDown:
db 4 ; #
db 0, 0, $80, 0
db 0, 8, $81, 0
- db 8, 0, $82, OAMFLAG_CANBEMASKED
- db 8, 8, $83, OAMFLAG_CANBEMASKED | OAMFLAG_ENDOFDATA
+ db 8, 0, $82, UNDER_GRASS
+ db 8, 8, $83, UNDER_GRASS | FACING_END
.WalkingDown2:
db 4 ; #
db 0, 8, $80, OAM_HFLIP
db 0, 0, $81, OAM_HFLIP
- db 8, 8, $82, OAM_HFLIP | OAMFLAG_CANBEMASKED
- db 8, 0, $83, OAM_HFLIP | OAMFLAG_CANBEMASKED | OAMFLAG_ENDOFDATA
+ db 8, 8, $82, OAM_HFLIP | UNDER_GRASS
+ db 8, 0, $83, OAM_HFLIP | UNDER_GRASS | FACING_END
.StandingUp:
db 4 ; #
db 0, 0, $04, 0
db 0, 8, $05, 0
- db 8, 0, $06, OAMFLAG_CANBEMASKED
- db 8, 8, $07, OAMFLAG_CANBEMASKED | OAMFLAG_ENDOFDATA
+ db 8, 0, $06, UNDER_GRASS
+ db 8, 8, $07, UNDER_GRASS | FACING_END
.WalkingUp:
db 4 ; #
db 0, 0, $84, 0
db 0, 8, $85, 0
- db 8, 0, $86, OAMFLAG_CANBEMASKED
- db 8, 8, $87, OAMFLAG_CANBEMASKED | OAMFLAG_ENDOFDATA
+ db 8, 0, $86, UNDER_GRASS
+ db 8, 8, $87, UNDER_GRASS | FACING_END
.WalkingUp2:
db 4 ; #
db 0, 8, $84, OAM_HFLIP
db 0, 0, $85, OAM_HFLIP
- db 8, 8, $86, OAM_HFLIP | OAMFLAG_CANBEMASKED
- db 8, 0, $87, OAM_HFLIP | OAMFLAG_CANBEMASKED | OAMFLAG_ENDOFDATA
+ db 8, 8, $86, OAM_HFLIP | UNDER_GRASS
+ db 8, 0, $87, OAM_HFLIP | UNDER_GRASS | FACING_END
.StandingLeft:
db 4 ; #
db 0, 0, $08, 0
db 0, 8, $09, 0
- db 8, 0, $0a, OAMFLAG_CANBEMASKED
- db 8, 8, $0b, OAMFLAG_CANBEMASKED | OAMFLAG_ENDOFDATA
+ db 8, 0, $0a, UNDER_GRASS
+ db 8, 8, $0b, UNDER_GRASS | FACING_END
.WalkingLeft:
db 4 ; #
db 0, 0, $88, 0
db 0, 8, $89, 0
- db 8, 0, $8a, OAMFLAG_CANBEMASKED
- db 8, 8, $8b, OAMFLAG_CANBEMASKED | OAMFLAG_ENDOFDATA
+ db 8, 0, $8a, UNDER_GRASS
+ db 8, 8, $8b, UNDER_GRASS | FACING_END
.StandingRight:
db 4 ; #
db 0, 8, $08, OAM_HFLIP
db 0, 0, $09, OAM_HFLIP
- db 8, 8, $0a, OAM_HFLIP | OAMFLAG_CANBEMASKED
- db 8, 0, $0b, OAM_HFLIP | OAMFLAG_CANBEMASKED | OAMFLAG_ENDOFDATA
+ db 8, 8, $0a, OAM_HFLIP | UNDER_GRASS
+ db 8, 0, $0b, OAM_HFLIP | UNDER_GRASS | FACING_END
.WalkingRight:
db 4 ; #
db 0, 8, $88, OAM_HFLIP
db 0, 0, $89, OAM_HFLIP
- db 8, 8, $8a, OAM_HFLIP | OAMFLAG_CANBEMASKED
- db 8, 0, $8b, OAM_HFLIP | OAMFLAG_CANBEMASKED | OAMFLAG_ENDOFDATA
+ db 8, 8, $8a, OAM_HFLIP | UNDER_GRASS
+ db 8, 0, $8b, OAM_HFLIP | UNDER_GRASS | FACING_END
.SpecialCase:
db 9 ; #
@@ -121,6 +121,6 @@ SpriteFacingAndAnimationTable:
db 4, -4, $01, 0
db 4, 4, $02, 0
db 4, 12, $01, 0
- db 12, -4, $00, OAM_VFLIP | OAMFLAG_CANBEMASKED
- db 12, 4, $01, OAMFLAG_CANBEMASKED
- db 12, 12, $00, OAM_VFLIP | OAM_HFLIP | OAMFLAG_CANBEMASKED | OAMFLAG_ENDOFDATA
+ db 12, -4, $00, OAM_VFLIP | UNDER_GRASS
+ db 12, 4, $01, UNDER_GRASS
+ db 12, 12, $00, OAM_VFLIP | OAM_HFLIP | UNDER_GRASS | FACING_END
diff --git a/data/text/text_1.asm b/data/text/text_1.asm
index 7dac6d4f..74b834bf 100644
--- a/data/text/text_1.asm
+++ b/data/text/text_1.asm
@@ -14,7 +14,7 @@ _CardKeyFailText::
done
_TrainerNameText::
- text_ram wcd6d
+ text_ram wNameBuffer
text ": @"
text_end
diff --git a/data/text/text_2.asm b/data/text/text_2.asm
index df8a26b3..31f0edb8 100644
--- a/data/text/text_2.asm
+++ b/data/text/text_2.asm
@@ -10,7 +10,7 @@ _AIBattleUseItemText::
text_ram wTrainerName
text_start
line "used @"
- text_ram wcd6d
+ text_ram wNameBuffer
text_start
cont "on @"
text_ram wEnemyMonNick
@@ -45,7 +45,7 @@ _TradeSendsText::
text_ram wLinkEnemyTrainerName
text " sends"
line "@"
- text_ram wcd6d
+ text_ram wNameBuffer
text "."
done
@@ -56,7 +56,7 @@ _TradeWavesFarewellText::
done
_TradeTransferredText::
- text_ram wcd6d
+ text_ram wNameBuffer
text " is"
line "transferred."
done
@@ -64,7 +64,7 @@ _TradeTransferredText::
_TradeTakeCareText::
text "Take good care of"
line "@"
- text_ram wcd6d
+ text_ram wNameBuffer
text "."
done
@@ -72,7 +72,7 @@ _TradeWillTradeText::
text_ram wLinkEnemyTrainerName
text " will"
line "trade @"
- text_ram wcd6d
+ text_ram wNameBuffer
text_start
done
@@ -796,7 +796,7 @@ _VermilionGymTrashFailText::
_FoundHiddenItemText::
text "<PLAYER> found"
line "@"
- text_ram wcd6d
+ text_ram wNameBuffer
text "!@"
text_end
@@ -1119,7 +1119,7 @@ _CantMoveText::
_MoveIsDisabledText::
text "<USER>'s"
line "@"
- text_ram wcd6d
+ text_ram wNameBuffer
text " is"
cont "disabled!"
prompt
@@ -1254,7 +1254,7 @@ _HitXTimesText::
prompt
_GainedText::
- text_ram wcd6d
+ text_ram wNameBuffer
text " gained"
line "@"
text_end
@@ -1275,10 +1275,10 @@ _ExpPointsText::
prompt
_GrewLevelText::
- text_ram wcd6d
+ text_ram wNameBuffer
text " grew"
line "to level @"
- text_decimal wCurEnemyLVL, 1, 3
+ text_decimal wCurEnemyLevel, 1, 3
text "!@"
text_end
diff --git a/data/text/text_3.asm b/data/text/text_3.asm
index 832559f8..bb8302b4 100644
--- a/data/text/text_3.asm
+++ b/data/text/text_3.asm
@@ -113,7 +113,7 @@ _PartyMenuSwapMonText::
done
_PotionText::
- text_ram wcd6d
+ text_ram wNameBuffer
text_start
line "recovered by @"
text_decimal wHPBarHPDifference, 2, 3
@@ -121,52 +121,52 @@ _PotionText::
done
_AntidoteText::
- text_ram wcd6d
+ text_ram wNameBuffer
text " was"
line "cured of poison!"
done
_ParlyzHealText::
- text_ram wcd6d
+ text_ram wNameBuffer
text "'s"
line "rid of paralysis!"
done
_BurnHealText::
- text_ram wcd6d
+ text_ram wNameBuffer
text "'s"
line "burn was healed!"
done
_IceHealText::
- text_ram wcd6d
+ text_ram wNameBuffer
text " was"
line "defrosted!"
done
_AwakeningText::
- text_ram wcd6d
+ text_ram wNameBuffer
text_start
line "woke up!"
done
_FullHealText::
- text_ram wcd6d
+ text_ram wNameBuffer
text "'s"
line "health returned!"
done
_ReviveText::
- text_ram wcd6d
+ text_ram wNameBuffer
text_start
line "is revitalized!"
done
_RareCandyText::
- text_ram wcd6d
+ text_ram wNameBuffer
text " grew"
line "to level @"
- text_decimal wCurEnemyLVL, 1, 3
+ text_decimal wCurEnemyLevel, 1, 3
text "!@"
text_end
@@ -218,7 +218,7 @@ _DepositHowManyText::
done
_ItemWasStoredText::
- text_ram wcd6d
+ text_ram wNameBuffer
text " was"
line "stored via PC."
prompt
@@ -245,7 +245,7 @@ _WithdrawHowManyText::
_WithdrewItemText::
text "Withdrew"
line "@"
- text_ram wcd6d
+ text_ram wNameBuffer
text "."
prompt
@@ -335,7 +335,7 @@ _CantTakeMonText::
prompt
_PikachuUnhappyText::
- text_ram wcd6d
+ text_ram wNameBuffer
text " looks"
line "unhappy about it!"
prompt
@@ -384,7 +384,7 @@ _HereYouGoText::
_SoYouWantPrizeText::
text "So, you want"
line "@"
- text_ram wcd6d
+ text_ram wNameBuffer
text "?"
done
@@ -493,7 +493,7 @@ _DoYouWantToNicknameText::
text "Do you want to"
line "give a nickname"
cont "to @"
- text_ram wcd6d
+ text_ram wNameBuffer
text "?"
done
@@ -512,7 +512,7 @@ _WillBeTradedText::
text_ram wNameOfPlayerMonToBeTraded
text " and"
line "@"
- text_ram wcd6d
+ text_ram wNameBuffer
text " will"
cont "be traded."
done
@@ -578,19 +578,19 @@ _ColosseumTotalL50Text::
prompt
_ColosseumHeightText::
- text_ram wcd6d
+ text_ram wNameBuffer
text " is over"
line "6’8” tall!"
prompt
_ColosseumWeightText::
- text_ram wcd6d
+ text_ram wNameBuffer
text " weighs"
line "over 44 pounds!"
prompt
_ColosseumEvolvedText::
- text_ram wcd6d
+ text_ram wNameBuffer
text " is an"
line "evolved #MON!"
prompt
@@ -621,7 +621,7 @@ _ColosseumVersionText::
prompt
_TextIDErrorText::
- text_decimal hSpriteIndexOrTextID, 1, 2
+ text_decimal hTextID, 1, 2
text " error."
done
diff --git a/data/text/text_4.asm b/data/text/text_4.asm
index fd5caad2..935687b8 100644
--- a/data/text/text_4.asm
+++ b/data/text/text_4.asm
@@ -44,7 +44,7 @@ _EvolvedText::
_IntoText::
text_start
line "into @"
- text_ram wcd6d
+ text_ram wNameBuffer
text "!"
done
diff --git a/data/text/text_5.asm b/data/text/text_5.asm
index 834d89dc..47fc87e7 100644
--- a/data/text/text_5.asm
+++ b/data/text/text_5.asm
@@ -128,14 +128,14 @@ _MimicLearnedMoveText::
text "<USER>"
line "learned"
cont "@"
- text_ram wcd6d
+ text_ram wNameBuffer
text "!"
prompt
_MoveWasDisabledText::
text "<TARGET>'s"
line "@"
- text_ram wcd6d
+ text_ram wNameBuffer
text " was"
cont "disabled!"
prompt
@@ -233,7 +233,7 @@ _TransformedText::
text "<USER>"
line "transformed into"
cont "@"
- text_ram wcd6d
+ text_ram wNameBuffer
text "!"
prompt
diff --git a/data/text/text_7.asm b/data/text/text_7.asm
index ddc51d59..f0017963 100644
--- a/data/text/text_7.asm
+++ b/data/text/text_7.asm
@@ -8,7 +8,7 @@ _PokemartGreetingText::
done
_PokemonFaintedText::
- text_ram wcd6d
+ text_ram wNameBuffer
text_start
line "fainted!"
done
@@ -149,7 +149,7 @@ _ForgotAndText::
text_ram wLearnMoveMonName
text " forgot"
line "@"
- text_ram wcd6d
+ text_ram wNameBuffer
text "!"
para "And..."
diff --git a/data/text/text_8.asm b/data/text/text_8.asm
index 67492354..1a56f352 100644
--- a/data/text/text_8.asm
+++ b/data/text/text_8.asm
@@ -43,13 +43,13 @@ _WarpToLastPokemonCenterText::
done
_CannotUseTeleportNowText::
- text_ram wcd6d
+ text_ram wNameBuffer
text " can't"
line "use TELEPORT now."
prompt
_CannotFlyHereText::
- text_ram wcd6d
+ text_ram wNameBuffer
text " can't"
line "FLY here."
prompt
@@ -75,13 +75,13 @@ _CannotGetOffHereText::
prompt
_UsedStrengthText::
- text_ram wcd6d
+ text_ram wNameBuffer
text " used"
line "STRENGTH.@"
text_end
_CanMoveBouldersText::
- text_ram wcd6d
+ text_ram wNameBuffer
text " can"
line "move boulders."
prompt
@@ -99,7 +99,7 @@ _CyclingIsFunText::
_GotMonText::
text "<PLAYER> got"
line "@"
- text_ram wcd6d
+ text_ram wNameBuffer
text "!@"
text_end
diff --git a/data/text/text_9.asm b/data/text/text_9.asm
index bb00403b..d9545694 100644
--- a/data/text/text_9.asm
+++ b/data/text/text_9.asm
@@ -59,7 +59,7 @@ _ItemUseBallText06::
_SurfingGotOnText::
text "<PLAYER> got on"
line "@"
- text_ram wcd6d
+ text_ram wNameBuffer
text "!"
prompt
@@ -69,13 +69,13 @@ _SurfingNoPlaceToGetOffText::
prompt
_RefusingText::
- text_ram wcd6d
+ text_ram wNameBuffer
text_start
line "is refusing!"
prompt
_VitaminStatRoseText::
- text_ram wcd6d
+ text_ram wNameBuffer
text "'s"
line "@"
text_ram wStringBuffer
@@ -180,7 +180,7 @@ _TeachMachineMoveText::
done
_MonCannotLearnMachineMoveText::
- text_ram wcd6d
+ text_ram wNameBuffer
text " is not"
line "compatible with"
cont "@"
@@ -226,7 +226,7 @@ _NoCyclingAllowedHereText::
_NoSurfingHereText::
text "No SURFing on"
line "@"
- text_ram wcd6d
+ text_ram wNameBuffer
text " here!"
prompt
@@ -272,7 +272,7 @@ _GotOffBicycleText2::
_ThrewAwayItemText::
text "Threw away"
line "@"
- text_ram wcd6d
+ text_ram wNameBuffer
text "."
prompt
@@ -289,7 +289,7 @@ _TooImportantToTossText::
prompt
_AlreadyKnowsText::
- text_ram wcd6d
+ text_ram wNameBuffer
text " knows"
line "@"
text_ram wStringBuffer
@@ -436,7 +436,7 @@ _NothingToCutText::
prompt
_UsedCutText::
- text_ram wcd6d
+ text_ram wNameBuffer
text " hacked"
line "away with CUT!"
prompt
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
diff --git a/home/audio.asm b/home/audio.asm
index 48e00f67..6e891e9a 100644
--- a/home/audio.asm
+++ b/home/audio.asm
@@ -10,8 +10,8 @@ PlayDefaultMusicFadeOutCurrent::
; Fade out the current music and then play the default music.
ld c, 10
ld d, 0
- ld a, [wd72e]
- bit 5, a ; has a battle just ended?
+ ld a, [wStatusFlags4]
+ bit BIT_BATTLE_OVER_OR_BLACKOUT, a
jr z, PlayDefaultMusicCommon
xor a
ld [wLastMusicSoundID], a
diff --git a/home/copy.asm b/home/copy.asm
index b239d951..2d07945c 100644
--- a/home/copy.asm
+++ b/home/copy.asm
@@ -35,7 +35,7 @@ CopyData::
CopyVideoDataAlternate::
ldh a, [rLCDC]
- bit 7, a ; LCD enabled?
+ bit rLCDC_ENABLE, a ; LCD enabled?
jp nz, CopyVideoData ; if yes, then copy video data
push hl
ld h, d
@@ -55,7 +55,7 @@ CopyVideoDataAlternate::
CopyVideoDataDoubleAlternate::
ldh a, [rLCDC]
- bit 7, a ; LCD enabled?
+ bit rLCDC_ENABLE, a ; LCD enabled?
jp nz, CopyVideoDataDouble ; if yes, then copy video data
push de
ld d, h
diff --git a/home/fade_audio.asm b/home/fade_audio.asm
index f4e77c3f..373b9bf8 100644
--- a/home/fade_audio.asm
+++ b/home/fade_audio.asm
@@ -2,8 +2,8 @@ FadeOutAudio::
ld a, [wAudioFadeOutControl]
and a ; currently fading out audio?
jr nz, .fadingOut
- ld a, [wd72c]
- bit 1, a
+ ld a, [wStatusFlags2]
+ bit BIT_NO_AUDIO_FADE_OUT, a
ret nz
ld a, $77
ldh [rNR50], a
diff --git a/home/give.asm b/home/give.asm
index f446cf36..9f51450a 100644
--- a/home/give.asm
+++ b/home/give.asm
@@ -3,8 +3,8 @@ GiveItem::
; and copy the item's name to wStringBuffer.
; Return carry on success.
ld a, b
- ld [wd11e], a
- ld [wcf91], a
+ ld [wNamedObjectIndex], a
+ ld [wCurItem], a
ld a, c
ld [wItemQuantity], a
ld hl, wNumBagItems
@@ -18,9 +18,9 @@ GiveItem::
GivePokemon::
; Give the player monster b at level c.
ld a, b
- ld [wcf91], a
+ ld [wCurPartySpecies], a
ld a, c
- ld [wCurEnemyLVL], a
+ ld [wCurEnemyLevel], a
xor a ; PLAYER_PARTY_DATA
ld [wMonDataLocation], a
farjp _GivePokemon
diff --git a/home/init.asm b/home/init.asm
index f6d6d372..d555e598 100644
--- a/home/init.asm
+++ b/home/init.asm
@@ -8,7 +8,6 @@ SoftReset::
Init::
; Program init.
-DEF rLCDC_DEFAULT EQU %11100011
; * LCD enabled
; * Window tile map at $9C00
; * Window display enabled
@@ -17,6 +16,7 @@ DEF rLCDC_DEFAULT EQU %11100011
; * 8x8 OBJ size
; * OBJ display enabled
; * BG display enabled
+DEF rLCDC_DEFAULT EQU (1 << rLCDC_ENABLE) | (1 << rLCDC_WINDOW_TILEMAP) | (1 << rLCDC_WINDOW_ENABLE) | (1 << rLCDC_SPRITES_ENABLE) | (1 << rLCDC_BG_PRIORITY)
di
@@ -35,7 +35,7 @@ DEF rLCDC_DEFAULT EQU %11100011
ldh [rOBP0], a
ldh [rOBP1], a
- ld a, rLCDC_ENABLE_MASK
+ ld a, 1 << rLCDC_ENABLE
ldh [rLCDC], a
call DisableLCD
diff --git a/home/inventory.asm b/home/inventory.asm
index 1100666f..e4f9a261 100644
--- a/home/inventory.asm
+++ b/home/inventory.asm
@@ -28,7 +28,7 @@ RemoveItemFromInventory::
; 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::
diff --git a/home/item.asm b/home/item.asm
index f27d46f4..9e7f02f9 100644
--- a/home/item.asm
+++ b/home/item.asm
@@ -1,7 +1,7 @@
; uses an item
; UseItem is used with dummy items to perform certain other functions as well
; INPUT:
-; [wcf91] = item ID
+; [wCurItem] = item ID
; OUTPUT:
; [wActionResultOrTookBattleTurn] = success
; 00: unsuccessful
@@ -13,7 +13,7 @@ UseItem::
; 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:
@@ -33,7 +33,7 @@ TossItem::
; checks if an item is a key item
; INPUT:
-; [wcf91] = item ID
+; [wCurItem] = item ID
; OUTPUT:
; [wIsKeyItem] = result
; 00: item is not key item
diff --git a/home/item_price.asm b/home/item_price.asm
index 39749ee9..fa47693a 100644
--- a/home/item_price.asm
+++ b/home/item_price.asm
@@ -1,6 +1,6 @@
GetItemPrice::
; Stores item's price as BCD at hItemPrice (3 bytes)
-; Input: [wcf91] = item id
+; Input: [wCurItem] = item id
ldh a, [hLoadedROMBank]
push af
ld a, [wListMenuID]
@@ -14,7 +14,7 @@ GetItemPrice::
ld a, [hli]
ld h, [hl]
ld l, a
- ld a, [wcf91] ; a contains item id
+ ld a, [wCurItem]
cp HM01
jr nc, .getTMPrice
ld bc, $3
diff --git a/home/lcd.asm b/home/lcd.asm
index 5c496824..aef6d43f 100644
--- a/home/lcd.asm
+++ b/home/lcd.asm
@@ -3,7 +3,7 @@ DisableLCD::
ldh [rIF], a
ldh a, [rIE]
ld b, a
- res 0, a
+ res rIE_VBLANK, a
ldh [rIE], a
.wait
@@ -12,7 +12,7 @@ DisableLCD::
jr nz, .wait
ldh a, [rLCDC]
- and ~rLCDC_ENABLE_MASK
+ and ~(1 << rLCDC_ENABLE)
ldh [rLCDC], a
ld a, b
ldh [rIE], a
diff --git a/home/list_menu.asm b/home/list_menu.asm
index 13bcec59..095cae27 100644
--- a/home/list_menu.asm
+++ b/home/list_menu.asm
@@ -15,8 +15,8 @@ DisplayListMenuID::
ld a, BANK(DisplayBattleMenu)
.bankswitch
call BankswitchHome
- ld hl, wd730
- set 6, [hl] ; turn off letter printing delay
+ ld hl, wStatusFlags5
+ set BIT_NO_TEXT_DELAY, [hl]
xor a
ld [wMenuItemToSwap], a ; 0 means no item is currently being swapped
ld [wListCount], a
@@ -124,28 +124,30 @@ DisplayListMenuIDLoop::
ld b, 0
add hl, bc
ld a, [hl]
- ld [wcf91], a
+ ld [wCurListMenuItem], a
ld a, [wListMenuID]
and a ; PCPOKEMONLISTMENU?
jr z, .pokemonList
+; if it's an item menu
+ assert wCurListMenuItem == wCurItem
push hl
call GetItemPrice
pop hl
ld a, [wListMenuID]
cp ITEMLISTMENU
jr nz, .skipGettingQuantity
-; if it's an item menu
inc hl
ld a, [hl] ; a = item quantity
ld [wMaxItemQuantity], a
.skipGettingQuantity
- ld a, [wcf91]
- ld [wd0b5], a
+ ld a, [wCurItem]
+ ld [wNameListIndex], a
ld a, BANK(ItemNames)
ld [wPredefBank], a
call GetName
jr .storeChosenEntry
.pokemonList
+ assert wCurListMenuItem == wCurPartySpecies
ld hl, wPartyCount
ld a, [wListPointer]
cp l ; is it a list of party pokemon or box pokemon?
@@ -156,7 +158,7 @@ DisplayListMenuIDLoop::
ld a, [wWhichPokemon]
call GetPartyMonName
.storeChosenEntry ; store the menu entry that the player chose and return
- ld de, wcd6d
+ ld de, wNameBuffer
call CopyToStringBuffer
ld a, CHOSE_MENU_ITEM
ld [wMenuExitMethod], a
@@ -164,8 +166,8 @@ DisplayListMenuIDLoop::
ld [wChosenMenuItem], a
xor a
ldh [hJoy7], a ; joypad state update flag
- ld hl, wd730
- res 6, [hl] ; turn on letter printing delay
+ ld hl, wStatusFlags5
+ res BIT_NO_TEXT_DELAY, [hl]
jp BankswitchBack
.checkOtherKeys ; check B, SELECT, Up, and Down keys
bit BIT_B_BUTTON, a
@@ -323,8 +325,8 @@ ExitListMenu::
ld [wMenuWatchMovingOutOfBounds], a
xor a
ldh [hJoy7], a
- ld hl, wd730
- res 6, [hl]
+ ld hl, wStatusFlags5
+ res BIT_NO_TEXT_DELAY, [hl]
call BankswitchBack
xor a
ld [wMenuItemToSwap], a ; 0 means no item is currently being swapped
@@ -362,7 +364,7 @@ PrintListMenuEntries::
ld a, b
ld [wWhichPokemon], a
ld a, [de]
- ld [wd11e], a
+ ld [wNamedObjectIndex], a
cp $ff
jp z, .printCancelMenuItem
push bc
@@ -410,8 +412,8 @@ PrintListMenuEntries::
push hl
ld a, [de]
ld de, ItemPrices
- ld [wcf91], a
- call GetItemPrice ; get price
+ ld [wCurItem], a
+ call GetItemPrice
pop hl
ld bc, SCREEN_WIDTH + 5 ; 1 row down and 5 columns right
add hl, bc
@@ -422,7 +424,7 @@ PrintListMenuEntries::
and a ; PCPOKEMONLISTMENU?
jr nz, .skipPrintingPokemonLevel
.printPokemonLevel
- ld a, [wd11e]
+ ld a, [wNamedObjectIndex]
push af
push hl
ld hl, wPartyCount
@@ -455,7 +457,7 @@ PrintListMenuEntries::
add hl, bc
call PrintLevel
pop af
- ld [wd11e], a
+ ld [wNamedObjectIndex], a
.skipPrintingPokemonLevel
pop hl
pop de
@@ -464,8 +466,8 @@ PrintListMenuEntries::
cp ITEMLISTMENU
jr nz, .nextListEntry
.printItemQuantity
- ld a, [wd11e]
- ld [wcf91], a
+ ld a, [wNamedObjectIndex]
+ ld [wCurItem], a
call IsKeyItem ; check if item is unsellable
ld a, [wIsKeyItem]
and a ; is the item unsellable?
@@ -475,18 +477,18 @@ PrintListMenuEntries::
add hl, bc
ld a, "×"
ld [hli], a
- ld a, [wd11e]
+ ld a, [wNamedObjectIndex]
push af
ld a, [de]
ld [wMaxItemQuantity], a
push de
- ld de, wd11e
+ ld de, wTempByteValue
ld [de], a
lb bc, 1, 2
call PrintNumber
pop de
pop af
- ld [wd11e], a
+ ld [wNamedObjectIndex], a
pop hl
.skipPrintingItemQuantity
inc de
diff --git a/home/load_font.asm b/home/load_font.asm
index 8ed0f0a7..be54a287 100644
--- a/home/load_font.asm
+++ b/home/load_font.asm
@@ -1,6 +1,6 @@
LoadFontTilePatterns::
ldh a, [rLCDC]
- bit 7, a ; is the LCD enabled?
+ bit rLCDC_ENABLE, a
jr nz, .on
.off
ld hl, FontGraphics
@@ -16,7 +16,7 @@ LoadFontTilePatterns::
LoadTextBoxTilePatterns::
ldh a, [rLCDC]
- bit 7, a ; is the LCD enabled?
+ bit rLCDC_ENABLE, a
jr nz, .on
.off
ld hl, TextBoxGraphics
@@ -32,7 +32,7 @@ LoadTextBoxTilePatterns::
LoadHpBarAndStatusTilePatterns::
ldh a, [rLCDC]
- bit 7, a ; is the LCD enabled?
+ bit rLCDC_ENABLE, a
jr nz, .on
.off
ld hl, HpBarAndStatusGraphics
diff --git a/home/map_objects.asm b/home/map_objects.asm
index a54e8f31..2359c7ca 100644
--- a/home/map_objects.asm
+++ b/home/map_objects.asm
@@ -56,8 +56,8 @@ StartSimulatingJoypadStates::
xor a
ld [wOverrideSimulatedJoypadStatesMask], a
ld [wSpritePlayerStateData2MovementByte1], a
- ld hl, wd730
- set 7, [hl]
+ ld hl, wStatusFlags5
+ set BIT_SCRIPTED_MOVEMENT_STATE, [hl]
ret
IsItemInBag::
@@ -125,7 +125,7 @@ Func_3467::
ret
DisplayPokedex::
- ld [wd11e], a
+ ld [wPokedexNum], a
farjp _DisplayPokedex
SetSpriteFacingDirectionAndDelay::
@@ -301,7 +301,7 @@ SetSpriteMovementBytesToFF::
; returns the sprite movement byte 1 pointer for sprite [hSpriteIndex] in hl
GetSpriteMovementByte1Pointer::
- ld h, $C2
+ ld h, HIGH(wSpriteStateData2)
ldh a, [hSpriteIndex]
swap a
add 6
diff --git a/home/move_mon.asm b/home/move_mon.asm
index c766fbd5..45b10322 100644
--- a/home/move_mon.asm
+++ b/home/move_mon.asm
@@ -172,7 +172,7 @@ CalcStat::
ldh [hMultiplicand+1], a
xor a
ldh [hMultiplicand], a
- ld a, [wCurEnemyLVL]
+ ld a, [wCurEnemyLevel]
ldh [hMultiplier], a
call Multiply ; ((Base + IV) * 2 + ceil(Sqrt(stat exp)) / 4) * Level
ldh a, [hMultiplicand]
@@ -190,7 +190,7 @@ CalcStat::
cp $1
ld a, 5 ; + 5 for non-HP stat
jr nz, .notHPStat
- ld a, [wCurEnemyLVL]
+ ld a, [wCurEnemyLevel]
ld b, a
ldh a, [hMultiplicand+2]
add b
diff --git a/home/names.asm b/home/names.asm
index f7751fa0..7330a065 100644
--- a/home/names.asm
+++ b/home/names.asm
@@ -5,17 +5,17 @@ GetMonName::
ld a, BANK(MonsterNames)
ldh [hLoadedROMBank], a
ld [MBC1RomBank], a
- ld a, [wd11e]
+ ld a, [wNamedObjectIndex]
dec a
ld hl, MonsterNames
- ld c, 10
+ ld c, NAME_LENGTH - 1
ld b, 0
call AddNTimes
- ld de, wcd6d
+ ld de, wNameBuffer
push de
- ld bc, 10
+ ld bc, NAME_LENGTH - 1
call CopyData
- ld hl, wcd6d + 10
+ ld hl, wNameBuffer + NAME_LENGTH - 1
ld [hl], "@"
pop de
pop af
@@ -25,15 +25,14 @@ GetMonName::
ret
GetItemName::
-; given an item ID at [wd11e], store the name of the item into a string
-; starting at wcd6d
+; given an item ID at [wNamedObjectIndex], store the name of the item in wNameBuffer
push hl
push bc
- ld a, [wd11e]
+ ld a, [wNamedObjectIndex]
cp HM01 ; is this a TM/HM?
jr nc, .Machine
- ld [wd0b5], a
+ ld [wNameListIndex], a
ld a, ITEM_NAME
ld [wNameListType], a
ld a, BANK(ItemNames)
@@ -44,24 +43,24 @@ GetItemName::
.Machine
call GetMachineName
.Finish
- ld de, wcd6d ; pointer to where item name is stored in RAM
+ ld de, wNameBuffer
pop bc
pop hl
ret
GetMachineName::
-; copies the name of the TM/HM in [wd11e] to wcd6d
+; copies the name of the TM/HM in [wNamedObjectIndex] to wNameBuffer
push hl
push de
push bc
- ld a, [wd11e]
+ ld a, [wNamedObjectIndex]
push af
cp TM01 ; is this a TM? [not HM]
jr nc, .WriteTM
; if HM, then write "HM" and add NUM_HMS to the item ID, so we can reuse the
; TM printing code
add NUM_HMS
- ld [wd11e], a
+ ld [wNamedObjectIndex], a
ld hl, HiddenPrefix ; points to "HM"
ld bc, 2
jr .WriteMachinePrefix
@@ -69,11 +68,11 @@ GetMachineName::
ld hl, TechnicalPrefix ; points to "TM"
ld bc, 2
.WriteMachinePrefix
- ld de, wcd6d
+ ld de, wNameBuffer
call CopyData
; now get the machine number and convert it to text
- ld a, [wd11e]
+ ld a, [wNamedObjectIndex]
sub TM01 - 1
ld b, "0"
.FirstDigit
@@ -95,7 +94,7 @@ GetMachineName::
ld a, "@"
ld [de], a
pop af
- ld [wd11e], a
+ ld [wNamedObjectIndex], a
pop bc
pop de
pop hl
@@ -131,11 +130,11 @@ GetMoveName::
push hl
ld a, MOVE_NAME
ld [wNameListType], a
- ld a, [wd11e]
- ld [wd0b5], a
+ ld a, [wNamedObjectIndex]
+ ld [wNameListIndex], a
ld a, BANK(MoveNames)
ld [wPredefBank], a
call GetName
- ld de, wcd6d ; pointer to where move name is stored in RAM
+ ld de, wNameBuffer
pop hl
ret
diff --git a/home/names2.asm b/home/names2.asm
index b0be05df..d7a95e5c 100644
--- a/home/names2.asm
+++ b/home/names2.asm
@@ -10,13 +10,13 @@ NamePointers::
GetName::
; arguments:
-; [wd0b5] = which name
+; [wNameListIndex] = which name
; [wNameListType] = which list
; [wPredefBank] = bank of list
;
; returns pointer to name in de
- ld a, [wd0b5]
- ld [wd11e], a
+ ld a, [wNameListIndex]
+ ld [wNamedObjectIndex], a
; TM names are separate from item names.
; BUG: This applies to all names instead of just items.
@@ -66,7 +66,7 @@ GetName::
ld h, a
ldh a, [hSwapTemp + 1]
ld l, a
- ld a, [wd0b5]
+ ld a, [wNameListIndex]
ld b, a ; wanted entry
ld c, 0 ; entry counter
.nextName
@@ -82,14 +82,14 @@ GetName::
jr nz, .nextName
ld h, d
ld l, e
- ld de, wcd6d
+ ld de, wNameBuffer
ld bc, NAME_BUFFER_LENGTH
call CopyData
.gotPtr
ld a, e
- ld [wUnusedCF8D], a
+ ld [wUnusedNamePointer], a
ld a, d
- ld [wUnusedCF8D + 1], a
+ ld [wUnusedNamePointer + 1], a
pop de
pop bc
pop hl
diff --git a/home/npc_movement.asm b/home/npc_movement.asm
index cc40b1af..83c837a8 100644
--- a/home/npc_movement.asm
+++ b/home/npc_movement.asm
@@ -4,17 +4,17 @@ IsPlayerCharacterBeingControlledByGame::
ld a, [wNPCMovementScriptPointerTableNum]
and a
ret nz
- ld a, [wd736]
- bit 1, a ; currently stepping down from door bit
+ ld a, [wMovementFlags]
+ bit BIT_EXITING_DOOR, a
ret nz
- ld a, [wd730]
- and $80
+ ld a, [wStatusFlags5]
+ and 1 << BIT_SCRIPTED_MOVEMENT_STATE
ret
RunNPCMovementScript::
- ld hl, wd736
- bit 0, [hl]
- res 0, [hl]
+ ld hl, wMovementFlags
+ bit BIT_STANDING_ON_DOOR, [hl]
+ res BIT_STANDING_ON_DOOR, [hl]
jr nz, .playerStepOutFromDoor
ld a, [wNPCMovementScriptPointerTableNum]
and a
diff --git a/home/overworld.asm b/home/overworld.asm
index 819f1b72..f9aaa089 100644
--- a/home/overworld.asm
+++ b/home/overworld.asm
@@ -4,39 +4,39 @@ EnterMap::
ld [wJoyIgnore], a
call LoadMapData
farcall ClearVariablesOnEnterMap
- ld hl, wd72c
- bit 0, [hl] ; has the player already made 3 steps since the last battle?
+ ld hl, wStatusFlags2
+ bit BIT_WILD_ENCOUNTER_COOLDOWN, [hl]
jr z, .skipGivingThreeStepsOfNoRandomBattles
ld a, 3 ; minimum number of steps between battles
ld [wNumberOfNoRandomBattleStepsLeft], a
.skipGivingThreeStepsOfNoRandomBattles
- ld hl, wd72e
- bit 5, [hl] ; did a battle happen immediately before this?
- res 5, [hl] ; unset the "battle just happened" flag
+ ld hl, wStatusFlags4
+ bit BIT_BATTLE_OVER_OR_BLACKOUT, [hl]
+ res BIT_BATTLE_OVER_OR_BLACKOUT, [hl]
call z, ResetUsingStrengthOutOfBattleBit
call nz, MapEntryAfterBattle
- ld hl, wd732
+ ld hl, wStatusFlags6
ld a, [hl]
- and 1 << 4 | 1 << 3 ; fly warp or dungeon warp
+ and (1 << BIT_FLY_WARP) | (1 << BIT_DUNGEON_WARP)
jr z, .didNotEnterUsingFlyWarpOrDungeonWarp
farcall EnterMapAnim
call UpdateSprites
- ld hl, wd732
- res 3, [hl]
- ld hl, wd72e
- res 4, [hl]
+ ld hl, wStatusFlags6
+ res BIT_FLY_WARP, [hl]
+ ld hl, wStatusFlags4
+ res BIT_NO_BATTLES, [hl]
.didNotEnterUsingFlyWarpOrDungeonWarp
call IsSurfingPikachuInParty
farcall CheckForceBikeOrSurf ; handle currents in SF islands and forced bike riding in cycling road
- ld hl, wd732
- bit 4, [hl]
- res 4, [hl]
- ld hl, wd72d
- res 5, [hl]
+ ld hl, wStatusFlags6
+ bit BIT_DUNGEON_WARP, [hl]
+ res BIT_DUNGEON_WARP, [hl]
+ ld hl, wStatusFlags3
+ res BIT_NO_NPC_FACE_PLAYER, [hl]
call UpdateSprites
ld hl, wCurrentMapScriptFlags
- set 5, [hl]
- set 6, [hl]
+ set BIT_CUR_MAP_LOADED_1, [hl]
+ set BIT_CUR_MAP_LOADED_2, [hl]
xor a
ld [wJoyIgnore], a
@@ -55,18 +55,18 @@ OverworldLoopLessDelay::
ld a, [wSafariZoneGameOver]
and a
jp nz, WarpFound2
- ld hl, wd72d
- bit 3, [hl]
- res 3, [hl]
+ ld hl, wStatusFlags3
+ bit BIT_WARP_FROM_CUR_SCRIPT, [hl]
+ res BIT_WARP_FROM_CUR_SCRIPT, [hl]
jp nz, WarpFound2
- ld a, [wd732]
- and 1 << 4 | 1 << 3 ; fly warp or dungeon warp
+ ld a, [wStatusFlags6]
+ and (1 << BIT_FLY_WARP) | (1 << BIT_DUNGEON_WARP)
jp nz, HandleFlyWarpOrDungeonWarp
ld a, [wCurOpponent]
and a
jp nz, .newBattle
- ld a, [wd730]
- bit 7, a ; are we simulating button presses?
+ ld a, [wStatusFlags5]
+ bit BIT_SCRIPTED_MOVEMENT_STATE, a
jr z, .notSimulating
ldh a, [hJoyHeld]
jr .checkIfStartIsPressed
@@ -77,14 +77,14 @@ OverworldLoopLessDelay::
jr z, .startButtonNotPressed
; if START is pressed
xor a ; TEXT_START_MENU
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
jp .displayDialogue
.startButtonNotPressed
bit BIT_A_BUTTON, a
jp z, .checkIfDownButtonIsPressed
; if A is pressed
- ld a, [wd730]
- bit 2, a
+ ld a, [wStatusFlags5]
+ bit BIT_UNKNOWN_5_2, a
jp nz, .noDirectionButtonsPressed
call IsPlayerCharacterBeingControlledByGame
jr nz, .checkForOpponent
@@ -96,16 +96,16 @@ OverworldLoopLessDelay::
ld [wd436], a ; new yellow address
call IsSpriteOrSignInFrontOfPlayer
call Func_0ffe
- ldh a, [hSpriteIndexOrTextID]
+ ldh a, [hTextID]
and a
jp z, OverworldLoop
.displayDialogue
predef GetTileAndCoordsInFrontOfPlayer
call UpdateSprites
- ld a, [wFlags_0xcd60]
- bit 2, a
+ ld a, [wMiscFlags]
+ bit BIT_TURNING, a
jr nz, .checkForOpponent
- bit 0, a
+ bit BIT_SEEN_BY_TRAINER, a
jr nz, .checkForOpponent
lda_coord 8, 9
ld [wTilePlayerStandingOn], a ; checked when using Surf for forbidden tile pairs
@@ -124,8 +124,8 @@ OverworldLoopLessDelay::
.noDirectionButtonsPressed
call UpdateSprites
- ld hl, wFlags_0xcd60
- res 2, [hl]
+ ld hl, wMiscFlags
+ res BIT_TURNING, [hl]
xor a
ld [wd435], a
ld a, 1
@@ -174,8 +174,8 @@ OverworldLoopLessDelay::
.handleDirectionButtonPress
ld [wPlayerDirection], a ; new direction
- ld a, [wd730]
- bit 7, a ; are we simulating button presses?
+ ld a, [wStatusFlags5]
+ bit BIT_SCRIPTED_MOVEMENT_STATE, a
jr nz, .noDirectionChange ; ignore direction changes if we are
ld a, [wCheckFor180DegreeTurn]
and a
@@ -188,8 +188,8 @@ OverworldLoopLessDelay::
ld a, $8
ld [wd435], a
; unlike in red/blue, yellow does not have the 180 degrees odd code
- ld hl, wFlags_0xcd60
- set 2, [hl]
+ ld hl, wMiscFlags
+ set BIT_TURNING, [hl]
xor a
ld [wCheckFor180DegreeTurn], a
ld a, [wPlayerDirection]
@@ -210,8 +210,8 @@ OverworldLoopLessDelay::
jr nc, .noCollision
; collision occurred
push hl
- ld hl, wd736
- bit 2, [hl] ; standing on warp flag
+ ld hl, wMovementFlags
+ bit BIT_STANDING_ON_WARP, [hl]
pop hl
jp z, OverworldLoop
; collision occurred while standing on a warp
@@ -236,8 +236,8 @@ OverworldLoopLessDelay::
call UpdateSprites
.moveAhead2
- ld hl, wFlags_0xcd60
- res 2, [hl]
+ ld hl, wMiscFlags
+ res BIT_TURNING, [hl]
xor a
ld [wd435], a
call DoBikeSpeedup
@@ -247,7 +247,7 @@ OverworldLoopLessDelay::
jp nz, CheckMapConnections ; it seems like this check will never succeed (the other place where CheckMapConnections is run works)
; walking animation finished
call StepCountCheck
- CheckEvent EVENT_IN_SAFARI_ZONE ; in the safari zone?
+ CheckEvent EVENT_IN_SAFARI_ZONE
jr z, .notSafariZone
farcall SafariZoneCheckSteps
ld a, [wSafariZoneGameOver]
@@ -263,17 +263,17 @@ OverworldLoopLessDelay::
jp nz, HandleBlackOut ; if all pokemon fainted
.newBattle
call NewBattle
- ld hl, wd736
- res 2, [hl] ; standing on warp flag
+ ld hl, wMovementFlags
+ res BIT_STANDING_ON_WARP, [hl]
jp nc, CheckWarpsNoCollision ; check for warps if there was no battle
.battleOccurred
- ld hl, wd72d
- res 6, [hl]
- ld hl, wFlags_D733
- res 3, [hl]
+ ld hl, wStatusFlags3
+ res BIT_TALKED_TO_TRAINER, [hl]
+ ld hl, wStatusFlags7
+ res BIT_TRAINER_BATTLE, [hl]
ld hl, wCurrentMapScriptFlags
- set 5, [hl]
- set 6, [hl]
+ set BIT_CUR_MAP_LOADED_1, [hl]
+ set BIT_CUR_MAP_LOADED_2, [hl]
xor a
ldh [hJoyHeld], a
ld a, [wCurMap]
@@ -281,8 +281,8 @@ OverworldLoopLessDelay::
jr nz, .notCinnabarGym
SetEvent EVENT_2A7
.notCinnabarGym
- ld hl, wd72e
- set 5, [hl]
+ ld hl, wStatusFlags4
+ set BIT_BATTLE_OVER_OR_BLACKOUT, [hl]
ld a, [wCurMap]
cp OAKS_LAB
jp z, .noFaintCheck ; no blacking out if the player lost to the rival in Oak's lab
@@ -296,20 +296,20 @@ OverworldLoopLessDelay::
jp EnterMap
StepCountCheck::
- ld a, [wd730]
- bit 7, a
+ ld a, [wStatusFlags5]
+ bit BIT_SCRIPTED_MOVEMENT_STATE, a
jr nz, .doneStepCounting ; if button presses are being simulated, don't count steps
; step counting
ld hl, wStepCounter
dec [hl]
- ld a, [wd72c]
- bit 0, a
+ ld a, [wStatusFlags2]
+ bit BIT_WILD_ENCOUNTER_COOLDOWN, a
jr z, .doneStepCounting
ld hl, wNumberOfNoRandomBattleStepsLeft
dec [hl]
jr nz, .doneStepCounting
- ld hl, wd72c
- res 0, [hl] ; indicate that the player has stepped thrice since the last battle
+ ld hl, wStatusFlags2
+ res BIT_WILD_ENCOUNTER_COOLDOWN, [hl] ; indicate that the player has stepped thrice since the last battle
.doneStepCounting
ret
@@ -322,13 +322,13 @@ AllPokemonFainted::
; function to determine if there will be a battle and execute it (either a trainer battle or wild battle)
; sets carry if a battle occurred and unsets carry if not
NewBattle::
- ld a, [wd72d]
- bit 4, a
+ ld a, [wStatusFlags3]
+ bit BIT_ON_DUNGEON_WARP, a
jr nz, .noBattle
call IsPlayerCharacterBeingControlledByGame
jr nz, .noBattle ; no battle if the player character is under the game's control
- ld a, [wd72e]
- bit 4, a
+ ld a, [wStatusFlags4]
+ bit BIT_NO_BATTLES, a
jr nz, .noBattle
farjp InitBattle
.noBattle
@@ -340,8 +340,8 @@ DoBikeSpeedup::
ld a, [wWalkBikeSurfState]
dec a ; riding a bike?
ret nz
- ld a, [wd736]
- bit 6, a
+ ld a, [wMovementFlags]
+ bit BIT_LEDGE_OR_FISHING, a
ret nz
ld a, [wNPCMovementScriptPointerTableNum]
and a
@@ -379,8 +379,8 @@ CheckWarpsNoCollisionLoop::
; if a match was found
push hl
push bc
- ld hl, wd736
- set 2, [hl] ; standing on warp flag
+ ld hl, wMovementFlags
+ set BIT_STANDING_ON_WARP, [hl]
farcall IsPlayerStandingOnDoorTileOrWarpTile
pop bc
pop hl
@@ -392,8 +392,8 @@ CheckWarpsNoCollisionLoop::
pop hl
jr nc, CheckWarpsNoCollisionRetry2
; if the extra check passed
- ld a, [wFlags_D733]
- bit 2, a
+ ld a, [wStatusFlags7]
+ bit BIT_FORCED_WARP, a
jr nz, WarpFound1
push de
push bc
@@ -464,7 +464,7 @@ WarpFound2::
ld a, [wCurMap]
ld [wLastMap], a
ld a, [wCurMapWidth]
- ld [wUnusedD366], a ; not read
+ ld [wUnusedLastMapWidth], a
ldh a, [hWarpDestinationMap]
ld [wCurMap], a
cp ROCK_TUNNEL_1F
@@ -491,15 +491,15 @@ WarpFound2::
jr nz, .notWarpPad
; if the player is on a warp pad
call LeaveMapAnim
- ld hl, wd732
- set 3, [hl]
+ ld hl, wStatusFlags6
+ set BIT_FLY_WARP, [hl]
jr .skipMapChangeSound
.notWarpPad
call PlayMapChangeSound
.skipMapChangeSound
- ld hl, wd736
- res 0, [hl]
- res 1, [hl]
+ ld hl, wMovementFlags
+ res BIT_STANDING_ON_DOOR, [hl]
+ res BIT_EXITING_DOOR, [hl]
callfar SetPikachuSpawnWarpPad
jr .done
@@ -511,8 +511,8 @@ WarpFound2::
xor a
ld [wMapPalOffset], a
.done
- ld hl, wd736
- set 0, [hl] ; have the player's sprite step out from the door (if there is one)
+ ld hl, wMovementFlags
+ set BIT_STANDING_ON_DOOR, [hl] ; have the player's sprite step out from the door (if there is one)
call IgnoreInputForHalfSecond
jp EnterMap
@@ -737,12 +737,11 @@ MapEntryAfterBattle::
HandleBlackOut::
; For when all the player's pokemon faint.
; Does not print the "blacked out" message.
-
call GBFadeOutToBlack
ld a, $08
call StopMusic
- ld hl, wd72e
- res 5, [hl]
+ ld hl, wStatusFlags4
+ res BIT_BATTLE_OVER_OR_BLACKOUT, [hl]
ld a, BANK(PrepareForSpecialWarp) ; also BANK(SpecialEnterMap)
call BankswitchCommon
callfar ResetStatusAndHalveMoneyOnBlackout
@@ -766,9 +765,9 @@ HandleFlyWarpOrDungeonWarp::
ld [wBattleResult], a
ld [wIsInBattle], a
ld [wMapPalOffset], a
- ld hl, wd732
- set 2, [hl] ; fly warp or dungeon warp
- res 5, [hl] ; forced to ride bike
+ ld hl, wStatusFlags6
+ set BIT_FLY_OR_DUNGEON_WARP, [hl]
+ res BIT_ALWAYS_ON_BIKE, [hl]
call LeaveMapAnim
call Func_07c4
ld a, BANK(PrepareForSpecialWarp)
@@ -785,8 +784,8 @@ Func_07c4::
ret z
xor a
ld [wWalkBikeSurfState], a
- ld hl, wd732
- bit 4, [hl]
+ ld hl, wStatusFlags6
+ bit BIT_DUNGEON_WARP, [hl]
ret z
call PlayDefaultMusic
ret
@@ -869,10 +868,10 @@ LoadTilesetTilePatternData::
ld a, [wTilesetBank]
jp FarCopyData
-; this loads the current maps complete tile map (which references blocks, not individual tiles) to C6E8
+; this loads the current map's complete tile map (which references blocks, not individual tiles) to wOverworldMap
; it can also load partial tile maps of connected maps into a border of length 3 around the current map
LoadTileBlockMap::
-; fill C6E8-CBFB with the background tile
+; fill wOverworldMap-wOverworldMapEnd with the background tile
ld hl, wOverworldMap
ld bc, wOverworldMapEnd - wOverworldMap
ld a, [wMapBackgroundTile] ; background tile number
@@ -1055,10 +1054,11 @@ LoadEastWestConnectionsTileMap::
ret
; function to check if there is a sign or sprite in front of the player
-; if so, carry is set. otherwise, carry is cleared
+; if so, it is stored in [hTextID]
+; if not, [hTextID] is set to 0
IsSpriteOrSignInFrontOfPlayer::
xor a
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
ld a, [wNumSigns]
and a
jr z, .extendRangeOverCounter
@@ -1079,7 +1079,8 @@ IsSpriteOrSignInFrontOfPlayer::
dec b
jr nz, .counterTilesLoop
-; sets carry flag if a sprite is in front of the player, resets if not
+; part of the above function, but sometimes its called on its own, when signs are irrelevant
+; the caller must zero [hTextID]
IsSpriteInFrontOfPlayer::
ld d, $10 ; talking range in pixels (normal range)
IsSpriteInFrontOfPlayer2::
@@ -1161,10 +1162,10 @@ IsSpriteInFrontOfPlayer2::
and $f0
inc a
ld l, a ; hl = x#SPRITESTATEDATA1_MOVEMENTSTATUS
- set 7, [hl] ; set flag to make the sprite face the player
+ set BIT_FACE_PLAYER, [hl]
ld a, e
- ldh [hSpriteIndexOrTextID], a
- ldh a, [hSpriteIndexOrTextID] ; possible useless read because a already has the value of the read address
+ ldh [hSpriteIndex], a
+ ldh a, [hSpriteIndex] ; possible useless read because a already has the value of the read address
cp $f
jr nz, .dontwritetowd436
ld a, $FF
@@ -1200,7 +1201,7 @@ SignLoop::
dec c
add hl, bc
ld a, [hl]
- ldh [hSpriteIndexOrTextID], a ; store sign text ID
+ ldh [hTextID], a ; store sign text ID
pop bc
pop hl
scf
@@ -1215,8 +1216,8 @@ SignLoop::
; function to check if the player will jump down a ledge and check if the tile ahead is passable (when not surfing)
; sets the carry flag if there is a collision, and unsets it if there isn't a collision
CollisionCheckOnLand::
- ld a, [wd736]
- bit 6, a ; is the player jumping?
+ ld a, [wMovementFlags]
+ bit BIT_LEDGE_OR_FISHING, a
jr nz, .noCollision
; if not jumping a ledge
ld a, [wSimulatedJoypadStatesIndex]
@@ -1229,11 +1230,11 @@ CollisionCheckOnLand::
nop ; ??? why is this in the code
jr nz, .collision
xor a
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call IsSpriteInFrontOfPlayer ; check for sprite collisions again? when does the above check fail to detect a sprite collision?
jr nc, .asm_0a5c
res 7, [hl]
- ldh a, [hSpriteIndexOrTextID]
+ ldh a, [hTextID]
and a ; was there a sprite collision?
jr z, .asm_0a5c
; if no sprite collision
@@ -1292,8 +1293,8 @@ CheckForJumpingAndTilePairCollisions::
pop de
pop hl
and a
- ld a, [wd736]
- bit 6, a ; is the player jumping?
+ ld a, [wMovementFlags]
+ bit BIT_LEDGE_OR_FISHING, a
ret nz
; if not jumping
@@ -1305,7 +1306,7 @@ CheckForTilePairCollisions::
ld a, [wTileInFrontOfPlayer]
ld c, a
.tilePairCollisionLoop
- ld a, [wCurMapTileset] ; tileset number
+ ld a, [wCurMapTileset]
ld b, a
ld a, [hli]
cp $ff
@@ -1594,8 +1595,8 @@ JoypadOverworld::
ret
ForceBikeDown::
- ld a, [wFlags_D733]
- bit 3, a ; check if a trainer wants a challenge
+ ld a, [wStatusFlags7]
+ bit BIT_TRAINER_BATTLE, a
ret nz
ld a, [wCurMap]
cp ROUTE_17 ; Cycling Road
@@ -1608,8 +1609,8 @@ ForceBikeDown::
ret
AreInputsSimulated::
- ld a, [wd730]
- bit 7, a
+ ld a, [wStatusFlags5]
+ bit BIT_SCRIPTED_MOVEMENT_STATE, a
ret z
; if simulating button presses
ldh a, [hJoyHeld]
@@ -1629,17 +1630,17 @@ AreInputsSimulated::
; if done simulating button presses
.doneSimulating
xor a
- ld [wUnusedCD3A], a
+ ld [wUnusedOverrideSimulatedJoypadStatesIndex], a
ld [wSimulatedJoypadStatesIndex], a
ld [wSimulatedJoypadStatesEnd], a
ld [wJoyIgnore], a
ldh [hJoyHeld], a
- ld hl, wd736
+ ld hl, wMovementFlags
ld a, [hl]
- and $f8
+ and (1 << BIT_SPINNING) | (1 << BIT_LEDGE_OR_FISHING) | (1 << 5) | (1 << 4) | (1 << 3)
ld [hl], a
- ld hl, wd730
- res 7, [hl]
+ ld hl, wStatusFlags5
+ res BIT_SCRIPTED_MOVEMENT_STATE, [hl]
ret
GetSimulatedInput::
@@ -1667,8 +1668,8 @@ GetSimulatedInput::
; sets carry if there is a collision and clears carry otherwise
; This function had a bug in Red/Blue, but it was fixed in Yellow.
CollisionCheckOnWater::
- ld a, [wd730]
- bit 7, a
+ ld a, [wStatusFlags5]
+ bit BIT_SCRIPTED_MOVEMENT_STATE, a
jp nz, .noCollision ; return and clear carry if button presses are being simulated
ld a, [wPlayerDirection] ; the direction that the player is trying to go in
ld d, a
@@ -1695,7 +1696,7 @@ CollisionCheckOnWater::
scf
jr .done
.checkIfVermilionDockTileset
- ld a, [wCurMapTileset] ; tileset
+ ld a, [wCurMapTileset]
cp SHIP_PORT ; Vermilion Dock tileset
jr nz, .noCollision ; keep surfing if it's not the boarding platform tile
jr .stopSurfing ; if it is the boarding platform tile, stop surfing
@@ -1721,8 +1722,8 @@ RunMapScript::
push de
push bc
farcall TryPushingBoulder
- ld a, [wFlags_0xcd60]
- bit 1, a ; play boulder dust animation
+ ld a, [wMiscFlags]
+ bit BIT_BOULDER_DUST, a
jr z, .afterBoulderEffect
farcall DoBoulderDustAnimation
.afterBoulderEffect
@@ -1792,7 +1793,7 @@ LoadPlayerSpriteGraphicsCommon::
jr nc, .noCarry
inc d
.noCarry
- set 3, h
+ set 3, h ; add $800 ($80 tiles) to hl (1 << 3 == $8)
ld c, $c
jp CopyVideoData
@@ -1805,15 +1806,15 @@ Func_0db5:: ; XXX
farcall LoadMissableObjectData
asm_0dbd:
ld a, [wCurMapTileset]
- ld [wUnusedD119], a
+ ld [wUnusedCurMapTilesetCopy], a
ld a, [wCurMap]
call SwitchToMapRomBank
ld a, [wCurMapTileset]
ld b, a
- res 7, a
+ res BIT_NO_PREVIOUS_MAP, a
ld [wCurMapTileset], a
ldh [hPreviousTileset], a
- bit 7, b
+ bit BIT_NO_PREVIOUS_MAP, b
ret nz
call GetMapHeaderPointer
ld de, wCurMapHeader
@@ -1890,14 +1891,14 @@ asm_0dbd:
jr z, .loadSpriteData ; if not, skip this
call CopySignData
.loadSpriteData
- ld a, [wd72e]
- bit 5, a ; did a battle happen immediately before this?
+ ld a, [wStatusFlags4]
+ bit BIT_BATTLE_OVER_OR_BLACKOUT, a
jr nz, .finishUp ; if so, skip this because battles don't destroy this data
call InitSprites
.finishUp
predef LoadTilesetHeader
- ld a, [wd72e]
- bit 5, a ; did a battle happen immediately before this?
+ ld a, [wStatusFlags4]
+ bit BIT_BATTLE_OVER_OR_BLACKOUT, a ; did a battle happen immediately before this?
jr nz, .skip_pika_spawn
callfar SchedulePikachuSpawnForAfterText
.skip_pika_spawn
@@ -1976,11 +1977,11 @@ LoadMapData::
ld b, SET_PAL_OVERWORLD
call RunPaletteCommand
call LoadPlayerSpriteGraphics
- ld a, [wd732]
- and 1 << 4 | 1 << 3 ; fly warp or dungeon warp
+ ld a, [wStatusFlags6]
+ and 1 << BIT_DUNGEON_WARP | 1 << BIT_FLY_WARP
jr nz, .restoreRomBank
- ld a, [wFlags_D733]
- bit 1, a
+ ld a, [wStatusFlags7]
+ bit BIT_NO_MAP_MUSIC, a
jr nz, .restoreRomBank
call UpdateMusic6Times ; music related
call PlayDefaultMusicFadeOutCurrent ; music related
@@ -2032,7 +2033,7 @@ ResetMapVariables::
ldh [hSCY], a
ldh [hSCX], a
ld [wWalkCounter], a
- ld [wUnusedD119], a
+ ld [wUnusedCurMapTilesetCopy], a
ld [wSpriteSetID], a
ld [wWalkBikeSurfStateCopy], a
ret
@@ -2103,15 +2104,15 @@ GetMapHeaderPointer::
IgnoreInputForHalfSecond:
ld a, 30
ld [wIgnoreInputCounter], a
- ld hl, wd730
+ ld hl, wStatusFlags5
ld a, [hl]
- or %00100110
+ or (1 << BIT_DISABLE_JOYPAD) | (1 << BIT_UNKNOWN_5_2) | (1 << BIT_UNKNOWN_5_1)
ld [hl], a ; set ignore input bit
ret
ResetUsingStrengthOutOfBattleBit:
- ld hl, wd728
- res 0, [hl]
+ ld hl, wStatusFlags1
+ res BIT_STRENGTH_ACTIVE, [hl]
ret
ForceBikeOrSurf::
@@ -2123,15 +2124,15 @@ ForceBikeOrSurf::
; Handle the player jumping down
; a ledge in the overworld.
HandleMidJump::
- ld a, [wd736]
- bit 6, a ; jumping down a ledge?
+ ld a, [wMovementFlags]
+ bit BIT_LEDGE_OR_FISHING, a
ret z
farcall _HandleMidJump
ret
IsSpinning::
- ld a, [wd736]
- bit 7, a
+ ld a, [wMovementFlags]
+ bit BIT_SPINNING, a
ret z ; no spinning
farjp LoadSpinnerArrowTiles ; spin while moving
@@ -2234,9 +2235,9 @@ LoadSprite::
ld [hl], a ; store text ID in byte 1 of sprite entry
pop hl
ldh a, [hLoadSpriteTemp1]
- bit 6, a
+ bit BIT_TRAINER, a
jr nz, .trainerSprite
- bit 7, a
+ bit BIT_ITEM, a
jr nz, .itemBallSprite
; for regular sprites
push hl
diff --git a/home/pathfinding.asm b/home/pathfinding.asm
index 77cb5c4b..12128f68 100644
--- a/home/pathfinding.asm
+++ b/home/pathfinding.asm
@@ -32,15 +32,15 @@ MoveSprite_::
ld [wNPCNumScriptedSteps], a ; number of steps taken
pop bc
- ld hl, wd730
- set 0, [hl]
+ ld hl, wStatusFlags5
+ set BIT_SCRIPTED_NPC_MOVEMENT, [hl]
pop hl
xor a
ld [wOverrideSimulatedJoypadStatesMask], a
ld [wSimulatedJoypadStatesEnd], a
dec a
ld [wJoyIgnore], a
- ld [wUnusedCD3A], a
+ ld [wUnusedOverrideSimulatedJoypadStatesIndex], a
ret
; divides [hDividend2] by [hDivisor2] and stores the quotient in [hQuotient2]
diff --git a/home/pics.asm b/home/pics.asm
index d02cf1b5..966f5ad4 100644
--- a/home/pics.asm
+++ b/home/pics.asm
@@ -16,7 +16,7 @@ UncompressMonSprite::
; $4A ≤ index < $74: bank $B ("Pics 3")
; $74 ≤ index < $99: bank $C ("Pics 4")
; $99 ≤ index: bank $D ("Pics 5")
- ld a, [wcf91]
+ ld a, [wCurPartySpecies]
ld b, a
cp FOSSIL_KABUTOPS
ld a, BANK(FossilKabutopsPic)
diff --git a/home/play_time.asm b/home/play_time.asm
index 25fb7a9a..b7f4b4c5 100644
--- a/home/play_time.asm
+++ b/home/play_time.asm
@@ -3,8 +3,8 @@ TrackPlayTime::
ld hl, wd47a
bit 0, [hl]
jr nz, .maxIGT
- ld a, [wd732]
- bit 0, a
+ ld a, [wStatusFlags6]
+ bit BIT_GAME_TIMER_COUNTING, a
ret z
ld a, [wPlayTimeMaxed]
and a
@@ -58,12 +58,12 @@ CountDownIgnoreInputBitReset:
ld [wIgnoreInputCounter], a
and a
ret nz
- ld a, [wd730]
- res 1, a
- res 2, a
- bit 5, a
- res 5, a
- ld [wd730], a
+ ld a, [wStatusFlags5]
+ res BIT_UNKNOWN_5_1, a
+ res BIT_UNKNOWN_5_2, a
+ bit BIT_DISABLE_JOYPAD, a
+ res BIT_DISABLE_JOYPAD, a
+ ld [wStatusFlags5], a
ret z
xor a
ldh [hJoyPressed], a
diff --git a/home/pokemon.asm b/home/pokemon.asm
index 0e28df50..5d2c1a24 100644
--- a/home/pokemon.asm
+++ b/home/pokemon.asm
@@ -75,7 +75,7 @@ DrawHPBar::
; 02: current box
; 03: daycare
; OUTPUT:
-; [wcf91] = pokemon ID
+; [wCurPartySpecies] = pokemon ID
; wLoadedMon = base address of pokemon data
; wMonHeader = base address of base stats
LoadMonData::
@@ -97,12 +97,12 @@ LoadFlippedFrontSpriteByMonIndex::
LoadFrontSpriteByMonIndex::
push hl
- ld a, [wd11e]
+ ld a, [wPokedexNum]
push af
- ld a, [wcf91]
- ld [wd11e], a
+ ld a, [wCurPartySpecies]
+ ld [wPokedexNum], a
predef IndexToPokedex
- ld hl, wd11e
+ ld hl, wPokedexNum
ld a, [hl]
pop bc
ld [hl], b
@@ -113,7 +113,7 @@ LoadFrontSpriteByMonIndex::
jr c, .validDexNumber ; dex >#151 invalid
.invalidDexNumber
ld a, RHYDON ; $1
- ld [wcf91], a
+ ld [wCurPartySpecies], a
ret
.validDexNumber
push hl
@@ -204,8 +204,8 @@ PartyMenuInit::
ld a, 1 ; hardcoded bank
call BankswitchHome
call LoadHpBarAndStatusTilePatterns
- ld hl, wd730
- set 6, [hl] ; turn off letter printing delay
+ ld hl, wStatusFlags5
+ set BIT_NO_TEXT_DELAY, [hl]
xor a ; PLAYER_PARTY_DATA
ld [wMonDataLocation], a
ld [wMenuWatchMovingOutOfBounds], a
@@ -246,7 +246,7 @@ HandlePartyMenuInput::
ld [wPartyMenuAnimMonEnabled], a
call HandleMenuInput_
push af ; save hJoy5 OR wMenuWrapping enabled, if no inputs were selected within a certain period of time
- bit 1, a ; was B button pressed?
+ bit BIT_B_BUTTON, a ; was B button pressed?
ld a, $0
ld [wPartyMenuAnimMonEnabled], a
ld a, [wCurrentMenuItem]
@@ -262,14 +262,14 @@ HandlePartyMenuInput::
pop af
call PlaceUnfilledArrowMenuCursor
ld b, a
- ld hl, wd730
- res 6, [hl] ; turn on letter printing delay
+ ld hl, wStatusFlags5
+ res BIT_NO_TEXT_DELAY, [hl]
ld a, [wMenuItemToSwap]
and a
jp nz, .swappingPokemon
pop af
ldh [hTileAnimations], a
- bit 1, b
+ bit BIT_B_BUTTON, b
jr nz, .noPokemonChosen
ld a, [wPartyCount]
and a
@@ -281,7 +281,7 @@ HandlePartyMenuInput::
ld c, a
add hl, bc
ld a, [hl]
- ld [wcf91], a
+ ld [wCurPartySpecies], a
ld [wBattleMonSpecies2], a
call BankswitchBack
and a
@@ -383,8 +383,8 @@ PrintLevelFull::
ld a, [wLoadedMonLevel] ; level
PrintLevelCommon::
- ld [wd11e], a
- ld de, wd11e
+ ld [wTempByteValue], a
+ ld de, wTempByteValue
ld b, LEFT_ALIGN | 1 ; 1 byte
jp PrintNumber
@@ -399,7 +399,7 @@ GetwMoves::
; copies the base stat data of a pokemon to wMonHeader
; INPUT:
-; [wd0b5] = pokemon ID
+; [wCurSpecies] = pokemon ID
GetMonHeader::
ldh a, [hLoadedROMBank]
push af
@@ -408,10 +408,10 @@ GetMonHeader::
push bc
push de
push hl
- ld a, [wd11e]
+ ld a, [wPokedexNum]
push af
- ld a, [wd0b5]
- ld [wd11e], a
+ ld a, [wCurSpecies]
+ ld [wPokedexNum], a
ld de, FossilKabutopsPic
ld b, $66 ; size of Kabutops fossil and Ghost sprites
cp FOSSIL_KABUTOPS ; Kabutops fossil
@@ -423,8 +423,8 @@ GetMonHeader::
ld b, $77 ; size of Aerodactyl fossil sprite
cp FOSSIL_AERODACTYL ; Aerodactyl fossil
jr z, .specialID
- predef IndexToPokedex ; convert pokemon ID in [wd11e] to pokedex number
- ld a, [wd11e]
+ predef IndexToPokedex
+ ld a, [wPokedexNum]
dec a
ld bc, BASE_DATA_SIZE
ld hl, BaseStats
@@ -441,10 +441,10 @@ GetMonHeader::
inc hl
ld [hl], d
.done
- ld a, [wd0b5]
+ ld a, [wCurSpecies]
ld [wMonHIndex], a
pop af
- ld [wd11e], a
+ ld [wPokedexNum], a
pop hl
pop de
pop bc
@@ -452,7 +452,7 @@ GetMonHeader::
call BankswitchCommon
ret
-; copy party pokemon's name to wcd6d
+; copy party pokemon's name to wNameBuffer
GetPartyMonName2::
ld a, [wWhichPokemon] ; index within party
ld hl, wPartyMonNicks
@@ -462,7 +462,7 @@ GetPartyMonName::
push hl
push bc
call SkipFixedLengthTextEntries ; add NAME_LENGTH to hl, a times
- ld de, wcd6d
+ ld de, wNameBuffer
push de
ld bc, NAME_LENGTH
call CopyData
diff --git a/home/predef_text.asm b/home/predef_text.asm
index 1537ad5b..61e22fce 100644
--- a/home/predef_text.asm
+++ b/home/predef_text.asm
@@ -1,9 +1,9 @@
PrintPredefTextID::
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
ld hl, TextPredefs
call SetMapTextPointer
ld hl, wTextPredefFlag
- set 0, [hl]
+ set BIT_TEXT_PREDEF, [hl]
call DisplayTextID
RestoreMapTextPointer::
diff --git a/home/print_bcd.asm b/home/print_bcd.asm
index 38aedd3c..57ec12a8 100644
--- a/home/print_bcd.asm
+++ b/home/print_bcd.asm
@@ -13,12 +13,12 @@
; their meaning at the beginning of the functions's execution.
PrintBCDNumber::
ld b, c ; save flags in b
- res 7, c
- res 6, c
- res 5, c ; c now holds the length
- bit 5, b
+ res BIT_LEADING_ZEROES, c
+ res BIT_LEFT_ALIGN, c
+ res BIT_MONEY_SIGN, c ; c now holds the length
+ bit BIT_MONEY_SIGN, b
jr z, .loop
- bit 7, b
+ bit BIT_LEADING_ZEROES, b
jr nz, .loop
ld [hl], "¥"
inc hl
@@ -31,14 +31,14 @@ PrintBCDNumber::
inc de
dec c
jr nz, .loop
- bit 7, b ; were any non-zero digits printed?
+ bit BIT_LEADING_ZEROES, b
jr z, .done ; if so, we are done
.numberEqualsZero ; if every digit of the BCD number is zero
- bit 6, b ; left or right alignment?
+ bit BIT_LEFT_ALIGN, b
jr nz, .skipRightAlignmentAdjustment
dec hl ; if the string is right-aligned, it needs to be moved back one space
.skipRightAlignmentAdjustment
- bit 5, b
+ bit BIT_MONEY_SIGN, b
jr z, .skipCurrencySymbol
ld [hl], "¥"
inc hl
@@ -54,24 +54,24 @@ PrintBCDDigit::
and a
jr z, .zeroDigit
.nonzeroDigit
- bit 7, b ; have any non-space characters been printed?
+ bit BIT_LEADING_ZEROES, b
jr z, .outputDigit
; if bit 7 is set, then no numbers have been printed yet
- bit 5, b ; print the currency symbol?
+ bit BIT_MONEY_SIGN, b
jr z, .skipCurrencySymbol
ld [hl], "¥"
inc hl
- res 5, b
+ res BIT_MONEY_SIGN, b
.skipCurrencySymbol
- res 7, b ; unset 7 to indicate that a nonzero digit has been reached
+ res BIT_LEADING_ZEROES, b
.outputDigit
add "0"
ld [hli], a
jp PrintLetterDelay
.zeroDigit
- bit 7, b ; either printing leading zeroes or already reached a nonzero digit?
+ bit BIT_LEADING_ZEROES, b
jr z, .outputDigit ; if so, print a zero digit
- bit 6, b ; left or right alignment?
+ bit BIT_LEFT_ALIGN, b
ret nz
inc hl ; if right-aligned, "print" a space by advancing the pointer
ret
diff --git a/home/print_text.asm b/home/print_text.asm
index 962ae519..65d418a3 100644
--- a/home/print_text.asm
+++ b/home/print_text.asm
@@ -1,18 +1,18 @@
; This function is used to wait a short period after printing a letter to the
; screen unless the player presses the A/B button or the delay is turned off
-; through the [wd730] or [wLetterPrintingDelayFlags] flags.
+; through the [wStatusFlags5] or [wLetterPrintingDelayFlags] flags.
PrintLetterDelay::
- ld a, [wd730]
- bit 6, a
+ ld a, [wStatusFlags5]
+ bit BIT_NO_TEXT_DELAY, a
ret nz
ld a, [wLetterPrintingDelayFlags]
- bit 1, a
+ bit BIT_TEXT_DELAY, a
ret z
push hl
push de
push bc
ld a, [wLetterPrintingDelayFlags]
- bit 0, a
+ bit BIT_FAST_TEXT_DELAY, a
jr z, .waitOneFrame
ld a, [wOptions]
and $f
diff --git a/home/reload_sprites.asm b/home/reload_sprites.asm
index 63a71d26..6d199600 100644
--- a/home/reload_sprites.asm
+++ b/home/reload_sprites.asm
@@ -4,7 +4,7 @@ ReloadMapSpriteTilePatterns::
ld hl, wFontLoaded
ld a, [hl]
push af
- res 0, [hl]
+ res BIT_FONT_LOADED, [hl]
push hl
xor a
ld [wSpriteSetID], a
diff --git a/home/reload_tiles.asm b/home/reload_tiles.asm
index b596263a..d59f7c0a 100644
--- a/home/reload_tiles.asm
+++ b/home/reload_tiles.asm
@@ -28,6 +28,6 @@ ReloadTilesetTilePatterns::
; shows the town map and lets the player choose a destination to fly to
ChooseFlyDestination::
- ld hl, wd72e
- res 4, [hl]
+ ld hl, wStatusFlags4
+ res BIT_NO_BATTLES, [hl]
farjp LoadTownMap_Fly
diff --git a/home/serial.asm b/home/serial.asm
index aa67654f..7edba241 100644
--- a/home/serial.asm
+++ b/home/serial.asm
@@ -33,7 +33,7 @@ Serial::
ldh [rDIV], a
.waitLoop
ldh a, [rDIV]
- bit 7, a
+ bit 7, a ; wait until rDIV has incremented from $3 to $80 or more
jr nz, .waitLoop
ld a, START_TRANSFER_EXTERNAL_CLOCK
ldh [rSC], a
diff --git a/home/text.asm b/home/text.asm
index 25233e05..d6baf35c 100644
--- a/home/text.asm
+++ b/home/text.asm
@@ -63,7 +63,7 @@ PlaceNextChar::
jr nz, .NotNext
ld bc, 2 * SCREEN_WIDTH
ldh a, [hUILayoutFlags]
- bit 2, a
+ bit BIT_SINGLE_SPACED_LINES, a
jr z, .ok
ld bc, SCREEN_WIDTH
.ok
@@ -117,13 +117,13 @@ NullChar:: ; unused
pop hl
; A "<NULL>" character in a printed string
; displays an error message with the current value
- ; of hSpriteIndexOrTextID in decimal format.
+ ; of hTextID in decimal format.
; This is a debugging leftover.
ld de, TextIDErrorText
dec de
ret
-TextIDErrorText:: ; "[hSpriteIndexOrTextID] ERROR."
+TextIDErrorText:: ; "[hTextID] ERROR."
text_far _TextIDErrorText
text_end
@@ -322,7 +322,7 @@ ProtectedDelay3::
TextCommandProcessor::
ld a, [wLetterPrintingDelayFlags]
push af
- set 1, a
+ set BIT_TEXT_DELAY, a
ld e, a
ldh a, [hClearLetterPrintingDelayFlags]
xor e
diff --git a/home/text_script.asm b/home/text_script.asm
index a70e0f9c..af89a043 100644
--- a/home/text_script.asm
+++ b/home/text_script.asm
@@ -3,14 +3,15 @@ UnknownText_2812:: ; unreferenced
text_end
; this function is used to display sign messages, sprite dialog, etc.
-; INPUT: [hSpriteIndexOrTextID] = sprite ID or text ID
+; INPUT: [hSpriteIndex] = sprite ID or [hTextID] = text ID
DisplayTextID::
+ assert hSpriteIndex == hTextID ; these are at the same memory location
ldh a, [hLoadedROMBank]
push af
farcall DisplayTextIDInit ; initialization
ld hl, wTextPredefFlag
- bit 0, [hl]
- res 0, [hl]
+ bit BIT_TEXT_PREDEF, [hl]
+ res BIT_TEXT_PREDEF, [hl]
jr nz, .skipSwitchToMapBank
ld a, [wCurMap]
call SwitchToMapRomBank
@@ -22,7 +23,7 @@ DisplayTextID::
ld h, [hl]
ld l, a ; hl = map text pointer
ld d, $00
- ldh a, [hSpriteIndexOrTextID] ; text ID
+ ldh a, [hTextID]
ld [wSpriteIndex], a
dict TEXT_START_MENU, DisplayStartMenu
@@ -34,7 +35,7 @@ DisplayTextID::
ld a, [wNumSprites]
ld e, a
- ldh a, [hSpriteIndexOrTextID] ; sprite ID
+ ldh a, [hSpriteIndex] ; sprite ID
cp e
jr z, .spriteHandling
jr nc, .skipSpriteHandling
@@ -42,7 +43,7 @@ DisplayTextID::
; get the text ID of the sprite
push hl
ld hl, wMapSpriteData ; NPC text entries
- ldh a, [hSpriteIndexOrTextID]
+ ldh a, [hSpriteIndex]
dec a
add a
ld e, a
@@ -123,9 +124,9 @@ CloseTextDisplay::
jr nz, .restoreSpriteFacingDirectionLoop
call InitMapSprites ; reload sprite tile pattern data (since it was partially overwritten by text tile patterns)
ld hl, wFontLoaded
- res 0, [hl]
- ld a, [wd732]
- bit 3, a ; used fly warp
+ res BIT_FONT_LOADED, [hl]
+ ld a, [wStatusFlags6]
+ bit BIT_FLY_WARP, a
call z, LoadPlayerSpriteGraphics
call LoadCurrentMapView
pop af
@@ -191,9 +192,9 @@ PokemonFaintedText::
DisplayPlayerBlackedOutText::
ld hl, PlayerBlackedOutText
call PrintText
- ld a, [wd732]
- res 5, a ; reset forced to use bike bit
- ld [wd732], a
+ ld a, [wStatusFlags6]
+ res BIT_ALWAYS_ON_BIKE, a
+ ld [wStatusFlags6], a
CheckEvent EVENT_IN_SAFARI_ZONE
jr z, .didnotblackoutinsafari
xor a
diff --git a/home/trainers.asm b/home/trainers.asm
index 4166a4db..09a69ae1 100644
--- a/home/trainers.asm
+++ b/home/trainers.asm
@@ -7,7 +7,7 @@ StoreTrainerHeaderPointer::
ret
; executes the current map script from the function pointer array provided in de.
-; a: map script index to execute (unless overridden by [wd733] bit 4)
+; a: map script index to execute (unless overridden by [wStatusFlags7] BIT_USE_CUR_MAP_SCRIPT)
; hl: trainer header pointer
ExecuteCurMapScriptInTable::
push af
@@ -16,9 +16,9 @@ ExecuteCurMapScriptInTable::
pop hl
pop af
push hl
- ld hl, wFlags_D733
- bit 4, [hl]
- res 4, [hl]
+ ld hl, wStatusFlags7
+ bit BIT_USE_CUR_MAP_SCRIPT, [hl]
+ res BIT_USE_CUR_MAP_SCRIPT, [hl]
jr z, .useProvidedIndex ; test if map script index was overridden manually
ld a, [wCurMapScript]
.useProvidedIndex
@@ -114,10 +114,10 @@ TalkToTrainer::
call ReadTrainerHeaderInfo ; read end battle text
pop de
call SaveEndBattleTextPointers
- ld hl, wFlags_D733
- set 4, [hl] ; activate map script index override (index is set below)
- ld hl, wFlags_0xcd60
- bit 0, [hl] ; test if player is already engaging the trainer (because the trainer saw the player)
+ ld hl, wStatusFlags7
+ set BIT_USE_CUR_MAP_SCRIPT, [hl] ; activate map script index override (index is set below)
+ ld hl, wMiscFlags
+ bit BIT_SEEN_BY_TRAINER, [hl] ; test if player is already engaging the trainer (because the trainer saw the player)
ret nz
; if the player talked to the trainer of his own volition
call EngageMapTrainer
@@ -143,8 +143,8 @@ ENDC
ld [wTrainerHeaderFlagBit], a
ret
.trainerEngaging
- ld hl, wFlags_D733
- set 3, [hl]
+ ld hl, wStatusFlags7
+ set BIT_TRAINER_BATTLE, [hl]
ld [wEmotionBubbleSpriteIndex], a
xor a ; EXCLAMATION_BUBBLE
ld [wWhichEmotionBubble], a
@@ -160,12 +160,12 @@ ENDC
; display the before battle text after the enemy trainer has walked up to the player's sprite
DisplayEnemyTrainerTextAndStartBattle::
- ld a, [wd730]
- and $1
+ ld a, [wStatusFlags5]
+ and 1 << BIT_SCRIPTED_NPC_MOVEMENT
ret nz ; return if the enemy trainer hasn't finished walking to the player's sprite
ld [wJoyIgnore], a
ld a, [wSpriteIndex]
- ldh [hSpriteIndexOrTextID], a
+ ldh [hSpriteIndex], a
call DisplayTextID
; fall through
@@ -173,23 +173,23 @@ StartTrainerBattle::
xor a
ld [wJoyIgnore], a
call InitBattleEnemyParameters
- ld hl, wd72d
- set 6, [hl]
- set 7, [hl]
- ld hl, wd72e
- set 1, [hl]
+ ld hl, wStatusFlags3
+ set BIT_TALKED_TO_TRAINER, [hl]
+ set BIT_PRINT_END_BATTLE_TEXT, [hl]
+ ld hl, wStatusFlags4
+ set BIT_UNKNOWN_4_1, [hl]
ld hl, wCurMapScript
inc [hl] ; increment map script index (next script function is usually EndTrainerBattle)
ret
EndTrainerBattle::
ld hl, wCurrentMapScriptFlags
- set 5, [hl]
- set 6, [hl]
- ld hl, wd72d
- res 7, [hl]
- ld hl, wFlags_0xcd60
- res 0, [hl] ; player is no longer engaged by any trainer
+ set BIT_CUR_MAP_LOADED_1, [hl]
+ set BIT_CUR_MAP_LOADED_2, [hl]
+ ld hl, wStatusFlags3
+ res BIT_PRINT_END_BATTLE_TEXT, [hl]
+ ld hl, wMiscFlags
+ res BIT_SEEN_BY_TRAINER, [hl] ; player is no longer engaged by any trainer
ld a, [wIsInBattle]
cp $ff
jp z, ResetButtonPressedAndMapScript
@@ -211,9 +211,9 @@ EndTrainerBattle::
ld [wMissableObjectIndex], a ; load corresponding missable object index and remove it
predef HideObject
.skipRemoveSprite
- ld hl, wd730
- bit 4, [hl]
- res 4, [hl]
+ ld hl, wStatusFlags5
+ bit BIT_UNKNOWN_5_4, [hl]
+ res BIT_UNKNOWN_5_4, [hl]
ret nz
ResetButtonPressedAndMapScript::
@@ -240,7 +240,7 @@ InitBattleEnemyParameters::
ld [wTrainerNo], a
ret
.noTrainer
- ld [wCurEnemyLVL], a
+ ld [wCurEnemyLevel], a
ret
GetSpritePosition1::
@@ -340,9 +340,9 @@ EngageMapTrainer::
PrintEndBattleText::
push hl
- ld hl, wd72d
- bit 7, [hl]
- res 7, [hl]
+ ld hl, wStatusFlags3
+ bit BIT_PRINT_END_BATTLE_TEXT, [hl]
+ res BIT_PRINT_END_BATTLE_TEXT, [hl]
pop hl
ret z
ldh a, [hLoadedROMBank]
diff --git a/home/uncompress.asm b/home/uncompress.asm
index 87264888..19d87f94 100644
--- a/home/uncompress.asm
+++ b/home/uncompress.asm
@@ -1,3 +1,8 @@
+; wSpriteLoadFlags bits, streamed from compressed sprite data
+ const_def
+ const BIT_USE_SPRITE_BUFFER_2 ; 0
+ const BIT_LAST_SPRITE_CHUNK ; 1
+
; bankswitches and runs _UncompressSpriteData
; bank is given in a, sprite input stream is pointed to in wSpriteInputPtr
UncompressSpriteData::
@@ -44,24 +49,24 @@ _UncompressSpriteData::
add a
ld [wSpriteWidth], a
call ReadNextInputBit
- ld [wSpriteLoadFlags], a ; initialite bit1 to 0 and bit0 to the first input bit
+ ld [wSpriteLoadFlags], a ; initialize bit1 to 0 and bit0 to the first input bit
; this will load two chunks of data to sSpriteBuffer1 and sSpriteBuffer2
; bit 0 decides in which one the first chunk is placed
; fall through
-; uncompresses a chunk from the sprite input data stream (pointed to at wd0da) into sSpriteBuffer1 or sSpriteBuffer2
+; uncompresses a chunk from the sprite input data stream (pointed to by wSpriteInputPtr) into sSpriteBuffer1 or sSpriteBuffer2
; each chunk is a 1bpp sprite. A 2bpp sprite consist of two chunks which are merged afterwards
; note that this is an endless loop which is terminated during a call to MoveToNextBufferPosition by manipulating the stack
UncompressSpriteDataLoop::
ld hl, sSpriteBuffer1
ld a, [wSpriteLoadFlags]
- bit 0, a
+ bit BIT_USE_SPRITE_BUFFER_2, a
jr z, .useSpriteBuffer1 ; check which buffer to use
ld hl, sSpriteBuffer2
.useSpriteBuffer1
call StoreSpriteOutputPointer
ld a, [wSpriteLoadFlags]
- bit 1, a
+ bit BIT_LAST_SPRITE_CHUNK, a
jr z, .startDecompression ; check if last iteration
call ReadNextInputBit ; if last chunk, read 1-2 bit unpacking mode
and a
@@ -193,10 +198,10 @@ MoveToNextBufferPosition::
xor a
ld [wSpriteCurPosX], a
ld a, [wSpriteLoadFlags]
- bit 1, a
+ bit BIT_LAST_SPRITE_CHUNK, a
jr nz, .done ; test if there is one more sprite to go
- xor $1
- set 1, a
+ xor 1 << BIT_USE_SPRITE_BUFFER_2
+ set BIT_LAST_SPRITE_CHUNK, a
ld [wSpriteLoadFlags], a
jp UncompressSpriteDataLoop
.done
@@ -537,7 +542,7 @@ ReverseNybble::
; resets sprite buffer pointers to buffer 1 and 2, depending on wSpriteLoadFlags
ResetSpriteBufferPointers::
ld a, [wSpriteLoadFlags]
- bit 0, a
+ bit BIT_USE_SPRITE_BUFFER_2, a
jr nz, .buffer2Selected
ld de, sSpriteBuffer1
ld hl, sSpriteBuffer2
diff --git a/home/window.asm b/home/window.asm
index f8cc4589..713699e6 100644
--- a/home/window.asm
+++ b/home/window.asm
@@ -97,8 +97,8 @@ HandleMenuInput_::
jr z, .skipPlayingSound
.AButtonOrBButtonPressed
push hl
- ld hl, wFlags_0xcd60
- bit 5, [hl]
+ ld hl, wMiscFlags
+ bit BIT_NO_MENU_BUTTON_SOUND, [hl]
pop hl
jr nz, .skipPlayingSound
ld a, SFX_PRESS_AB
@@ -140,9 +140,9 @@ PlaceMenuCursor::
ld bc, 40
push af
ldh a, [hUILayoutFlags]
- bit 1, a ; is the menu double spaced?
+ bit BIT_DOUBLE_SPACED_MENU, a
jr z, .doubleSpaced1
- ld bc, 20
+ ld bc, SCREEN_WIDTH
.doubleSpaced1
pop af
.oldMenuItemLoop
@@ -164,9 +164,9 @@ PlaceMenuCursor::
ld bc, 40
push af
ldh a, [hUILayoutFlags]
- bit 1, a ; is the menu double spaced?
+ bit BIT_DOUBLE_SPACED_MENU, a
jr z, .doubleSpaced2
- ld bc, 20
+ ld bc, SCREEN_WIDTH
.doubleSpaced2
pop af
.currentMenuItemLoop
@@ -270,7 +270,7 @@ EnableAutoTextBoxDrawing::
jr AutoTextBoxDrawingCommon
DisableAutoTextBoxDrawing::
- ld a, TRUE
+ ld a, 1 << BIT_NO_AUTO_TEXT_BOX
AutoTextBoxDrawingCommon::
ld [wAutoTextBoxDrawingControl], a
diff --git a/includes.asm b/includes.asm
index f58c49eb..d1073d98 100644
--- a/includes.asm
+++ b/includes.asm
@@ -17,6 +17,7 @@ INCLUDE "macros/scripts/gfx_anims.asm"
INCLUDE "constants/charmap.asm"
INCLUDE "constants/hardware_constants.asm"
INCLUDE "constants/oam_constants.asm"
+INCLUDE "constants/ram_constants.asm"
INCLUDE "constants/misc_constants.asm"
INCLUDE "constants/gfx_constants.asm"
INCLUDE "constants/input_constants.asm"
diff --git a/ram/hram.asm b/ram/hram.asm
index cddda407..8f6e03f0 100644
--- a/ram/hram.asm
+++ b/ram/hram.asm
@@ -16,7 +16,7 @@ hPreviousTileset::
hRLEByteValue::
db
-hSpriteIndexOrTextID:: ; DisplayTextID's argument
+hTextID:: ; DisplayTextID's argument
hPartyMonIndex::
db
@@ -397,6 +397,7 @@ hClearLetterPrintingDelayFlags:: db
; bit 0: draw HP fraction to the right of bar instead of below (for party menu)
; bit 1: menu is double spaced
+; bit 2: text is single spaced
hUILayoutFlags:: db
hFieldMoveMonMenuTopMenuItemX:: db
diff --git a/ram/wram.asm b/ram/wram.asm
index d7acee2c..a28d3c39 100644
--- a/ram/wram.asm
+++ b/ram/wram.asm
@@ -1,6 +1,6 @@
SECTION "Audio RAM", WRAM0
-wUnusedC000:: db
+wUnusedMusicByte:: db
wSoundID:: db
@@ -542,8 +542,8 @@ NEXTU
wSimulatedJoypadStatesEnd::
NEXTU
-wBoostExpByExpAll::
-wUnusedCC5B:: db
+wUnusedFlag::
+wBoostExpByExpAll:: db
ds 59
@@ -736,20 +736,17 @@ ENDU
ds 1
wNPCMovementDirections2Index::
-wUnusedCD37::
+wUnusedLinkMenuByte::
; number of items in wFilteredBagItems list
wFilteredBagItemsCount:: db
; the next simulated joypad state is at wSimulatedJoypadStatesEnd plus this value minus 1
; 0 if the joypad state is not being simulated
wSimulatedJoypadStatesIndex:: db
-
; written to but nothing ever reads it
-wUnusedCD39:: db
-
+wUnusedSimulatedJoypadStatesMask:: db
; written to but nothing ever reads it
-wUnusedCD3A:: db
-
+wUnusedOverrideSimulatedJoypadStatesIndex:: db
; mask indicating which real button presses can override simulated ones
; XXX is it ever not 0?
wOverrideSimulatedJoypadStatesMask:: db
@@ -955,7 +952,7 @@ wBadgeOrFaceTiles:: ds NUM_BADGES + 1
wTempObtainedBadgesBooleans:: ds NUM_BADGES
NEXTU
-wUnusedCD3D:: db
+wUnusedCreditsByte:: db
; the number of credits mons that have been displayed so far
wNumCreditsMonsDisplayed:: db
@@ -1027,12 +1024,7 @@ wLeftGBMonSpecies:: db
; in the trade animation, the mon that leaves the right gameboy
wRightGBMonSpecies:: db
-; bit 0: is player engaged by trainer (to avoid being engaged by multiple trainers simultaneously)
-; bit 1: boulder dust animation (from using Strength) pending
-; bit 3: using generic PC
-; bit 5: don't play sound when A or B is pressed in menu
-; bit 6: tried pushing against boulder once (you need to push twice before it will move)
-wFlags_0xcd60:: db
+wMiscFlags:: db
ds 9
@@ -1058,16 +1050,29 @@ wDownscaledMonSize::
wNumMovesMinusOne:: db
UNION
-wcd6d:: ds NAME_BUFFER_LENGTH ; buffer for various data
+; storage buffer for various name strings
+wNameBuffer:: ds NAME_BUFFER_LENGTH
NEXTU
- ds 4
-; temp variable used to print a move's current PP on the status screen
+; data copied from Moves for one move
+wMoveData:: ds MOVE_LENGTH
+wPPUpCountAndMaxPP:: db
+
+NEXTU
+; amount of money made from one use of Pay Day
+wPayDayMoney:: ds 3
+
+NEXTU
+; evolution data for one mon
+wEvoDataBuffer:: ds 4 * 3 + 1 ; enough for Eevee's three 4-byte evolutions and 0 terminator
+
+NEXTU
+wBattleMenuCurrentPP:: db
+ ds 3
wStatusScreenCurrentPP:: db
ds 6
; list of normal max PP (without PP up) values
wNormalMaxPPList:: ds NUM_MOVES
- ds 5
ENDU
UNION
@@ -1146,7 +1151,7 @@ wBoughtOrSoldItemInMart:: db
; $02 - draw
wBattleResult:: db
-; bit 0: if set, DisplayTextID automatically draws a text box
+; bit 0: if set, prevents DisplayTextID from automatically drawing a text box
wAutoTextBoxDrawingControl:: db
; used in some overworld scripts to vary scripted movement
@@ -1241,11 +1246,14 @@ wItemList:: ds 16
wListPointer:: dw
; used to store pointers, but never read
-wUnusedCF8D:: dw
+wUnusedNamePointer:: dw
wItemPrices:: dw
-wcf91:: db ; used with a lot of things (too much to list here)
+wCurPartySpecies::
+wCurItem::
+wCurListMenuItem::
+ db
; which pokemon you selected
wWhichPokemon:: db
@@ -1422,38 +1430,15 @@ wMoveMissed:: db
; always 0
wPlayerStatsToDouble:: db
-
; always 0
wPlayerStatsToHalve:: db
-; bit 0 - bide
-; bit 1 - thrash / petal dance
-; bit 2 - attacking multiple times (e.g. double kick)
-; bit 3 - flinch
-; bit 4 - charging up for attack
-; bit 5 - using multi-turn move (e.g. wrap)
-; bit 6 - invulnerable to normal attack (using fly/dig)
-; bit 7 - confusion
wPlayerBattleStatus1:: db
-
-; bit 0 - X Accuracy effect
-; bit 1 - protected by "mist"
-; bit 2 - focus energy effect
-; bit 4 - has a substitute
-; bit 5 - need to recharge
-; bit 6 - rage
-; bit 7 - leech seeded
wPlayerBattleStatus2:: db
-
-; bit 0 - toxic
-; bit 1 - light screen
-; bit 2 - reflect
-; bit 3 - transformed
wPlayerBattleStatus3:: db
; always 0
wEnemyStatsToDouble:: db
-
; always 0
wEnemyStatsToHalve:: db
@@ -1573,7 +1558,7 @@ wOptionsInitialized::
wNewSlotMachineBallTile::
; how much to add to the X/Y coord
wCoordAdjustmentAmount::
-wUnusedD08A::
+wUnusedWaterDropletsByte::
db
wSlideMonDelay::
@@ -1618,7 +1603,7 @@ wPartyMenuAnimMonEnabled::
; non-zero when enabled. causes nest locations to blink on and off.
; the town selection cursor will blink regardless of what this value is
wTownMapSpriteBlinkingEnabled::
-wUnusedD09B:: db
+wUnusedMoveAnimByte:: db
; current destination address in OAM for frame blocks (big endian)
wFBDestAddr:: dw
@@ -1681,8 +1666,10 @@ wSpriteDecodeTable0Ptr:: dw
; pointer to differential decoding table (assuming initial value 1)
wSpriteDecodeTable1Ptr:: dw
-wd0b5:: db ; used as a temp storage area for Pokemon Species, and other Pokemon/Battle related things
-
+; input for GetMonHeader
+wCurSpecies::
+; input for GetName
+wNameListIndex:: db
wNameListType:: db
wPredefBank:: db
@@ -1729,7 +1716,7 @@ wMoveNum:: db
wMovesString:: ds 56
-wUnusedD119:: db
+wUnusedCurMapTilesetCopy:: db
; wWalkBikeSurfState is sometimes copied here, but it doesn't seem to be used for anything
wWalkBikeSurfStateCopy:: db
@@ -1747,19 +1734,22 @@ wCapturedMonSpecies:: db
; which will be the first mon sent out.
wFirstMonsNotOutYet:: db
-wPokeBallCaptureCalcTemp::
-; lower nybble: number of shakes
-; upper nybble: number of animations to play
-wPokeBallAnimData::
+wNamedObjectIndex::
+wTempByteValue::
+wNumSetBits::
+wTypeEffectiveness::
+wMoveType::
+wPokedexNum::
+wTempTMHM::
wUsingPPUp::
wMaxPP::
+wMoveGrammar::
; 0 for player, non-zero for enemy
wCalculateWhoseStats::
-wTypeEffectiveness::
-wMoveType::
-wNumSetBits::
-; used as a Pokemon and Item storage value. Also used as an output value for CountSetBits
-wd11e::
+wPokeBallCaptureCalcTemp::
+; lower nybble: number of shakes
+; upper nybble: number of animations to play
+wPokeBallAnimData::
db
; When this value is non-zero, the player isn't allowed to exit the party menu
@@ -1779,9 +1769,12 @@ wIsKeyItem:: db
wTextBoxID:: db
-wCurrentMapScriptFlags:: db ; not exactly sure what this is used for, but it seems to be used as a multipurpose temp flag value
+; bit 5: set when maps first load; can be reset to re-run a script
+; bit 6: set when maps first load; can be reset to re-run a script (used less often than bit 5)
+; bit 7: set when using an elevator map's menu; triggers the shaking animation
+wCurrentMapScriptFlags:: db
-wCurEnemyLVL:: db
+wCurEnemyLevel:: db
; pointer to list of items terminated by $FF
wItemListPointer:: dw
@@ -1827,7 +1820,7 @@ wSavedSpriteMapX:: db
wWhichPrize:: db
; counts downward each frame
-; when it hits 0, bit 5 (ignore input bit) of wd730 is reset
+; when it hits 0, BIT_DISABLE_JOYPAD of wStatusFlags5 is reset
wIgnoreInputCounter:: db
; counts down once every step
@@ -1864,7 +1857,7 @@ wSerialPlayerDataBlock:: ; ds $1a8
; that case, this would be ESCAPE_ROPE.
wPseudoItemID:: db
-wUnusedD153:: db
+wUnusedAlreadyOwnedFlag:: db
ds 2
@@ -1922,31 +1915,12 @@ wPlayerMoney:: ds 3 ; BCD
wRivalName:: ds NAME_LENGTH
-; bit 7 = battle animation
-; 0: On
-; 1: Off
-; bit 6 = battle style
-; 0: Shift
-; 1: Set
-; bits 5-4 = sound
-; 00: Mono
-; 01: Earphone1
-; 10: Earphone2
-; 11: Earphone3
-; bits 2-0 = text speed (number of frames to delay after printing a letter)
-; 1: Fast
-; 3: Medium
-; 5: Slow
wOptions:: db
wObtainedBadges:: flag_array NUM_BADGES
ds 1
-; bit 0: If 0, limit the delay to 1 frame. Note that this has no effect if
-; the delay has been disabled entirely through bit 1 of this variable
-; or bit 6 of wd730.
-; bit 1: If 0, no delay.
wLetterPrintingDelayFlags:: db
wPlayerID:: dw
@@ -1972,8 +1946,7 @@ wYBlockCoord:: db
wXBlockCoord:: db
wLastMap:: db
-
-wUnusedD366:: db
+wUnusedLastMapWidth:: db
wCurMapHeader::
wCurMapTileset:: db
@@ -2160,7 +2133,7 @@ wCurrentBoxNum:: db
; number of HOF teams
wNumHoFTeams:: db
-wUnusedD5A3:: db
+wUnusedMapVariable:: db
wPlayerCoins:: dw ; BCD
@@ -2347,7 +2320,8 @@ wLastBlackoutMap:: db
; destination map (for certain types of special warps, not ordinary walking)
wDestinationMap:: db
-wUnusedD71B:: db
+; initialized to $ff, but nothing ever reads it
+wUnusedPlayerDataByte:: db
; used to store the tile in front of the boulder when trying to push a boulder
; also used to store the result of the collision check ($ff for a collision and $00 for no collision)
@@ -2359,92 +2333,26 @@ wDungeonWarpDestinationMap:: db
; which dungeon warp within the source map was used
wWhichDungeonWarp:: db
-wUnusedD71F:: db
+wUnusedCardKeyGateID:: db
ds 8
-; bit 0: using Strength outside of battle
-; bit 1: set by IsSurfingAllowed when surfing's allowed, but the caller resets it after checking the result
-; bit 3: received Old Rod
-; bit 4: received Good Rod
-; bit 5: received Super Rod
-; bit 6: gave one of the Saffron guards a drink
-; bit 7: set by ItemUseCardKey, which is leftover code from a previous implementation of the Card Key
-wd728:: db
-
+wStatusFlags1:: db
ds 1
-
-; redundant because it matches wObtainedBadges
-; used to determine whether to show name on statue and in two NPC text scripts
-wBeatGymFlags:: db
-
+wBeatGymFlags:: db ; redundant because it matches wObtainedBadges
ds 1
-
-; bit 0: if not set, the 3 minimum steps between random battles have passed
-; bit 1: prevent audio fade out
-wd72c:: db
-
-; This variable is used for temporary flags and as the destination map when
-; warping to the Trade Center or Colosseum.
-; bit 0: sprite facing directions have been initialised in the Trade Center
-; bit 3: do scripted warp (used to warp back to Lavender Town from the top of the pokemon tower)
-; bit 4: on a dungeon warp
-; bit 5: don't make NPCs face the player when spoken to
-; Bits 6 and 7 are set by scripts when starting major battles in the storyline,
-; but they do not appear to affect anything. Bit 6 is reset after all battles
-; and bit 7 is reset after trainer battles (but it's only set before trainer
-; battles anyway).
-wd72d:: db
-
-; bit 0: the player has received Lapras in the Silph Co. building
-; bit 1: set in various places, but doesn't appear to have an effect
-; bit 2: the player has healed pokemon at a pokemon center at least once
-; bit 3: the player has a received a pokemon from Prof. Oak
-; bit 4: disable battles
-; bit 5: set when a battle ends and when the player blacks out in the overworld due to poison
-; bit 6: using the link feature
-; bit 7: set if scripted NPC movement has been initialised
-wd72e:: db
-
+wStatusFlags2:: db
+wCableClubDestinationMap::
+wStatusFlags3:: db
+wStatusFlags4:: db
ds 1
-
-; bit 0: NPC sprite being moved by script
-; bit 5: ignore joypad input
-; bit 6: print text with no delay between each letter
-; bit 7: set if joypad states are being simulated in the overworld or an NPC's movement is being scripted
-wd730:: db
-
+wStatusFlags5:: db
ds 1
-
-; bit 0: play time being counted
-; bit 1: debug mode (unused and incomplete in non-debug builds)
-; bit 2: the target warp is a fly warp (bit 3 set or blacked out) or a dungeon warp (bit 4 set)
-; bit 3: used warp pad, escape rope, dig, teleport, or fly, so the target warp is a "fly warp"
-; bit 4: jumped into hole (Pokemon Mansion, Seafoam Islands, Victory Road) or went down waterfall (Seafoam Islands), so the target warp is a "dungeon warp"
-; bit 5: currently being forced to ride bike (cycling road)
-; bit 6: map destination is [wLastBlackoutMap] (usually the last used pokemon center, but could be the player's house)
-wd732:: db
-
-; bit 0: running a test battle (unused in non-debug builds)
-; bit 1: prevent music from changing when entering new map
-; bit 2: skip the joypad check in CheckWarpsNoCollision (used for the forced warp down the waterfall in the Seafoam Islands)
-; bit 3: trainer wants to battle
-; bit 4: use variable [wCurMapScript] instead of the provided index for next frame's map script (used to start battle when talking to trainers)
-; bit 7: used fly out of battle
-wFlags_D733:: db
-
-; bit 1: set when you beat Lorelei and reset in Indigo Plateau lobby
-; the game uses this to tell when Elite 4 events need to be reset
-wBeatLorelei:: db
-
+wStatusFlags6:: db
+wStatusFlags7:: db
+wElite4Flags:: db
ds 1
-
-; bit 0: check if the player is standing on a door and make him walk down a step if so
-; bit 1: the player is currently stepping down from a door
-; bit 2: standing on a warp
-; bit 6: jumping down a ledge / fishing animation
-; bit 7: player sprite spinning due to spin tiles (Rocket hideout / Viridian Gym)
-wd736:: db
+wMovementFlags:: db
wCompletedInGameTradeFlags:: dw
@@ -2517,8 +2425,7 @@ wTrainerHeaderPtr:: dw
; the trainer the player must face after getting a wrong answer in the Cinnabar
; gym quiz
-wOpponentAfterWrongAnswer::
-wUnusedDA38:: db
+wOpponentAfterWrongAnswer:: db
; index of current map script, mostly used as index for function pointer array
; mostly copied from map-specific map script pointer and written back later
diff --git a/scripts/AgathasRoom.asm b/scripts/AgathasRoom.asm
index cf5254ac..2d0dca08 100644
--- a/scripts/AgathasRoom.asm
+++ b/scripts/AgathasRoom.asm
@@ -11,8 +11,8 @@ AgathasRoom_Script:
AgathaShowOrHideExitBlock:
; Blocks or clears the exit to the next room.
ld hl, wCurrentMapScriptFlags
- bit 5, [hl]
- res 5, [hl]
+ bit BIT_CUR_MAP_LOADED_1, [hl]
+ res BIT_CUR_MAP_LOADED_1, [hl]
ret z
CheckEvent EVENT_BEAT_AGATHAS_ROOM_TRAINER_0
jr z, .blockExitToNextRoom
@@ -75,7 +75,7 @@ AgathasRoomDefaultScript:
jr z, AgathaScriptWalkIntoRoom
.stopPlayerFromLeaving
ld a, TEXT_AGATHASROOM_AGATHA_DONT_RUN_AWAY
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
ld a, D_UP
ld [wSimulatedJoypadStatesEnd], a
@@ -111,7 +111,7 @@ AgathasRoomAgathaEndBattleScript:
cp $ff
jp z, ResetAgathaScript
ld a, TEXT_AGATHASROOM_AGATHA
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
ld a, SCRIPT_CHAMPIONSROOM_PLAYER_ENTERS
ld [wChampionsRoomCurScript], a
diff --git a/scripts/BikeShop.asm b/scripts/BikeShop.asm
index fa38701b..019fe97d 100644
--- a/scripts/BikeShop.asm
+++ b/scripts/BikeShop.asm
@@ -49,8 +49,8 @@ BikeShopClerkText:
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, 0
lb bc, 4, 15
call TextBoxBorder
@@ -64,8 +64,8 @@ BikeShopClerkText:
ld hl, BikeShopClerkDoYouLikeItText
call PrintText
; This fixes the bike shop instatext glitch
- ld hl, wd730
- res 6, [hl]
+ ld hl, wStatusFlags5
+ res BIT_NO_TEXT_DELAY, [hl]
call HandleMenuInput
bit BIT_B_BUTTON, a
jr nz, .cancel
diff --git a/scripts/BillsHouse.asm b/scripts/BillsHouse.asm
index c44e4e3f..ee9a2299 100644
--- a/scripts/BillsHouse.asm
+++ b/scripts/BillsHouse.asm
@@ -91,8 +91,8 @@ MovementData_1e7a0:
db -1 ; end
BillsHouseScript3:
- ld a, [wd730]
- bit 0, a
+ ld a, [wStatusFlags5]
+ bit BIT_SCRIPTED_NPC_MOVEMENT, a
ret nz
ld a, HS_BILL_POKEMON
ld [wMissableObjectIndex], a
@@ -199,8 +199,8 @@ PikachuMovementData_1e1a9:
db $3f
BillsHouseScript6:
- ld a, [wd730]
- bit 0, a
+ ld a, [wStatusFlags5]
+ bit BIT_SCRIPTED_NPC_MOVEMENT, a
ret nz
SetEvent EVENT_MET_BILL_2 ; this event seems redundant
SetEvent EVENT_MET_BILL
@@ -245,7 +245,7 @@ BillsHouseScript8:
xor a
ld [wJoyIgnore], a
ld a, TEXT_BILLSHOUSE_BILL_SS_TICKET
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
ld a, SCRIPT_BILLSHOUSE_SCRIPT9
ld [wBillsHouseCurScript], a
diff --git a/scripts/BrunosRoom.asm b/scripts/BrunosRoom.asm
index 2a4ed6e6..6d7fde6e 100644
--- a/scripts/BrunosRoom.asm
+++ b/scripts/BrunosRoom.asm
@@ -11,8 +11,8 @@ BrunosRoom_Script:
BrunoShowOrHideExitBlock:
; Blocks or clears the exit to the next room.
ld hl, wCurrentMapScriptFlags
- bit 5, [hl]
- res 5, [hl]
+ bit BIT_CUR_MAP_LOADED_1, [hl]
+ res BIT_CUR_MAP_LOADED_1, [hl]
ret z
CheckEvent EVENT_BEAT_BRUNOS_ROOM_TRAINER_0
jr z, .blockExitToNextRoom
@@ -75,7 +75,7 @@ BrunosRoomDefaultScript:
jr z, BrunoScriptWalkIntoRoom
.stopPlayerFromLeaving
ld a, TEXT_BRUNOSROOM_BRUNO_DONT_RUN_AWAY
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID ; "Don't run away!"
ld a, D_UP
ld [wSimulatedJoypadStatesEnd], a
@@ -111,7 +111,7 @@ BrunosRoomBrunoEndBattleScript:
cp $ff
jp z, ResetBrunoScript
ld a, TEXT_BRUNOSROOM_BRUNO
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
jp DisplayTextID
BrunosRoom_TextPointers:
diff --git a/scripts/CeladonGym.asm b/scripts/CeladonGym.asm
index 0195d0b9..f95d129a 100644
--- a/scripts/CeladonGym.asm
+++ b/scripts/CeladonGym.asm
@@ -1,7 +1,7 @@
CeladonGym_Script:
ld hl, wCurrentMapScriptFlags
- bit 6, [hl]
- res 6, [hl]
+ bit BIT_CUR_MAP_LOADED_2, [hl]
+ res BIT_CUR_MAP_LOADED_2, [hl]
call nz, .LoadNames
call EnableAutoTextBoxDrawing
ld hl, CeladonGymTrainerHeaders
@@ -45,20 +45,20 @@ CeladonGymErikaPostBattleScript:
CeladonGymReceiveTM21:
ld a, TEXT_CELADONGYM_RAINBOWBADGE_INFO
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
SetEvent EVENT_BEAT_ERIKA
lb bc, TM_MEGA_DRAIN, 1
call GiveItem
jr nc, .BagFull
ld a, TEXT_CELADONGYM_RECEIVED_TM21
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
SetEvent EVENT_GOT_TM21
jr .gymVictory
.BagFull
ld a, TEXT_CELADONGYM_TM21_NO_ROOM
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
.gymVictory
ld hl, wObtainedBadges
@@ -119,9 +119,9 @@ CeladonGymErikaText:
.beforeBeat
ld hl, .PreBattleText
call PrintText
- ld hl, wd72d
- set 6, [hl]
- set 7, [hl]
+ ld hl, wStatusFlags3
+ set BIT_TALKED_TO_TRAINER, [hl]
+ set BIT_PRINT_END_BATTLE_TEXT, [hl]
ld hl, .ReceivedRainbowBadgeText
ld de, .ReceivedRainbowBadgeText
call SaveEndBattleTextPointers
diff --git a/scripts/CeladonMansion3F.asm b/scripts/CeladonMansion3F.asm
index 824f4883..8453d0e5 100644
--- a/scripts/CeladonMansion3F.asm
+++ b/scripts/CeladonMansion3F.asm
@@ -57,11 +57,11 @@ CeladonMansion3FGraphicArtistText:
call SaveScreenTilesToBuffer2
xor a
ld [wUpdateSpritesEnabled], a
- ld hl, wd730
- set 6, [hl]
+ ld hl, wStatusFlags5
+ set BIT_NO_TEXT_DELAY, [hl]
callfar PrintDiploma
- ld hl, wd730
- res 6, [hl]
+ ld hl, wStatusFlags5
+ res BIT_NO_TEXT_DELAY, [hl]
call GBPalWhiteOutWithDelay3
call ReloadTilesetTilePatterns
call RestoreScreenTilesAndReloadTilePatterns
diff --git a/scripts/CeladonMartElevator.asm b/scripts/CeladonMartElevator.asm
index 9a2842f3..69686fa8 100644
--- a/scripts/CeladonMartElevator.asm
+++ b/scripts/CeladonMartElevator.asm
@@ -1,12 +1,12 @@
CeladonMartElevator_Script:
ld hl, wCurrentMapScriptFlags
- bit 5, [hl]
- res 5, [hl]
+ bit BIT_CUR_MAP_LOADED_1, [hl]
+ res BIT_CUR_MAP_LOADED_1, [hl]
push hl
call nz, CeladonMartElevatorStoreWarpEntriesScript
pop hl
- bit 7, [hl]
- res 7, [hl]
+ bit BIT_CUR_MAP_USED_ELEVATOR, [hl]
+ res BIT_CUR_MAP_USED_ELEVATOR, [hl]
call nz, CeladonMartElevatorShakeScript
xor a
ld [wAutoTextBoxDrawingControl], a
diff --git a/scripts/CeladonMartRoof.asm b/scripts/CeladonMartRoof.asm
index 56be937f..57eab858 100644
--- a/scripts/CeladonMartRoof.asm
+++ b/scripts/CeladonMartRoof.asm
@@ -14,15 +14,16 @@ CeladonMartRoofScript_GetDrinksInBag:
jr z, .done
push hl
push de
- ld [wd11e], a
+ ld [wTempByteValue], a
ld b, a
predef GetQuantityOfItemInBag
pop de
pop hl
ld a, b
and a
- jr z, .loop ; if the item isn't in the bag
- ld a, [wd11e]
+ jr z, .loop
+ ; A drink is in the bag
+ ld a, [wTempByteValue]
ld [de], a
inc de
push hl
@@ -42,8 +43,8 @@ CeladonMartRoofDrinkList:
db 0 ; end
CeladonMartRoofScript_GiveDrinkToGirl:
- ld hl, wd730
- set 6, [hl]
+ ld hl, wStatusFlags5
+ set BIT_NO_TEXT_DELAY, [hl]
ld hl, CeladonMartRoofLittleGirlGiveHerWhichDrinkText
call PrintText
xor a
@@ -69,8 +70,8 @@ CeladonMartRoofScript_GiveDrinkToGirl:
call TextBoxBorder
call UpdateSprites
call CeladonMartRoofScript_PrintDrinksInBag
- ld hl, wd730
- res 6, [hl]
+ ld hl, wStatusFlags5
+ res BIT_NO_TEXT_DELAY, [hl]
call HandleMenuInput
bit BIT_B_BUTTON, a
ret nz
@@ -196,13 +197,13 @@ CeladonMartRoofScript_PrintDrinksInBag:
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]
diff --git a/scripts/CeruleanBadgeHouse.asm b/scripts/CeruleanBadgeHouse.asm
index 417198e1..54186523 100644
--- a/scripts/CeruleanBadgeHouse.asm
+++ b/scripts/CeruleanBadgeHouse.asm
@@ -1,5 +1,5 @@
CeruleanBadgeHouse_Script:
- ld a, TRUE
+ ld a, 1 << BIT_NO_AUTO_TEXT_BOX
ld [wAutoTextBoxDrawingControl], a
dec a
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
@@ -34,7 +34,7 @@ CeruleanBadgeHouseMiddleAgedManText:
call DisplayListMenuID
jr c, .done
ld hl, CeruleanBadgeHouseBadgeTextPointers
- ld a, [wcf91]
+ ld a, [wCurItem]
sub BOULDERBADGE
add a
ld d, $0
diff --git a/scripts/CeruleanCity.asm b/scripts/CeruleanCity.asm
index 45685f83..c1268a60 100644
--- a/scripts/CeruleanCity.asm
+++ b/scripts/CeruleanCity.asm
@@ -28,7 +28,7 @@ CeruleanCityRocketDefeatedScript:
ld [wJoyIgnore], a
SetEvent EVENT_BEAT_CERULEAN_ROCKET_THIEF
ld a, TEXT_CERULEANCITY_ROCKET
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
xor a ; SCRIPT_CERULEANCITY_DEFAULT
ld [wJoyIgnore], a
@@ -58,7 +58,7 @@ ENDC
ld [wSprite02StateData1FacingDirection], a
call Delay3
ld a, TEXT_CERULEANCITY_ROCKET
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
jp DisplayTextID
.skipRocketThiefEncounter
CheckEvent EVENT_BEAT_CERULEAN_RIVAL
@@ -123,17 +123,17 @@ CeruleanCityFaceRivalScript:
jp SetSpriteFacingDirectionAndDelay ; face object
CeruleanCityRivalBattleScript:
- ld a, [wd730]
- bit 0, a
+ ld a, [wStatusFlags5]
+ bit BIT_SCRIPTED_NPC_MOVEMENT, a
ret nz
xor a
ld [wJoyIgnore], a
ld a, TEXT_CERULEANCITY_RIVAL
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
- ld hl, wd72d
- set 6, [hl]
- set 7, [hl]
+ ld hl, wStatusFlags3
+ set BIT_TALKED_TO_TRAINER, [hl]
+ set BIT_PRINT_END_BATTLE_TEXT, [hl]
ld hl, CeruleanCityRivalDefeatedText
ld de, CeruleanCityRivalVictoryText
call SaveEndBattleTextPointers
@@ -157,7 +157,7 @@ CeruleanCityRivalDefeatedScript:
ld [wJoyIgnore], a
SetEvent EVENT_BEAT_CERULEAN_RIVAL
ld a, TEXT_CERULEANCITY_RIVAL
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
call StopAllMusic
farcall Music_RivalAlternateStart
@@ -200,8 +200,8 @@ CeruleanCityMovement4:
db -1 ; end
CeruleanCityRivalCleanupScript:
- ld a, [wd730]
- bit 0, a
+ ld a, [wStatusFlags5]
+ bit BIT_SCRIPTED_NPC_MOVEMENT, a
ret nz
ld a, HS_CERULEAN_RIVAL
ld [wMissableObjectIndex], a
@@ -270,13 +270,13 @@ CeruleanCityRocketText:
jr nz, .beatRocketThief
ld hl, .Text
call PrintText
- ld hl, wd72d
- set 6, [hl]
- set 7, [hl]
+ ld hl, wStatusFlags3
+ set BIT_TALKED_TO_TRAINER, [hl]
+ set BIT_PRINT_END_BATTLE_TEXT, [hl]
ld hl, .IGiveUpText
ld de, .IGiveUpText
call SaveEndBattleTextPointers
- ldh a, [hSpriteIndexOrTextID]
+ ldh a, [hTextID]
ld [wSpriteIndex], a
call EngageMapTrainer
call InitBattleEnemyParameters
diff --git a/scripts/CeruleanGym.asm b/scripts/CeruleanGym.asm
index b4bed363..cb4d3975 100644
--- a/scripts/CeruleanGym.asm
+++ b/scripts/CeruleanGym.asm
@@ -1,7 +1,7 @@
CeruleanGym_Script:
ld hl, wCurrentMapScriptFlags
- bit 6, [hl]
- res 6, [hl]
+ bit BIT_CUR_MAP_LOADED_2, [hl]
+ res BIT_CUR_MAP_LOADED_2, [hl]
call nz, .LoadNames
call EnableAutoTextBoxDrawing
ld hl, CeruleanGymTrainerHeaders
@@ -45,20 +45,20 @@ CeruleanGymMistyPostBattleScript:
CeruleanGymReceiveTM11:
ld a, TEXT_CERULEANGYM_MISTY_CASCADE_BADGE_INFO
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
SetEvent EVENT_BEAT_MISTY
lb bc, TM_BUBBLEBEAM, 1
call GiveItem
jr nc, .BagFull
ld a, TEXT_CERULEANGYM_MISTY_RECEIVED_TM11
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
SetEvent EVENT_GOT_TM11
jr .gymVictory
.BagFull
ld a, TEXT_CERULEANGYM_MISTY_TM11_NO_ROOM
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
.gymVictory
ld hl, wObtainedBadges
@@ -105,9 +105,9 @@ CeruleanGymMistyText:
.beforeBeat
ld hl, .PreBattleText
call PrintText
- ld hl, wd72d
- set 6, [hl]
- set 7, [hl]
+ ld hl, wStatusFlags3
+ set BIT_TALKED_TO_TRAINER, [hl]
+ set BIT_PRINT_END_BATTLE_TEXT, [hl]
ld hl, CeruleanGymMistyReceivedCascadeBadgeText
ld de, CeruleanGymMistyReceivedCascadeBadgeText
call SaveEndBattleTextPointers
diff --git a/scripts/CeruleanMelaniesHouse.asm b/scripts/CeruleanMelaniesHouse.asm
index eec62f92..1d2b817d 100644
--- a/scripts/CeruleanMelaniesHouse.asm
+++ b/scripts/CeruleanMelaniesHouse.asm
@@ -29,8 +29,8 @@ CeruleanMelanieHouseMelanieText:
ld a, $1
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
ld a, BULBASAUR
- ld [wd11e], a
- ld [wcf91], a
+ ld [wNamedObjectIndex], a
+ ld [wCurPartySpecies], a
call GetMonName
ld a, $1
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
diff --git a/scripts/ChampionsRoom.asm b/scripts/ChampionsRoom.asm
index 918e9468..f244327d 100644
--- a/scripts/ChampionsRoom.asm
+++ b/scripts/ChampionsRoom.asm
@@ -55,14 +55,14 @@ ChampionsRoomRivalReadyToBattleScript:
xor a
ld [wJoyIgnore], a
ld hl, wOptions
- res 7, [hl] ; Turn on battle animations to make the battle feel more epic.
+ res BIT_BATTLE_ANIMATION, [hl]
ld a, TEXT_CHAMPIONSROOM_RIVAL
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
call Delay3
- ld hl, wd72d
- set 6, [hl]
- set 7, [hl]
+ ld hl, wStatusFlags3
+ set BIT_TALKED_TO_TRAINER, [hl]
+ set BIT_PRINT_END_BATTLE_TEXT, [hl]
ld hl, RivalDefeatedText
ld de, RivalVictoryText
call SaveEndBattleTextPointers
@@ -89,7 +89,7 @@ ChampionsRoomRivalDefeatedScript:
ld a, D_RIGHT | D_LEFT | D_UP | D_DOWN
ld [wJoyIgnore], a
ld a, TEXT_CHAMPIONSROOM_RIVAL
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call ChampionsRoom_DisplayTextID_AllowABSelectStart
ld a, CHAMPIONSROOM_RIVAL
ldh [hSpriteIndex], a
@@ -101,7 +101,7 @@ ChampionsRoomRivalDefeatedScript:
ChampionsRoomOakArrivesScript:
farcall Music_Cities1AlternateTempo
ld a, TEXT_CHAMPIONSROOM_OAK
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call ChampionsRoom_DisplayTextID_AllowABSelectStart
ld a, CHAMPIONSROOM_OAK
ldh [hSpriteIndex], a
@@ -126,8 +126,8 @@ OakEntranceAfterVictoryMovement:
db -1 ; end
ChampionsRoomOakCongratulatesPlayerScript:
- ld a, [wd730]
- bit 0, a
+ ld a, [wStatusFlags5]
+ bit BIT_SCRIPTED_NPC_MOVEMENT, a
ret nz
ld a, PLAYER_DIR_LEFT
ld [wPlayerMovingDirection], a
@@ -142,7 +142,7 @@ ChampionsRoomOakCongratulatesPlayerScript:
ldh [hSpriteFacingDirection], a
call SetSpriteFacingDirectionAndDelay
ld a, TEXT_CHAMPIONSROOM_OAK_CONGRATULATES_PLAYER
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call ChampionsRoom_DisplayTextID_AllowABSelectStart
ld a, SCRIPT_CHAMPIONSROOM_OAK_DISAPPOINTED_WITH_RIVAL
ld [wChampionsRoomCurScript], a
@@ -155,7 +155,7 @@ ChampionsRoomOakDisappointedWithRivalScript:
ldh [hSpriteFacingDirection], a
call SetSpriteFacingDirectionAndDelay
ld a, TEXT_CHAMPIONSROOM_OAK_DISAPPOINTED_WITH_RIVAL
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call ChampionsRoom_DisplayTextID_AllowABSelectStart
ld a, SCRIPT_CHAMPIONSROOM_OAK_COME_WITH_ME
ld [wChampionsRoomCurScript], a
@@ -168,7 +168,7 @@ ChampionsRoomOakComeWithMeScript:
ldh [hSpriteFacingDirection], a
call SetSpriteFacingDirectionAndDelay
ld a, TEXT_CHAMPIONSROOM_OAK_COME_WITH_ME
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call ChampionsRoom_DisplayTextID_AllowABSelectStart
ld de, OakExitChampionsRoomMovement
ld a, CHAMPIONSROOM_OAK
@@ -184,8 +184,8 @@ OakExitChampionsRoomMovement:
db -1 ; end
ChampionsRoomOakExitsScript:
- ld a, [wd730]
- bit 0, a
+ ld a, [wStatusFlags5]
+ bit BIT_SCRIPTED_NPC_MOVEMENT, a
ret nz
ld a, HS_CHAMPIONS_ROOM_OAK
ld [wMissableObjectIndex], a
@@ -271,7 +271,7 @@ ChampionsRoomOakText:
ChampionsRoomOakCongratulatesPlayerText:
text_asm
ld a, [wPlayerStarter]
- ld [wd11e], a
+ ld [wNamedObjectIndex], a
call GetMonName
ld hl, .Text
call PrintText
diff --git a/scripts/CinnabarGym.asm b/scripts/CinnabarGym.asm
index 7279c971..2ebf51df 100644
--- a/scripts/CinnabarGym.asm
+++ b/scripts/CinnabarGym.asm
@@ -7,13 +7,13 @@ CinnabarGym_Script:
CinnabarGymSetMapAndTiles:
ld hl, wCurrentMapScriptFlags
- bit 6, [hl]
- res 6, [hl]
+ bit BIT_CUR_MAP_LOADED_2, [hl]
+ res BIT_CUR_MAP_LOADED_2, [hl]
push hl
call nz, .LoadNames
pop hl
- bit 5, [hl]
- res 5, [hl]
+ bit BIT_CUR_MAP_LOADED_1, [hl]
+ res BIT_CUR_MAP_LOADED_1, [hl]
call nz, UpdateCinnabarGymGateTileBlocks
ResetEvent EVENT_2A7
ret
@@ -38,7 +38,7 @@ CinnabarGymResetScripts:
ret
CinnabarGymSetTrainerHeader:
- ldh a, [hSpriteIndexOrTextID]
+ ldh a, [hTextID]
ld [wTrainerHeaderFlagBit], a
ret
@@ -119,14 +119,14 @@ CinnabarGymScript_74fa3:
ret
CinnabarGymGetOpponentTextScript:
- ld a, [wd730]
- bit 0, a
+ ld a, [wStatusFlags5]
+ bit BIT_SCRIPTED_NPC_MOVEMENT, a
ret nz
xor a
ld [wJoyIgnore], a
ld a, [wOpponentAfterWrongAnswer]
ld [wTrainerHeaderFlagBit], a
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
jp DisplayTextID
CinnabarGymOpenGateScript:
@@ -205,20 +205,20 @@ CinnabarGymBlainePostBattleScript:
; fallthrough
CinnabarGymReceiveTM38:
ld a, TEXT_CINNABARGYM_BLAINE_VOLCANO_BADGE_INFO
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
SetEvent EVENT_BEAT_BLAINE
lb bc, TM_FIRE_BLAST, 1
call GiveItem
jr nc, .BagFull
ld a, TEXT_CINNABARGYM_BLAINE_RECEIVED_TM38
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
SetEvent EVENT_GOT_TM38
jr .gymVictory
.BagFull
ld a, TEXT_CINNABARGYM_BLAINE_TM38_NO_ROOM
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
.gymVictory
ld hl, wObtainedBadges
@@ -230,7 +230,7 @@ CinnabarGymReceiveTM38:
SetEventRange EVENT_BEAT_CINNABAR_GYM_TRAINER_0, EVENT_BEAT_CINNABAR_GYM_TRAINER_6
ld hl, wCurrentMapScriptFlags
- set 5, [hl]
+ set BIT_CUR_MAP_LOADED_1, [hl]
jp CinnabarGymResetScripts
@@ -250,13 +250,13 @@ CinnabarGym_TextPointers:
dw_const CinnabarGymBlaineTM38NoRoomText, TEXT_CINNABARGYM_BLAINE_TM38_NO_ROOM
CinnabarGymStartBattleScript:
- ldh a, [hSpriteIndexOrTextID]
+ ldh a, [hSpriteIndex]
ld [wSpriteIndex], a
call EngageMapTrainer
call InitBattleEnemyParameters
- ld hl, wd72d
- set 6, [hl]
- set 7, [hl]
+ ld hl, wStatusFlags3
+ set BIT_TALKED_TO_TRAINER, [hl]
+ set BIT_PRINT_END_BATTLE_TEXT, [hl]
ld a, [wSpriteIndex]
cp CINNABARGYM_BLAINE
jr z, .blaine
diff --git a/scripts/CinnabarIsland.asm b/scripts/CinnabarIsland.asm
index aca1b995..f2a36afb 100644
--- a/scripts/CinnabarIsland.asm
+++ b/scripts/CinnabarIsland.asm
@@ -1,7 +1,7 @@
CinnabarIsland_Script:
call EnableAutoTextBoxDrawing
ld hl, wCurrentMapScriptFlags
- set 5, [hl]
+ set BIT_CUR_MAP_LOADED_1, [hl]
ResetEvent EVENT_MANSION_SWITCH_ON
ResetEvent EVENT_LAB_STILL_REVIVING_FOSSIL
ld hl, CinnabarIsland_ScriptPointers
@@ -26,7 +26,7 @@ CinnabarIslandDefaultScript:
ld a, PLAYER_DIR_UP
ld [wPlayerMovingDirection], a
ld a, TEXT_CINNABARISLAND_DOOR_IS_LOCKED
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
xor a
ldh [hJoyHeld], a
diff --git a/scripts/CinnabarLabFossilRoom.asm b/scripts/CinnabarLabFossilRoom.asm
index 7e1f57f0..daa14412 100644
--- a/scripts/CinnabarLabFossilRoom.asm
+++ b/scripts/CinnabarLabFossilRoom.asm
@@ -18,7 +18,7 @@ Lab4Script_GetFossilsInBag:
jr z, .done
push hl
push de
- ld [wd11e], a
+ ld [wTempByteValue], a
ld b, a
predef GetQuantityOfItemInBag
pop de
@@ -26,9 +26,8 @@ Lab4Script_GetFossilsInBag:
ld a, b
and a
jr z, .loop
-
- ; A fossil's in the bag
- ld a, [wd11e]
+ ; A fossil is in the bag
+ ld a, [wTempByteValue]
ld [de], a
inc de
push hl
diff --git a/scripts/Daycare.asm b/scripts/Daycare.asm
index 26f4342a..a39361d5 100644
--- a/scripts/Daycare.asm
+++ b/scripts/Daycare.asm
@@ -58,7 +58,7 @@ DaycareGentlemanText:
call RemovePokemon
pop af
jr c, .depositedPikachuIntoDayCare
- ld a, [wcf91]
+ ld a, [wCurPartySpecies]
call PlayCry
jr .asm_562e3
@@ -179,7 +179,7 @@ DaycareGentlemanText:
ld [wMoveMonType], a
call MoveMon
ld a, [wDayCareMonSpecies]
- ld [wcf91], a
+ ld [wCurPartySpecies], a
ld a, [wPartyCount]
dec a
push af
@@ -213,7 +213,7 @@ DaycareGentlemanText:
ld [wWhichPokemon], a
callfar IsThisPartymonStarterPikachu
jr c, .withdrewPikachuFromDayCare
- ld a, [wcf91]
+ ld a, [wCurPartySpecies]
call PlayCry
jr .asm_56430
diff --git a/scripts/FightingDojo.asm b/scripts/FightingDojo.asm
index d434f681..bffa4554 100644
--- a/scripts/FightingDojo.asm
+++ b/scripts/FightingDojo.asm
@@ -49,7 +49,7 @@ FightingDojoDefaultScript:
ldh [hSpriteFacingDirection], a
call SetSpriteFacingDirectionAndDelay
ld a, TEXT_FIGHTINGDOJO_KARATE_MASTER
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
ret
@@ -72,7 +72,7 @@ FightingDojoKarateMasterPostBattleScript:
ld [wJoyIgnore], a
SetEventRange EVENT_BEAT_KARATE_MASTER, EVENT_BEAT_FIGHTING_DOJO_TRAINER_3
ld a, TEXT_FIGHTINGDOJO_KARATE_MASTER_I_WILL_GIVE_YOU_A_POKEMON
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
xor a ; SCRIPT_FIGHTINGDOJO_DEFAULT
ld [wJoyIgnore], a
@@ -111,13 +111,13 @@ FightingDojoKarateMasterText:
jp nz, .defeated_master
ld hl, .Text
call PrintText
- ld hl, wd72d
- set 6, [hl]
- set 7, [hl]
+ ld hl, wStatusFlags3
+ set BIT_TALKED_TO_TRAINER, [hl]
+ set BIT_PRINT_END_BATTLE_TEXT, [hl]
ld hl, .DefeatedText
ld de, .DefeatedText
call SaveEndBattleTextPointers
- ldh a, [hSpriteIndexOrTextID]
+ ldh a, [hSpriteIndex]
ld [wSpriteIndex], a
call EngageMapTrainer
call InitBattleEnemyParameters
@@ -239,7 +239,7 @@ FightingDojoHitmonleePokeBallText:
ld a, [wCurrentMenuItem]
and a
jr nz, .done
- ld a, [wcf91]
+ ld a, [wCurPartySpecies]
ld b, a
ld c, 30
call GivePokemon
@@ -273,7 +273,7 @@ FightingDojoHitmonchanPokeBallText:
ld a, [wCurrentMenuItem]
and a
jr nz, .done
- ld a, [wcf91]
+ ld a, [wCurPartySpecies]
ld b, a
ld c, 30
call GivePokemon
diff --git a/scripts/FuchsiaGoodRodHouse.asm b/scripts/FuchsiaGoodRodHouse.asm
index 4bfd49ae..ee55938b 100644
--- a/scripts/FuchsiaGoodRodHouse.asm
+++ b/scripts/FuchsiaGoodRodHouse.asm
@@ -7,8 +7,8 @@ FuchsiaGoodRodHouse_TextPointers:
FuchsiaGoodRodHouseFishingGuruText:
text_asm
- ld a, [wd728]
- bit 4, a ; got good rod?
+ ld a, [wStatusFlags1]
+ bit BIT_GOT_GOOD_ROD, a
jr nz, .got_item
ld hl, .Text
call PrintText
@@ -19,8 +19,8 @@ FuchsiaGoodRodHouseFishingGuruText:
lb bc, GOOD_ROD, 1
call GiveItem
jr nc, .bag_full
- ld hl, wd728
- set 4, [hl] ; got good rod
+ ld hl, wStatusFlags1
+ set BIT_GOT_GOOD_ROD, [hl]
ld hl, .ReceivedGoodRodText
jr .done
.bag_full
diff --git a/scripts/FuchsiaGym.asm b/scripts/FuchsiaGym.asm
index 1c0f02df..c983c896 100644
--- a/scripts/FuchsiaGym.asm
+++ b/scripts/FuchsiaGym.asm
@@ -10,8 +10,8 @@ FuchsiaGym_Script:
.LoadNames:
ld hl, wCurrentMapScriptFlags
- bit 6, [hl]
- res 6, [hl]
+ bit BIT_CUR_MAP_LOADED_2, [hl]
+ res BIT_CUR_MAP_LOADED_2, [hl]
ret z
ld hl, .CityName
ld de, .LeaderName
@@ -47,20 +47,20 @@ FuchsiaGymKogaPostBattleScript:
; fallthrough
FuchsiaGymReceiveTM06:
ld a, TEXT_FUCHSIAGYM_KOGA_SOUL_BADGE_INFO
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
SetEvent EVENT_BEAT_KOGA
lb bc, TM_TOXIC, 1
call GiveItem
jr nc, .BagFull
ld a, TEXT_FUCHSIAGYM_KOGA_RECEIVED_TM06
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
SetEvent EVENT_GOT_TM06
jr .gymVictory
.BagFull
ld a, TEXT_FUCHSIAGYM_KOGA_TM06_NO_ROOM
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
.gymVictory
ld hl, wObtainedBadges
@@ -119,9 +119,9 @@ FuchsiaGymKogaText:
.beforeBeat
ld hl, .BeforeBattleText
call PrintText
- ld hl, wd72d
- set 6, [hl]
- set 7, [hl]
+ ld hl, wStatusFlags3
+ set BIT_TALKED_TO_TRAINER, [hl]
+ set BIT_PRINT_END_BATTLE_TEXT, [hl]
ld hl, .ReceivedSoulBadgeText
ld de, .ReceivedSoulBadgeText
call SaveEndBattleTextPointers
diff --git a/scripts/GameCorner.asm b/scripts/GameCorner.asm
index 3fd58f60..94442a60 100644
--- a/scripts/GameCorner.asm
+++ b/scripts/GameCorner.asm
@@ -8,8 +8,8 @@ GameCorner_Script:
GameCornerSelectLuckySlotMachine:
ld hl, wCurrentMapScriptFlags
- bit 6, [hl]
- res 6, [hl]
+ bit BIT_CUR_MAP_LOADED_2, [hl]
+ res BIT_CUR_MAP_LOADED_2, [hl]
ret z
call Random
ldh a, [hRandomAdd]
@@ -25,8 +25,8 @@ GameCornerSelectLuckySlotMachine:
GameCornerSetRocketHideoutDoorTile:
ld hl, wCurrentMapScriptFlags
- bit 5, [hl]
- res 5, [hl]
+ bit BIT_CUR_MAP_LOADED_1, [hl]
+ res BIT_CUR_MAP_LOADED_1, [hl]
ret z
CheckEvent EVENT_FOUND_ROCKET_HIDEOUT
ret nz
@@ -58,7 +58,7 @@ GameCornerRocketBattleScript:
ld a, D_RIGHT | D_LEFT | D_UP | D_DOWN
ld [wJoyIgnore], a
ld a, TEXT_GAMECORNER_ROCKET_AFTER_BATTLE
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
ld a, GAMECORNER_ROCKET
ldh [hSpriteIndex], a
@@ -106,8 +106,8 @@ GameCornerMovement_Rocket_WalkDirect:
db -1 ; end
GameCornerRocketExitScript:
- ld a, [wd730]
- bit 0, a
+ ld a, [wStatusFlags5]
+ bit BIT_SCRIPTED_NPC_MOVEMENT, a
ret nz
xor a
ld [wJoyIgnore], a
@@ -115,8 +115,8 @@ GameCornerRocketExitScript:
ld [wMissableObjectIndex], a
predef HideObject
ld hl, wCurrentMapScriptFlags
- set 5, [hl]
- set 6, [hl]
+ set BIT_CUR_MAP_LOADED_1, [hl]
+ set BIT_CUR_MAP_LOADED_2, [hl]
ld a, SCRIPT_GAMECORNER_DEFAULT
ld [wGameCornerCurScript], a
ret
@@ -426,9 +426,9 @@ GameCornerRocketText:
text_asm
ld hl, .ImGuardingThisPosterText
call PrintText
- ld hl, wd72d
- set 6, [hl]
- set 7, [hl]
+ ld hl, wStatusFlags3
+ set BIT_TALKED_TO_TRAINER, [hl]
+ set BIT_PRINT_END_BATTLE_TEXT, [hl]
ld hl, .BattleEndText
ld de, .BattleEndText
call SaveEndBattleTextPointers
@@ -486,8 +486,8 @@ GameCornerOopsForgotCoinCaseText:
text_end
GameCornerDrawCoinBox:
- ld hl, wd730
- set 6, [hl]
+ ld hl, wStatusFlags5
+ set BIT_NO_TEXT_DELAY, [hl]
hlcoord 11, 0
lb bc, 5, 7
call TextBoxBorder
@@ -515,8 +515,8 @@ GameCornerDrawCoinBox:
ld de, wPlayerCoins
ld c, $82
call PrintBCDNumber
- ld hl, wd730
- res 6, [hl]
+ ld hl, wStatusFlags5
+ res BIT_NO_TEXT_DELAY, [hl]
ret
GameCornerMoneyText:
diff --git a/scripts/GameCornerPrizeRoom.asm b/scripts/GameCornerPrizeRoom.asm
index 443e0260..8e3bc0a6 100644
--- a/scripts/GameCornerPrizeRoom.asm
+++ b/scripts/GameCornerPrizeRoom.asm
@@ -8,6 +8,7 @@ GameCornerPrizeRoom_TextPointers:
dw_const GameCornerPRizeRoomPrizeVendorText, TEXT_GAMECORNERPRIZEROOM_PRIZE_VENDOR_1
dw_const GameCornerPRizeRoomPrizeVendorText, TEXT_GAMECORNERPRIZEROOM_PRIZE_VENDOR_2
dw_const GameCornerPRizeRoomPrizeVendorText, TEXT_GAMECORNERPRIZEROOM_PRIZE_VENDOR_3
+ EXPORT TEXT_GAMECORNERPRIZEROOM_PRIZE_VENDOR_1 ; used by engine/events/prize_menu.asm
GameCornerPrizeRoomBaldingGuyText:
text_far _GameCornerPrizeRoomBaldingGuyText
diff --git a/scripts/HallOfFame.asm b/scripts/HallOfFame.asm
index d5102830..ed3d2a73 100644
--- a/scripts/HallOfFame.asm
+++ b/scripts/HallOfFame.asm
@@ -29,10 +29,11 @@ HallOfFameResetEventsAndSaveScript:
predef HallOfFamePC
pop af
ld [wLetterPrintingDelayFlags], a
- ld hl, wFlags_D733
- res 1, [hl]
+ ld hl, wStatusFlags7
+ res BIT_NO_MAP_MUSIC, [hl]
+ assert wStatusFlags7 + 1 == wElite4Flags
inc hl
- set BIT_TEST_BATTLE, [hl] ; debug, unused?
+ set BIT_UNUSED_BEAT_ELITE_4, [hl] ; debug, unused?
xor a ; SCRIPT_*_DEFAULT
ld hl, wLoreleisRoomCurScript
ld [hli], a ; wLoreleisRoomCurScript
@@ -91,7 +92,7 @@ HallOfFameOakCongratulationsScript:
inc a ; PLAYER_DIR_RIGHT
ld [wPlayerMovingDirection], a
ld a, TEXT_HALLOFFAME_OAK
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
ld [wJoyIgnore], a
diff --git a/scripts/IndigoPlateauLobby.asm b/scripts/IndigoPlateauLobby.asm
index 0af18a96..ee757ef7 100644
--- a/scripts/IndigoPlateauLobby.asm
+++ b/scripts/IndigoPlateauLobby.asm
@@ -2,15 +2,15 @@ IndigoPlateauLobby_Script:
call Serial_TryEstablishingExternallyClockedConnection
call EnableAutoTextBoxDrawing
ld hl, wCurrentMapScriptFlags
- bit 6, [hl]
- res 6, [hl]
+ bit BIT_CUR_MAP_LOADED_2, [hl]
+ res BIT_CUR_MAP_LOADED_2, [hl]
ret z
ResetEvent EVENT_VICTORY_ROAD_1_BOULDER_ON_SWITCH
- ld hl, wBeatLorelei
- bit 1, [hl]
- res 1, [hl]
+ ; Reset Elite Four events if the player started challenging them before
+ ld hl, wElite4Flags
+ bit BIT_STARTED_ELITE_4, [hl]
+ res BIT_STARTED_ELITE_4, [hl]
ret z
- ; Elite 4 events
ResetEventRange INDIGO_PLATEAU_EVENTS_START, EVENT_LANCES_ROOM_LOCK_DOOR
ret
diff --git a/scripts/LancesRoom.asm b/scripts/LancesRoom.asm
index 75215cba..772b33bf 100644
--- a/scripts/LancesRoom.asm
+++ b/scripts/LancesRoom.asm
@@ -10,8 +10,8 @@ LancesRoom_Script:
LanceShowOrHideEntranceBlocks:
ld hl, wCurrentMapScriptFlags
- bit 5, [hl]
- res 5, [hl]
+ bit BIT_CUR_MAP_LOADED_1, [hl]
+ res BIT_CUR_MAP_LOADED_1, [hl]
ret z
CheckEvent EVENT_LANCES_ROOM_LOCK_DOOR
jr nz, .closeEntrance
@@ -63,7 +63,7 @@ LancesRoomDefaultScript:
cp $3 ; Is player standing next to Lance's sprite?
jr nc, .notStandingNextToLance
ld a, TEXT_LANCESROOM_LANCE
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
jp DisplayTextID
.notStandingNextToLance
cp $5 ; Is player standing on the entrance staircase?
@@ -71,7 +71,7 @@ LancesRoomDefaultScript:
CheckAndSetEvent EVENT_LANCES_ROOM_LOCK_DOOR
ret nz
ld hl, wCurrentMapScriptFlags
- set 5, [hl]
+ set BIT_CUR_MAP_LOADED_1, [hl]
ld a, SFX_GO_INSIDE
call PlaySound
jp LanceShowOrHideEntranceBlocks
@@ -90,7 +90,7 @@ LancesRoomLanceEndBattleScript:
cp $ff
jp z, ResetLanceScript
ld a, TEXT_LANCESROOM_LANCE
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
jp DisplayTextID
WalkToLance:
diff --git a/scripts/LoreleisRoom.asm b/scripts/LoreleisRoom.asm
index c1cc2adb..455561b8 100644
--- a/scripts/LoreleisRoom.asm
+++ b/scripts/LoreleisRoom.asm
@@ -11,11 +11,11 @@ LoreleisRoom_Script:
LoreleiShowOrHideExitBlock:
; Blocks or clears the exit to the next room.
ld hl, wCurrentMapScriptFlags
- bit 5, [hl]
- res 5, [hl]
+ bit BIT_CUR_MAP_LOADED_1, [hl]
+ res BIT_CUR_MAP_LOADED_1, [hl]
ret z
- ld hl, wBeatLorelei
- set 1, [hl]
+ ld hl, wElite4Flags
+ set BIT_STARTED_ELITE_4, [hl]
CheckEvent EVENT_BEAT_LORELEIS_ROOM_TRAINER_0
jr z, .blockExitToNextRoom
ld a, $5
@@ -77,7 +77,7 @@ LoreleisRoomDefaultScript:
jr z, LoreleiScriptWalkIntoRoom
.stopPlayerFromLeaving
ld a, TEXT_LORELEISROOM_DONT_RUN_AWAY
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID ; "Don't run away!"
ld a, D_UP
ld [wSimulatedJoypadStatesEnd], a
@@ -113,7 +113,7 @@ LoreleisRoomLoreleiEndBattleScript:
cp $ff
jp z, ResetLoreleiScript
ld a, TEXT_LORELEISROOM_LORELEI
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
jp DisplayTextID
LoreleisRoom_TextPointers:
diff --git a/scripts/MtMoonB2F.asm b/scripts/MtMoonB2F.asm
index 0f336136..a110d877 100644
--- a/scripts/MtMoonB2F.asm
+++ b/scripts/MtMoonB2F.asm
@@ -10,12 +10,12 @@ MtMoonB2F_Script:
ld hl, MtMoonB2FFossilAreaCoords
call ArePlayerCoordsInArray
jr nc, .enable_battles
- ld hl, wd72e
- set 4, [hl]
+ ld hl, wStatusFlags4
+ set BIT_NO_BATTLES, [hl]
ret
.enable_battles
- ld hl, wd72e
- res 4, [hl]
+ ld hl, wStatusFlags4
+ res BIT_NO_BATTLES, [hl]
ret
MtMoonB2FFossilAreaCoords:
@@ -96,7 +96,7 @@ MtMoonB2FScript_49d28:
xor a
ldh [hJoyHeld], a
ld a, TEXT_MTMOONB2F_SUPER_NERD
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
ret
@@ -197,15 +197,15 @@ MovementData_49ddd:
db -1 ; end
MtMoonB2FSuperNerdTakesOtherFossilScript:
- ld a, [wd730]
- bit 0, a
+ ld a, [wStatusFlags5]
+ bit BIT_SCRIPTED_NPC_MOVEMENT, a
ret nz
ld a, D_RIGHT | D_LEFT | D_UP | D_DOWN
ld [wJoyIgnore], a
ld a, $1
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
ld a, TEXT_MTMOONB2F_SUPER_NERD_THEN_THIS_IS_MINE
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
CheckEvent EVENT_GOT_HELIX_FOSSIL
jr z, .asm_49e1d
@@ -244,7 +244,7 @@ MtMoonB2FScript_49e15:
ld a, $1
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
ld a, TEXT_MTMOONB2F_TEXT12
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
xor a
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
@@ -289,8 +289,8 @@ MtMoonB2FScript6:
MtMoonB2FScript7:
ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
ld [wJoyIgnore], a
- ld a, [wd730]
- bit 0, a
+ ld a, [wStatusFlags5]
+ bit BIT_SCRIPTED_NPC_MOVEMENT, a
ret nz
MtMoonB2FScript8:
ld a, $2
@@ -311,8 +311,8 @@ MtMoonB2FScript9:
MtMoonB2FScript10:
ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
ld [wJoyIgnore], a
- ld a, [wd730]
- bit 0, a
+ ld a, [wStatusFlags5]
+ bit BIT_SCRIPTED_NPC_MOVEMENT, a
ret nz
MtMoonB2FScript11:
ld a, $2
@@ -323,12 +323,12 @@ MtMoonB2FScript11:
ld a, ~(A_BUTTON | B_BUTTON)
ld [wJoyIgnore], a
ld a, TEXT_MTMOONB2F_TEXT13
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
MtMoonB2FScript12:
- ld hl, wd72d
- set 6, [hl]
- set 7, [hl]
+ ld hl, wStatusFlags3
+ set BIT_TALKED_TO_TRAINER, [hl]
+ set BIT_PRINT_END_BATTLE_TEXT, [hl]
ld hl, MtMoonB2FJessieJamesEndBattleText
ld de, MtMoonB2FJessieJamesEndBattleText
call SaveEndBattleTextPointers
@@ -361,7 +361,7 @@ MtMoonB2FScript13:
ld a, $1
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
ld a, TEXT_MTMOONB2F_TEXT14
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
xor a
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
@@ -487,9 +487,9 @@ MtMoonB2FSuperNerdText:
.beat_super_nerd
ld hl, MtMoonB2FSuperNerdTheyreBothMineText
call PrintText
- ld hl, wd72d
- set 6, [hl]
- set 7, [hl]
+ ld hl, wStatusFlags3
+ set BIT_TALKED_TO_TRAINER, [hl]
+ set BIT_PRINT_END_BATTLE_TEXT, [hl]
ld hl, MtMoonB2FSuperNerdOkIllShareText
ld de, MtMoonB2FSuperNerdOkIllShareText
call SaveEndBattleTextPointers
diff --git a/scripts/Museum1F.asm b/scripts/Museum1F.asm
index 9fff771d..0e65accd 100644
--- a/scripts/Museum1F.asm
+++ b/scripts/Museum1F.asm
@@ -1,5 +1,5 @@
Museum1F_Script:
- ld a, TRUE
+ ld a, 1 << BIT_NO_AUTO_TEXT_BOX
ld [wAutoTextBoxDrawingControl], a
xor a
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
@@ -27,7 +27,7 @@ Museum1FDefaultScript:
xor a
ldh [hJoyHeld], a
ld a, TEXT_MUSEUM1F_SCIENTIST1
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
jp DisplayTextID
Museum1FNoopScript:
diff --git a/scripts/OaksLab.asm b/scripts/OaksLab.asm
index 17be9fc3..5be583d9 100644
--- a/scripts/OaksLab.asm
+++ b/scripts/OaksLab.asm
@@ -1,7 +1,7 @@
OaksLab_Script:
CheckEvent EVENT_PALLET_AFTER_GETTING_POKEBALLS_2
call nz, OaksLabLoadTextPointers2Script
- ld a, TRUE
+ ld a, 1 << BIT_NO_AUTO_TEXT_BOX
ld [wAutoTextBoxDrawingControl], a
xor a
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
@@ -45,8 +45,8 @@ OaksLabDefaultScript:
ld a, HS_OAKS_LAB_OAK_2
ld [wMissableObjectIndex], a
predef ShowObject
- ld hl, wd72e
- res 4, [hl]
+ ld hl, wStatusFlags4
+ res BIT_NO_BATTLES, [hl]
ld a, SCRIPT_OAKSLAB_OAK_ENTERS_LAB
ld [wOaksLabCurScript], a
@@ -69,8 +69,8 @@ OakEntryMovement:
db -1 ; end
OaksLabHideShowOaksScript:
- ld a, [wd730]
- bit 0, a
+ ld a, [wStatusFlags5]
+ bit BIT_SCRIPTED_NPC_MOVEMENT, a
ret nz
ld a, HS_OAKS_LAB_OAK_2
ld [wMissableObjectIndex], a
@@ -121,8 +121,8 @@ OaksLabFollowedOakScript:
ld a, SPRITE_FACING_UP
ldh [hSpriteFacingDirection], a
call SetSpriteFacingDirectionAndDelay
- ld hl, wFlags_D733
- res 1, [hl]
+ ld hl, wStatusFlags7
+ res BIT_NO_MAP_MUSIC, [hl]
call PlayDefaultMusic
ld a, SCRIPT_OAKSLAB_OAK_CHOOSE_MON_SPEECH
@@ -134,11 +134,11 @@ OaksLabOakChooseMonSpeechScript:
ld a, SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
ld [wJoyIgnore], a
ld a, TEXT_OAKSLAB_RIVAL_FED_UP_WITH_WAITING
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
call Delay3
ld a, TEXT_OAKSLAB_OAK_CHOOSE_MON
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
call Delay3
ld a, $2
@@ -146,11 +146,11 @@ OaksLabOakChooseMonSpeechScript:
ld a, SPRITE_FACING_UP
ld [wSprite01StateData1FacingDirection], a
ld a, TEXT_OAKSLAB_RIVAL_WHAT_ABOUT_ME
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
call Delay3
ld a, TEXT_OAKSLAB_OAK_BE_PATIENT
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
xor a
ld [wJoyIgnore], a
@@ -175,7 +175,7 @@ OaksLabPlayerDontGoAwayScript:
call SetSpriteFacingDirectionAndDelay
call UpdateSprites
ld a, TEXT_OAKSLAB_OAK_DONT_GO_AWAY_YET
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
ld a, $1
ld [wSimulatedJoypadStatesIndex], a
@@ -201,7 +201,7 @@ OaksLabPlayerForcedToWalkBackScript:
OaksLabChoseStarterScript:
ld a, OAKSLAB_RIVAL
- ldh [hSpriteIndexOrTextID], a
+ ldh [hSpriteIndex], a
ld de, .RivalPushesPlayerAwayFromEeveeBall
call MoveSprite
ld a, SCRIPT_OAKSLAB_RIVAL_TAKES_POKEBALL
@@ -216,8 +216,8 @@ OaksLabChoseStarterScript:
db $FF
OaksLabRivalTakesPokeballScript:
- ld a, [wd730]
- bit 0, a
+ ld a, [wStatusFlags5]
+ bit BIT_SCRIPTED_NPC_MOVEMENT, a
jr nz, .asm_1c564
ld a, HS_STARTER_BALL_1
ld [wMissableObjectIndex], a
@@ -230,12 +230,12 @@ OaksLabRivalTakesPokeballScript:
ld a, RIVAL_STARTER_JOLTEON
ld [wRivalStarter], a
ld a, EEVEE
- ld [wd11e], a
+ ld [wNamedObjectIndex], a
call GetMonName
ld a, ~(A_BUTTON | B_BUTTON)
ld [wJoyIgnore], a
ld a, TEXT_OAKSLAB_RIVAL_RECEIVED_MON
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
ld a, SCRIPT_OAKSLAB_PLAYER_WALKS_TO_OAK
@@ -293,7 +293,7 @@ OaksLabPlayerReceivesPikachuScript:
and a
ret nz
ld a, TEXT_OAKSLAB_PLAYER_RECEIVED_MON
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
xor a
ld [wJoyIgnore], a
@@ -317,7 +317,7 @@ OaksLabRivalChallengesPlayerScript:
ld a, MUSIC_MEET_RIVAL
call PlayMusic
ld a, TEXT_OAKSLAB_RIVAL_ILL_TAKE_YOU_ON
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
ld a, $1
ldh [hNPCPlayerRelativePosPerspective], a
@@ -338,8 +338,8 @@ OaksLabRivalChallengesPlayerScript:
ret
OaksLabRivalStartBattleScript:
- ld a, [wd730]
- bit 0, a
+ ld a, [wStatusFlags5]
+ bit BIT_SCRIPTED_NPC_MOVEMENT, a
ret nz
ld a, OAKSLAB_RIVAL
@@ -352,9 +352,9 @@ OaksLabRivalStartBattleScript:
ld hl, OaksLabRivalIPickedTheWrongPokemonText
ld de, OaksLabRivalAmIGreatOrWhatText
call SaveEndBattleTextPointers
- ld hl, wd72d
- set 6, [hl]
- set 7, [hl]
+ ld hl, wStatusFlags3
+ set BIT_TALKED_TO_TRAINER, [hl]
+ set BIT_PRINT_END_BATTLE_TEXT, [hl]
xor a
ld [wJoyIgnore], a
ld a, PLAYER_DIR_UP
@@ -403,7 +403,7 @@ OaksLabRivalStartsExitScript:
ld c, 20
call DelayFrames
ld a, TEXT_OAKSLAB_RIVAL_SMELL_YOU_LATER
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
farcall Music_RivalAlternateStart
ld a, OAKSLAB_RIVAL
@@ -436,8 +436,8 @@ OaksLabRivalStartsExitScript:
db -1 ; end
OaksLabPlayerWatchRivalExitScript:
- ld a, [wd730]
- bit 0, a
+ ld a, [wStatusFlags5]
+ bit BIT_SCRIPTED_NPC_MOVEMENT, a
jr nz, .checkRivalPosition
ld a, ~(A_BUTTON | B_BUTTON)
ld [wJoyIgnore], a
@@ -478,7 +478,7 @@ OaksLabPikachuEscapesPokeballScript:
farcall SchedulePikachuSpawnForAfterText
call EnablePikachuOverworldSpriteDrawing
ld a, TEXT_OAKSLAB_PIKACHU_DISLIKES_POKEBALLS1
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
ld a, SCRIPT_OAKSLAB_PIKACHU_DISLIKES_POKEBALLS
ld [wOaksLabCurScript], a
@@ -486,7 +486,7 @@ OaksLabPikachuEscapesPokeballScript:
OaksLabPikachuDislikesPokeballsScript:
ld a, TEXT_OAKSLAB_PIKACHU_DISLIKES_POKEBALLS2
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
xor a
ld [wJoyIgnore], a
@@ -501,7 +501,7 @@ OaksLabRivalArrivesAtOaksRequestScript:
call StopAllMusic
farcall Music_RivalAlternateStart
ld a, TEXT_OAKSLAB_RIVAL_GRAMPS
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
callfar OaksLabPikachuMovementScript
call OaksLabCalcRivalMovementScript
@@ -539,8 +539,8 @@ OaksLabRivalFaceUpOakFaceDownScript:
ret
OaksLabOakGivesPokedexScript:
- ld a, [wd730]
- bit 0, a
+ ld a, [wStatusFlags5]
+ bit BIT_SCRIPTED_NPC_MOVEMENT, a
ret nz
call EnableAutoTextBoxDrawing
call PlayDefaultMusic
@@ -548,21 +548,21 @@ OaksLabOakGivesPokedexScript:
ld [wJoyIgnore], a
call OaksLabRivalFaceUpOakFaceDownScript
ld a, TEXT_OAKSLAB_RIVAL_MY_POKEMON_HAS_GROWN_STRONGER
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
call DelayFrame
call OaksLabRivalFaceUpOakFaceDownScript
ld a, TEXT_OAKSLAB_OAK_I_HAVE_A_REQUEST
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
call DelayFrame
call OaksLabRivalFaceUpOakFaceDownScript
ld a, TEXT_OAKSLAB_OAK_MY_INVENTION_POKEDEX
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
call DelayFrame
ld a, TEXT_OAKSLAB_OAK_GOT_POKEDEX
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
call Delay3
ld a, HS_POKEDEX_1
@@ -573,7 +573,7 @@ OaksLabOakGivesPokedexScript:
predef HideObject
call OaksLabRivalFaceUpOakFaceDownScript
ld a, TEXT_OAKSLAB_OAK_THAT_WAS_MY_DREAM
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
ld a, OAKSLAB_RIVAL
ldh [hSpriteIndex], a
@@ -582,7 +582,7 @@ OaksLabOakGivesPokedexScript:
call SetSpriteFacingDirectionAndDelay
call Delay3
ld a, TEXT_OAKSLAB_RIVAL_LEAVE_IT_ALL_TO_ME
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
SetEvent EVENT_GOT_POKEDEX
ld a, SCRIPT_VIRIDIANCITY_AFTER_POKEDEX
@@ -604,7 +604,7 @@ OaksLabOakGivesPokedexScript:
call StopAllMusic
farcall Music_RivalAlternateStart
ld a, OAKSLAB_RIVAL
- ldh [hSpriteIndexOrTextID], a
+ ldh [hSpriteIndex], a
ld de, wNPCMovementDirections2
call MoveSprite
@@ -613,8 +613,8 @@ OaksLabOakGivesPokedexScript:
ret
OaksLabRivalLeavesWithPokedexScript:
- ld a, [wd730]
- bit 0, a
+ ld a, [wStatusFlags5]
+ bit BIT_SCRIPTED_NPC_MOVEMENT, a
ret nz
call PlayDefaultMusic
ld a, HS_OAKS_LAB_RIVAL
@@ -837,8 +837,8 @@ OaksLabOak1Text:
jr nz, .mon_around_the_world
CheckEventReuseA EVENT_BATTLED_RIVAL_IN_OAKS_LAB
jr nz, .check_got_parcel
- ld a, [wd72e]
- bit 3, a
+ ld a, [wStatusFlags4]
+ bit BIT_GOT_STARTER, a
jr nz, .already_got_pokemon
ld hl, .GoAheadItsYours
call PrintText
@@ -1018,7 +1018,7 @@ OaksLabPlayerReceivedMonText:
text_asm
ld a, STARTER_PIKACHU
ld [wPlayerStarter], a
- ld [wd11e], a
+ ld [wNamedObjectIndex], a
call GetMonName
ld a, $1
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
@@ -1029,17 +1029,17 @@ OaksLabPlayerReceivedMonText:
xor a
ld [wMonDataLocation], a
ld a, 5
- ld [wCurEnemyLVL], a
+ ld [wCurEnemyLevel], a
ld a, STARTER_PIKACHU
- ld [wd11e], a
- ld [wcf91], a
+ ld [wPokedexNum], a
+ ld [wCurPartySpecies], a
call AddPartyMon
ld a, LIGHT_BALL_GSC
ld [wPartyMon1CatchRate], a
call DisablePikachuOverworldSpriteDrawing
SetEvent EVENT_GOT_STARTER
- ld hl, wd72e
- set 3, [hl]
+ ld hl, wStatusFlags4
+ set BIT_GOT_STARTER, [hl]
jp TextScriptEnd
OaksLabOakGivesText:
diff --git a/scripts/PalletTown.asm b/scripts/PalletTown.asm
index 9c8ab449..5bdd774b 100644
--- a/scripts/PalletTown.asm
+++ b/scripts/PalletTown.asm
@@ -57,7 +57,7 @@ PalletTownOakHeyWaitScript:
xor a
ld [wOakWalkedToPlayer], a
ld a, TEXT_PALLETTOWN_OAK
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
ld [wJoyIgnore], a
@@ -103,8 +103,8 @@ PalletTownOakWalksToPlayerScript:
ret
PalletTownOakGreetsPlayerScript:
- ld a, [wd730]
- bit 0, a
+ ld a, [wStatusFlags5]
+ bit BIT_SCRIPTED_NPC_MOVEMENT, a
ret nz
ld a, ~(A_BUTTON | B_BUTTON)
ld [wJoyIgnore], a
@@ -115,7 +115,7 @@ PalletTownOakGreetsPlayerScript:
ld a, SPRITE_FACING_UP
ld [wSprite01StateData1FacingDirection], a
ld a, TEXT_PALLETTOWN_OAK
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
; oak faces the horizontally adjacent patch of grass to face pikachu
ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
@@ -145,7 +145,7 @@ PalletTownPikachuBattleScript:
ld a, STARTER_PIKACHU
ld [wCurOpponent], a
ld a, 5
- ld [wCurEnemyLVL], a
+ ld [wCurEnemyLevel], a
; trigger the next script
ld a, SCRIPT_PALLETTOWN_AFTER_PIKACHU_BATTLE
@@ -156,14 +156,14 @@ PalletTownAfterPikachuBattleScript:
ld a, 2
ld [wOakWalkedToPlayer], a
ld a, TEXT_PALLETTOWN_OAK
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
ld a, $2
ld [wSprite01StateData1MovementStatus], a
ld a, SPRITE_FACING_UP
ld [wSprite01StateData1FacingDirection], a
ld a, TEXT_PALLETTOWN_OAK_COME_WITH_ME
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
ld [wJoyIgnore], a
diff --git a/scripts/PewterCity.asm b/scripts/PewterCity.asm
index 9437a55d..6cd96acc 100644
--- a/scripts/PewterCity.asm
+++ b/scripts/PewterCity.asm
@@ -37,7 +37,7 @@ ENDC
ld a, SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
ld [wJoyIgnore], a
ld a, TEXT_PEWTERCITY_YOUNGSTER
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
jp DisplayTextID
PewterCityPlayerLeavingEastCoords:
@@ -60,10 +60,10 @@ PewterCitySuperNerd1ShowsPlayerMuseumScript:
ldh [hSpriteImageIndex], a
call SpriteFunc_34a1
call PlayDefaultMusic
- ld hl, wFlags_0xcd60
- set 4, [hl]
+ ld hl, wMiscFlags
+ set BIT_NO_SPRITE_UPDATES, [hl]
ld a, TEXT_PEWTERCITY_SUPER_NERD1_ITS_RIGHT_HERE
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
ld a, $3c
ldh [hSpriteScreenYCoord], a
@@ -92,8 +92,8 @@ MovementData_PewterMuseumGuyExit:
db -1 ; end
PewterCityHideSuperNerd1Script:
- ld a, [wd730]
- bit 0, a
+ ld a, [wStatusFlags5]
+ bit BIT_SCRIPTED_NPC_MOVEMENT, a
ret nz
ld a, HS_MUSEUM_GUY
ld [wMissableObjectIndex], a
@@ -125,10 +125,10 @@ PewterCityYoungsterShowsPlayerGymScript:
ldh [hSpriteFacingDirection], a
call SpriteFunc_34a1
call PlayDefaultMusic
- ld hl, wFlags_0xcd60
- set 4, [hl]
+ ld hl, wMiscFlags
+ set BIT_NO_SPRITE_UPDATES, [hl]
ld a, TEXT_PEWTERCITY_YOUNGSTER_GO_TAKE_ON_BROCK
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
ld a, $3c
ldh [hSpriteScreenYCoord], a
@@ -158,8 +158,8 @@ MovementData_PewterGymGuyExit:
db -1 ; end
PewterCityHideYoungsterScript:
- ld a, [wd730]
- bit 0, a
+ ld a, [wStatusFlags5]
+ bit BIT_SCRIPTED_NPC_MOVEMENT, a
ret nz
ld a, HS_GYM_GUY
ld [wMissableObjectIndex], a
diff --git a/scripts/PewterGym.asm b/scripts/PewterGym.asm
index a2f4eaa3..b8d8898f 100644
--- a/scripts/PewterGym.asm
+++ b/scripts/PewterGym.asm
@@ -1,7 +1,7 @@
PewterGym_Script:
ld hl, wCurrentMapScriptFlags
- bit 6, [hl]
- res 6, [hl]
+ bit BIT_CUR_MAP_LOADED_2, [hl]
+ res BIT_CUR_MAP_LOADED_2, [hl]
call nz, .LoadNames
call EnableAutoTextBoxDrawing
ld hl, PewterGymTrainerHeaders
@@ -46,20 +46,20 @@ PewterGymBrockPostBattle:
; fallthrough
PewterGymScriptReceiveTM34:
ld a, TEXT_PEWTERGYM_BROCK_WAIT_TAKE_THIS
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
SetEvent EVENT_BEAT_BROCK
lb bc, TM_BIDE, 1
call GiveItem
jr nc, .BagFull
ld a, TEXT_PEWTERGYM_RECEIVED_TM34
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
SetEvent EVENT_GOT_TM34
jr .gymVictory
.BagFull
ld a, TEXT_PEWTERGYM_TM34_NO_ROOM
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
.gymVictory
ld hl, wObtainedBadges
@@ -112,9 +112,9 @@ PewterGymBrockText:
.beforeBeat
ld hl, .PreBattleText
call PrintText
- ld hl, wd72d
- set 6, [hl]
- set 7, [hl]
+ ld hl, wStatusFlags3
+ set BIT_TALKED_TO_TRAINER, [hl]
+ set BIT_PRINT_END_BATTLE_TEXT, [hl]
ld hl, PewterGymBrockReceivedBoulderBadgeText
ld de, PewterGymBrockReceivedBoulderBadgeText
call SaveEndBattleTextPointers
diff --git a/scripts/PewterMart.asm b/scripts/PewterMart.asm
index 0a5baac2..49a91977 100644
--- a/scripts/PewterMart.asm
+++ b/scripts/PewterMart.asm
@@ -1,6 +1,6 @@
PewterMart_Script:
call EnableAutoTextBoxDrawing
- ld a, TRUE
+ ld a, 1 << BIT_NO_AUTO_TEXT_BOX
ld [wAutoTextBoxDrawingControl], a
ret
diff --git a/scripts/PokemonFanClub.asm b/scripts/PokemonFanClub.asm
index a648b92b..f14b126b 100644
--- a/scripts/PokemonFanClub.asm
+++ b/scripts/PokemonFanClub.asm
@@ -238,11 +238,11 @@ PokemonFanClubChairmanText:
.print
xor a
ld [wUpdateSpritesEnabled], a
- ld hl, wd730
- set 6, [hl]
+ ld hl, wStatusFlags5
+ set BIT_NO_TEXT_DELAY, [hl]
callfar PrintFanClubPortrait
- ld hl, wd730
- res 6, [hl]
+ ld hl, wStatusFlags5
+ res BIT_NO_TEXT_DELAY, [hl]
call GBPalWhiteOutWithDelay3
call ReloadTilesetTilePatterns
call RestoreScreenTilesAndReloadTilePatterns
diff --git a/scripts/PokemonMansion1F.asm b/scripts/PokemonMansion1F.asm
index b294a247..d06a234a 100644
--- a/scripts/PokemonMansion1F.asm
+++ b/scripts/PokemonMansion1F.asm
@@ -10,8 +10,8 @@ PokemonMansion1F_Script:
Mansion1CheckReplaceSwitchDoorBlocks:
ld hl, wCurrentMapScriptFlags
- bit 5, [hl]
- res 5, [hl]
+ bit BIT_CUR_MAP_LOADED_1, [hl]
+ res BIT_CUR_MAP_LOADED_1, [hl]
ret z
CheckEvent EVENT_MANSION_SWITCH_ON
jr nz, .switchTurnedOn
@@ -52,7 +52,7 @@ Mansion1Script_Switches::
xor a
ldh [hJoyHeld], a
ld a, TEXT_POKEMONMANSION1F_SWITCH
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
jp DisplayTextID
PokemonMansion1F_ScriptPointers:
@@ -103,7 +103,7 @@ PokemonMansion1FSwitchText:
ld a, $1
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
ld hl, wCurrentMapScriptFlags
- set 5, [hl]
+ set BIT_CUR_MAP_LOADED_1, [hl]
ld hl, .PressedText
call PrintText
ld a, SFX_GO_INSIDE
diff --git a/scripts/PokemonMansion2F.asm b/scripts/PokemonMansion2F.asm
index bc3d78e9..7da9e50f 100644
--- a/scripts/PokemonMansion2F.asm
+++ b/scripts/PokemonMansion2F.asm
@@ -10,8 +10,8 @@ PokemonMansion2F_Script:
Mansion2CheckReplaceSwitchDoorBlocks:
ld hl, wCurrentMapScriptFlags
- bit 5, [hl]
- res 5, [hl]
+ bit BIT_CUR_MAP_LOADED_1, [hl]
+ res BIT_CUR_MAP_LOADED_1, [hl]
ret z
CheckEvent EVENT_MANSION_SWITCH_ON
jr nz, .switchTurnedOn
@@ -48,7 +48,7 @@ Mansion2Script_Switches::
xor a
ldh [hJoyHeld], a
ld a, TEXT_POKEMONMANSION2F_SWITCH
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
jp DisplayTextID
PokemonMansion2F_ScriptPointers:
@@ -108,7 +108,7 @@ PokemonMansion2FSwitchText:
ld a, $1
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
ld hl, wCurrentMapScriptFlags
- set 5, [hl]
+ set BIT_CUR_MAP_LOADED_1, [hl]
ld hl, .PressedText
call PrintText
ld a, SFX_GO_INSIDE
diff --git a/scripts/PokemonMansion3F.asm b/scripts/PokemonMansion3F.asm
index f64357d5..de8bd1dd 100644
--- a/scripts/PokemonMansion3F.asm
+++ b/scripts/PokemonMansion3F.asm
@@ -10,8 +10,8 @@ PokemonMansion3F_Script:
Mansion3CheckReplaceSwitchDoorBlocks:
ld hl, wCurrentMapScriptFlags
- bit 5, [hl]
- res 5, [hl]
+ bit BIT_CUR_MAP_LOADED_1, [hl]
+ res BIT_CUR_MAP_LOADED_1, [hl]
ret z
CheckEvent EVENT_MANSION_SWITCH_ON
jr nz, .switchTurnedOn
@@ -60,17 +60,17 @@ PokemonMansion3FDefaultScript:
.isPlayerFallingDownHole:
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
Mansion3Script_Switches::
@@ -80,7 +80,7 @@ Mansion3Script_Switches::
xor a
ldh [hJoyHeld], a
ld a, TEXT_POKEMONMANSION3F_SWITCH
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
jp DisplayTextID
PokemonMansion3F_TextPointers:
diff --git a/scripts/PokemonMansionB1F.asm b/scripts/PokemonMansionB1F.asm
index 74f1648e..e31bbd3e 100644
--- a/scripts/PokemonMansionB1F.asm
+++ b/scripts/PokemonMansionB1F.asm
@@ -10,8 +10,8 @@ PokemonMansionB1F_Script:
MansionB1FCheckReplaceSwitchDoorBlocks:
ld hl, wCurrentMapScriptFlags
- bit 5, [hl]
- res 5, [hl]
+ bit BIT_CUR_MAP_LOADED_1, [hl]
+ res BIT_CUR_MAP_LOADED_1, [hl]
ret z
CheckEvent EVENT_MANSION_SWITCH_ON
jr nz, .switchTurnedOn
@@ -50,7 +50,7 @@ Mansion4Script_Switches::
xor a
ldh [hJoyHeld], a
ld a, TEXT_POKEMONMANSIONB1F_SWITCH
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
jp DisplayTextID
PokemonMansionB1F_ScriptPointers:
diff --git a/scripts/PokemonTower2F.asm b/scripts/PokemonTower2F.asm
index b4d09619..4a7abbb6 100644
--- a/scripts/PokemonTower2F.asm
+++ b/scripts/PokemonTower2F.asm
@@ -49,7 +49,7 @@ ENDC
ldh [hSpriteFacingDirection], a
call SetSpriteFacingDirectionAndDelay
ld a, TEXT_POKEMONTOWER2F_RIVAL
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
xor a
ldh [hJoyHeld], a
@@ -69,7 +69,7 @@ PokemonTower2FDefeatedRivalScript:
ld [wJoyIgnore], a
SetEvent EVENT_BEAT_POKEMON_TOWER_RIVAL
ld a, TEXT_POKEMONTOWER2F_RIVAL
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
ld de, PokemonTower2FRivalDownThenRightMovement
CheckEvent EVENT_POKEMON_TOWER_RIVAL_ON_LEFT
@@ -110,8 +110,8 @@ PokemonTower2FRivalDownThenRightMovement:
db -1 ; end
PokemonTower2FRivalExitsScript:
- ld a, [wd730]
- bit 0, a
+ ld a, [wStatusFlags5]
+ bit BIT_SCRIPTED_NPC_MOVEMENT, a
ret nz
ld a, HS_POKEMON_TOWER_2F_RIVAL
ld [wMissableObjectIndex], a
@@ -139,9 +139,9 @@ PokemonTower2FRivalText:
.do_battle
ld hl, .WhatBringsYouHereText
call PrintText
- ld hl, wd72d
- set 6, [hl]
- set 7, [hl]
+ ld hl, wStatusFlags3
+ set BIT_TALKED_TO_TRAINER, [hl]
+ set BIT_PRINT_END_BATTLE_TEXT, [hl]
ld hl, .DefeatedText
ld de, .VictoryText
call SaveEndBattleTextPointers
diff --git a/scripts/PokemonTower5F.asm b/scripts/PokemonTower5F.asm
index 6482993d..b35a2f0a 100644
--- a/scripts/PokemonTower5F.asm
+++ b/scripts/PokemonTower5F.asm
@@ -17,8 +17,8 @@ PokemonTower5FDefaultScript:
ld hl, PokemonTower5FPurifiedZoneCoords
call ArePlayerCoordsInArray
jr c, .in_purified_zone
- ld hl, wd72e
- res 4, [hl]
+ ld hl, wStatusFlags4
+ res BIT_NO_BATTLES, [hl]
ResetEvent EVENT_IN_PURIFIED_ZONE
jp CheckFightingMapTrainers
.in_purified_zone
@@ -28,15 +28,15 @@ PokemonTower5FDefaultScript:
ldh [hJoyHeld], a
ld a, D_RIGHT | D_LEFT | D_UP | D_DOWN
ld [wJoyIgnore], a
- ld hl, wd72e
- set 4, [hl]
+ ld hl, wStatusFlags4
+ set BIT_NO_BATTLES, [hl]
predef HealParty
call GBFadeOutToWhite
call Delay3
call Delay3
call GBFadeInFromWhite
ld a, TEXT_POKEMONTOWER5F_PURIFIEDZONE
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
xor a
ld [wJoyIgnore], a
diff --git a/scripts/PokemonTower6F.asm b/scripts/PokemonTower6F.asm
index f2e99586..cf246c56 100644
--- a/scripts/PokemonTower6F.asm
+++ b/scripts/PokemonTower6F.asm
@@ -31,12 +31,12 @@ PokemonTower6FDefaultScript:
xor a
ldh [hJoyHeld], a
ld a, TEXT_POKEMONTOWER6F_BEGONE
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
ld a, RESTLESS_SOUL
ld [wCurOpponent], a
ld a, 30
- ld [wCurEnemyLVL], a
+ ld [wCurEnemyLevel], a
ld a, SCRIPT_POKEMONTOWER6F_MAROWAK_BATTLE
ld [wPokemonTower6FCurScript], a
ld [wCurMapScript], a
@@ -52,8 +52,8 @@ PokemonTower6FMarowakBattleScript:
jp z, PokemonTower6FSetDefaultScript
ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
ld [wJoyIgnore], a
- ld a, [wd72d]
- bit 6, a
+ ld a, [wStatusFlags3]
+ bit BIT_TALKED_TO_TRAINER, a
ret nz
call UpdateSprites
ld a, D_RIGHT | D_LEFT | D_UP | D_DOWN
@@ -63,7 +63,7 @@ PokemonTower6FMarowakBattleScript:
jr nz, .did_not_defeat
SetEvent EVENT_BEAT_GHOST_MAROWAK
ld a, TEXT_POKEMONTOWER6F_MAROWAK_DEPARTED
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
xor a
ld [wJoyIgnore], a
@@ -79,8 +79,8 @@ PokemonTower6FMarowakBattleScript:
xor a
ld [wSpritePlayerStateData2MovementByte1], a
ld [wOverrideSimulatedJoypadStatesMask], a
- ld hl, wd730
- set 7, [hl]
+ ld hl, wStatusFlags5
+ set BIT_SCRIPTED_MOVEMENT_STATE, [hl]
ld a, SCRIPT_POKEMONTOWER6F_PLAYER_MOVING
ld [wPokemonTower6FCurScript], a
ld [wCurMapScript], a
diff --git a/scripts/PokemonTower7F.asm b/scripts/PokemonTower7F.asm
index 5334afd2..79c091b6 100644
--- a/scripts/PokemonTower7F.asm
+++ b/scripts/PokemonTower7F.asm
@@ -64,7 +64,7 @@ PokemonTower7FScript_60d2a:
ld a, $1
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
ld a, TEXT_POKEMONTOWER7F_TEXT4
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
ld [wJoyIgnore], a
@@ -87,7 +87,7 @@ PokemonTower7FScript1:
ld de, PokemonTower7FMovementData_60d7a
.asm_60d8c
ld a, POKEMONTOWER7F_JESSIE
- ldh [hSpriteIndexOrTextID], a
+ ldh [hSpriteIndex], a
call MoveSprite
ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
ld [wJoyIgnore], a
@@ -98,8 +98,8 @@ PokemonTower7FScript1:
PokemonTower7FScript2:
ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
ld [wJoyIgnore], a
- ld a, [wd730]
- bit 0, a
+ ld a, [wStatusFlags5]
+ bit BIT_SCRIPTED_NPC_MOVEMENT, a
ret nz
PokemonTower7FScript3:
ld a, SPRITE_FACING_DOWN
@@ -118,7 +118,7 @@ PokemonTower7FScript4:
ld de, PokemonTower7FMovementData_60d7b
.asm_60dcc
ld a, POKEMONTOWER7F_JAMES
- ldh [hSpriteIndexOrTextID], a
+ ldh [hSpriteIndex], a
call MoveSprite
ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
ld [wJoyIgnore], a
@@ -129,8 +129,8 @@ PokemonTower7FScript4:
PokemonTower7FScript5:
ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
ld [wJoyIgnore], a
- ld a, [wd730]
- bit 0, a
+ ld a, [wStatusFlags5]
+ bit BIT_SCRIPTED_NPC_MOVEMENT, a
ret nz
PokemonTower7FScript6:
ld a, $2
@@ -146,12 +146,12 @@ PokemonTower7FScript6:
ld a, ~(A_BUTTON | B_BUTTON)
ld [wJoyIgnore], a
ld a, TEXT_POKEMONTOWER7F_TEXT5
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
PokemonTower7FScript7:
- ld hl, wd72d
- set 6, [hl]
- set 7, [hl]
+ ld hl, wStatusFlags3
+ set BIT_TALKED_TO_TRAINER, [hl]
+ set BIT_PRINT_END_BATTLE_TEXT, [hl]
ld hl, PokemonTower7FJessieJamesEndBattleText
ld de, PokemonTower7FJessieJamesEndBattleText
call SaveEndBattleTextPointers
@@ -183,7 +183,7 @@ PokemonTower7FScript8:
ld a, $1
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
ld a, TEXT_POKEMONTOWER7F_TEXT6
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
xor a
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
@@ -248,8 +248,8 @@ PokemonTower7FWarpToMrFujiHouseScript:
ld [wDestinationWarpID], a
ld a, LAVENDER_TOWN
ld [wLastMap], a
- ld hl, wd72d
- set 3, [hl]
+ ld hl, wStatusFlags3
+ set BIT_WARP_FROM_CUR_SCRIPT, [hl]
ld a, SCRIPT_POKEMONTOWER7F_SCRIPT0
ld [wPokemonTower7FCurScript], a
ret
diff --git a/scripts/RedsHouse1F_2.asm b/scripts/RedsHouse1F_2.asm
index c7e37989..a7c8d051 100644
--- a/scripts/RedsHouse1F_2.asm
+++ b/scripts/RedsHouse1F_2.asm
@@ -1,6 +1,6 @@
RedsHouse1FPrintMomText::
- ld a, [wd72e]
- bit 3, a ; received a Pokémon from Oak?
+ ld a, [wStatusFlags4]
+ bit BIT_GOT_STARTER, a
jp nz, RedsHouse1FMomHealScript
ld hl, .WakeUpText
call PrintText
diff --git a/scripts/RocketHideoutB1F.asm b/scripts/RocketHideoutB1F.asm
index f6c64bda..9354a0c7 100644
--- a/scripts/RocketHideoutB1F.asm
+++ b/scripts/RocketHideoutB1F.asm
@@ -10,8 +10,8 @@ RocketHideoutB1F_Script:
RocketHideoutB1FDoorCallbackScript:
ld hl, wCurrentMapScriptFlags
- bit 5, [hl]
- res 5, [hl]
+ bit BIT_CUR_MAP_LOADED_1, [hl]
+ res BIT_CUR_MAP_LOADED_1, [hl]
ret z
CheckEvent EVENT_677
jr nz, .door_open
diff --git a/scripts/RocketHideoutB2F.asm b/scripts/RocketHideoutB2F.asm
index 3a7ffa9b..7a5c2e4a 100644
--- a/scripts/RocketHideoutB2F.asm
+++ b/scripts/RocketHideoutB2F.asm
@@ -23,8 +23,8 @@ RocketHideoutB2FDefaultScript:
call DecodeArrowMovementRLE
cp $ff
jp z, CheckFightingMapTrainers
- ld hl, wd736
- set 7, [hl]
+ ld hl, wMovementFlags
+ set BIT_SPINNING, [hl]
call StartSimulatingJoypadStates
ld a, SFX_ARROW_TILES
call PlaySound
@@ -262,8 +262,8 @@ RocketHideoutB2FPlayerSpinningScript:
jr nz, LoadSpinnerArrowTiles
xor a
ld [wJoyIgnore], a
- ld hl, wd736
- res 7, [hl]
+ ld hl, wMovementFlags
+ res BIT_SPINNING, [hl]
ld a, SCRIPT_ROCKETHIDEOUTB2F_DEFAULT
ld [wCurMapScript], a
ret
diff --git a/scripts/RocketHideoutB3F.asm b/scripts/RocketHideoutB3F.asm
index 03681bef..0c0e02ea 100644
--- a/scripts/RocketHideoutB3F.asm
+++ b/scripts/RocketHideoutB3F.asm
@@ -23,8 +23,8 @@ RocketHideoutB3FDefaultScript:
call DecodeArrowMovementRLE
cp $ff
jp z, CheckFightingMapTrainers
- ld hl, wd736
- set 7, [hl]
+ ld hl, wMovementFlags
+ set BIT_SPINNING, [hl]
call StartSimulatingJoypadStates
ld a, SFX_ARROW_TILES
call PlaySound
@@ -119,8 +119,8 @@ RocketHideoutB3FPlayerSpinningScript:
jp nz, LoadSpinnerArrowTiles
xor a
ld [wJoyIgnore], a
- ld hl, wd736
- res 7, [hl]
+ ld hl, wMovementFlags
+ res BIT_SPINNING, [hl]
ld a, SCRIPT_ROCKETHIDEOUTB3F_DEFAULT
ld [wCurMapScript], a
ret
@@ -165,7 +165,7 @@ RocketHideoutB3FRocket2Text:
jp TextScriptEnd
RocketHideoutB3FRocket2BattleText:
- text_far _RocketHideout3BattleTxt
+ text_far _RocketHideout3BattleText
text_end
RocketHideoutB3FRocket2EndBattleText:
diff --git a/scripts/RocketHideoutB4F.asm b/scripts/RocketHideoutB4F.asm
index 81e11696..2365ff70 100644
--- a/scripts/RocketHideoutB4F.asm
+++ b/scripts/RocketHideoutB4F.asm
@@ -49,7 +49,7 @@ RocketHideoutB4FBeatGiovanniScript:
ld [wJoyIgnore], a
SetEvent EVENT_BEAT_ROCKET_HIDEOUT_GIOVANNI
ld a, TEXT_ROCKETHIDEOUTB4F_GIOVANNI_HOPE_WE_MEET_AGAIN
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
call GBFadeOutToBlack
ld a, HS_ROCKET_HIDEOUT_B4F_GIOVANNI
@@ -63,7 +63,7 @@ RocketHideoutB4FBeatGiovanniScript:
xor a
ld [wJoyIgnore], a
ld hl, wCurrentMapScriptFlags
- set 5, [hl]
+ set BIT_CUR_MAP_LOADED_1, [hl]
ld a, SCRIPT_ROCKETHIDEOUTB4F_DEFAULT
ld [wRocketHideoutB4FCurScript], a
ld [wCurMapScript], a
@@ -108,7 +108,7 @@ RocketHideoutB4FScript_455a5:
ld a, $1
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
ld a, TEXT_ROCKETHIDEOUTB4F_TEXT11
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
xor a
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
@@ -137,7 +137,7 @@ RocketHideoutB4FScript4:
ld de, RocketHideoutB4FJessieJamesMovementData_45606
.asm_45617
ld a, ROCKETHIDEOUTB4F_JAMES
- ldh [hSpriteIndexOrTextID], a
+ ldh [hSpriteIndex], a
call MoveSprite
ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
ld [wJoyIgnore], a
@@ -148,8 +148,8 @@ RocketHideoutB4FScript4:
RocketHideoutB4FScript5:
ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
ld [wJoyIgnore], a
- ld a, [wd730]
- bit 0, a
+ ld a, [wStatusFlags5]
+ bit BIT_SCRIPTED_NPC_MOVEMENT, a
ret nz
RocketHideoutB4FScript6:
ld a, $2
@@ -171,7 +171,7 @@ RocketHideoutB4FScript7:
ld de, RocketHideoutB4FJessieJamesMovementData_45605
.asm_4565f
ld a, ROCKETHIDEOUTB4F_JESSIE
- ldh [hSpriteIndexOrTextID], a
+ ldh [hSpriteIndex], a
call MoveSprite
ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
ld [wJoyIgnore], a
@@ -182,8 +182,8 @@ RocketHideoutB4FScript7:
RocketHideoutB4FScript8:
ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
ld [wJoyIgnore], a
- ld a, [wd730]
- bit 0, a
+ ld a, [wStatusFlags5]
+ bit BIT_SCRIPTED_NPC_MOVEMENT, a
ret nz
ld a, SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
ld [wJoyIgnore], a
@@ -199,12 +199,12 @@ RocketHideoutB4FScript9:
.asm_45697
call Delay3
ld a, TEXT_ROCKETHIDEOUTB4F_TEXT12
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
RocketHideoutB4FScript10:
- ld hl, wd72d
- set 6, [hl]
- set 7, [hl]
+ ld hl, wStatusFlags3
+ set BIT_TALKED_TO_TRAINER, [hl]
+ set BIT_PRINT_END_BATTLE_TEXT, [hl]
ld hl, RocketHideoutB4FJessieJamesEndBattleText
ld de, RocketHideoutB4FJessieJamesEndBattleText
call SaveEndBattleTextPointers
@@ -237,7 +237,7 @@ RocketHideoutB4FScript11:
ld a, $1
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
ld a, TEXT_ROCKETHIDEOUTB4F_TEXT13
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
xor a
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
@@ -350,9 +350,9 @@ RocketHideoutB4FGiovanniText:
jp nz, .beat_giovanni
ld hl, .ImpressedYouGotHereText
call PrintText
- ld hl, wd72d
- set 6, [hl]
- set 7, [hl]
+ ld hl, wStatusFlags3
+ set BIT_TALKED_TO_TRAINER, [hl]
+ set BIT_PRINT_END_BATTLE_TEXT, [hl]
ld hl, .WhatCannotBeText
ld de, .WhatCannotBeText
call SaveEndBattleTextPointers
diff --git a/scripts/RocketHideoutElevator.asm b/scripts/RocketHideoutElevator.asm
index 71ff0758..bd6fb498 100644
--- a/scripts/RocketHideoutElevator.asm
+++ b/scripts/RocketHideoutElevator.asm
@@ -1,12 +1,12 @@
RocketHideoutElevator_Script:
ld hl, wCurrentMapScriptFlags
- bit 5, [hl]
- res 5, [hl]
+ bit BIT_CUR_MAP_LOADED_1, [hl]
+ res BIT_CUR_MAP_LOADED_1, [hl]
push hl
call nz, RocketHideoutElevatorStoreWarpEntriesScript
pop hl
- bit 7, [hl]
- res 7, [hl]
+ bit BIT_CUR_MAP_USED_ELEVATOR, [hl]
+ res BIT_CUR_MAP_USED_ELEVATOR, [hl]
call nz, RocketHideoutElevatorShakeScript
xor a
ld [wAutoTextBoxDrawingControl], a
diff --git a/scripts/Route11Gate2F.asm b/scripts/Route11Gate2F.asm
index da690ad6..c9f183e1 100644
--- a/scripts/Route11Gate2F.asm
+++ b/scripts/Route11Gate2F.asm
@@ -24,7 +24,7 @@ Route11Gate2FOaksAideText:
ldh [hOaksAideRequirement], a
ld a, ITEMFINDER
ldh [hOaksAideRewardItem], a
- ld [wd11e], a
+ ld [wNamedObjectIndex], a
call GetItemName
ld h, d
ld l, e
diff --git a/scripts/Route12.asm b/scripts/Route12.asm
index ea7b66ca..ea9fc567 100644
--- a/scripts/Route12.asm
+++ b/scripts/Route12.asm
@@ -28,12 +28,12 @@ Route12DefaultScript:
ResetEventReuseHL EVENT_FIGHT_ROUTE12_SNORLAX
jp z, CheckFightingMapTrainers
ld a, TEXT_ROUTE12_SNORLAX_WOKE_UP
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
ld a, SNORLAX
ld [wCurOpponent], a
ld a, 30
- ld [wCurEnemyLVL], a
+ ld [wCurEnemyLevel], a
ld a, HS_ROUTE_12_SNORLAX
ld [wMissableObjectIndex], a
predef HideObject
@@ -51,7 +51,7 @@ Route12SnorlaxPostBattleScript:
cp $2
jr z, .caught_snorlax
ld a, TEXT_ROUTE12_SNORLAX_CALMED_DOWN
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
.caught_snorlax
SetEvent EVENT_BEAT_ROUTE12_SNORLAX
diff --git a/scripts/Route12SuperRodHouse.asm b/scripts/Route12SuperRodHouse.asm
index 551949d0..54867248 100644
--- a/scripts/Route12SuperRodHouse.asm
+++ b/scripts/Route12SuperRodHouse.asm
@@ -7,8 +7,8 @@ Route12SuperRodHouse_TextPointers:
Route12SuperRodHouseFishingGuruText:
text_asm
- ld a, [wd728]
- bit 5, a ; received super rod?
+ ld a, [wStatusFlags1]
+ bit BIT_GOT_SUPER_ROD, a
jr nz, .got_item
ld hl, .DoYouLikeToFishText
call PrintText
@@ -19,8 +19,8 @@ Route12SuperRodHouseFishingGuruText:
lb bc, SUPER_ROD, 1
call GiveItem
jr nc, .bag_full
- ld hl, wd728
- set 5, [hl] ; received super rod
+ ld hl, wStatusFlags1
+ set BIT_GOT_SUPER_ROD, [hl]
ld hl, .ReceivedSuperRodText
jr .done
.bag_full
diff --git a/scripts/Route15Gate2F.asm b/scripts/Route15Gate2F.asm
index 0e04367b..831b66e6 100644
--- a/scripts/Route15Gate2F.asm
+++ b/scripts/Route15Gate2F.asm
@@ -14,9 +14,9 @@ Route15Gate2FOaksAideText:
ldh [hOaksAideRequirement], a
ld a, EXP_ALL
ldh [hOaksAideRewardItem], a
- ld [wd11e], a
+ ld [wNamedObjectIndex], a
call GetItemName
- ld hl, wcd6d
+ ld hl, wNameBuffer
ld de, wOaksAideRewardItemName
ld bc, ITEM_NAME_LENGTH
call CopyData
diff --git a/scripts/Route16.asm b/scripts/Route16.asm
index f51bd00e..6e3da97c 100644
--- a/scripts/Route16.asm
+++ b/scripts/Route16.asm
@@ -28,12 +28,12 @@ Route16DefaultScript:
ResetEventReuseHL EVENT_FIGHT_ROUTE16_SNORLAX
jp z, CheckFightingMapTrainers
ld a, TEXT_ROUTE16_SNORLAX_WOKE_UP
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
ld a, SNORLAX
ld [wCurOpponent], a
ld a, 30
- ld [wCurEnemyLVL], a
+ ld [wCurEnemyLevel], a
ld a, HS_ROUTE_16_SNORLAX
ld [wMissableObjectIndex], a
predef HideObject
@@ -52,7 +52,7 @@ Route16SnorlaxPostBattleScript:
cp $2
jr z, .caught
ld a, TEXT_ROUTE16_SNORLAX_RETURNED_TO_MOUNTAINS
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
.caught
SetEvent EVENT_BEAT_ROUTE16_SNORLAX
diff --git a/scripts/Route16Gate1F.asm b/scripts/Route16Gate1F.asm
index 2d9777fc..a8bf2f0f 100644
--- a/scripts/Route16Gate1F.asm
+++ b/scripts/Route16Gate1F.asm
@@ -1,6 +1,6 @@
Route16Gate1F_Script:
- ld hl, wd732
- res 5, [hl]
+ ld hl, wStatusFlags6
+ res BIT_ALWAYS_ON_BIKE, [hl]
call EnableAutoTextBoxDrawing
ld a, [wRoute16Gate1FCurScript]
ld hl, Route16Gate1F_ScriptPointers
@@ -20,7 +20,7 @@ Route16Gate1FDefaultScript:
call ArePlayerCoordsInArray
ret nc
ld a, TEXT_ROUTE16GATE1F_GUARD_WAIT_UP
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
xor a
ldh [hJoyHeld], a
@@ -60,7 +60,7 @@ Route16Gate1FPlayerMovingUpScript:
Route16Gate1FGuardScript:
ld a, TEXT_ROUTE16GATE1F_GUARD
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
ld a, $1
ld [wSimulatedJoypadStatesIndex], a
@@ -77,8 +77,8 @@ Route16Gate1FPlayerMovingRightScript:
ret nz
xor a
ld [wJoyIgnore], a
- ld hl, wd730
- res 7, [hl]
+ ld hl, wStatusFlags5
+ res BIT_SCRIPTED_MOVEMENT_STATE, [hl]
ld a, SCRIPT_ROUTE16GATE1F_DEFAULT
ld [wRoute16Gate1FCurScript], a
ret
diff --git a/scripts/Route18Gate1F.asm b/scripts/Route18Gate1F.asm
index 8f08638c..a2b4dcdf 100644
--- a/scripts/Route18Gate1F.asm
+++ b/scripts/Route18Gate1F.asm
@@ -1,6 +1,6 @@
Route18Gate1F_Script:
- ld hl, wd732
- res 5, [hl]
+ ld hl, wStatusFlags6
+ res BIT_ALWAYS_ON_BIKE, [hl]
call EnableAutoTextBoxDrawing
ld a, [wRoute18Gate1FCurScript]
ld hl, Route18Gate1F_ScriptPointers
@@ -20,7 +20,7 @@ Route18Gate1FDefaultScript:
call ArePlayerCoordsInArray
ret nc
ld a, TEXT_ROUTE18GATE1F_GUARD_EXCUSE_ME
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
xor a
ldh [hJoyHeld], a
@@ -60,7 +60,7 @@ Route18Gate1FPlayerMovingUpScript:
Route18Gate1FGuardScript:
ld a, TEXT_ROUTE18GATE1F_GUARD
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
ld a, $1
ld [wSimulatedJoypadStatesIndex], a
@@ -77,8 +77,8 @@ Route18Gate1FPlayerMovingRightScript:
ret nz
xor a
ld [wJoyIgnore], a
- ld hl, wd730
- res 7, [hl]
+ ld hl, wStatusFlags5
+ res BIT_SCRIPTED_MOVEMENT_STATE, [hl]
ld a, SCRIPT_ROUTE18GATE1F_DEFAULT
ld [wRoute18Gate1FCurScript], a
ret
diff --git a/scripts/Route22.asm b/scripts/Route22.asm
index 40e2ea92..d4149252 100644
--- a/scripts/Route22.asm
+++ b/scripts/Route22.asm
@@ -103,8 +103,8 @@ Route22FirstRivalBattleScript:
ret
Route22Rival1StartBattleScript:
- ld a, [wd730]
- bit 0, a
+ ld a, [wStatusFlags5]
+ bit BIT_SCRIPTED_NPC_MOVEMENT, a
ret nz
ld a, [wSavedCoordIndex]
cp 1 ; index of second, lower entry in Route22DefaultScript.Route22RivalBattleCoords
@@ -123,11 +123,11 @@ Route22Rival1StartBattleScript:
xor a
ld [wJoyIgnore], a
ld a, TEXT_ROUTE22_RIVAL1
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
- ld hl, wd72d
- set 6, [hl]
- set 7, [hl]
+ ld hl, wStatusFlags3
+ set BIT_TALKED_TO_TRAINER, [hl]
+ set BIT_PRINT_END_BATTLE_TEXT, [hl]
ld hl, Route22Rival1DefeatedText
ld de, Route22Rival1VictoryText
call SaveEndBattleTextPointers
@@ -170,7 +170,7 @@ Route22Rival1AfterBattleScript:
ld [wJoyIgnore], a
SetEvent EVENT_BEAT_ROUTE22_RIVAL_1ST_BATTLE
ld a, TEXT_ROUTE22_RIVAL1
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
call StopAllMusic
farcall Music_RivalAlternateStart
@@ -221,8 +221,8 @@ Route22Rival1ExitMovementData2:
db -1 ; end
Route22Rival1ExitScript:
- ld a, [wd730]
- bit 0, a
+ ld a, [wStatusFlags5]
+ bit BIT_SCRIPTED_NPC_MOVEMENT, a
ret nz
xor a
ld [wJoyIgnore], a
@@ -256,8 +256,8 @@ Route22SecondRivalBattleScript:
ret
Route22Rival2StartBattleScript:
- ld a, [wd730]
- bit 0, a
+ ld a, [wStatusFlags5]
+ bit BIT_SCRIPTED_NPC_MOVEMENT, a
ret nz
ld a, ROUTE22_RIVAL2
ldh [hSpriteIndex], a
@@ -278,11 +278,11 @@ Route22Rival2StartBattleScript:
xor a
ld [wJoyIgnore], a
ld a, TEXT_ROUTE22_RIVAL2
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
- ld hl, wd72d
- set 6, [hl]
- set 7, [hl]
+ ld hl, wStatusFlags3
+ set BIT_TALKED_TO_TRAINER, [hl]
+ set BIT_PRINT_END_BATTLE_TEXT, [hl]
ld hl, Route22Rival2DefeatedText
ld de, Route22Rival2VictoryText
call SaveEndBattleTextPointers
@@ -323,7 +323,7 @@ Route22Rival2AfterBattleScript:
ld [wJoyIgnore], a
SetEvent EVENT_BEAT_ROUTE22_RIVAL_2ND_BATTLE
ld a, TEXT_ROUTE22_RIVAL2
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
call StopAllMusic
farcall Music_RivalAlternateStartAndTempo
@@ -359,8 +359,8 @@ Route22Rival2ExitMovementData2:
db -1 ; end
Route22Rival2ExitScript:
- ld a, [wd730]
- bit 0, a
+ ld a, [wStatusFlags5]
+ bit BIT_SCRIPTED_NPC_MOVEMENT, a
ret nz
xor a
ld [wJoyIgnore], a
diff --git a/scripts/Route22Gate.asm b/scripts/Route22Gate.asm
index 4ed252d4..97b4ae6a 100644
--- a/scripts/Route22Gate.asm
+++ b/scripts/Route22Gate.asm
@@ -27,7 +27,7 @@ Route22GateDefaultScript:
ld a, SPRITE_FACING_LEFT
ld [wSprite01StateData1FacingDirection], a
ld a, TEXT_ROUTE22GATE_GUARD
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
ret
diff --git a/scripts/Route23.asm b/scripts/Route23.asm
index 044d5e50..ac4853d8 100644
--- a/scripts/Route23.asm
+++ b/scripts/Route23.asm
@@ -7,8 +7,8 @@ Route23_Script:
Route23SetVictoryRoadBoulders:
ld hl, wCurrentMapScriptFlags
- bit 6, [hl]
- res 6, [hl]
+ bit BIT_CUR_MAP_LOADED_2, [hl]
+ res BIT_CUR_MAP_LOADED_2, [hl]
ret z
ResetEvents EVENT_VICTORY_ROAD_2_BOULDER_ON_SWITCH1, EVENT_VICTORY_ROAD_2_BOULDER_ON_SWITCH2
ResetEvents EVENT_VICTORY_ROAD_3_BOULDER_ON_SWITCH1, EVENT_VICTORY_ROAD_3_BOULDER_ON_SWITCH2
@@ -46,7 +46,7 @@ Route23DefaultScript:
ret nc
.not_past_victory_road
ld a, e
- ldh [hSpriteIndexOrTextID], a
+ ldh [hSpriteIndex], a
ld a, c
ld [wWhichBadge], a
ld b, FLAG_TEST
@@ -81,7 +81,7 @@ Route23CopyBadgeTextScript:
ld a, [hli]
ld h, [hl]
ld l, a
- ld de, wcd6d
+ ld de, wNameBuffer
.copyTextLoop
ld a, [hli]
ld [de], a
diff --git a/scripts/Route24.asm b/scripts/Route24.asm
index a5454773..29c90868 100644
--- a/scripts/Route24.asm
+++ b/scripts/Route24.asm
@@ -31,7 +31,7 @@ Route24DefaultScript:
xor a
ldh [hJoyHeld], a
ld a, TEXT_ROUTE24_COOLTRAINER_M1
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
CheckAndResetEvent EVENT_NUGGET_REWARD_AVAILABLE
ret z
@@ -68,7 +68,7 @@ Route24AfterRocketBattleScript:
ld [wJoyIgnore], a
SetEvent EVENT_BEAT_ROUTE24_ROCKET
ld a, TEXT_ROUTE24_COOLTRAINER_M1
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
xor a
ld [wJoyIgnore], a
@@ -120,13 +120,13 @@ Route24CooltrainerM1Text:
call PrintText
ld hl, .JoinTeamRocketText
call PrintText
- ld hl, wd72d
- set 6, [hl]
- set 7, [hl]
+ ld hl, wStatusFlags3
+ set BIT_TALKED_TO_TRAINER, [hl]
+ set BIT_PRINT_END_BATTLE_TEXT, [hl]
ld hl, .DefeatedText
ld de, .DefeatedText
call SaveEndBattleTextPointers
- ldh a, [hSpriteIndexOrTextID]
+ ldh a, [hSpriteIndex]
ld [wSpriteIndex], a
call EngageMapTrainer
call InitBattleEnemyParameters
@@ -293,8 +293,8 @@ Route24CooltrainerM4Text:
and a
jr nz, .asm_515d0
ld a, CHARMANDER
- ld [wd11e], a
- ld [wcf91], a
+ ld [wNamedObjectIndex], a
+ ld [wCurPartySpecies], a
call GetMonName
ld a, $1
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
diff --git a/scripts/Route25.asm b/scripts/Route25.asm
index 501592f9..8cb59c30 100644
--- a/scripts/Route25.asm
+++ b/scripts/Route25.asm
@@ -17,8 +17,8 @@ Route25ShowHideBillScript:
xor a
ld [wBillsHouseCurScript], a
ld hl, wCurrentMapScriptFlags
- bit 6, [hl]
- res 6, [hl]
+ bit BIT_CUR_MAP_LOADED_2, [hl]
+ res BIT_CUR_MAP_LOADED_2, [hl]
ret z
CheckEventHL EVENT_LEFT_BILLS_HOUSE_AFTER_HELPING
ret nz
diff --git a/scripts/Route2Gate.asm b/scripts/Route2Gate.asm
index a198dbd7..795b210e 100644
--- a/scripts/Route2Gate.asm
+++ b/scripts/Route2Gate.asm
@@ -14,9 +14,9 @@ Route2GateOaksAideText:
ldh [hOaksAideRequirement], a
ld a, HM_FLASH
ldh [hOaksAideRewardItem], a
- ld [wd11e], a
+ ld [wNamedObjectIndex], a
call GetItemName
- ld hl, wcd6d
+ ld hl, wNameBuffer
ld de, wOaksAideRewardItemName
ld bc, ITEM_NAME_LENGTH
call CopyData
diff --git a/scripts/Route5Gate.asm b/scripts/Route5Gate.asm
index d6e086ce..0ccf9fae 100644
--- a/scripts/Route5Gate.asm
+++ b/scripts/Route5Gate.asm
@@ -17,8 +17,8 @@ Route5GateMovePlayerUpScript:
jp StartSimulatingJoypadStates
Route5GateDefaultScript:
- ld a, [wd728]
- bit 6, a
+ ld a, [wStatusFlags1]
+ bit BIT_GAVE_SAFFRON_GUARDS_DRINK, a
ret nz
ld hl, .PlayerInCoordsArray
call ArePlayerCoordsInArray
@@ -32,7 +32,7 @@ Route5GateDefaultScript:
and a
jr nz, .have_drink
ld a, TEXT_ROUTE5GATE_GUARD_GEE_IM_THIRSTY
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
call Route5GateMovePlayerUpScript
ld a, SCRIPT_ROUTE5GATE_PLAYER_MOVING
@@ -40,10 +40,10 @@ Route5GateDefaultScript:
ret
.have_drink
ld a, TEXT_ROUTE5GATE_GUARD_GIVE_DRINK
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
- ld hl, wd728
- set 6, [hl]
+ ld hl, wStatusFlags1
+ set BIT_GAVE_SAFFRON_GUARDS_DRINK, [hl]
ret
.PlayerInCoordsArray:
@@ -69,8 +69,8 @@ Route5Gate_TextPointers:
SaffronGateGuardText:
text_asm
- ld a, [wd728]
- bit 6, a
+ ld a, [wStatusFlags1]
+ bit BIT_GAVE_SAFFRON_GUARDS_DRINK, a
jr nz, .thanks_for_drink
farcall RemoveGuardDrink
ldh a, [hItemToRemoveID]
@@ -86,8 +86,8 @@ SaffronGateGuardText:
.have_drink
ld hl, SaffronGateGuardGiveDrinkText
call PrintText
- ld hl, wd728
- set 6, [hl]
+ ld hl, wStatusFlags1
+ set BIT_GAVE_SAFFRON_GUARDS_DRINK, [hl]
jp TextScriptEnd
.thanks_for_drink
diff --git a/scripts/Route6Gate.asm b/scripts/Route6Gate.asm
index db4cfcab..48228c7d 100644
--- a/scripts/Route6Gate.asm
+++ b/scripts/Route6Gate.asm
@@ -11,8 +11,8 @@ Route6Gate_ScriptPointers:
dw_const Route6GatePlayerMovingScript, SCRIPT_ROUTE6GATE_PLAYER_MOVING
Route6GateDefaultScript:
- ld a, [wd728]
- bit 6, a
+ ld a, [wStatusFlags1]
+ bit BIT_GAVE_SAFFRON_GUARDS_DRINK, a
ret nz
ld hl, .PlayerInCoordsArray
call ArePlayerCoordsInArray
@@ -26,17 +26,17 @@ Route6GateDefaultScript:
and a
jr nz, .have_drink
ld a, TEXT_ROUTE6GATE_GUARD_GEE_IM_THIRSTY
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
call Route6GateMovePlayerDownScript
ld a, SCRIPT_ROUTE6GATE_PLAYER_MOVING
ld [wRoute6GateCurScript], a
ret
.have_drink
- ld hl, wd728
- set 6, [hl]
+ ld hl, wStatusFlags1
+ set BIT_GAVE_SAFFRON_GUARDS_DRINK, [hl]
ld a, TEXT_ROUTE6GATE_GUARD_GIVE_DRINK
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
jp DisplayTextID
.PlayerInCoordsArray:
@@ -55,8 +55,8 @@ Route6GatePlayerMovingScript:
ret
Route6GateMovePlayerDownScript:
- ld hl, wd730
- set 7, [hl]
+ ld hl, wStatusFlags5
+ set BIT_SCRIPTED_MOVEMENT_STATE, [hl]
ld a, D_DOWN
ld [wSimulatedJoypadStatesEnd], a
ld a, $1
diff --git a/scripts/Route7Gate.asm b/scripts/Route7Gate.asm
index 0260fb48..e599e147 100644
--- a/scripts/Route7Gate.asm
+++ b/scripts/Route7Gate.asm
@@ -11,8 +11,8 @@ Route7Gate_ScriptPointers:
dw_const Route7PlayerMovingScript, SCRIPT_ROUTE7GATE_PLAYER_MOVING
Route7GateMovePlayerLeftScript:
- ld hl, wd730
- set 7, [hl]
+ ld hl, wStatusFlags5
+ set BIT_SCRIPTED_MOVEMENT_STATE, [hl]
ld a, D_LEFT
ld [wSimulatedJoypadStatesEnd], a
ld a, $1
@@ -23,8 +23,8 @@ Route7GateMovePlayerLeftScript:
ret
Route7DefaultScript:
- ld a, [wd728]
- bit 6, a
+ ld a, [wStatusFlags1]
+ bit BIT_GAVE_SAFFRON_GUARDS_DRINK, a
ret nz
ld hl, .PlayerInCoordsArray
call ArePlayerCoordsInArray
@@ -38,7 +38,7 @@ Route7DefaultScript:
and a
jr nz, .have_drink
ld a, TEXT_ROUTE7GATE_GUARD_GEE_IM_THIRSTY
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
call Route7GateMovePlayerLeftScript
ld a, SCRIPT_ROUTE7GATE_PLAYER_MOVING
@@ -46,10 +46,10 @@ Route7DefaultScript:
ret
.have_drink
ld a, TEXT_ROUTE7GATE_GUARD_GIVE_DRINK
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
- ld hl, wd728
- set 6, [hl]
+ ld hl, wStatusFlags1
+ set BIT_GAVE_SAFFRON_GUARDS_DRINK, [hl]
ret
.PlayerInCoordsArray:
diff --git a/scripts/Route8Gate.asm b/scripts/Route8Gate.asm
index 07e3f5c7..eb8b3957 100644
--- a/scripts/Route8Gate.asm
+++ b/scripts/Route8Gate.asm
@@ -10,8 +10,8 @@ Route8Gate_ScriptPointers:
dw_const Route8GatePlayerMovingScript, SCRIPT_ROUTE8GATE_PLAYER_MOVING
Route8GateMovePlayerRightScript:
- ld hl, wd730
- set 7, [hl]
+ ld hl, wStatusFlags5
+ set BIT_SCRIPTED_MOVEMENT_STATE, [hl]
ld a, D_RIGHT
ld [wSimulatedJoypadStatesEnd], a
ld a, $1
@@ -22,8 +22,8 @@ Route8GateMovePlayerRightScript:
ret
Route8GateDefaultScript:
- ld a, [wd728]
- bit 6, a
+ ld a, [wStatusFlags1]
+ bit BIT_GAVE_SAFFRON_GUARDS_DRINK, a
ret nz
ld hl, .PlayerInCoordsArray
call ArePlayerCoordsInArray
@@ -37,17 +37,17 @@ Route8GateDefaultScript:
and a
jr nz, .have_drink
ld a, TEXT_ROUTE8GATE_GUARD_GEE_IM_THIRSTY
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
call Route8GateMovePlayerRightScript
ld a, SCRIPT_ROUTE8GATE_PLAYER_MOVING
ld [wRoute8GateCurScript], a
ret
.have_drink
- ld hl, wd728
- set 6, [hl]
+ ld hl, wStatusFlags1
+ set BIT_GAVE_SAFFRON_GUARDS_DRINK, [hl]
ld a, TEXT_ROUTE8GATE_GUARD_GIVE_DRINK
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
jp DisplayTextID
.PlayerInCoordsArray:
diff --git a/scripts/SSAnne2F.asm b/scripts/SSAnne2F.asm
index d1e6b069..8fb6f18d 100644
--- a/scripts/SSAnne2F.asm
+++ b/scripts/SSAnne2F.asm
@@ -85,14 +85,14 @@ SSAnne2FSetFacingDirectionScript:
jp SetSpriteFacingDirectionAndDelay
SSAnne2FRivalStartBattleScript:
- ld a, [wd730]
- bit 0, a
+ ld a, [wStatusFlags5]
+ bit BIT_SCRIPTED_NPC_MOVEMENT, a
ret nz
call SSAnne2FSetFacingDirectionScript
xor a
ld [wJoyIgnore], a
ld a, TEXT_SSANNE2F_RIVAL
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
call Delay3
ld a, OPP_RIVAL2
@@ -112,7 +112,7 @@ SSAnne2FRivalAfterBattleScript:
ld a, D_RIGHT | D_LEFT | D_UP | D_DOWN
ld [wJoyIgnore], a
ld a, TEXT_SSANNE2F_RIVAL_CUT_MASTER
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
ld a, SSANNE2F_RIVAL
ldh [hSpriteIndex], a
@@ -145,8 +145,8 @@ SSAnne2FRivalAfterBattleScript:
db -1 ; end
SSAnne2FRivalExitScript:
- ld a, [wd730]
- bit 0, a
+ ld a, [wStatusFlags5]
+ bit BIT_SCRIPTED_NPC_MOVEMENT, a
ret nz
xor a
ld [wJoyIgnore], a
@@ -172,9 +172,9 @@ SSAnne2FRivalText:
text_asm
ld hl, .Text
call PrintText
- ld hl, wd72d
- set 6, [hl]
- set 7, [hl]
+ ld hl, wStatusFlags3
+ set BIT_TALKED_TO_TRAINER, [hl]
+ set BIT_PRINT_END_BATTLE_TEXT, [hl]
ld hl, SSAnne2FRivalDefeatedText
ld de, SSAnne2FRivalVictoryText
call SaveEndBattleTextPointers
diff --git a/scripts/SSAnneCaptainsRoom.asm b/scripts/SSAnneCaptainsRoom.asm
index 8926b604..1c49245b 100644
--- a/scripts/SSAnneCaptainsRoom.asm
+++ b/scripts/SSAnneCaptainsRoom.asm
@@ -5,8 +5,8 @@ SSAnneCaptainsRoom_Script:
SSAnneCaptainsRoomEventScript:
CheckEvent EVENT_GOT_HM01
ret nz
- ld hl, wd72d
- set 5, [hl]
+ ld hl, wStatusFlags3
+ set BIT_NO_NPC_FACE_PLAYER, [hl]
ret
SSAnneCaptainsRoom_TextPointers:
@@ -29,8 +29,8 @@ SSAnneCaptainsRoomCaptainText:
ld hl, SSAnneCaptainsRoomCaptainReceivedHM01Text
call PrintText
SetEvent EVENT_GOT_HM01
- ld hl, wd72d
- res 5, [hl]
+ ld hl, wStatusFlags3
+ res BIT_NO_NPC_FACE_PLAYER, [hl]
jr .done
.bag_full
ld hl, SSAnneCaptainsRoomCaptainHM01NoRoomText
@@ -62,8 +62,8 @@ SSAnneCaptainsRoomRubCaptainsBackText:
jr z, .loop
call PlayDefaultMusic
SetEvent EVENT_RUBBED_CAPTAINS_BACK
- ld hl, wd72d
- res 5, [hl]
+ ld hl, wStatusFlags3
+ res BIT_NO_NPC_FACE_PLAYER, [hl]
jp TextScriptEnd
SSAnneCaptainsRoomCaptainIFeelMuchBetterText:
diff --git a/scripts/SafariZoneGate.asm b/scripts/SafariZoneGate.asm
index db91146c..a0f4d828 100644
--- a/scripts/SafariZoneGate.asm
+++ b/scripts/SafariZoneGate.asm
@@ -21,7 +21,7 @@ SafariZoneGateDefaultScript:
call ArePlayerCoordsInArray
ret nc
ld a, TEXT_SAFARIZONEGATE_SAFARI_ZONE_WORKER1_1
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
ld [wJoyIgnore], a
@@ -59,7 +59,7 @@ SafariZoneGateWouldYouLikeToJoinScript:
ld [wJoyIgnore], a
call UpdateSprites
ld a, TEXT_SAFARIZONEGATE_SAFARI_ZONE_WORKER1_WOULD_YOU_LIKE_TO_JOIN
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
ld [wJoyIgnore], a
@@ -84,7 +84,7 @@ SafariZoneGateLeavingSafariScript:
ld a, D_RIGHT | D_LEFT | D_UP | D_DOWN
ld [wJoyIgnore], a
ld a, TEXT_SAFARIZONEGATE_SAFARI_ZONE_WORKER1_GOOD_HAUL_COME_AGAIN
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
xor a
ld [wNumSafariBalls], a
@@ -98,7 +98,7 @@ SafariZoneGateLeavingSafariScript:
jr .return
.leaving_early
ld a, TEXT_SAFARIZONEGATE_SAFARI_ZONE_WORKER1_LEAVING_EARLY
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
.return
ret
diff --git a/scripts/SaffronGym.asm b/scripts/SaffronGym.asm
index 96e453df..4bfb7b2c 100644
--- a/scripts/SaffronGym.asm
+++ b/scripts/SaffronGym.asm
@@ -1,7 +1,7 @@
SaffronGym_Script:
ld hl, wCurrentMapScriptFlags
- bit 6, [hl]
- res 6, [hl]
+ bit BIT_CUR_MAP_LOADED_2, [hl]
+ res BIT_CUR_MAP_LOADED_2, [hl]
call nz, .LoadNames
call EnableAutoTextBoxDrawing
ld hl, SaffronGymTrainerHeaders
@@ -45,20 +45,20 @@ SaffronGymSabrinaPostBattle:
SaffronGymSabrinaReceiveTM46Script:
ld a, TEXT_SAFFRONGYM_SABRINA_MARSH_BADGE_INFO
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
SetEvent EVENT_BEAT_SABRINA
lb bc, TM_PSYWAVE, 1
call GiveItem
jr nc, .BagFull
ld a, TEXT_SAFFRONGYM_SABRINA_RECEIVED_TM46
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
SetEvent EVENT_GOT_TM46
jr .gymVictory
.BagFull
ld a, TEXT_SAFFRONGYM_SABRINA_TM46_NO_ROOM
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
.gymVictory
ld hl, wObtainedBadges
@@ -120,9 +120,9 @@ SaffronGymSabrinaText:
.beforeBeat
ld hl, .Text
call PrintText
- ld hl, wd72d
- set 6, [hl]
- set 7, [hl]
+ ld hl, wStatusFlags3
+ set BIT_TALKED_TO_TRAINER, [hl]
+ set BIT_PRINT_END_BATTLE_TEXT, [hl]
ld hl, .ReceivedMarshBadgeText
ld de, .ReceivedMarshBadgeText
call SaveEndBattleTextPointers
diff --git a/scripts/SeafoamIslands1F.asm b/scripts/SeafoamIslands1F.asm
index 27ddc276..a3ec3c99 100644
--- a/scripts/SeafoamIslands1F.asm
+++ b/scripts/SeafoamIslands1F.asm
@@ -1,9 +1,9 @@
SeafoamIslands1F_Script:
call EnableAutoTextBoxDrawing
SetEvent EVENT_IN_SEAFOAM_ISLANDS
- ld hl, wFlags_0xcd60
- bit 7, [hl]
- res 7, [hl]
+ ld hl, wMiscFlags
+ bit BIT_PUSHED_BOULDER, [hl]
+ res BIT_PUSHED_BOULDER, [hl]
jr z, .noBoulderWasPushed
ld hl, Seafoam1HolesCoords
call CheckBoulderCoords
diff --git a/scripts/SeafoamIslandsB1F.asm b/scripts/SeafoamIslandsB1F.asm
index 271775ed..0bc2ee18 100644
--- a/scripts/SeafoamIslandsB1F.asm
+++ b/scripts/SeafoamIslandsB1F.asm
@@ -1,8 +1,8 @@
SeafoamIslandsB1F_Script:
call EnableAutoTextBoxDrawing
- ld hl, wFlags_0xcd60
- bit 7, [hl]
- res 7, [hl]
+ ld hl, wMiscFlags
+ bit BIT_PUSHED_BOULDER, [hl]
+ res BIT_PUSHED_BOULDER, [hl]
jr z, .noBoulderWasPushed
ld hl, Seafoam2HolesCoords
call CheckBoulderCoords
diff --git a/scripts/SeafoamIslandsB2F.asm b/scripts/SeafoamIslandsB2F.asm
index 71ae2e1a..48b7979d 100644
--- a/scripts/SeafoamIslandsB2F.asm
+++ b/scripts/SeafoamIslandsB2F.asm
@@ -1,8 +1,8 @@
SeafoamIslandsB2F_Script:
call EnableAutoTextBoxDrawing
- ld hl, wFlags_0xcd60
- bit 7, [hl]
- res 7, [hl]
+ ld hl, wMiscFlags
+ bit BIT_PUSHED_BOULDER, [hl]
+ res BIT_PUSHED_BOULDER, [hl]
jr z, .noBoulderWasPushed
ld hl, Seafoam3HolesCoords
call CheckBoulderCoords
diff --git a/scripts/SeafoamIslandsB3F.asm b/scripts/SeafoamIslandsB3F.asm
index 8c225dcc..23dfd050 100644
--- a/scripts/SeafoamIslandsB3F.asm
+++ b/scripts/SeafoamIslandsB3F.asm
@@ -1,8 +1,8 @@
SeafoamIslandsB3F_Script:
call EnableAutoTextBoxDrawing
- ld hl, wFlags_0xcd60
- bit 7, [hl]
- res 7, [hl]
+ ld hl, wMiscFlags
+ bit BIT_PUSHED_BOULDER, [hl]
+ res BIT_PUSHED_BOULDER, [hl]
jr z, .noBoulderWasPushed
ld hl, Seafoam4HolesCoords
call CheckBoulderCoords
@@ -36,8 +36,8 @@ SeafoamIslandsB3F_Script:
ld [wDungeonWarpDestinationMap], a
ld hl, Seafoam4HolesCoords
call IsPlayerOnDungeonWarp
- ld a, [wd732]
- bit 4, a
+ ld a, [wStatusFlags6]
+ bit BIT_DUNGEON_WARP, a
ret nz
.runCurrentMapScript
ld hl, SeafoamIslandsB3F_ScriptPointers
@@ -72,8 +72,8 @@ SeafoamIslandsB3FDefaultScript:
dec a
ld [wSimulatedJoypadStatesIndex], a
call StartSimulatingJoypadStates
- ld hl, wFlags_D733
- set 2, [hl]
+ ld hl, wStatusFlags7
+ set BIT_FORCED_WARP, [hl]
ld a, SCRIPT_SEAFOAMISLANDSB3F_OBJECT_MOVING1
ld [wSeafoamIslandsB3FCurScript], a
ret
@@ -112,10 +112,10 @@ SeafoamIslandsB3FMoveObjectScript:
ld [wSimulatedJoypadStatesIndex], a
xor a
ld [wSpritePlayerStateData2MovementByte1], a
- ld hl, wd730
- set 7, [hl]
- ld hl, wFlags_D733
- set 2, [hl]
+ ld hl, wStatusFlags5
+ set BIT_SCRIPTED_MOVEMENT_STATE, [hl]
+ ld hl, wStatusFlags7
+ set BIT_FORCED_WARP, [hl]
ld a, SCRIPT_SEAFOAMISLANDSB3F_OBJECT_MOVING2
.playerNotInStrongCurrent
ld [wSeafoamIslandsB3FCurScript], a
diff --git a/scripts/SeafoamIslandsB4F.asm b/scripts/SeafoamIslandsB4F.asm
index dc7be7d1..5fe805f0 100644
--- a/scripts/SeafoamIslandsB4F.asm
+++ b/scripts/SeafoamIslandsB4F.asm
@@ -49,8 +49,8 @@ SeafoamIslandsB4FDefaultScript:
ld a, D_UP
ld [wSimulatedJoypadStatesEnd], a
call StartSimulatingJoypadStates
- ld hl, wFlags_D733
- res 2, [hl]
+ ld hl, wStatusFlags7
+ res BIT_FORCED_WARP, [hl]
ld a, SCRIPT_SEAFOAMISLANDSB4F_OBJECT_MOVING1
ld [wSeafoamIslandsB4FCurScript], a
ret
diff --git a/scripts/SilphCo10F.asm b/scripts/SilphCo10F.asm
index 7cc2c58e..d9650bc8 100644
--- a/scripts/SilphCo10F.asm
+++ b/scripts/SilphCo10F.asm
@@ -10,8 +10,8 @@ SilphCo10F_Script:
SilphCo10FGateCallbackScript:
ld hl, wCurrentMapScriptFlags
- bit 5, [hl]
- res 5, [hl]
+ bit BIT_CUR_MAP_LOADED_1, [hl]
+ res BIT_CUR_MAP_LOADED_1, [hl]
ret z
ld hl, .GateCoordinates
call SilphCo2F_SetCardKeyDoorYScript
diff --git a/scripts/SilphCo11F.asm b/scripts/SilphCo11F.asm
index be004d68..87887432 100644
--- a/scripts/SilphCo11F.asm
+++ b/scripts/SilphCo11F.asm
@@ -10,8 +10,8 @@ SilphCo11F_Script:
SilphCo11FGateCallbackScript:
ld hl, wCurrentMapScriptFlags
- bit 5, [hl]
- res 5, [hl]
+ bit BIT_CUR_MAP_LOADED_1, [hl]
+ res BIT_CUR_MAP_LOADED_1, [hl]
ret z
ld hl, SilphCo11GateCoords
call SilphCo11F_SetCardKeyDoorYScript
@@ -122,7 +122,7 @@ SilphCo11FScript_621c5:
ld a, D_RIGHT | D_LEFT | D_UP | D_DOWN
ld [wJoyIgnore], a
ld a, TEXT_SILPHCO11F_GIOVANNI
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
ld a, SILPHCO11F_GIOVANNI
ldh [hSpriteIndex], a
@@ -170,7 +170,7 @@ SilphCo11FGiovanniAfterBattleScript:
ld a, D_RIGHT | D_LEFT | D_UP | D_DOWN
ld [wJoyIgnore], a
ld a, TEXT_SILPHCO11F_GIOVANNI_YOU_RUINED_OUR_PLANS
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
call GBFadeOutToBlack
farcall SilphCo11FTeamRocketLeavesScript
@@ -183,8 +183,8 @@ SilphCo11FGiovanniAfterBattleScript:
jp SilphCo11FSetCurScript
SilphCo11FGiovanniStartBattleScript:
- ld a, [wd730]
- bit 0, a
+ ld a, [wStatusFlags5]
+ bit BIT_SCRIPTED_NPC_MOVEMENT, a
ret nz
ld a, SILPHCO11F_GIOVANNI
ldh [hSpriteIndex], a
@@ -203,9 +203,9 @@ SilphCo11FGiovanniStartBattleScript:
call Delay3
xor a
ld [wJoyIgnore], a
- ld hl, wd72d
- set 6, [hl]
- set 7, [hl]
+ ld hl, wStatusFlags3
+ set BIT_TALKED_TO_TRAINER, [hl]
+ set BIT_PRINT_END_BATTLE_TEXT, [hl]
ld hl, SilphCo10FGiovanniILostAgainText
ld de, SilphCo10FGiovanniILostAgainText
call SaveEndBattleTextPointers
@@ -245,7 +245,7 @@ SilphCo11FScript_6229c:
ld a, $1
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
ld a, TEXT_SILPHCO11F_TEXT8
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
xor a
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
@@ -314,7 +314,7 @@ SilphCo11FScript5:
ld de, SilphCo11FMovementData_6230b
.asm_6232d
ld a, SILPHCO11F_JAMES
- ldh [hSpriteIndexOrTextID], a
+ ldh [hSpriteIndex], a
call MoveSprite
ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
ld [wJoyIgnore], a
@@ -325,8 +325,8 @@ SilphCo11FScript5:
SilphCo11FScript6:
ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
ld [wJoyIgnore], a
- ld a, [wd730]
- bit 0, a
+ ld a, [wStatusFlags5]
+ bit BIT_SCRIPTED_NPC_MOVEMENT, a
ret nz
SilphCo11FScript7:
ld a, $2
@@ -352,7 +352,7 @@ SilphCo11FScript8:
ld de, SilphCo11FMovementData_62311
.asm_6237b
ld a, SILPHCO11F_JESSIE
- ldh [hSpriteIndexOrTextID], a
+ ldh [hSpriteIndex], a
call MoveSprite
ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
ld [wJoyIgnore], a
@@ -363,8 +363,8 @@ SilphCo11FScript8:
SilphCo11FScript9:
ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
ld [wJoyIgnore], a
- ld a, [wd730]
- bit 0, a
+ ld a, [wStatusFlags5]
+ bit BIT_SCRIPTED_NPC_MOVEMENT, a
ret nz
ld a, SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
ld [wJoyIgnore], a
@@ -380,12 +380,12 @@ SilphCo11FScript10:
.asm_623b1
call Delay3
ld a, TEXT_SILPHCO11F_TEXT9
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
SilphCo11FScript11:
- ld hl, wd72d
- set 6, [hl]
- set 7, [hl]
+ ld hl, wStatusFlags3
+ set BIT_TALKED_TO_TRAINER, [hl]
+ set BIT_PRINT_END_BATTLE_TEXT, [hl]
ld hl, SilphCo11FText_624c2
ld de, SilphCo11FText_624c2
call SaveEndBattleTextPointers
@@ -417,7 +417,7 @@ SilphCo11FScript12:
ld a, $1
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
ld a, TEXT_SILPHCO11F_TEXT10
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
xor a
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
diff --git a/scripts/SilphCo2F.asm b/scripts/SilphCo2F.asm
index 52241b95..7ca57c45 100644
--- a/scripts/SilphCo2F.asm
+++ b/scripts/SilphCo2F.asm
@@ -10,8 +10,8 @@ SilphCo2F_Script:
SilphCo2FGateCallbackScript:
ld hl, wCurrentMapScriptFlags
- bit 5, [hl]
- res 5, [hl]
+ bit BIT_CUR_MAP_LOADED_1, [hl]
+ res BIT_CUR_MAP_LOADED_1, [hl]
ret z
ld hl, .GateCoordinates
call SilphCo2F_SetCardKeyDoorYScript
diff --git a/scripts/SilphCo3F.asm b/scripts/SilphCo3F.asm
index df9df9e8..146cbb07 100644
--- a/scripts/SilphCo3F.asm
+++ b/scripts/SilphCo3F.asm
@@ -10,8 +10,8 @@ SilphCo3F_Script:
SilphCo3FGateCallbackScript:
ld hl, wCurrentMapScriptFlags
- bit 5, [hl]
- res 5, [hl]
+ bit BIT_CUR_MAP_LOADED_1, [hl]
+ res BIT_CUR_MAP_LOADED_1, [hl]
ret z
ld hl, .GateCoordinates
call SilphCo2F_SetCardKeyDoorYScript
diff --git a/scripts/SilphCo4F.asm b/scripts/SilphCo4F.asm
index 91453d65..f84ef995 100644
--- a/scripts/SilphCo4F.asm
+++ b/scripts/SilphCo4F.asm
@@ -10,8 +10,8 @@ SilphCo4F_Script:
SilphCo4FGateCallbackScript:
ld hl, wCurrentMapScriptFlags
- bit 5, [hl]
- res 5, [hl]
+ bit BIT_CUR_MAP_LOADED_1, [hl]
+ res BIT_CUR_MAP_LOADED_1, [hl]
ret z
ld hl, .GateCoordinates
call SilphCo4F_SetCardKeyDoorYScript
diff --git a/scripts/SilphCo5F.asm b/scripts/SilphCo5F.asm
index 1834bfa8..599c1743 100644
--- a/scripts/SilphCo5F.asm
+++ b/scripts/SilphCo5F.asm
@@ -10,8 +10,8 @@ SilphCo5F_Script:
SilphCo5FGateCallbackScript:
ld hl, wCurrentMapScriptFlags
- bit 5, [hl]
- res 5, [hl]
+ bit BIT_CUR_MAP_LOADED_1, [hl]
+ res BIT_CUR_MAP_LOADED_1, [hl]
ret z
ld hl, .GateCoordinates
call SilphCo4F_SetCardKeyDoorYScript
diff --git a/scripts/SilphCo6F.asm b/scripts/SilphCo6F.asm
index 0626ffdb..ad8e83f4 100644
--- a/scripts/SilphCo6F.asm
+++ b/scripts/SilphCo6F.asm
@@ -10,8 +10,8 @@ SilphCo6F_Script:
SilphCo6F_GateCallbackScript:
ld hl, wCurrentMapScriptFlags
- bit 5, [hl]
- res 5, [hl]
+ bit BIT_CUR_MAP_LOADED_1, [hl]
+ res BIT_CUR_MAP_LOADED_1, [hl]
ret z
ld hl, .GateCoordinates
call SilphCo4F_SetCardKeyDoorYScript
diff --git a/scripts/SilphCo7F.asm b/scripts/SilphCo7F.asm
index 74788bf6..e0bf102f 100644
--- a/scripts/SilphCo7F.asm
+++ b/scripts/SilphCo7F.asm
@@ -10,8 +10,8 @@ SilphCo7F_Script:
SilphCo7F_GateCallbackScript:
ld hl, wCurrentMapScriptFlags
- bit 5, [hl]
- res 5, [hl]
+ bit BIT_CUR_MAP_LOADED_1, [hl]
+ res BIT_CUR_MAP_LOADED_1, [hl]
ret z
ld hl, .GateCoordinates
call SilphCo7F_SetCardKeyDoorYScript
@@ -136,7 +136,7 @@ SilphCo7FDefaultScript:
ld a, MUSIC_MEET_RIVAL
call PlayMusic
ld a, TEXT_SILPHCO7F_RIVAL
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
ld a, SILPHCO7F_RIVAL
ldh [hSpriteIndex], a
@@ -167,18 +167,18 @@ SilphCo7FDefaultScript:
db -1 ; end
SilphCo7FRivalStartBattleScript:
- ld a, [wd730]
- bit 0, a
+ ld a, [wStatusFlags5]
+ bit BIT_SCRIPTED_NPC_MOVEMENT, a
ret nz
xor a
ld [wJoyIgnore], a
ld a, TEXT_SILPHCO7F_RIVAL_WAITED_HERE
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
call Delay3
- ld hl, wd72d
- set 6, [hl]
- set 7, [hl]
+ ld hl, wStatusFlags3
+ set BIT_TALKED_TO_TRAINER, [hl]
+ set BIT_PRINT_END_BATTLE_TEXT, [hl]
ld hl, SilphCo7FRivalDefeatedText
ld de, SilphCo7FRivalVictoryText
call SaveEndBattleTextPointers
@@ -206,7 +206,7 @@ SilphCo7FRivalAfterBattleScript:
ldh [hSpriteFacingDirection], a
call SetSpriteFacingDirectionAndDelay
ld a, TEXT_SILPHCO7F_RIVAL_GOOD_LUCK_TO_YOU
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
call StopAllMusic
farcall Music_RivalAlternateStart
@@ -238,8 +238,8 @@ SilphCo7FRivalAfterBattleScript:
db -1 ; end
SilphCo7FRivalExitScript:
- ld a, [wd730]
- bit 0, a
+ ld a, [wStatusFlags5]
+ bit BIT_SCRIPTED_NPC_MOVEMENT, a
ret nz
ld a, HS_SILPH_CO_7F_RIVAL
ld [wMissableObjectIndex], a
@@ -282,8 +282,8 @@ SilphCo7TrainerHeader3:
SilphCo7FSilphWorkerM1Text:
; lapras guy
text_asm
- ld a, [wd72e]
- bit 0, a ; got lapras?
+ ld a, [wStatusFlags4]
+ bit BIT_GOT_LAPRAS, a
jr z, .give_lapras
CheckEvent EVENT_BEAT_SILPH_CO_GIOVANNI
jr nz, .saved_silph
@@ -302,8 +302,8 @@ SilphCo7FSilphWorkerM1Text:
call EnableAutoTextBoxDrawing
ld hl, .LaprasDescriptionText
call PrintText
- ld hl, wd72e
- set 0, [hl]
+ ld hl, wStatusFlags4
+ set BIT_GOT_LAPRAS, [hl]
jr .done
.saved_silph
ld hl, .SavedText
diff --git a/scripts/SilphCo8F.asm b/scripts/SilphCo8F.asm
index cdd7f486..dcba85c0 100644
--- a/scripts/SilphCo8F.asm
+++ b/scripts/SilphCo8F.asm
@@ -10,8 +10,8 @@ SilphCo8F_Script:
SilphCo8FGateCallbackScript:
ld hl, wCurrentMapScriptFlags
- bit 5, [hl]
- res 5, [hl]
+ bit BIT_CUR_MAP_LOADED_1, [hl]
+ res BIT_CUR_MAP_LOADED_1, [hl]
ret z
ld hl, .GateCoordinates
call SilphCo8F_SetCardKeyDoorYScript
diff --git a/scripts/SilphCo9F.asm b/scripts/SilphCo9F.asm
index fe7f3da2..aec4dbf8 100644
--- a/scripts/SilphCo9F.asm
+++ b/scripts/SilphCo9F.asm
@@ -10,8 +10,8 @@ SilphCo9F_Script:
SilphCo9FGateCallbackScript:
ld hl, wCurrentMapScriptFlags
- bit 5, [hl]
- res 5, [hl]
+ bit BIT_CUR_MAP_LOADED_1, [hl]
+ res BIT_CUR_MAP_LOADED_1, [hl]
ret z
ld hl, .GateCoordinates
call SilphCo9F_SetCardKeyDoorYScript
diff --git a/scripts/SilphCoElevator.asm b/scripts/SilphCoElevator.asm
index a2ed009e..ffdf101e 100644
--- a/scripts/SilphCoElevator.asm
+++ b/scripts/SilphCoElevator.asm
@@ -1,12 +1,12 @@
SilphCoElevator_Script:
ld hl, wCurrentMapScriptFlags
- bit 5, [hl]
- res 5, [hl]
+ bit BIT_CUR_MAP_LOADED_1, [hl]
+ res BIT_CUR_MAP_LOADED_1, [hl]
push hl
call nz, SilphCoElevatorStoreWarpEntriesScript
pop hl
- bit 7, [hl]
- res 7, [hl]
+ bit BIT_CUR_MAP_USED_ELEVATOR, [hl]
+ res BIT_CUR_MAP_USED_ELEVATOR, [hl]
call nz, SilphCoElevatorShakeScript
xor a
ld [wAutoTextBoxDrawingControl], a
diff --git a/scripts/SummerBeachHouse.asm b/scripts/SummerBeachHouse.asm
index 285d1e97..e1a0ccca 100644
--- a/scripts/SummerBeachHouse.asm
+++ b/scripts/SummerBeachHouse.asm
@@ -167,14 +167,14 @@ ENDC
and a
jp z, Func_f23d0
call SaveScreenTilesToBuffer2
- ld hl, wd730
- set 6, [hl]
+ ld hl, wStatusFlags5
+ set BIT_NO_TEXT_DELAY, [hl]
xor a
ld [wUpdateSpritesEnabled], a
callfar Printer_PrepareSurfingMinigameHighScoreTileMap
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/scripts/SummerBeachHouse_2.asm b/scripts/SummerBeachHouse_2.asm
index 4ac1f705..6349a479 100644
--- a/scripts/SummerBeachHouse_2.asm
+++ b/scripts/SummerBeachHouse_2.asm
@@ -2,11 +2,11 @@ Func_f23d0:
call SaveScreenTilesToBuffer2
xor a
ld [wUpdateSpritesEnabled], a
- ld hl, wd730
- set 6, [hl]
+ ld hl, wStatusFlags5
+ set BIT_NO_TEXT_DELAY, [hl]
callfar PrintSurfingMinigameHighScore
- ld hl, wd730
- res 6, [hl]
+ ld hl, wStatusFlags5
+ res BIT_NO_TEXT_DELAY, [hl]
call GBPalWhiteOutWithDelay3
call ReloadTilesetTilePatterns
call RestoreScreenTilesAndReloadTilePatterns
diff --git a/scripts/TradeCenter.asm b/scripts/TradeCenter.asm
index d7e7c54c..c716484c 100644
--- a/scripts/TradeCenter.asm
+++ b/scripts/TradeCenter.asm
@@ -10,9 +10,9 @@ TradeCenter_Script:
ld a, TRADECENTER_OPPONENT
ldh [hSpriteIndex], a
call SetSpriteFacingDirection
- ld hl, wd72d
- bit 0, [hl]
- set 0, [hl]
+ ld hl, wStatusFlags3
+ bit BIT_INIT_TRADE_CENTER_FACING, [hl]
+ set BIT_INIT_TRADE_CENTER_FACING, [hl]
ret nz
ld hl, wSprite01StateData2MapY
ld a, 8 ; y
diff --git a/scripts/VermilionCity.asm b/scripts/VermilionCity.asm
index 7056a337..647446fa 100644
--- a/scripts/VermilionCity.asm
+++ b/scripts/VermilionCity.asm
@@ -3,13 +3,13 @@ VermilionCity_Script:
ld hl, wd492
res 7, [hl]
ld hl, wCurrentMapScriptFlags
- bit 6, [hl]
- res 6, [hl]
+ bit BIT_CUR_MAP_LOADED_2, [hl]
+ res BIT_CUR_MAP_LOADED_2, [hl]
push hl
call nz, VermilionCityLeftSSAnneCallbackScript
pop hl
- bit 5, [hl]
- res 5, [hl]
+ bit BIT_CUR_MAP_LOADED_1, [hl]
+ res BIT_CUR_MAP_LOADED_1, [hl]
call nz, .setFirstLockTrashCanIndex
ld hl, VermilionCity_ScriptPointers
ld a, [wVermilionCityCurScript]
@@ -64,7 +64,7 @@ VermilionCityDefaultScript:
ldh [hJoyHeld], a
ld [wSavedCoordIndex], a ; unnecessary
ld a, TEXT_VERMILIONCITY_SAILOR1
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
CheckEvent EVENT_SS_ANNE_LEFT
jr nz, .ship_departed
diff --git a/scripts/VermilionCity_2.asm b/scripts/VermilionCity_2.asm
index 52721a55..8b012659 100644
--- a/scripts/VermilionCity_2.asm
+++ b/scripts/VermilionCity_2.asm
@@ -16,8 +16,8 @@ VermilionCityPrintOfficerJennyText::
and a
jr nz, .asm_f1a62
ld a, SQUIRTLE
- ld [wd11e], a
- ld [wcf91], a
+ ld [wNamedObjectIndex], a
+ ld [wCurPartySpecies], a
call GetMonName
ld a, $1
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
diff --git a/scripts/VermilionDock.asm b/scripts/VermilionDock.asm
index 934b8d2f..ce4e5f1e 100644
--- a/scripts/VermilionDock.asm
+++ b/scripts/VermilionDock.asm
@@ -11,8 +11,8 @@ VermilionDock_Script:
jp z, VermilionDockSSAnneLeavesScript
SetEventReuseHL EVENT_STARTED_WALKING_OUT_OF_DOCK
call Delay3
- ld hl, wd730
- set 7, [hl]
+ ld hl, wStatusFlags5
+ set BIT_SCRIPTED_MOVEMENT_STATE, [hl]
ld hl, wSimulatedJoypadStatesEnd
ld a, D_UP
ld [hli], a
diff --git a/scripts/VermilionGym.asm b/scripts/VermilionGym.asm
index a4fab952..8d3a33b6 100644
--- a/scripts/VermilionGym.asm
+++ b/scripts/VermilionGym.asm
@@ -1,12 +1,12 @@
VermilionGym_Script:
ld hl, wCurrentMapScriptFlags
- bit 5, [hl]
- res 5, [hl]
+ bit BIT_CUR_MAP_LOADED_1, [hl]
+ res BIT_CUR_MAP_LOADED_1, [hl]
push hl
call nz, .LoadNames
pop hl
- bit 6, [hl]
- res 6, [hl]
+ bit BIT_CUR_MAP_LOADED_2, [hl]
+ res BIT_CUR_MAP_LOADED_2, [hl]
call nz, VermilionGymSetDoorTile
call EnableAutoTextBoxDrawing
ld hl, VermilionGymTrainerHeaders
@@ -64,20 +64,20 @@ VermilionGymLTSurgeAfterBattleScript:
VermilionGymLTSurgeReceiveTM24Script:
ld a, TEXT_VERMILIONGYM_LT_SURGE_THUNDER_BADGE_INFO
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
SetEvent EVENT_BEAT_LT_SURGE
lb bc, TM_THUNDERBOLT, 1
call GiveItem
jr nc, .bag_full
ld a, TEXT_VERMILIONGYM_LT_SURGE_RECEIVED_TM24
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
SetEvent EVENT_GOT_TM24
jr .gym_victory
.bag_full
ld a, TEXT_VERMILIONGYM_LT_SURGE_TM24_NO_ROOM
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
.gym_victory
ld hl, wObtainedBadges
@@ -127,9 +127,9 @@ VermilionGymLTSurgeText:
.before_beat
ld hl, .PreBattleText
call PrintText
- ld hl, wd72d
- set 6, [hl]
- set 7, [hl]
+ ld hl, wStatusFlags3
+ set BIT_TALKED_TO_TRAINER, [hl]
+ set BIT_PRINT_END_BATTLE_TEXT, [hl]
ld hl, VermilionGymLTSurgeReceivedThunderBadgeText
ld de, VermilionGymLTSurgeReceivedThunderBadgeText
call SaveEndBattleTextPointers
diff --git a/scripts/VermilionOldRodHouse.asm b/scripts/VermilionOldRodHouse.asm
index f170bcaf..8663de69 100644
--- a/scripts/VermilionOldRodHouse.asm
+++ b/scripts/VermilionOldRodHouse.asm
@@ -7,8 +7,8 @@ VermilionOldRodHouse_TextPointers:
VermilionOldRodHouseFishingGuruText:
text_asm
- ld a, [wd728]
- bit 3, a ; got old rod?
+ ld a, [wStatusFlags1]
+ bit BIT_GOT_OLD_ROD, a
jr nz, .got_old_rod
ld hl, .DoYouLikeToFishText
call PrintText
@@ -19,8 +19,8 @@ VermilionOldRodHouseFishingGuruText:
lb bc, OLD_ROD, 1
call GiveItem
jr nc, .bag_full
- ld hl, wd728
- set 3, [hl] ; got old rod
+ ld hl, wStatusFlags1
+ set BIT_GOT_OLD_ROD, [hl]
ld hl, .TakeThisText
jr .print_text
.bag_full
diff --git a/scripts/VictoryRoad1F.asm b/scripts/VictoryRoad1F.asm
index 42852692..b7f7a56b 100644
--- a/scripts/VictoryRoad1F.asm
+++ b/scripts/VictoryRoad1F.asm
@@ -1,7 +1,7 @@
VictoryRoad1F_Script:
ld hl, wCurrentMapScriptFlags
- bit 5, [hl]
- res 5, [hl]
+ bit BIT_CUR_MAP_LOADED_1, [hl]
+ res BIT_CUR_MAP_LOADED_1, [hl]
call nz, .next
call EnableAutoTextBoxDrawing
ld hl, VictoryRoad1TrainerHeaders
@@ -34,7 +34,7 @@ VictoryRoad1FDefaultScript:
cp $f
jp z, CheckFightingMapTrainers
ld hl, wCurrentMapScriptFlags
- set 5, [hl]
+ set BIT_CUR_MAP_LOADED_1, [hl]
SetEvent EVENT_VICTORY_ROAD_1_BOULDER_ON_SWITCH
ret
diff --git a/scripts/VictoryRoad2F.asm b/scripts/VictoryRoad2F.asm
index 67244ef4..66340503 100644
--- a/scripts/VictoryRoad2F.asm
+++ b/scripts/VictoryRoad2F.asm
@@ -1,11 +1,11 @@
VictoryRoad2F_Script:
ld hl, wCurrentMapScriptFlags
- bit 6, [hl]
- res 6, [hl]
+ bit BIT_CUR_MAP_LOADED_2, [hl]
+ res BIT_CUR_MAP_LOADED_2, [hl]
call nz, VictoryRoad2FResetBoulderEventScript
ld hl, wCurrentMapScriptFlags
- bit 5, [hl]
- res 5, [hl]
+ bit BIT_CUR_MAP_LOADED_1, [hl]
+ res BIT_CUR_MAP_LOADED_1, [hl]
call nz, VictoryRoad2FCheckBoulderEventScript
call EnableAutoTextBoxDrawing
ld hl, VictoryRoad2TrainerHeaders
@@ -27,7 +27,7 @@ VictoryRoad2FCheckBoulderEventScript:
call VictoryRoad2FReplaceTileBlockScript
pop af
.not_on_switch
- bit 7, a
+ CheckEventReuseA EVENT_VICTORY_ROAD_2_BOULDER_ON_SWITCH2
ret z
ld a, $1d
lb bc, 7, 11
@@ -46,7 +46,7 @@ VictoryRoad2FDefaultScript:
ld hl, .SwitchCoords
call CheckBoulderCoords
jp nc, CheckFightingMapTrainers
- ldh a, [hSpriteIndexOrTextID]
+ ldh a, [hSpriteIndex]
cp $f
jp z, CheckFightingMapTrainers
EventFlagAddress hl, EVENT_VICTORY_ROAD_2_BOULDER_ON_SWITCH1
@@ -63,7 +63,7 @@ VictoryRoad2FDefaultScript:
ret nz
.set_script_flag
ld hl, wCurrentMapScriptFlags
- set 5, [hl]
+ set BIT_CUR_MAP_LOADED_1, [hl]
ret
.SwitchCoords:
diff --git a/scripts/VictoryRoad3F.asm b/scripts/VictoryRoad3F.asm
index 66f5c86e..ec042e48 100644
--- a/scripts/VictoryRoad3F.asm
+++ b/scripts/VictoryRoad3F.asm
@@ -10,8 +10,8 @@ VictoryRoad3F_Script:
VictoryRoad3FCheckBoulderEventScript:
ld hl, wCurrentMapScriptFlags
- bit 5, [hl]
- res 5, [hl]
+ bit BIT_CUR_MAP_LOADED_1, [hl]
+ res BIT_CUR_MAP_LOADED_1, [hl]
ret z
CheckEventHL EVENT_VICTORY_ROAD_3_BOULDER_ON_SWITCH1
ret z
@@ -27,9 +27,9 @@ VictoryRoad3F_ScriptPointers:
dw_const EndTrainerBattle, SCRIPT_VICTORYROAD3F_END_BATTLE
VictoryRoad3FDefaultScript:
- ld hl, wFlags_0xcd60
- bit 7, [hl]
- res 7, [hl]
+ ld hl, wMiscFlags
+ bit BIT_PUSHED_BOULDER, [hl]
+ res BIT_PUSHED_BOULDER, [hl]
jp z, .check_switch_hole
ld hl, .SwitchOrHoleCoords
call CheckBoulderCoords
@@ -37,11 +37,11 @@ VictoryRoad3FDefaultScript:
ld a, [wCoordIndex]
cp $1
jr nz, .handle_hole
- ldh a, [hSpriteIndexOrTextID]
+ ldh a, [hSpriteIndex]
cp $f ; Pikachu
jp z, .check_switch_hole
ld hl, wCurrentMapScriptFlags
- set 5, [hl]
+ set BIT_CUR_MAP_LOADED_1, [hl]
SetEvent EVENT_VICTORY_ROAD_3_BOULDER_ON_SWITCH1
ret
.handle_hole
@@ -67,14 +67,14 @@ VictoryRoad3FDefaultScript:
ld a, [wCoordIndex]
cp $1
jr nz, .hole
- ld hl, wd72d
- res 4, [hl]
- ld hl, wd732
- res 4, [hl]
+ ld hl, wStatusFlags3
+ res BIT_ON_DUNGEON_WARP, [hl]
+ ld hl, wStatusFlags6
+ res BIT_DUNGEON_WARP, [hl]
ret
.hole
- ld a, [wd72d]
- bit 4, a
+ ld a, [wStatusFlags3]
+ bit BIT_ON_DUNGEON_WARP, a
jp z, CheckFightingMapTrainers
ret
diff --git a/scripts/ViridianCity.asm b/scripts/ViridianCity.asm
index 0219fc91..9ffe0950 100644
--- a/scripts/ViridianCity.asm
+++ b/scripts/ViridianCity.asm
@@ -46,7 +46,7 @@ ViridianCityCheckGymOpenScript:
cp 32
ret nz
ld a, TEXT_VIRIDIANCITY_GYM_LOCKED
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
call StartSimulatingJoypadStates
ld a, $1
@@ -78,7 +78,7 @@ ViridianCityCheckSleepingOldMan:
cp 19
ret nz
ld a, TEXT_VIRIDIANCITY_OLD_MAN_SLEEPY
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
xor a
ldh [hJoyHeld], a
@@ -101,7 +101,7 @@ ViridianCityOldManStartCatchTrainingScript:
ld a, BATTLE_TYPE_OLD_MAN
ld [wBattleType], a
ld a, 5
- ld [wCurEnemyLVL], a
+ ld [wCurEnemyLevel], a
ld a, RATTATA
ld [wCurOpponent], a
ret
@@ -125,7 +125,7 @@ ViridianCityOldManEndCatchTrainingScript:
xor a
ld [wJoyIgnore], a
ld a, TEXT_VIRIDIANCITY_OLD_MAN_YOU_NEED_TO_WEAKEN_THE_TARGET
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
xor a
ld [wBattleType], a
@@ -175,14 +175,14 @@ ViridianCityCheckWaitingOldMan:
cp 19
ret nz
ld a, VIRIDIANCITY_OLD_MAN2
- ldh [hSpriteIndexOrTextID], a
+ ldh [hSpriteIndex], a
ld a, SPRITE_FACING_RIGHT
ldh [hSpriteFacingDirection], a
call SetSpriteFacingDirectionAndDelay
ld a, SPRITE_FACING_LEFT
ld [wSpritePlayerStateData1FacingDirection], a
ld a, TEXT_VIRIDIANCITY_OLD_MAN2
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
ld a, D_UP | D_DOWN | D_LEFT | D_RIGHT | START | SELECT
ld [wJoyIgnore], a
@@ -206,7 +206,7 @@ ViridianCityOldManEndInitialCatchTrainingScript:
ld a, D_UP | D_DOWN | D_LEFT | D_RIGHT | START | SELECT
ld [wJoyIgnore], a
ld a, TEXT_VIRIDIANCITY_OLD_MAN2
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
xor a
ld [wBattleType], a
@@ -225,7 +225,7 @@ ViridianCityPostInitialCatchTraining:
ld de, ViridianCityOldManMovementData1
.move_old_man
ld a, VIRIDIANCITY_OLD_MAN2
- ldh [hSpriteIndexOrTextID], a
+ ldh [hSpriteIndex], a
call MoveSprite
ld a, SCRIPT_VIRIDIANCITY_OLD_MAN_MOVING_DOWN
ld [wViridianCityCurScript], a
@@ -243,8 +243,8 @@ ViridianCityOldManMovementData2:
db $ff
ViridianCityOldManMovingDownScript:
- ld a, [wd730]
- bit 0, a
+ ld a, [wStatusFlags5]
+ bit BIT_SCRIPTED_NPC_MOVEMENT, a
ret nz
ld a, HS_OLD_MAN_2
ld [wMissableObjectIndex], a
diff --git a/scripts/ViridianGym.asm b/scripts/ViridianGym.asm
index 5162d3bc..55d849d2 100644
--- a/scripts/ViridianGym.asm
+++ b/scripts/ViridianGym.asm
@@ -41,8 +41,8 @@ ViridianGymDefaultScript:
cp $ff
jp z, CheckFightingMapTrainers
call StartSimulatingJoypadStates
- ld hl, wd736
- set 7, [hl]
+ ld hl, wMovementFlags
+ set BIT_SPINNING, [hl]
ld a, SFX_ARROW_TILES
call PlaySound
ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
@@ -120,8 +120,8 @@ ViridianGymPlayerSpinningScript:
jr nz, .ViridianGymLoadSpinnerArrow
xor a
ld [wJoyIgnore], a
- ld hl, wd736
- res 7, [hl]
+ ld hl, wMovementFlags
+ res BIT_SPINNING, [hl]
ld a, SCRIPT_VIRIDIANGYM_DEFAULT
ld [wCurMapScript], a
ret
@@ -137,20 +137,20 @@ ViridianGymGiovanniPostBattle:
; fallthrough
ViridianGymReceiveTM27:
ld a, TEXT_VIRIDIANGYM_GIOVANNI_EARTH_BADGE_INFO
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
SetEvent EVENT_BEAT_VIRIDIAN_GYM_GIOVANNI
lb bc, TM_FISSURE, 1
call GiveItem
jr nc, .bag_full
ld a, TEXT_VIRIDIANGYM_GIOVANNI_RECEIVED_TM27
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
SetEvent EVENT_GOT_TM27
jr .gym_victory
.bag_full
ld a, TEXT_VIRIDIANGYM_GIOVANNI_TM27_NO_ROOM
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
.gym_victory
ld hl, wObtainedBadges
@@ -229,9 +229,9 @@ ViridianGymGiovanniText:
.beforeBeat
ld hl, .PreBattleText
call PrintText
- ld hl, wd72d
- set 6, [hl]
- set 7, [hl]
+ ld hl, wStatusFlags3
+ set BIT_TALKED_TO_TRAINER, [hl]
+ set BIT_PRINT_END_BATTLE_TEXT, [hl]
ld hl, .ReceivedEarthBadgeText
ld de, .ReceivedEarthBadgeText
call SaveEndBattleTextPointers
diff --git a/scripts/ViridianMart.asm b/scripts/ViridianMart.asm
index c180d149..d3b3eceb 100644
--- a/scripts/ViridianMart.asm
+++ b/scripts/ViridianMart.asm
@@ -29,7 +29,7 @@ ViridianMart_ScriptPointers:
ViridianMartDefaultScript:
call UpdateSprites
ld a, TEXT_VIRIDIANMART_CLERK_YOU_CAME_FROM_PALLET_TOWN
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
ld hl, wSimulatedJoypadStatesEnd
ld de, .PlayerMovement
@@ -52,7 +52,7 @@ ViridianMartOaksParcelScript:
ret nz
call Delay3
ld a, TEXT_VIRIDIANMART_CLERK_PARCEL_QUEST
- ldh [hSpriteIndexOrTextID], a
+ ldh [hTextID], a
call DisplayTextID
lb bc, OAKS_PARCEL, 1
call GiveItem
diff --git a/scripts/WardensHouse.asm b/scripts/WardensHouse.asm
index 1851e341..aa6be6ca 100644
--- a/scripts/WardensHouse.asm
+++ b/scripts/WardensHouse.asm
@@ -95,7 +95,7 @@ WardensHouseWardenText:
WardensHouseDisplayText:
text_asm
- ldh a, [hSpriteIndexOrTextID]
+ ldh a, [hTextID]
cp TEXT_WARDENSHOUSE_DISPLAY_LEFT
ld hl, .MerchandiseText
jr nz, .print_text
diff --git a/text/ChampionsRoom.asm b/text/ChampionsRoom.asm
index 92f23f69..9e62e5de 100644
--- a/text/ChampionsRoom.asm
+++ b/text/ChampionsRoom.asm
@@ -96,7 +96,7 @@ _ChampionsRoomOakCongratulatesPlayerText::
line "much since you"
cont "first left with"
cont "@"
- text_ram wcd6d
+ text_ram wNameBuffer
text "!"
para "<PLAYER>, you have"
diff --git a/text/CinnabarLabFossilRoom.asm b/text/CinnabarLabFossilRoom.asm
index 6701bbd0..be0bc947 100644
--- a/text/CinnabarLabFossilRoom.asm
+++ b/text/CinnabarLabFossilRoom.asm
@@ -38,7 +38,7 @@ _CinnabarLabFossilRoomScientist1FossilIsBackToLifeText::
_CinnabarLabFossilRoomScientist1SeesFossilText::
text "Oh! That is"
line "@"
- text_ram wcd6d
+ text_ram wNameBuffer
text "!"
para "It is fossil of"
@@ -60,7 +60,7 @@ _CinnabarLabFossilRoomScientist1TakesFossilText::
para "<PLAYER> handed"
line "over @"
- text_ram wcd6d
+ text_ram wNameBuffer
text "!"
prompt
diff --git a/text/Daycare.asm b/text/Daycare.asm
index a5b36b7d..21403bb5 100644
--- a/text/Daycare.asm
+++ b/text/Daycare.asm
@@ -13,7 +13,7 @@ _DaycareGentlemanWhichMonText::
_DaycareGentlemanWillLookAfterMonText::
text "Fine, I'll look"
line "after @"
- text_ram wcd6d
+ text_ram wNameBuffer
text_start
cont "for a while."
prompt
@@ -25,7 +25,7 @@ _DaycareGentlemanComeSeeMeInAWhileText::
_DaycareGentlemanMonHasGrownText::
text "Your @"
- text_ram wcd6d
+ text_ram wNameBuffer
text_start
line "has grown a lot!"
@@ -55,7 +55,7 @@ _DaycareGentlemanGotMonBackText::
_DaycareGentlemanMonNeedsMoreTimeText::
text "Back already?"
line "Your @"
- text_ram wcd6d
+ text_ram wNameBuffer
text_start
cont "needs some more"
cont "time with me."
diff --git a/text/NameRatersHouse.asm b/text/NameRatersHouse.asm
index 2c4054f6..953b4023 100644
--- a/text/NameRatersHouse.asm
+++ b/text/NameRatersHouse.asm
@@ -14,7 +14,7 @@ _NameRatersHouseNameRaterWhichPokemonText::
prompt
_NameRatersHouseNameRaterGiveItANiceNameText::
- text_ram wcd6d
+ text_ram wNameBuffer
text ", is it?"
line "That is a decent"
cont "nickname!"
@@ -48,13 +48,13 @@ _NameRatersHouseNameRaterComeAnyTimeYouLikeText::
done
_NameRatersHouseNameRaterATrulyImpeccableNameText::
- text_ram wcd6d
+ text_ram wNameBuffer
text ", is it?"
line "That is a truly"
cont "impeccable name!"
para "Take good care of"
line "@"
- text_ram wcd6d
+ text_ram wNameBuffer
text "!"
done
diff --git a/text/OaksLab.asm b/text/OaksLab.asm
index 606ade96..21a671b1 100644
--- a/text/OaksLab.asm
+++ b/text/OaksLab.asm
@@ -246,7 +246,7 @@ _OaksLabOakGivesText::
_OaksLabReceivedText::
text "<PLAYER> received"
line "a @"
- text_ram wcd6d
+ text_ram wNameBuffer
text "!@"
text_end
diff --git a/text/RocketHideoutB3F.asm b/text/RocketHideoutB3F.asm
index b7ec9e1a..3d4af616 100644
--- a/text/RocketHideoutB3F.asm
+++ b/text/RocketHideoutB3F.asm
@@ -16,7 +16,7 @@ _RocketHideoutB3FRocket1AfterBattleText::
cont "here somewhere."
done
-_RocketHideout3BattleTxt::
+_RocketHideout3BattleText::
text "We got word from"
line "upstairs that you"
cont "were coming!"
diff --git a/text/Route23.asm b/text/Route23.asm
index 921b6407..cdccbf93 100644
--- a/text/Route23.asm
+++ b/text/Route23.asm
@@ -2,12 +2,12 @@ _Route23YouDontHaveTheBadgeYetText::
text "You can pass here"
line "only if you have"
cont "the @"
- text_ram wcd6d
+ text_ram wNameBuffer
text "!"
para "You don't have the"
line "@"
- text_ram wcd6d
+ text_ram wNameBuffer
text " yet!"
para "You have to have"
@@ -19,12 +19,12 @@ _Route23OhThatIsTheBadgeText::
text "You can pass here"
line "only if you have"
cont "the @"
- text_ram wcd6d
+ text_ram wNameBuffer
text "!"
para "Oh! That is the"
line "@"
- text_ram wcd6d
+ text_ram wNameBuffer
text "!@"
text_end
diff --git a/tools/make_patch.c b/tools/make_patch.c
index ecfd67b2..77a30683 100644
--- a/tools/make_patch.c
+++ b/tools/make_patch.c
@@ -103,12 +103,14 @@ int parse_number(const char *input, int base) {
void parse_symbol_value(char *input, int *restrict bank, int *restrict address) {
char *colon = strchr(input, ':');
- if (!colon) {
- error_exit("Error: Cannot parse bank+address: \"%s\"\n", input);
+ if (colon) {
+ *colon++ = '\0';
+ *bank = parse_number(input, 16);
+ *address = parse_number(colon, 16);
+ } else {
+ *bank = 0;
+ *address = parse_number(input, 16);
}
- *colon++ = '\0';
- *bank = parse_number(input, 16);
- *address = parse_number(colon, 16);
}
void parse_symbols(const char *filename, struct Symbol **symbols) {
diff --git a/vc/pokeyellow.constants.asm b/vc/pokeyellow.constants.asm
index fb8db422..acd50717 100644
--- a/vc/pokeyellow.constants.asm
+++ b/vc/pokeyellow.constants.asm
@@ -2,7 +2,7 @@
MACRO vc_const
DEF x = \1
- PRINTLN "00:{04x:x} \1" ; same format as rgblink's .sym file
+ PRINTLN "{02x:x} \1" ; same format as rgblink's .sym file
ENDM
; [FPA 001 Begin]