kep-hack/scripts/BillsHouse.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

224 lines
3.9 KiB
NASM

BillsHouse_Script:
call EnableAutoTextBoxDrawing
ld a, [wBillsHouseCurScript]
ld hl, BillsHouse_ScriptPointers
jp CallFunctionInTable
BillsHouse_ScriptPointers:
dw BillsHouseScript0
dw BillsHouseScript1
dw BillsHouseScript2
dw BillsHouseScript3
dw BillsHouseScript4
dw BillsHouseScript5
BillsHouseScript0:
ret
BillsHouseScript1:
ld a, [wSpritePlayerStateData1FacingDirection]
and a ; cp SPRITE_FACING_DOWN
ld de, MovementData_1e79c
jr nz, .notDown
ld de, MovementData_1e7a0
.notDown
ld a, $1
ldh [hSpriteIndex], a
call MoveSprite
ld a, $2
ld [wBillsHouseCurScript], a
ret
MovementData_1e79c:
db NPC_MOVEMENT_UP
db NPC_MOVEMENT_UP
db NPC_MOVEMENT_UP
db -1 ; end
; make Bill walk around the player
MovementData_1e7a0:
db NPC_MOVEMENT_RIGHT
db NPC_MOVEMENT_UP
db NPC_MOVEMENT_UP
db NPC_MOVEMENT_LEFT
db NPC_MOVEMENT_UP
db -1 ; end
BillsHouseScript2:
ld a, [wd730]
bit 0, a
ret nz
ld a, HS_BILL_POKEMON
ld [wMissableObjectIndex], a
predef HideObject
SetEvent EVENT_BILL_SAID_USE_CELL_SEPARATOR
xor a
ld [wJoyIgnore], a
ld a, $3
ld [wBillsHouseCurScript], a
ret
BillsHouseScript3:
CheckEvent EVENT_USED_CELL_SEPARATOR_ON_BILL
ret z
ld a, $f0
ld [wJoyIgnore], a
ld a, $2
ld [wSpriteIndex], a
ld a, $c
ldh [hSpriteScreenYCoord], a
ld a, $40
ldh [hSpriteScreenXCoord], a
ld a, 6
ldh [hSpriteMapYCoord], a
ld a, 5
ldh [hSpriteMapXCoord], a
call SetSpritePosition1
ld a, HS_BILL_1
ld [wMissableObjectIndex], a
predef ShowObject
ld c, 8
call DelayFrames
ld a, $2
ldh [hSpriteIndex], a
ld de, MovementData_1e807
call MoveSprite
ld a, $4
ld [wBillsHouseCurScript], a
ret
MovementData_1e807:
db NPC_MOVEMENT_DOWN
;db NPC_MOVEMENT_RIGHT
;db NPC_MOVEMENT_RIGHT
;db NPC_MOVEMENT_RIGHT
db NPC_MOVEMENT_DOWN
db -1 ; end
BillsHouseScript4:
ld a, [wd730]
bit 0, a
ret nz
xor a
ld [wJoyIgnore], a
SetEvent EVENT_MET_BILL_2 ; this event seems redundant
SetEvent EVENT_MET_BILL
ld a, $0
ld [wBillsHouseCurScript], a
ret
BillsHouseScript5:
ld a, $4
ldh [hSpriteIndexOrTextID], a
call DisplayTextID
ld a, $0
ld [wBillsHouseCurScript], a
ret
BillsHouse_TextPointers:
dw BillsHouseText1
dw BillsHouseText2
dw BillsHouseText3
dw BillsHouseText4
dw BillsHouseNidorino ; DO. NOT. TOUCH. PLEASE GOD.
BillsHouseText4:
script_bills_pc
BillsHouseText1:
text_asm
ld hl, BillsHouseText_1e865
call PrintText
call YesNoChoice
ld a, [wCurrentMenuItem]
and a
jr nz, .asm_1e85a
.asm_1e84d
ld hl, BillsHouseText_1e86a
call PrintText
ld a, $1
ld [wBillsHouseCurScript], a
jr .asm_1e862
.asm_1e85a
ld hl, BillsHouseText_1e86f
call PrintText
jr .asm_1e84d
.asm_1e862
jp TextScriptEnd
BillsHouseText_1e865:
text_far _BillsHouseText_1e865
text_end
BillsHouseText_1e86a:
text_far _BillsHouseText_1e86a
text_end
BillsHouseText_1e86f:
text_far _BillsHouseText_1e86f
text_end
BillsHouseText2:
text_asm
CheckEvent EVENT_GOT_SS_TICKET
jr nz, .asm_1e8a9
ld hl, BillThankYouText
call PrintText
lb bc, S_S_TICKET, 1
call GiveItem
jr nc, .BagFull
ld hl, SSTicketReceivedText
call PrintText
SetEvent EVENT_GOT_SS_TICKET
ld a, HS_CERULEAN_GUARD_1
ld [wMissableObjectIndex], a
predef ShowObject
ld a, HS_CERULEAN_GUARD_2
ld [wMissableObjectIndex], a
predef HideObject
.asm_1e8a9
ld hl, BillsHouseText_1e8cb
call PrintText
jr .asm_1e8b7
.BagFull
ld hl, SSTicketNoRoomText
call PrintText
.asm_1e8b7
jp TextScriptEnd
BillThankYouText:
text_far _BillThankYouText
text_end
SSTicketReceivedText:
text_far _SSTicketReceivedText
sound_get_key_item
text_promptbutton
text_end
SSTicketNoRoomText:
text_far _SSTicketNoRoomText
text_end
BillsHouseText_1e8cb:
text_far _BillsHouseText_1e8cb
text_end
BillsHouseText3:
text_asm
ld hl, BillsHouseText_1e8da
call PrintText
jp TextScriptEnd
BillsHouseText_1e8da:
text_far _BillsHouseText_1e8da
text_end
BillsHouseNidorino:
text_far _BillsHouseNidorino
text_asm
ld a, NIDORINO
call PlayCry
text_far _BillWarning
jp TextScriptEnd