123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- ; 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
|