pokeyellow/scripts/billshouse.asm
2016-05-31 11:46:02 -04:00

281 lines
4.9 KiB
NASM
Executable File

BillsHouseScript: ; 1e76a (7:676a)
call BillsHouseScript_1e09e
call EnableAutoTextBoxDrawing
ld a, [W_BILLSHOUSECURSCRIPT]
ld hl, BillsHouseScriptPointers
call JumpTable
ret
BillsHouseScriptPointers: ; 1e776 (7:6776)
dw BillsHouseScript0
dw BillsHouseScript1
dw BillsHouseScript2
dw BillsHouseScript3
dw BillsHouseScript4
dw BillsHouseScript5
dw BillsHouseScript6
dw BillsHouseScript7
dw BillsHouseScript8
dw BillsHouseScript9
BillsHouseScript_1e09e:
ld hl, wPreventBlackout
bit 7, [hl]
set 7, [hl]
ret nz
ld hl, wd7f2
bit 5, [hl]
jr z, .asm_1e0af
jr .asm_1e0b3
.asm_1e0af
ld a, $0
jr .asm_1e0b5
.asm_1e0b3
ld a, $9
.asm_1e0b5
ld [W_BILLSHOUSECURSCRIPT], a
ret
BillsHouseScript0: ; 1e782 (7:6782)
ld a, [wd472]
bit 7, a
jr z, .asm_1e0d2
callab Func_fce73
jr c, .asm_1e0d2
callab Func_f24d5
.asm_1e0d2
xor a
ld [wJoyIgnore], a
ld a, $1
ld [W_BILLSHOUSECURSCRIPT], a
ret
BillsHouseScript1: ; 1e783 (7:6783)
ret
BillsHouseScript2:
ld a, $ff
ld [wJoyIgnore], a
ld a, [wSpriteStateData1 + 9]
and a ; cp SPRITE_FACING_DOWN
ld de, MovementData_1e79c
jr nz, .notDown
call CheckPikachuFollowingPlayer
jr nz, .asm_1e0f8
callab Func_f250b
.asm_1e0f8
ld de, MovementData_1e7a0
.notDown
ld a, $1
ld [H_SPRITEINDEX], a
call MoveSprite
ld a, $3
ld [W_BILLSHOUSECURSCRIPT], a
ret
MovementData_1e79c: ; 1e79c (7:679c)
db NPC_MOVEMENT_UP
db NPC_MOVEMENT_UP
db NPC_MOVEMENT_UP
db $FF
; make Bill walk around the player
MovementData_1e7a0: ; 1e7a0 (7:67a0)
db NPC_MOVEMENT_RIGHT
db NPC_MOVEMENT_UP
db NPC_MOVEMENT_UP
db NPC_MOVEMENT_LEFT
db NPC_MOVEMENT_UP
db $FF
BillsHouseScript3: ; 1e7a6 (7:67a6)
ld a, [wd730]
bit 0, a
ret nz
ld a, HS_BILL_POKEMON
ld [wMissableObjectIndex], a
predef HideObject
call CheckPikachuFollowingPlayer
jr z, .asm_1e13e
ld hl, PikachuMovementData_1e14d
ld a, [wSpriteStateData1 + 9]
and a ; cp SPRITE_FACING_DOWN
jr nz, .asm_1e133
ld hl, PikachuMovementData_1e152
.asm_1e133
call Func_159b
callab InitializePikachuTextID
.asm_1e13e
xor a
ld [wJoyIgnore], a
SetEvent EVENT_BILL_SAID_USE_CELL_SEPARATOR
ld a, $4
ld [W_BILLSHOUSECURSCRIPT], 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: ; 1e7c5 (7:67c5)
CheckEvent EVENT_USED_CELL_SEPARATOR_ON_BILL
ret z
ld a, $fc
ld [wJoyIgnore], a
ld a, $5
ld [W_BILLSHOUSECURSCRIPT], a
ret
BillsHouseScript5:
ld a, $2
ld [wSpriteIndex], a
ld a, $c
ld [$ffeb], a
ld a, $40
ld [$ffec], a
ld a, $6
ld [$ffed], a
ld a, $5
ld [$ffee], a
call SetSpritePosition1
ld a, HS_BILL_1
ld [wMissableObjectIndex], a
predef ShowObject
ld c, 8
call DelayFrames
ld hl, wd472
bit 7, [hl]
jr z, .asm_1e1c6
call CheckPikachuFollowingPlayer
jr z, .asm_1e1c6
ld a, $2
ld [H_SPRITEINDEX], a
ld a, SPRITE_FACING_DOWN
ld [hSpriteFacingDirection], a
call SetSpriteFacingDirectionAndDelay
ld hl, PikachuMovementData_1e1a9
call Func_159b
ld a, $f
ld [wEmotionBubbleSpriteIndex], a
ld a, $0
ld [wWhichEmotionBubble], a
predef EmotionBubble
callab InitializePikachuTextID
.asm_1e1c6
ld a, $2
ld [H_SPRITEINDEX], a
ld de, MovementData_1e807
call MoveSprite
ld a, $6
ld [W_BILLSHOUSECURSCRIPT], a
ret
MovementData_1e807: ; 1e807 (7:6807)
db NPC_MOVEMENT_DOWN
db NPC_MOVEMENT_RIGHT
db NPC_MOVEMENT_RIGHT
db NPC_MOVEMENT_RIGHT
db NPC_MOVEMENT_DOWN
db $FF
PikachuMovementData_1e1a9:
db $00
db $37
db $3f
BillsHouseScript6: ; 1e80d (7:680d)
ld a, [wd730]
bit 0, a
ret nz
SetEvent EVENT_MET_BILL_2 ; this event seems redundant
SetEvent EVENT_MET_BILL
ld a, $7
ld [W_BILLSHOUSECURSCRIPT], a
ret
BillsHouseScript7:
xor a
ld [wPlayerMovingDirection], a
ld a, SPRITE_FACING_UP
ld [wSpriteStateData1 + 9], a
ld a, $FF ^ (A_BUTTON | B_BUTTON)
ld [wJoyIgnore], a
ld de, RLE_1e219
ld hl, wSimulatedJoypadStatesEnd
call DecodeRLEList
dec a
ld [wSimulatedJoypadStatesIndex], a
call StartSimulatingJoypadStates
ld a, $8
ld [W_BILLSHOUSECURSCRIPT], a
ret
RLE_1e219:
db D_RIGHT,$3
db $FF
BillsHouseScript8:
ld a, [wSimulatedJoypadStatesIndex]
and a
ret nz
xor a
ld [wPlayerMovingDirection], a
ld a, SPRITE_FACING_UP
ld [wSpriteStateData1 + 9], a
ld a, $2
ld [H_SPRITEINDEX], a
ld a, SPRITE_FACING_DOWN
ld [hSpriteFacingDirection], a
call SetSpriteFacingDirectionAndDelay
xor a
ld [wJoyIgnore], a
ld a, $2
ld [hSpriteIndexOrTextID], a
call DisplayTextID
ld a, $9
ld [W_BILLSHOUSECURSCRIPT], a
ret
BillsHouseScript9: ; 1e827 (7:6827)
ret
BillsHouseTextPointers: ; 1e834 (7:6834)
dw BillsHouseText1
dw BillsHouseText2
dw BillsHouseText3
dw BillsHouseText4
BillsHouseText4: ; 1e83c (7:683c)
TX_FAR _BillsHouseDontLeaveText
db "@"
BillsHouseText1: ; 1e83d (7:683d)
TX_ASM
callba Func_f2418
jp TextScriptEnd
BillsHouseText2: ; 1e874 (7:6874)
TX_ASM
callba Func_f244a
jp TextScriptEnd
BillsHouseText3: ; 1e8d0 (7:68d0)
TX_ASM
callba Func_f24a2
jp TextScriptEnd