mirror of
https://github.com/pret/pokered.git
synced 2024-10-24 07:25:21 +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 pokedex
|
|
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
|