pokeyellow/scripts/BillsHouse.asm
dannye bc2354dd66
Some checks failed
CI / build (push) Has been cancelled
CI / build-macos (push) Has been cancelled
Merge branch 'master' of https://github.com/pret/pokered
2026-01-17 22:38:33 -06:00

282 lines
6.1 KiB
NASM

BillsHouse_Script:
call BillsHouseScript_1e09e
call EnableAutoTextBoxDrawing
ld a, [wBillsHouseCurScript]
ld hl, BillsHouse_ScriptPointers
call CallFunctionInTable
ret
BillsHouse_ScriptPointers:
def_script_pointers
dw_const BillsHouseScript0, SCRIPT_BILLSHOUSE_SCRIPT0
dw_const BillsHouseScript1, SCRIPT_BILLSHOUSE_SCRIPT1
dw_const BillsHouseScript2, SCRIPT_BILLSHOUSE_SCRIPT2
dw_const BillsHouseScript3, SCRIPT_BILLSHOUSE_SCRIPT3
dw_const BillsHouseScript4, SCRIPT_BILLSHOUSE_SCRIPT4
dw_const BillsHouseScript5, SCRIPT_BILLSHOUSE_SCRIPT5
dw_const BillsHouseScript6, SCRIPT_BILLSHOUSE_SCRIPT6
dw_const BillsHouseScript7, SCRIPT_BILLSHOUSE_SCRIPT7
dw_const BillsHouseScript8, SCRIPT_BILLSHOUSE_SCRIPT8
dw_const BillsHouseScript9, SCRIPT_BILLSHOUSE_SCRIPT9
BillsHouseScript_1e09e:
ld hl, wd492
bit 7, [hl]
set 7, [hl]
ret nz
CheckEventHL EVENT_MET_BILL_2
jr z, .asm_1e0af
jr .asm_1e0b3
.asm_1e0af
ld a, SCRIPT_BILLSHOUSE_SCRIPT0
jr .asm_1e0b5
.asm_1e0b3
ld a, SCRIPT_BILLSHOUSE_SCRIPT9
.asm_1e0b5
ld [wBillsHouseCurScript], a
ret
BillsHouseScript0:
ld a, [wd471]
bit 7, a
jr z, .asm_1e0d2
callfar CheckPikachuStatusCondition
jr c, .asm_1e0d2
callfar Func_f24d5
.asm_1e0d2
xor a
ld [wJoyIgnore], a
ld a, SCRIPT_BILLSHOUSE_SCRIPT1
ld [wBillsHouseCurScript], a
ret
BillsHouseScript1:
ret
BillsHouseScript2:
ld a, PAD_BUTTONS | PAD_CTRL_PAD
ld [wJoyIgnore], a
ld a, [wSpritePlayerStateData1FacingDirection]
and a ; cp SPRITE_FACING_DOWN
ld de, MovementData_1e79c
jr nz, .notDown
call CheckPikachuFollowingPlayer
jr nz, .asm_1e0f8
callfar Func_f250b
.asm_1e0f8
ld de, MovementData_1e7a0
.notDown
ld a, BILLSHOUSE_BILL_POKEMON
ldh [hSpriteIndex], a
call MoveSprite
ld a, SCRIPT_BILLSHOUSE_SCRIPT3
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
BillsHouseScript3:
ld a, [wStatusFlags5]
bit BIT_SCRIPTED_NPC_MOVEMENT, a
ret nz
ld a, TOGGLE_BILL_POKEMON
ld [wToggleableObjectIndex], a
predef HideObject
call CheckPikachuFollowingPlayer
jr z, .asm_1e13e
ld hl, PikachuMovementData_1e14d
ld a, [wSpritePlayerStateData1FacingDirection]
and a ; cp SPRITE_FACING_DOWN
jr nz, .asm_1e133
ld hl, PikachuMovementData_1e152
.asm_1e133
call ApplyPikachuMovementData
callfar InitializePikachuTextID
.asm_1e13e
xor a
ld [wJoyIgnore], a
SetEvent EVENT_BILL_SAID_USE_CELL_SEPARATOR
ld a, SCRIPT_BILLSHOUSE_SCRIPT4
ld [wBillsHouseCurScript], a
ret
PikachuMovementData_1e14d:
db $00
db $1e
db $1e
db $1e
db $3f
PikachuMovementData_1e152:
db $00
db $1e
db $1f
db $1e
db $1e
db $20
db $36
db $3f
BillsHouseScript4:
CheckEvent EVENT_USED_CELL_SEPARATOR_ON_BILL
ret z
ld a, PAD_SELECT | PAD_START | PAD_CTRL_PAD
ld [wJoyIgnore], a
ld a, SCRIPT_BILLSHOUSE_SCRIPT5
ld [wBillsHouseCurScript], a
ret
BillsHouseScript5:
ld a, BILLSHOUSE_BILL1
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, TOGGLE_BILL_1
ld [wToggleableObjectIndex], a
predef ShowObject
ld c, 8
call DelayFrames
ld hl, wd471
bit 7, [hl]
jr z, .asm_1e1c6
call CheckPikachuFollowingPlayer
jr z, .asm_1e1c6
ld a, BILLSHOUSE_BILL1
ldh [hSpriteIndex], a
ld a, SPRITE_FACING_DOWN
ldh [hSpriteFacingDirection], a
call SetSpriteFacingDirectionAndDelay
ld hl, PikachuMovementData_1e1a9
call ApplyPikachuMovementData
ld a, $f
ld [wEmotionBubbleSpriteIndex], a
ld a, EXCLAMATION_BUBBLE
ld [wWhichEmotionBubble], a
predef EmotionBubble
callfar InitializePikachuTextID
.asm_1e1c6
ld a, BILLSHOUSE_BILL1
ldh [hSpriteIndex], a
ld de, .BillExitMachineMovement
call MoveSprite
ld a, SCRIPT_BILLSHOUSE_SCRIPT6
ld [wBillsHouseCurScript], a
ret
.BillExitMachineMovement:
db NPC_MOVEMENT_DOWN
db NPC_MOVEMENT_RIGHT
db NPC_MOVEMENT_RIGHT
db NPC_MOVEMENT_RIGHT
db NPC_MOVEMENT_DOWN
db -1 ; end
PikachuMovementData_1e1a9:
db $00
db $37
db $3f
BillsHouseScript6:
ld a, [wStatusFlags5]
bit BIT_SCRIPTED_NPC_MOVEMENT, a
ret nz
SetEvent EVENT_MET_BILL_2 ; this event seems redundant
SetEvent EVENT_MET_BILL
ld a, SCRIPT_BILLSHOUSE_SCRIPT7
ld [wBillsHouseCurScript], a
ret
BillsHouseScript7:
xor a
ld [wPlayerMovingDirection], a
ld a, SPRITE_FACING_UP
ld [wSpritePlayerStateData1FacingDirection], a
ld a, PAD_SELECT | PAD_START | PAD_CTRL_PAD
ld [wJoyIgnore], a
ld de, RLE_1e219
ld hl, wSimulatedJoypadStatesEnd
call DecodeRLEList
dec a
ld [wSimulatedJoypadStatesIndex], a
call StartSimulatingJoypadStates
ld a, SCRIPT_BILLSHOUSE_SCRIPT8
ld [wBillsHouseCurScript], a
ret
RLE_1e219:
db PAD_RIGHT, $3
db $FF
BillsHouseScript8:
ld a, [wSimulatedJoypadStatesIndex]
and a
ret nz
xor a
ld [wPlayerMovingDirection], a
ld a, SPRITE_FACING_UP
ld [wSpritePlayerStateData1FacingDirection], a
ld a, BILLSHOUSE_BILL1
ldh [hSpriteIndex], a
ld a, SPRITE_FACING_DOWN
ldh [hSpriteFacingDirection], a
call SetSpriteFacingDirectionAndDelay
xor a
ld [wJoyIgnore], a
ld a, TEXT_BILLSHOUSE_BILL_SS_TICKET
ldh [hTextID], a
call DisplayTextID
ld a, SCRIPT_BILLSHOUSE_SCRIPT9
ld [wBillsHouseCurScript], a
ret
BillsHouseScript9:
ret
BillsHouse_TextPointers:
def_text_pointers
dw_const BillsHouseBillPokemonText, TEXT_BILLSHOUSE_BILL_POKEMON
dw_const BillsHouseBillSSTicketText, TEXT_BILLSHOUSE_BILL_SS_TICKET
dw_const BillsHouseBillCheckOutMyRarePokemonText, TEXT_BILLSHOUSE_BILL_CHECK_OUT_MY_RARE_POKEMON
dw_const BillsHouseBillDontLeaveText, TEXT_BILLSHOUSE_BILL_DONT_LEAVE
BillsHouseBillDontLeaveText:
text_far _BillsHouseBillDontLeaveText
text_end
BillsHouseBillPokemonText:
text_asm
farcall BillsHousePrintBillPokemonText
jp TextScriptEnd
BillsHouseBillSSTicketText:
text_asm
farcall BillsHousePrintBillSSTicketText
jp TextScriptEnd
BillsHouseBillCheckOutMyRarePokemonText:
text_asm
farcall BillsHousePrintBillCheckOutMyRarePokemonText
jp TextScriptEnd