mirror of
https://github.com/pret/pokered.git
synced 2024-10-24 15:27:10 +00:00
89 lines
1.9 KiB
NASM
89 lines
1.9 KiB
NASM
; function that displays the start menu
|
|
DrawStartMenu:
|
|
CheckEvent EVENT_GOT_POKEDEX
|
|
; menu with pokedex
|
|
coord hl, 10, 0
|
|
ld b,$0e
|
|
ld c,$08
|
|
jr nz,.drawTextBoxBorder
|
|
; shorter menu if the player doesn't have the pokedex
|
|
coord hl, 10, 0
|
|
ld b,$0c
|
|
ld c,$08
|
|
.drawTextBoxBorder
|
|
call TextBoxBorder
|
|
ld a,D_DOWN | D_UP | START | B_BUTTON | A_BUTTON
|
|
ld [wMenuWatchedKeys],a
|
|
ld a,$02
|
|
ld [wTopMenuItemY],a ; Y position of first menu choice
|
|
ld a,$0b
|
|
ld [wTopMenuItemX],a ; X position of first menu choice
|
|
ld a,[wBattleAndStartSavedMenuItem] ; remembered menu selection from last time
|
|
ld [wCurrentMenuItem],a
|
|
ld [wLastMenuItem],a
|
|
xor a
|
|
ld [wMenuWatchMovingOutOfBounds],a
|
|
ld hl,wd730
|
|
set 6,[hl] ; no pauses between printing each letter
|
|
coord hl, 12, 2
|
|
CheckEvent EVENT_GOT_POKEDEX
|
|
; case for not having pokdex
|
|
ld a,$06
|
|
jr z,.storeMenuItemCount
|
|
; case for having pokedex
|
|
ld de,StartMenuPokedexText
|
|
call PrintStartMenuItem
|
|
ld a,$07
|
|
.storeMenuItemCount
|
|
ld [wMaxMenuItem],a ; number of menu items
|
|
ld de,StartMenuPokemonText
|
|
call PrintStartMenuItem
|
|
ld de,StartMenuItemText
|
|
call PrintStartMenuItem
|
|
ld de,wPlayerName ; player's name
|
|
call PrintStartMenuItem
|
|
ld a,[wd72e]
|
|
bit 6,a ; is the player using the link feature?
|
|
; case for not using link feature
|
|
ld de,StartMenuSaveText
|
|
jr z,.printSaveOrResetText
|
|
; case for using link feature
|
|
ld de,StartMenuResetText
|
|
.printSaveOrResetText
|
|
call PrintStartMenuItem
|
|
ld de,StartMenuOptionText
|
|
call PrintStartMenuItem
|
|
ld de,StartMenuExitText
|
|
call PlaceString
|
|
ld hl,wd730
|
|
res 6,[hl] ; turn pauses between printing letters back on
|
|
ret
|
|
|
|
StartMenuPokedexText:
|
|
db "POKéDEX@"
|
|
|
|
StartMenuPokemonText:
|
|
db "POKéMON@"
|
|
|
|
StartMenuItemText:
|
|
db "ITEM@"
|
|
|
|
StartMenuSaveText:
|
|
db "SAVE@"
|
|
|
|
StartMenuResetText:
|
|
db "RESET@"
|
|
|
|
StartMenuExitText:
|
|
db "EXIT@"
|
|
|
|
StartMenuOptionText:
|
|
db "OPTION@"
|
|
|
|
PrintStartMenuItem:
|
|
push hl
|
|
call PlaceString
|
|
pop hl
|
|
ld de,SCREEN_WIDTH * 2
|
|
add hl,de
|
|
ret
|