ref: 8349bfd8e646002105dfd6a7f997c26cf0e0624b
parent: b44a10a43a1fa4a558b4c593d0a610571ecb3a50
author: Yoann Fievez <yoann.fievez@gmail.com>
date: Fri Nov 5 16:40:15 EDT 2021
Refactorize check button pressed (#340)
--- a/engine/battle/core.asm
+++ b/engine/battle/core.asm
@@ -2087,7 +2087,7 @@
ld [hli], a ; wMaxMenuItem
ld [hl], D_RIGHT | A_BUTTON ; wMenuWatchedKeys
call HandleMenuInput
- bit 4, a ; check if right was pressed
+ bit BIT_D_RIGHT, a
jr nz, .rightColumn
jr .AButtonPressed ; the A button was pressed
.rightColumn ; put cursor in right column of menu
@@ -2350,7 +2350,7 @@
xor a
ld [hl], a ; wLastMenuItem
call HandleMenuInput
- bit 1, a ; was A pressed?
+ bit BIT_B_BUTTON, a
jr nz, .partyMonDeselected ; if B was pressed, jump
; A was pressed
call PlaceUnfilledArrowMenuCursor
@@ -6745,7 +6745,7 @@
bit 1, a
jr z, .asm_3ef2f
ldh a, [hJoyHeld]
- bit 1, a ; B button pressed?
+ bit BIT_B_BUTTON, a
ret nz
.asm_3ef2f
ld a, [wNumberOfNoRandomBattleStepsLeft]
--- a/engine/events/cinnabar_lab.asm
+++ b/engine/events/cinnabar_lab.asm
@@ -27,7 +27,7 @@
ld hl, wd730
res 6, [hl]
call HandleMenuInput
- bit 1, a ; pressed B?
+ bit BIT_B_BUTTON, a
jr nz, .cancelledGivingFossil
ld hl, wFilteredBagItems
ld a, [wCurrentMenuItem]
--- a/engine/events/hidden_objects/bills_house_pc.asm
+++ b/engine/events/hidden_objects/bills_house_pc.asm
@@ -95,7 +95,7 @@
call PrintText
call SaveScreenTilesToBuffer2
call HandleMenuInput
- bit 1, a ; pressed b
+ bit BIT_B_BUTTON, a
jr nz, .cancel
ld a, [wCurrentMenuItem]
add EEVEE
--- a/engine/events/hidden_objects/school_blackboard.asm
+++ b/engine/events/hidden_objects/school_blackboard.asm
@@ -36,7 +36,7 @@
ld hl, LinkCableHelpText2
call PrintText
call HandleMenuInput
- bit 1, a ; pressed b
+ bit BIT_B_BUTTON, a
jr nz, .exit
ld a, [wCurrentMenuItem]
cp 3 ; pressed a on "STOP READING"
@@ -122,9 +122,9 @@
ld hl, ViridianSchoolBlackboardText2
call PrintText
call HandleMenuInput ; pressing up and down is handled in here
- bit 1, a ; pressed b
+ bit BIT_B_BUTTON, a ; pressed b
jr nz, .exitBlackboard
- bit 4, a ; pressed right
+ bit BIT_D_RIGHT, a
jr z, .didNotPressRight
; move cursor to right column
ld a, 2
@@ -137,7 +137,7 @@
ld [wMenuItemOffset], a
jr .blackboardLoop
.didNotPressRight
- bit 5, a ; pressed left
+ bit BIT_D_LEFT, a
jr z, .didNotPressLeftOrRight
; move cursor to left column
ld a, 2
--- a/engine/events/prize_menu.asm
+++ b/engine/events/prize_menu.asm
@@ -31,7 +31,7 @@
ld hl, WhichPrizeTextPtr
call PrintText
call HandleMenuInput ; menu choice handler
- bit 1, a ; keypress = B (Cancel)
+ bit BIT_B_BUTTON, a
jr nz, .noChoice
ld a, [wCurrentMenuItem]
cp 3 ; "NO,THANKS" choice
--- a/engine/events/vending_machine.asm
+++ b/engine/events/vending_machine.asm
@@ -31,7 +31,7 @@
ld hl, wd730
res 6, [hl]
call HandleMenuInput
- bit 1, a ; pressed B?
+ bit BIT_B_BUTTON, a
jr nz, .notThirsty
ld a, [wCurrentMenuItem]
cp 3 ; chose Cancel?
--- a/engine/link/cable_club.asm
+++ b/engine/link/cable_club.asm
@@ -345,7 +345,7 @@
res 1, [hl]
and a
jp z, .getNewInput
- bit 0, a ; A button pressed?
+ bit BIT_A_BUTTON, a
jr z, .enemyMonMenu_ANotPressed
; if A button pressed
ld a, [wMaxMenuItem]
@@ -364,7 +364,7 @@
call TradeCenter_DisplayStats
jp .getNewInput
.enemyMonMenu_ANotPressed
- bit 5, a ; Left pressed?
+ bit BIT_D_LEFT, a
jr z, .enemyMonMenu_LeftNotPressed
; if Left pressed, switch back to the player mon menu
xor a ; player mon menu
@@ -384,7 +384,7 @@
ld [wCurrentMenuItem], a
jr .playerMonMenu
.enemyMonMenu_LeftNotPressed
- bit 7, a ; Down pressed?
+ bit BIT_D_DOWN, a
jp z, .getNewInput
jp .selectedCancelMenuItem ; jump if Down pressed
.playerMonMenu
@@ -412,7 +412,7 @@
jr nz, .playerMonMenu_SomethingPressed
jp .getNewInput
.playerMonMenu_SomethingPressed
- bit 0, a ; A button pressed?
+ bit BIT_A_BUTTON, a
jr z, .playerMonMenu_ANotPressed
jp .chosePlayerMon ; jump if A button pressed
; unreachable code
@@ -422,7 +422,7 @@
call TradeCenter_DisplayStats
jp .getNewInput
.playerMonMenu_ANotPressed
- bit 4, a ; Right pressed?
+ bit BIT_D_RIGHT, a
jr z, .playerMonMenu_RightNotPressed
; if Right pressed, switch to the enemy mon menu
ld a, $1 ; enemy mon menu
@@ -444,7 +444,7 @@
.notPastLastEnemyMon
jp .enemyMonMenu
.playerMonMenu_RightNotPressed
- bit 7, a ; Down pressed?
+ bit BIT_D_DOWN, a
jr z, .getNewInput
jp .selectedCancelMenuItem ; jump if Down pressed
.getNewInput
@@ -488,7 +488,7 @@
call HandleMenuInput
bit 4, a ; Right pressed?
jr nz, .selectTradeMenuItem
- bit 1, a ; B button pressed?
+ bit BIT_B_BUTTON, a
jr z, .displayPlayerMonStats
.cancelPlayerMonChoice
pop af
@@ -503,9 +503,9 @@
ld a, 11
ld [wTopMenuItemX], a
call HandleMenuInput
- bit 5, a ; Left pressed?
+ bit BIT_D_LEFT, a
jr nz, .selectStatsMenuItem
- bit 1, a ; B button pressed?
+ bit BIT_B_BUTTON, a
jr nz, .cancelPlayerMonChoice
jr .choseTrade
.displayPlayerMonStats
@@ -554,9 +554,9 @@
ldh a, [hJoy5]
and a ; pressed anything?
jr z, .cancelMenuItem_JoypadLoop
- bit 0, a ; A button pressed?
+ bit BIT_A_BUTTON, a
jr nz, .cancelMenuItem_APressed
- bit 6, a ; Up pressed?
+ bit BIT_D_UP, a
jr z, .cancelMenuItem_JoypadLoop
; if Up pressed
ld a, " "
--- a/engine/menus/main_menu.asm
+++ b/engine/menus/main_menu.asm
@@ -66,7 +66,7 @@
ld a, [wSaveFileStatus]
ld [wMaxMenuItem], a
call HandleMenuInput
- bit 1, a ; pressed B?
+ bit BIT_B_BUTTON, a
jp nz, DisplayTitleScreen ; if so, go back to the title screen
ld c, 20
call DelayFrames
@@ -477,11 +477,11 @@
ld b, a
and A_BUTTON | B_BUTTON | START | D_RIGHT | D_LEFT | D_UP | D_DOWN ; any key besides select pressed?
jr z, .getJoypadStateLoop
- bit 1, b ; B button pressed?
+ bit BIT_B_BUTTON, b
jr nz, .exitMenu
- bit 3, b ; Start button pressed?
+ bit BIT_START, b
jr nz, .exitMenu
- bit 0, b ; A button pressed?
+ bit BIT_A_BUTTON, b
jr z, .checkDirectionKeys
ld a, [wTopMenuItemY]
cp 16 ; is the cursor on Cancel?
@@ -496,9 +496,9 @@
jp .loop
.checkDirectionKeys
ld a, [wTopMenuItemY]
- bit 7, b ; Down pressed?
+ bit BIT_D_DOWN, b
jr nz, .downPressed
- bit 6, b ; Up pressed?
+ bit BIT_D_UP, b
jr nz, .upPressed
cp 8 ; cursor in Battle Animation section?
jr z, .cursorInBattleAnimation
@@ -507,7 +507,7 @@
cp 16 ; cursor on Cancel?
jr z, .loop
.cursorInTextSpeed
- bit 5, b ; Left pressed?
+ bit BIT_D_LEFT, b
jp nz, .pressedLeftInTextSpeed
jp .pressedRightInTextSpeed
.downPressed
--- a/engine/menus/pc.asm
+++ b/engine/menus/pc.asm
@@ -14,7 +14,7 @@
ld hl, wFlags_0xcd60
set 5, [hl]
call HandleMenuInput
- bit 1, a ;if player pressed B
+ bit BIT_B_BUTTON, a
jp nz, LogOff
ld a, [wMaxMenuItem]
cp 2
--- a/engine/menus/pokedex.asm
+++ b/engine/menus/pokedex.asm
@@ -95,7 +95,7 @@
ld [wMenuWatchMovingOutOfBounds], a
.handleMenuInput
call HandleMenuInput
- bit 1, a ; was the B button pressed?
+ bit BIT_B_BUTTON, a
ld b, 2
jr nz, .buttonBPressed
ld a, [wCurrentMenuItem]
@@ -284,10 +284,10 @@
call Delay3
call GBPalNormal
call HandleMenuInput
- bit 1, a ; was the B button pressed?
+ bit BIT_B_BUTTON, a
jp nz, .buttonBPressed
.checkIfUpPressed
- bit 6, a ; was Up pressed?
+ bit BIT_D_UP, a
jr z, .checkIfDownPressed
.upPressed ; scroll up one row
ld a, [wListScrollOffset]
@@ -297,7 +297,7 @@
ld [wListScrollOffset], a
jp .loop
.checkIfDownPressed
- bit 7, a ; was Down pressed?
+ bit BIT_D_DOWN, a
jr z, .checkIfRightPressed
.downPressed ; scroll down one row
ld a, [wDexMaxSeenMon]
@@ -312,7 +312,7 @@
ld [wListScrollOffset], a
jp .loop
.checkIfRightPressed
- bit 4, a ; was Right pressed?
+ bit BIT_D_RIGHT, a
jr z, .checkIfLeftPressed
.rightPressed ; scroll down 7 rows
ld a, [wDexMaxSeenMon]
@@ -330,7 +330,7 @@
ld [wListScrollOffset], a
jp .loop
.checkIfLeftPressed ; scroll up 7 rows
- bit 5, a ; was Left pressed?
+ bit BIT_D_LEFT, a
jr z, .buttonAPressed
.leftPressed
ld a, [wListScrollOffset]
--- a/engine/menus/save.asm
+++ b/engine/menus/save.asm
@@ -356,7 +356,7 @@
call HandleMenuInput
ld hl, hUILayoutFlags
res 1, [hl]
- bit 1, a ; pressed b
+ bit BIT_B_BUTTON, a
ret nz
call GetBoxSRAMLocation
ld e, l
--- a/engine/menus/start_sub_menus.asm
+++ b/engine/menus/start_sub_menus.asm
@@ -65,7 +65,7 @@
push af
call LoadScreenTilesFromBuffer1 ; restore saved screen
pop af
- bit 1, a ; was the B button pressed?
+ bit BIT_B_BUTTON, a
jp nz, .loop
; if the B button wasn't pressed
ld a, [wMaxMenuItem]
@@ -360,7 +360,7 @@
ld [hl], a ; old menu item id
call HandleMenuInput
call PlaceUnfilledArrowMenuCursor
- bit 1, a ; was the B button pressed?
+ bit BIT_B_BUTTON, a
jr z, .useOrTossItem
jp ItemMenuLoop
.useOrTossItem ; if the player made the choice to use or toss the item
--- a/engine/menus/text_box.asm
+++ b/engine/menus/text_box.asm
@@ -174,9 +174,9 @@
ld [wd730], a
call HandleMenuInput
call PlaceUnfilledArrowMenuCursor
- bit 0, a ; was A pressed?
+ bit BIT_A_BUTTON, a
jr nz, .pressedA
- bit 1, a ; was B pressed? (always true since only A/B are watched)
+ bit BIT_B_BUTTON, a ; always true since only A/B are watched
jr z, .pressedA
ld a, CANCELLED_MENU
ld [wMenuExitMethod], a
@@ -296,8 +296,8 @@
pop hl
.noYesMenuInputLoop
call HandleMenuInput
- bit 1, a ; A button pressed?
- jr nz, .noYesMenuInputLoop ; try again if A was not pressed
+ bit BIT_B_BUTTON, a
+ jr nz, .noYesMenuInputLoop ; try again if B was not pressed
pop af
pop hl
ld [wFlags_0xcd60], a
@@ -309,7 +309,7 @@
ld [wTwoOptionMenuID], a
call HandleMenuInput
pop hl
- bit 1, a ; A button pressed?
+ bit BIT_B_BUTTON, a
jr nz, .choseSecondMenuItem ; automatically choose the second option if B is pressed
.pressedAButton
ld a, [wCurrentMenuItem]
--- a/engine/pokemon/bills_pc.asm
+++ b/engine/pokemon/bills_pc.asm
@@ -171,8 +171,8 @@
ldh [hAutoBGTransferEnabled], a
call Delay3
call HandleMenuInput
- bit 1, a
- jp nz, ExitBillsPC ; b button
+ bit BIT_B_BUTTON, a
+ jp nz, ExitBillsPC
call PlaceUnfilledArrowMenuCursor
ld a, [wCurrentMenuItem]
ld [wParentMenuItem], a
@@ -416,7 +416,7 @@
ld [wPartyAndBillsPCSavedMenuItem], a
.loop
call HandleMenuInput
- bit 1, a ; pressed B?
+ bit BIT_B_BUTTON, a
jr nz, .exit
ld a, [wCurrentMenuItem]
and a
--- a/engine/pokemon/learn_move.asm
+++ b/engine/pokemon/learn_move.asm
@@ -155,7 +155,7 @@
call LoadScreenTilesFromBuffer1
pop af
pop hl
- bit 1, a ; pressed b
+ bit BIT_B_BUTTON, a
jr nz, .cancel
push hl
ld a, [wCurrentMenuItem]
--- a/home/hidden_objects.asm
+++ b/home/hidden_objects.asm
@@ -5,7 +5,7 @@
ldh a, [hLoadedROMBank]
push af
ldh a, [hJoyHeld]
- bit 0, a ; A button
+ bit BIT_A_BUTTON, a
jr z, .nothingFound
; A button is pressed
ld a, BANK(CheckForHiddenObject)
--- a/home/list_menu.asm
+++ b/home/list_menu.asm
@@ -84,7 +84,7 @@
push af
call PlaceMenuCursor
pop af
- bit 0, a ; was the A button pressed?
+ bit BIT_A_BUTTON, a
jp z, .checkOtherKeys
.buttonAPressed
ld a, [wCurrentMenuItem]
@@ -168,12 +168,12 @@
res 6, [hl] ; turn on letter printing delay
jp BankswitchBack
.checkOtherKeys ; check B, SELECT, Up, and Down keys
- bit 1, a ; was the B button pressed?
+ bit BIT_B_BUTTON, a
jp nz, ExitListMenu ; if so, exit the menu
- bit 2, a ; was the select button pressed?
+ bit BIT_SELECT, a
jp nz, HandleItemListSwapping ; if so, allow the player to swap menu entries
ld b, a
- bit 7, b ; was Down pressed?
+ bit BIT_D_DOWN, b
ld hl, wListScrollOffset
jr z, .upPressed
.downPressed
@@ -220,13 +220,13 @@
.waitForKeyPressLoop
call JoypadLowSensitivity
ldh a, [hJoyPressed] ; newly pressed buttons
- bit 0, a ; was the A button pressed?
+ bit BIT_A_BUTTON, a
jp nz, .buttonAPressed
- bit 1, a ; was the B button pressed?
+ bit BIT_B_BUTTON, a
jp nz, .buttonBPressed
- bit 6, a ; was Up pressed?
+ bit BIT_D_UP, a
jr nz, .incrementQuantity
- bit 7, a ; was Down pressed?
+ bit BIT_D_DOWN, a
jr nz, .decrementQuantity
jr .waitForKeyPressLoop
.incrementQuantity
--- a/home/overworld.asm
+++ b/home/overworld.asm
@@ -72,7 +72,7 @@
.notSimulating
ldh a, [hJoyPressed]
.checkIfStartIsPressed
- bit 3, a ; start button
+ bit BIT_START, a
jr z, .startButtonNotPressed
; if START is pressed
xor a ; TEXT_START_MENU
@@ -79,7 +79,7 @@
ldh [hSpriteIndexOrTextID], a
jp .displayDialogue
.startButtonNotPressed
- bit 0, a ; A button
+ bit BIT_A_BUTTON, a
jp z, .checkIfDownButtonIsPressed
; if A is pressed
ld a, [wd730]
@@ -146,7 +146,7 @@
.checkIfDownButtonIsPressed
ldh a, [hJoyHeld] ; current joypad state
- bit 7, a ; down button
+ bit BIT_D_DOWN, a
jr z, .checkIfUpButtonIsPressed
ld a, 1
ld [wSpritePlayerStateData1YStepVector], a
@@ -154,7 +154,7 @@
jr .handleDirectionButtonPress
.checkIfUpButtonIsPressed
- bit 6, a ; up button
+ bit BIT_D_UP, a
jr z, .checkIfLeftButtonIsPressed
ld a, -1
ld [wSpritePlayerStateData1YStepVector], a
@@ -162,7 +162,7 @@
jr .handleDirectionButtonPress
.checkIfLeftButtonIsPressed
- bit 5, a ; left button
+ bit BIT_D_LEFT, a
jr z, .checkIfRightButtonIsPressed
ld a, -1
ld [wSpritePlayerStateData1XStepVector], a
@@ -170,7 +170,7 @@
jr .handleDirectionButtonPress
.checkIfRightButtonIsPressed
- bit 4, a ; right button
+ bit BIT_D_RIGHT, a
jr z, .noDirectionButtonsPressed
ld a, 1
ld [wSpritePlayerStateData1XStepVector], a
--- a/home/pokemon.asm
+++ b/home/pokemon.asm
@@ -274,7 +274,7 @@
scf
ret
.swappingPokemon
- bit 1, b ; was the B button pressed?
+ bit BIT_B_BUTTON, b
jr z, .handleSwap ; if not, handle swapping the pokemon
.cancelSwap ; if the B button was pressed
farcall ErasePartyMenuCursors
--- a/home/print_text.asm
+++ b/home/print_text.asm
@@ -25,11 +25,11 @@
call Joypad
ldh a, [hJoyHeld]
.checkAButton
- bit 0, a ; is the A button pressed?
+ bit BIT_A_BUTTON, a
jr z, .checkBButton
jr .endWait
.checkBButton
- bit 1, a ; is the B button pressed?
+ bit BIT_B_BUTTON, a
jr z, .buttonsNotPressed
.endWait
call DelayFrame
--- a/home/start_menu.asm
+++ b/home/start_menu.asm
@@ -15,7 +15,7 @@
call HandleMenuInput
ld b, a
.checkIfUpPressed
- bit 6, a ; was Up pressed?
+ bit BIT_D_UP, a
jr z, .checkIfDownPressed
ld a, [wCurrentMenuItem] ; menu selection
and a
@@ -54,7 +54,7 @@
ld a, [wCurrentMenuItem]
ld [wBattleAndStartSavedMenuItem], a ; save current menu selection
ld a, b
- and %00001010 ; was the Start button or B button pressed?
+ and B_BUTTON | START ; was the Start button or B button pressed?
jp nz, CloseStartMenu
call SaveScreenTilesToBuffer2 ; copy background from wTileMap to wTileMapBackup2
CheckEvent EVENT_GOT_POKEDEX
@@ -79,7 +79,7 @@
CloseStartMenu::
call Joypad
ldh a, [hJoyPressed]
- bit 0, a ; was A button newly pressed?
+ bit BIT_A_BUTTON, a
jr nz, CloseStartMenu
call LoadTextBoxTilePatterns
jp CloseTextDisplay
--- a/home/text_script.asm
+++ b/home/text_script.asm
@@ -98,7 +98,7 @@
HoldTextDisplayOpen::
call Joypad
ldh a, [hJoyHeld]
- bit 0, a ; is the A button being pressed?
+ bit BIT_A_BUTTON, a
jr nz, HoldTextDisplayOpen
CloseTextDisplay::
--- a/home/window.asm
+++ b/home/window.asm
@@ -50,7 +50,7 @@
ld [wCheckFor180DegreeTurn], a
ldh a, [hJoy5]
ld b, a
- bit 6, a ; pressed Up key?
+ bit BIT_D_UP, a
jr z, .checkIfDownPressed
.upPressed
ld a, [wCurrentMenuItem] ; selected menu item