vermilioncity.asm 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258
  1. VermilionCityScript:
  2. call EnableAutoTextBoxDrawing
  3. ld hl, wCurrentMapScriptFlags
  4. bit 6, [hl]
  5. res 6, [hl]
  6. push hl
  7. call nz, VermilionCityScript_197cb
  8. pop hl
  9. bit 5, [hl]
  10. res 5, [hl]
  11. call nz, VermilionCityScript_197c0
  12. ld hl, VermilionCityScriptPointers
  13. ld a, [wVermilionCityCurScript]
  14. jp CallFunctionInTable
  15. VermilionCityScript_197c0:
  16. call Random
  17. ld a, [$ffd4]
  18. and $e
  19. ld [wFirstLockTrashCanIndex], a
  20. ret
  21. VermilionCityScript_197cb:
  22. CheckEventHL EVENT_SS_ANNE_LEFT
  23. ret z
  24. CheckEventReuseHL EVENT_WALKED_PAST_GUARD_AFTER_SS_ANNE_LEFT
  25. SetEventReuseHL EVENT_WALKED_PAST_GUARD_AFTER_SS_ANNE_LEFT
  26. ret nz
  27. ld a, $2
  28. ld [wVermilionCityCurScript], a
  29. ret
  30. VermilionCityScriptPointers:
  31. dw VermilionCityScript0
  32. dw VermilionCityScript1
  33. dw VermilionCityScript2
  34. dw VermilionCityScript3
  35. dw VermilionCityScript4
  36. VermilionCityScript0:
  37. ld a, [wSpriteStateData1 + 9]
  38. and a ; cp SPRITE_FACING_DOWN
  39. ret nz
  40. ld hl, CoordsData_19823
  41. call ArePlayerCoordsInArray
  42. ret nc
  43. xor a
  44. ld [hJoyHeld], a
  45. ld [wcf0d], a
  46. ld a, $3
  47. ld [hSpriteIndexOrTextID], a
  48. call DisplayTextID
  49. CheckEvent EVENT_SS_ANNE_LEFT
  50. jr nz, .asm_19810
  51. ld b, S_S_TICKET
  52. predef GetQuantityOfItemInBag
  53. ld a, b
  54. and a
  55. ret nz
  56. .asm_19810
  57. ld a, D_UP
  58. ld [wSimulatedJoypadStatesEnd], a
  59. ld a, $1
  60. ld [wSimulatedJoypadStatesIndex], a
  61. call StartSimulatingJoypadStates
  62. ld a, $1
  63. ld [wVermilionCityCurScript], a
  64. ret
  65. CoordsData_19823:
  66. db $1e,$12
  67. db $ff
  68. VermilionCityScript4:
  69. ld hl, CoordsData_19823
  70. call ArePlayerCoordsInArray
  71. ret c
  72. ld a, $0
  73. ld [wVermilionCityCurScript], a
  74. ret
  75. VermilionCityScript2:
  76. ld a, $ff
  77. ld [wJoyIgnore], a
  78. ld a, D_UP
  79. ld [wSimulatedJoypadStatesEnd], a
  80. ld [wSimulatedJoypadStatesEnd + 1], a
  81. ld a, 2
  82. ld [wSimulatedJoypadStatesIndex], a
  83. call StartSimulatingJoypadStates
  84. ld a, $3
  85. ld [wVermilionCityCurScript], a
  86. ret
  87. VermilionCityScript3:
  88. ld a, [wSimulatedJoypadStatesIndex]
  89. and a
  90. ret nz
  91. xor a
  92. ld [wJoyIgnore], a
  93. ld [hJoyHeld], a
  94. ld a, $0
  95. ld [wVermilionCityCurScript], a
  96. ret
  97. VermilionCityScript1:
  98. ld a, [wSimulatedJoypadStatesIndex]
  99. and a
  100. ret nz
  101. ld c, 10
  102. call DelayFrames
  103. ld a, $0
  104. ld [wVermilionCityCurScript], a
  105. ret
  106. VermilionCityTextPointers:
  107. dw VermilionCityText1
  108. dw VermilionCityText2
  109. dw VermilionCityText3
  110. dw VermilionCityText4
  111. dw VermilionCityText5
  112. dw VermilionCityText6
  113. dw VermilionCityText7
  114. dw VermilionCityText8
  115. dw MartSignText
  116. dw PokeCenterSignText
  117. dw VermilionCityText11
  118. dw VermilionCityText12
  119. dw VermilionCityText13
  120. VermilionCityText1:
  121. TX_FAR _VermilionCityText1
  122. db "@"
  123. VermilionCityText2:
  124. TX_ASM
  125. CheckEvent EVENT_SS_ANNE_LEFT
  126. jr nz, .asm_1989e
  127. ld hl, VermilionCityText_198a7
  128. call PrintText
  129. jr .asm_198a4
  130. .asm_1989e
  131. ld hl, VermilionCityText_198ac
  132. call PrintText
  133. .asm_198a4
  134. jp TextScriptEnd
  135. VermilionCityText_198a7:
  136. TX_FAR _VermilionCityText_198a7
  137. db "@"
  138. VermilionCityText_198ac:
  139. TX_FAR _VermilionCityText_198ac
  140. db "@"
  141. VermilionCityText3:
  142. TX_ASM
  143. CheckEvent EVENT_SS_ANNE_LEFT
  144. jr nz, .asm_198f6
  145. ld a, [wSpriteStateData1 + 9]
  146. cp SPRITE_FACING_RIGHT
  147. jr z, .asm_198c8
  148. ld hl, VermilionCityCoords1
  149. call ArePlayerCoordsInArray
  150. jr nc, .asm_198d0
  151. .asm_198c8
  152. ld hl, SSAnneWelcomeText4
  153. call PrintText
  154. jr .asm_198fc
  155. .asm_198d0
  156. ld hl, SSAnneWelcomeText9
  157. call PrintText
  158. ld b, S_S_TICKET
  159. predef GetQuantityOfItemInBag
  160. ld a, b
  161. and a
  162. jr nz, .asm_198e9
  163. ld hl, SSAnneNoTicketText
  164. call PrintText
  165. jr .asm_198fc
  166. .asm_198e9
  167. ld hl, SSAnneFlashedTicketText
  168. call PrintText
  169. ld a, $4
  170. ld [wVermilionCityCurScript], a
  171. jr .asm_198fc
  172. .asm_198f6
  173. ld hl, SSAnneNotHereText
  174. call PrintText
  175. .asm_198fc
  176. jp TextScriptEnd
  177. VermilionCityCoords1:
  178. db $1d,$13
  179. db $1f,$13
  180. db $ff
  181. SSAnneWelcomeText4:
  182. TX_FAR _SSAnneWelcomeText4
  183. db "@"
  184. SSAnneWelcomeText9:
  185. TX_FAR _SSAnneWelcomeText9
  186. db "@"
  187. SSAnneFlashedTicketText:
  188. TX_FAR _SSAnneFlashedTicketText
  189. db "@"
  190. SSAnneNoTicketText:
  191. TX_FAR _SSAnneNoTicketText
  192. db "@"
  193. SSAnneNotHereText:
  194. TX_FAR _SSAnneNotHereText
  195. db "@"
  196. VermilionCityText4:
  197. TX_FAR _VermilionCityText4
  198. db "@"
  199. VermilionCityText5:
  200. TX_FAR _VermilionCityText5
  201. TX_ASM
  202. ld a, MACHOP
  203. call PlayCry
  204. call WaitForSoundToFinish
  205. ld hl, VermilionCityText14
  206. ret
  207. VermilionCityText14:
  208. TX_FAR _VermilionCityText14
  209. db "@"
  210. VermilionCityText6:
  211. TX_FAR _VermilionCityText6
  212. db "@"
  213. VermilionCityText7:
  214. TX_FAR _VermilionCityText7
  215. db "@"
  216. VermilionCityText8:
  217. TX_FAR _VermilionCityText8
  218. db "@"
  219. VermilionCityText11:
  220. TX_FAR _VermilionCityText11
  221. db "@"
  222. VermilionCityText12:
  223. TX_FAR _VermilionCityText12
  224. db "@"
  225. VermilionCityText13:
  226. TX_FAR _VermilionCityText13
  227. db "@"