diff --git a/audio/engine_1.asm b/audio/engine_1.asm index c155dda63..fc70c73dc 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 902db361e..2b5a219c8 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 35fe18158..728f5f656 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 5cecedf31..2932f1199 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 90f4c3d3d..d945c9270 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 7cb7322e6..16f3b9855 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 dc06a05d7..d1dcdd699 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 f3c1b150c..1a1ee100f 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 f9070cba0..68233dea2 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 377edcea5..3b17c6ae6 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 f1f0d4175..a6e035e70 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 a230b3d7a..3562042b1 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 0c9a3c725..d0ae3157a 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 000000000..c054b542b --- /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 005fbb14a..56aee78f4 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 eaef75f6c..e960d49bf 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 d3455d74d..74eb25253 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 7dac6d4f1..74b834bf8 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 df8a26b33..31f0edb8b 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 " found" line "@" - text_ram wcd6d + text_ram wNameBuffer text "!@" text_end @@ -1119,7 +1119,7 @@ _CantMoveText:: _MoveIsDisabledText:: text "'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 832559f80..bb8302b44 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 fd5caad20..935687b8a 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 834d89dce..47fc87e79 100644 --- a/data/text/text_5.asm +++ b/data/text/text_5.asm @@ -128,14 +128,14 @@ _MimicLearnedMoveText:: text "" line "learned" cont "@" - text_ram wcd6d + text_ram wNameBuffer text "!" prompt _MoveWasDisabledText:: text "'s" line "@" - text_ram wcd6d + text_ram wNameBuffer text " was" cont "disabled!" prompt @@ -233,7 +233,7 @@ _TransformedText:: text "" 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 ddc51d59d..f00179630 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 67492354f..1a56f352d 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 " 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 bb00403be..d95456941 100644 --- a/data/text/text_9.asm +++ b/data/text/text_9.asm @@ -59,7 +59,7 @@ _ItemUseBallText06:: _SurfingGotOnText:: text " 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 da7583325..45fbc1d5a 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 77f2ba896..69cc12030 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 95c06bf5d..a074fff74 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 b0f4f13f1..926910fcc 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/ and / 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 51dc1d374..1feebb217 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 e07c243eb..539462507 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 61fbdfa30..35f9f1a44 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 b2daebfe1..a0e869fce 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 d23df283e..58e18a3fe 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 df9145f26..b8ee4c2f3 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, "" 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, "" 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 fa373038b..9aab3feb3 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 af47ae1b4..775816c78 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 7da0dc8c6..e7c6729c1 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 8fa323b5c..344d7ce84 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 a61f402fd..ca3ff8a24 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 4d40fd827..b25d5a110 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 41325ce79..d714109d4 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 d16c65150..9fe0c96c1 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 25e36cae3..ae4a328b2 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 e00ee471a..3c6179389 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 6d3d91b89..2a74125ac 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 10de5ed26..d8f4e773f 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 545baf139..d8066fb8e 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 a5a007fad..678374759 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 d657ea858..46b45d771 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 004893a08..1c7221bc9 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 00c642bb2..e33d51650 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 b26bc90f0..8bf162a75 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 63b95bcfd..62c40ce44 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 1299ac238..cd3827ea1 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 6a45c2bef..f5a2db444 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 30bc72c78..2a3db4bca 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 23e94fcf2..f78a5a727 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 539f2c3f7..9e02aeba1 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 d8090e0a2..240b7ece6 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 f20f40ed4..59867d1a4 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 9734e8338..a9b8ca376 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 e7d1a7290..7fd59ea90 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 e1cf13125..c40530a6b 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 4284214fc..11f7cbc7d 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 21dd3ee03..428746f71 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 1b7d26789..7ba5fe51a 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 548db5be9..8fbdcfa23 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 9f3ad3917..3b0acbe41 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 e007030ad..820be66ab 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 a1d69c728..b280c7117 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 47bb10620..a365f45fa 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 68dfadfba..bfe32ef6a 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 55313846a..740e9994a 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 6db3956db..b25f5c495 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 dce62c9a5..c82e00c07 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 26bffb4f9..d9ae43692 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 973a951ae..0b4da01b2 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 4660eaf61..c0cc0b4f1 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 e28edc6c1..758c81d70 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 5e502cfa0..c39e223bb 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 df9761bd6..8e64e5d00 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 400306754..06d60ad36 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 1ed146f27..a49e751e1 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 d50eea083..8b5149998 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 3c8ffcc2d..f2b651fe3 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 1ba3becbf..975f4e03a 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 17f290b4f..74fb5800f 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 7ca75ecb4..cb2e59885 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 882565ca2..b91510846 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 170d5d643..e0f39edae 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 06f3c2a78..817205a96 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 7969cddaa..9d477b346 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 e2c02e428..a2a96dd67 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 022ae2067..169a0ac76 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 6a15eaa5e..33dd3c2c1 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 1fac030b2..630b8f87c 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 899b70ed0..f4637cd06 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, "" 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 5b7cebc52..a2760d0a0 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 3e8ce5d1e..04032dfd2 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 697fe5074..43428f671 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 6fe44b0b4..15a0af348 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 489569d13..7a24b0b82 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 37e101882..99f143226 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 5f4413436..5be7d8c5a 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 691f9c789..ef2374da9 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 592aa5f0e..25b6067d9 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 3884d2710..6cdf3e569 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 cf657a7fc..39dcf0014 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 d0a97a6fe..2c4b61fbc 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 7143701bf..990f1788f 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 98d1158e0..d4a4b6353 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 39c1f380b..8174b273f 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 bbb7c986b..6bd449636 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 1373f5dde..8cc761048 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 7641c688c..943c379d7 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 006bded35..61bbc4f5e 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 d75ffc213..dadfb7533 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 964418388..c08d9eafe 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 d1bc78322..5d25b6d08 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 48a6f3aab..c05837ebd 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 d067345e2..58fa1da9b 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 6f8a5c188..aed6954c8 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 1cedcf7c9..1da1b36db 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 96c506c02..1773e818f 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 0cc2a4749..b20d490e2 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 b59aa9d05..bd0451451 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 98b478c4b..261a939e2 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 816dea7f6..f32b558a5 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 710201388..de6230a64 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 9575c3415..a33da5054 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 87f175393..d789f1524 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 c498f02ac..a0b1ef0a1 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 6901ef469..bfa86cffa 100644 --- a/engine/pokemon/bills_pc.asm +++ b/engine/pokemon/bills_pc.asm @@ -90,8 +90,8 @@ PKMNLeaguePCText: db "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 4536453e7..19250ba2e 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 427d2a7f3..d651321a3 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 03f17bcc6..e10c6bcf6 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 3d9417a74..964db2e43 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 e9235f13c..2cf8f14c7 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 0adfc217e..d88ef8c19 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 be0aecf1d..fd4002c53 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 4a7b68dbc..944cee0fb 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 3918e8793..fd7a74668 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 48e00f67b..6e891e9a9 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 b239d951a..2d07945cb 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 f4e77c3f3..373b9bf8e 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 f446cf36c..9f51450a3 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 f6d6d372b..d555e598c 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 1100666f4..e4f9a261e 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 f27d46f4d..9e7f02f94 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 39749ee98..fa47693aa 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 5c496824b..aef6d43fd 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 13bcec591..095cae27f 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 8ed0f0a70..be54a2871 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 a54e8f31e..2359c7cab 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 c766fbd58..45b10322f 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 f7751fa03..7330a065c 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 b0be05df1..d7a95e5c0 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 cc40b1af3..83c837a8f 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 819f1b72f..f9aaa089b 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 77cb5c4b3..12128f68c 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 d02cf1b51..966f5ad4e 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 25fb7a9a6..b7f4b4c52 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 0e28df50a..5d2c1a246 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 1537ad5b7..61e22fce1 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 38aedd3c8..57ec12a8a 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 962ae519a..65d418a34 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 63a71d26c..6d1996007 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 b596263ae..d59f7c0ac 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 aa67654fa..7edba241d 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 25233e05a..d6baf35c8 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 "" 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 a70e0f9c8..af89a043a 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 4166a4dbd..09a69ae1b 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 87264888a..19d87f94a 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 f8cc45890..713699e66 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 f58c49eb0..d1073d989 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 cddda4079..8f6e03f08 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 d7acee2c6..a28d3c397 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 cf5254ac0..2d0dca082 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 fa38701b2..019fe97de 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 c44e4e3ff..ee9a2299c 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 2a4ed6e66..6d7fde6e2 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 0195d0b9e..f95d129a8 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 824f4883a..8453d0e50 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 9a2842f32..69686fa8c 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 56be937f7..57eab8580 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 417198e1f..541865236 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 45685f83a..c1268a604 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 b4bed3634..cb4d39752 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 eec62f926..1d2b817dd 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 918e94683..f244327d9 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 7279c971d..2ebf51df4 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 aca1b995c..f2a36afb3 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 7e1f57f0d..daa14412c 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 26f4342aa..a39361d52 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 d434f6816..bffa4554f 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 4bfd49ae6..ee55938b9 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 1c0f02dfa..c983c896d 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 3fd58f604..94442a60c 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 443e02609..8e3bc0a65 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 d51028307..ed3d2a731 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 0af18a96f..ee757ef78 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 75215cba7..772b33bf5 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 c1cc2adb1..455561b80 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 0f3361367..a110d8777 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 9fff771d1..0e65accdd 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 17be9fc3c..5be583d9a 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 9c8ab449f..5bdd774b9 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 9437a55da..6cd96acc0 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 a2f4eaa33..b8d8898f3 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 0a5baac2b..49a91977e 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 a648b92b8..f14b126bb 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 b294a2473..d06a234a9 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 bc3d78e9b..7da9e50f0 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 f64357d57..de8bd1dd4 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 74f1648e7..e31bbd3eb 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 b4d096197..4a7abbb69 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 6482993d3..b35a2f0ab 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 f2e995865..cf246c569 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 5334afd2d..79c091b62 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 c7e379892..a7c8d051d 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 f6c64bdaf..9354a0c72 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 3a7ffa9be..7a5c2e4ae 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 03681befa..0c0e02ea3 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 81e116962..2365ff70e 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 71ff0758a..bd6fb4987 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 da690ad63..c9f183e19 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 ea7b66ca7..ea9fc567a 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 551949d07..54867248c 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 0e04367b6..831b66e66 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 f51bd00eb..6e3da97c2 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 2d9777fc0..a8bf2f0fb 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 8f08638cc..a2b4dcdf2 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 40e2ea92d..d41492524 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 4ed252d47..97b4ae6a9 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 044d5e504..ac4853d84 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 a54547734..29c908686 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 501592f94..8cb59c303 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 a198dbd78..795b210ec 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 d6e086ce8..0ccf9fae9 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 db4cfcab1..48228c7dd 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 0260fb488..e599e1476 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 07e3f5c7b..eb8b39579 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 d1e6b0699..8fb6f18da 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 8926b604e..1c49245b3 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 db91146c5..a0f4d8287 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 96e453dfb..4bfb7b2c7 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 27ddc2766..a3ec3c995 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 271775ed7..0bc2ee181 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 71ae2e1ae..48b7979d4 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 8c225dcc5..23dfd0504 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 dc7be7d1a..5fe805f0f 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 7cc2c58e7..d9650bc82 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 be004d682..87887432f 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 52241b95f..7ca57c456 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 df9df9e8c..146cbb072 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 91453d653..f84ef9958 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 1834bfa84..599c17430 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 0626ffdbd..ad8e83f43 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 74788bf6c..e0bf102f4 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 cdd7f486f..dcba85c03 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 fe7f3da28..aec4dbf8f 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 a2ed009e6..ffdf101ee 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 285d1e978..e1a0ccca0 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 4ac1f7059..6349a479a 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 d7e7c54c1..c716484cb 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 7056a337c..647446fa8 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 52721a55a..8b0126599 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 934b8d2f5..ce4e5f1e6 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 a4fab9525..8d3a33b6c 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 f170bcafc..8663de692 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 428526920..b7f7a56b7 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 67244ef4d..663405039 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 66f5c86e2..ec042e48d 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 0219fc91f..9ffe09508 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 5162d3bc0..55d849d27 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 c180d149e..d3b3eceb3 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 1851e341a..aa6be6ca4 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 92f23f69c..9e62e5de8 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 ", you have" diff --git a/text/CinnabarLabFossilRoom.asm b/text/CinnabarLabFossilRoom.asm index 6701bbd03..be0bc9474 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 " handed" line "over @" - text_ram wcd6d + text_ram wNameBuffer text "!" prompt diff --git a/text/Daycare.asm b/text/Daycare.asm index a5b36b7d7..21403bb5c 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 2c4054f64..953b40234 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 606ade96c..21a671b13 100644 --- a/text/OaksLab.asm +++ b/text/OaksLab.asm @@ -246,7 +246,7 @@ _OaksLabOakGivesText:: _OaksLabReceivedText:: text " received" line "a @" - text_ram wcd6d + text_ram wNameBuffer text "!@" text_end diff --git a/text/RocketHideoutB3F.asm b/text/RocketHideoutB3F.asm index b7ec9e1a2..3d4af6162 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 921b64070..cdccbf939 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 ecfd67b24..77a306830 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 fb8db4220..acd50717c 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]