shithub: pokered

Download patch

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