summaryrefslogtreecommitdiff
path: root/scripts/BillsHouse.asm
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/BillsHouse.asm')
-rwxr-xr-xscripts/BillsHouse.asm279
1 files changed, 279 insertions, 0 deletions
diff --git a/scripts/BillsHouse.asm b/scripts/BillsHouse.asm
new file mode 100755
index 00000000..a9e09947
--- /dev/null
+++ b/scripts/BillsHouse.asm
@@ -0,0 +1,279 @@
+BillsHouse_Script:
+ call BillsHouseScript_1e09e
+ call EnableAutoTextBoxDrawing
+ ld a, [wBillsHouseCurScript]
+ ld hl, BillsHouse_ScriptPointers
+ call CallFunctionInTable
+ ret
+
+BillsHouse_ScriptPointers:
+ dw BillsHouseScript0
+ dw BillsHouseScript1
+ dw BillsHouseScript2
+ dw BillsHouseScript3
+ dw BillsHouseScript4
+ dw BillsHouseScript5
+ dw BillsHouseScript6
+ dw BillsHouseScript7
+ dw BillsHouseScript8
+ dw BillsHouseScript9
+
+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, $0
+ jr .asm_1e0b5
+
+.asm_1e0b3
+ ld a, $9
+.asm_1e0b5
+ ld [wBillsHouseCurScript], a
+ ret
+
+BillsHouseScript0:
+ ld a, [wd472]
+ bit 7, a
+ jr z, .asm_1e0d2
+ callab CheckPikachuFaintedOrStatused
+ jr c, .asm_1e0d2
+ callab Func_f24d5
+.asm_1e0d2
+ xor a
+ ld [wJoyIgnore], a
+ ld a, $1
+ ld [wBillsHouseCurScript], a
+ ret
+
+BillsHouseScript1:
+ ret
+
+BillsHouseScript2:
+ ld a, $ff
+ 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
+ callab Func_f250b
+.asm_1e0f8
+ ld de, MovementData_1e7a0
+.notDown
+ ld a, $1
+ ld [H_SPRITEINDEX], a
+ call MoveSprite
+ ld a, $3
+ ld [wBillsHouseCurScript], a
+ ret
+
+MovementData_1e79c:
+ db NPC_MOVEMENT_UP
+ db NPC_MOVEMENT_UP
+ db NPC_MOVEMENT_UP
+ db $FF
+
+; 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 $FF
+
+BillsHouseScript3:
+ 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, [wSpritePlayerStateData1FacingDirection]
+ and a ; cp SPRITE_FACING_DOWN
+ jr nz, .asm_1e133
+ ld hl, PikachuMovementData_1e152
+.asm_1e133
+ call ApplyPikachuMovementData
+ callab InitializePikachuTextID
+.asm_1e13e
+ xor a
+ ld [wJoyIgnore], a
+ SetEvent EVENT_BILL_SAID_USE_CELL_SEPARATOR
+ ld a, $4
+ 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, $fc
+ ld [wJoyIgnore], a
+ ld a, $5
+ ld [wBillsHouseCurScript], 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 ApplyPikachuMovementData
+ ld a, $f
+ ld [wEmotionBubbleSpriteIndex], a
+ ld a, EXCLAMATION_BUBBLE
+ 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 [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 $FF
+
+PikachuMovementData_1e1a9:
+ db $00
+ db $37
+ db $3f
+
+BillsHouseScript6:
+ 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 [wBillsHouseCurScript], a
+ ret
+
+BillsHouseScript7:
+ xor a
+ ld [wPlayerMovingDirection], a
+ ld a, SPRITE_FACING_UP
+ ld [wSpritePlayerStateData1FacingDirection], 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 [wBillsHouseCurScript], 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 [wSpritePlayerStateData1FacingDirection], 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 [wBillsHouseCurScript], a
+ ret
+
+BillsHouseScript9:
+ ret
+
+BillsHouse_TextPointers:
+ dw BillsHouseText1
+ dw BillsHouseText2
+ dw BillsHouseText3
+ dw BillsHouseText4
+
+BillsHouseText4:
+ TX_FAR _BillsHouseDontLeaveText
+ db "@"
+
+BillsHouseText1:
+ TX_ASM
+ callba Func_f2418
+ jp TextScriptEnd
+
+BillsHouseText2:
+ TX_ASM
+ callba Func_f244a
+ jp TextScriptEnd
+
+BillsHouseText3:
+ TX_ASM
+ callba Func_f24a2
+ jp TextScriptEnd