kep-hack/engine/events/hidden_objects/bills_house_pc.asm
May Evans f099436f8d Fix Bill's House
Bill's House is now finished and fully functional, save for the PC. I've left some commented-out code to have the dex entries in case someone wants to do that.

I did some groundwork for a Blastyke starter but it's really difficult and unwieldy, so I've left it out of this commit and likely won't bother. Pikachu and Eevee mode is definitely in the cards though.
2023-03-25 10:43:58 +00:00

150 lines
3 KiB
NASM

BillsHousePC:
call EnableAutoTextBoxDrawing
ld a, [wSpritePlayerStateData1FacingDirection]
cp SPRITE_FACING_UP
ret nz
CheckEvent EVENT_LEFT_BILLS_HOUSE_AFTER_HELPING
jr nz, .displayBillsHousePokemonList
CheckEventReuseA EVENT_USED_CELL_SEPARATOR_ON_BILL
jr nz, .displayBillsHouseMonitorText
CheckEventReuseA EVENT_BILL_SAID_USE_CELL_SEPARATOR
jr nz, .doCellSeparator
.displayBillsHouseMonitorText
tx_pre_jump BillsHouseMonitorText
.doCellSeparator
ld a, $1
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
tx_pre BillsHouseInitiatedText
ld c, 32
call DelayFrames
ld a, SFX_TINK
call PlaySound
call WaitForSoundToFinish
ld c, 80
call DelayFrames
ld a, SFX_SHRINK
call PlaySound
call WaitForSoundToFinish
ld c, 48
call DelayFrames
ld a, SFX_TINK
call PlaySound
call WaitForSoundToFinish
ld c, 32
call DelayFrames
ld a, SFX_GET_ITEM_1
call PlaySound
call WaitForSoundToFinish
call PlayDefaultMusic
SetEvent EVENT_USED_CELL_SEPARATOR_ON_BILL
ret
.displayBillsHousePokemonList
ld a, $1
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
tx_pre BillsHousePokemonList
ret
BillsHouseMonitorText::
text_far _BillsHouseMonitorText
text_end
BillsHouseInitiatedText::
text_far _BillsHouseInitiatedText
text_promptbutton
text_asm
ld a, SFX_STOP_ALL_MUSIC
ld [wNewSoundID], a
call PlaySound
ld c, 16
call DelayFrames
ld a, SFX_SWITCH
call PlaySound
call WaitForSoundToFinish
ld c, 60
call DelayFrames
jp TextScriptEnd
BillsHousePokemonList::
text_asm
call SaveScreenTilesToBuffer1
ld hl, BillsHousePokemonListText1
call PrintText
xor a
ld [wMenuItemOffset], a ; not used
ld [wCurrentMenuItem], a
ld [wLastMenuItem], a
ld a, A_BUTTON | B_BUTTON
ld [wMenuWatchedKeys], a
ld a, 4
ld [wMaxMenuItem], a
ld a, 2
ld [wTopMenuItemY], a
ld a, 1
ld [wTopMenuItemX], a
.billsPokemonLoop
ld hl, wd730
set 6, [hl]
hlcoord 0, 0
ld b, 10
ld c, 9
call TextBoxBorder
hlcoord 2, 2
ld de, BillsMonListText
call PlaceString
ld hl, BillsHousePokemonListText2
call PrintText
call SaveScreenTilesToBuffer2
call HandleMenuInput
bit BIT_B_BUTTON, a
jr nz, .cancel
ld a, [wCurrentMenuItem]
add EEVEE
cp EEVEE
jr z, .displayPokedex
cp FLAREON
jr z, .displayPokedex
cp JOLTEON
jr z, .displayPokedex
cp VAPOREON
jr z, .displayPokedex
;cp ESPEON
;jr z, .displayPokedex
;cp UMBREON
;jr z, .displayPokedex
;cp LEAFEON
;jr z, .displayPokedex
;cp GLACEON
;jr z, .displayPokedex
;cp SYLVEON
;jr z, .displayPokedex - these are weird and don't work well
jr .cancel
.displayPokedex
call DisplayPokedex
call LoadScreenTilesFromBuffer2
jr .billsPokemonLoop
.cancel
ld hl, wd730
res 6, [hl]
call LoadScreenTilesFromBuffer2
jp TextScriptEnd
BillsHousePokemonListText1:
text_far _BillsHousePokemonListText1
text_end
BillsMonListText:
db "EEVEE"
next "FLAREON"
next "JOLTEON"
next "VAPOREON"
;next "ESPEON" The menu needs to scroll - the first few work fine.
;next "UMBREON"
;next "LEAFEON"
;next "GLACEON"
;next "SYLVEON"
next "CANCEL@"
BillsHousePokemonListText2:
text_far _BillsHousePokemonListText2
text_end