billshouse.asm 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215
  1. BillsHouseScript:
  2. call EnableAutoTextBoxDrawing
  3. ld a, [wBillsHouseCurScript]
  4. ld hl, BillsHouseScriptPointers
  5. jp CallFunctionInTable
  6. BillsHouseScriptPointers:
  7. dw BillsHouseScript0
  8. dw BillsHouseScript1
  9. dw BillsHouseScript2
  10. dw BillsHouseScript3
  11. dw BillsHouseScript4
  12. dw BillsHouseScript5
  13. BillsHouseScript0:
  14. ret
  15. BillsHouseScript1:
  16. ld a, [wSpriteStateData1 + 9]
  17. and a ; cp SPRITE_FACING_DOWN
  18. ld de, MovementData_1e79c
  19. jr nz, .notDown
  20. ld de, MovementData_1e7a0
  21. .notDown
  22. ld a, $1
  23. ld [H_SPRITEINDEX], a
  24. call MoveSprite
  25. ld a, $2
  26. ld [wBillsHouseCurScript], a
  27. ret
  28. MovementData_1e79c:
  29. db NPC_MOVEMENT_UP
  30. db NPC_MOVEMENT_UP
  31. db NPC_MOVEMENT_UP
  32. db $FF
  33. ; make Bill walk around the player
  34. MovementData_1e7a0:
  35. db NPC_MOVEMENT_RIGHT
  36. db NPC_MOVEMENT_UP
  37. db NPC_MOVEMENT_UP
  38. db NPC_MOVEMENT_LEFT
  39. db NPC_MOVEMENT_UP
  40. db $FF
  41. BillsHouseScript2:
  42. ld a, [wd730]
  43. bit 0, a
  44. ret nz
  45. ld a, HS_BILL_POKEMON
  46. ld [wMissableObjectIndex], a
  47. predef HideObject
  48. SetEvent EVENT_BILL_SAID_USE_CELL_SEPARATOR
  49. xor a
  50. ld [wJoyIgnore], a
  51. ld a, $3
  52. ld [wBillsHouseCurScript], a
  53. ret
  54. BillsHouseScript3:
  55. CheckEvent EVENT_USED_CELL_SEPARATOR_ON_BILL
  56. ret z
  57. ld a, $f0
  58. ld [wJoyIgnore], a
  59. ld a, $2
  60. ld [wSpriteIndex], a
  61. ld a, $c
  62. ld [$ffeb], a
  63. ld a, $40
  64. ld [$ffec], a
  65. ld a, $6
  66. ld [$ffed], a
  67. ld a, $5
  68. ld [$ffee], a
  69. call SetSpritePosition1
  70. ld a, HS_BILL_1
  71. ld [wMissableObjectIndex], a
  72. predef ShowObject
  73. ld c, 8
  74. call DelayFrames
  75. ld a, $2
  76. ld [H_SPRITEINDEX], a
  77. ld de, MovementData_1e807
  78. call MoveSprite
  79. ld a, $4
  80. ld [wBillsHouseCurScript], a
  81. ret
  82. MovementData_1e807:
  83. db NPC_MOVEMENT_DOWN
  84. db NPC_MOVEMENT_RIGHT
  85. db NPC_MOVEMENT_RIGHT
  86. db NPC_MOVEMENT_RIGHT
  87. db NPC_MOVEMENT_DOWN
  88. db $FF
  89. BillsHouseScript4:
  90. ld a, [wd730]
  91. bit 0, a
  92. ret nz
  93. xor a
  94. ld [wJoyIgnore], a
  95. SetEvent EVENT_MET_BILL_2 ; this event seems redundant
  96. SetEvent EVENT_MET_BILL
  97. ld a, $0
  98. ld [wBillsHouseCurScript], a
  99. ret
  100. BillsHouseScript5:
  101. ld a, $4
  102. ld [hSpriteIndexOrTextID], a
  103. call DisplayTextID
  104. ld a, $0
  105. ld [wBillsHouseCurScript], a
  106. ret
  107. BillsHouseTextPointers:
  108. dw BillsHouseText1
  109. dw BillsHouseText2
  110. dw BillsHouseText3
  111. dw BillsHouseText4
  112. BillsHouseText4:
  113. TX_BILLS_PC
  114. BillsHouseText1:
  115. TX_ASM
  116. ld hl, BillsHouseText_1e865
  117. call PrintText
  118. call YesNoChoice
  119. ld a, [wCurrentMenuItem]
  120. and a
  121. jr nz, .asm_1e85a
  122. .asm_1e84d
  123. ld hl, BillsHouseText_1e86a
  124. call PrintText
  125. ld a, $1
  126. ld [wBillsHouseCurScript], a
  127. jr .asm_1e862
  128. .asm_1e85a
  129. ld hl, BillsHouseText_1e86f
  130. call PrintText
  131. jr .asm_1e84d
  132. .asm_1e862
  133. jp TextScriptEnd
  134. BillsHouseText_1e865:
  135. TX_FAR _BillsHouseText_1e865
  136. db "@"
  137. BillsHouseText_1e86a:
  138. TX_FAR _BillsHouseText_1e86a
  139. db "@"
  140. BillsHouseText_1e86f:
  141. TX_FAR _BillsHouseText_1e86f
  142. db "@"
  143. BillsHouseText2:
  144. TX_ASM
  145. CheckEvent EVENT_GOT_SS_TICKET
  146. jr nz, .asm_1e8a9
  147. ld hl, BillThankYouText
  148. call PrintText
  149. lb bc, S_S_TICKET, 1
  150. call GiveItem
  151. jr nc, .BagFull
  152. ld hl, SSTicketReceivedText
  153. call PrintText
  154. SetEvent EVENT_GOT_SS_TICKET
  155. ld a, HS_CERULEAN_GUARD_1
  156. ld [wMissableObjectIndex], a
  157. predef ShowObject
  158. ld a, HS_CERULEAN_GUARD_2
  159. ld [wMissableObjectIndex], a
  160. predef HideObject
  161. .asm_1e8a9
  162. ld hl, BillsHouseText_1e8cb
  163. call PrintText
  164. jr .asm_1e8b7
  165. .BagFull
  166. ld hl, SSTicketNoRoomText
  167. call PrintText
  168. .asm_1e8b7
  169. jp TextScriptEnd
  170. BillThankYouText:
  171. TX_FAR _BillThankYouText
  172. db "@"
  173. SSTicketReceivedText:
  174. TX_FAR _SSTicketReceivedText
  175. TX_SFX_KEY_ITEM
  176. TX_BLINK
  177. db "@"
  178. SSTicketNoRoomText:
  179. TX_FAR _SSTicketNoRoomText
  180. db "@"
  181. BillsHouseText_1e8cb:
  182. TX_FAR _BillsHouseText_1e8cb
  183. db "@"
  184. BillsHouseText3:
  185. TX_ASM
  186. ld hl, BillsHouseText_1e8da
  187. call PrintText
  188. jp TextScriptEnd
  189. BillsHouseText_1e8da:
  190. TX_FAR _BillsHouseText_1e8da
  191. db "@"