pokered/engine/menu/start_menu.asm

86 lines
2.3 KiB
NASM
Raw Normal View History

2014-05-22 22:13:20 +00:00
DisplayStartMenu:: ; 2acd (0:2acd)
ld a,BANK(StartMenu_Pokedex)
2014-05-22 22:13:20 +00:00
ld [H_LOADEDROMBANK],a
ld [MBC1RomBank],a
2014-09-13 07:50:56 +00:00
ld a,[wWalkBikeSurfState] ; walking/biking/surfing
ld [wWalkBikeSurfStateCopy],a
2015-07-19 08:46:12 +00:00
ld a, SFX_START_MENU
2014-05-22 22:13:20 +00:00
call PlaySound
RedisplayStartMenu:: ; 2adf (0:2adf)
callba DrawStartMenu
callba PrintSafariZoneSteps ; print Safari Zone info, if in Safari Zone
call UpdateSprites
2014-05-22 22:13:20 +00:00
.loop
call HandleMenuInput
ld b,a
.checkIfUpPressed
bit 6,a ; was Up pressed?
jr z,.checkIfDownPressed
ld a,[wCurrentMenuItem] ; menu selection
and a
jr nz,.loop
ld a,[wLastMenuItem]
and a
jr nz,.loop
; if the player pressed tried to go past the top item, wrap around to the bottom
2015-07-21 01:32:02 +00:00
CheckEvent EVENT_GOT_POKEDEX
2014-05-22 22:13:20 +00:00
ld a,6 ; there are 7 menu items with the pokedex, so the max index is 6
jr nz,.wrapMenuItemId
dec a ; there are only 6 menu items without the pokedex
.wrapMenuItemId
ld [wCurrentMenuItem],a
call EraseMenuCursor
jr .loop
.checkIfDownPressed
bit 7,a
jr z,.buttonPressed
; if the player pressed tried to go past the bottom item, wrap around to the top
2015-07-21 01:32:02 +00:00
CheckEvent EVENT_GOT_POKEDEX
2014-05-22 22:13:20 +00:00
ld a,[wCurrentMenuItem]
ld c,7 ; there are 7 menu items with the pokedex
jr nz,.checkIfPastBottom
dec c ; there are only 6 menu items without the pokedex
.checkIfPastBottom
cp c
jr nz,.loop
; the player went past the bottom, so wrap to the top
xor a
ld [wCurrentMenuItem],a
call EraseMenuCursor
jr .loop
.buttonPressed ; A, B, or Start button pressed
call PlaceUnfilledArrowMenuCursor
ld a,[wCurrentMenuItem]
2015-07-16 03:04:58 +00:00
ld [wBattleAndStartSavedMenuItem],a ; save current menu selection
2014-05-22 22:13:20 +00:00
ld a,b
and a,%00001010 ; was the Start button or B button pressed?
jp nz,CloseStartMenu
call SaveScreenTilesToBuffer2 ; copy background from wTileMap to wTileMapBackup2
2015-07-21 01:32:02 +00:00
CheckEvent EVENT_GOT_POKEDEX
2014-05-22 22:13:20 +00:00
ld a,[wCurrentMenuItem]
jr nz,.displayMenuItem
inc a ; adjust position to account for missing pokedex menu item
.displayMenuItem
cp a,0
jp z,StartMenu_Pokedex
cp a,1
jp z,StartMenu_Pokemon
cp a,2
jp z,StartMenu_Item
cp a,3
jp z,StartMenu_TrainerInfo
cp a,4
jp z,StartMenu_SaveReset
cp a,5
jp z,StartMenu_Option
; EXIT falls through to here
CloseStartMenu:: ; 2b70 (0:2b70)
2014-05-25 18:21:48 +00:00
call Joypad
2014-05-25 17:51:53 +00:00
ld a,[hJoyPressed]
2014-05-22 22:13:20 +00:00
bit 0,a ; was A button newly pressed?
jr nz,CloseStartMenu
call LoadTextBoxTilePatterns
jp CloseTextDisplay