hidden_object_functions18.asm 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199
  1. GymStatues:
  2. ; if in a gym and have the corresponding badge, a = GymStatueText2_id and jp PrintPredefTextID
  3. ; if in a gym and don’t have the corresponding badge, a = GymStatueText1_id and jp PrintPredefTextID
  4. ; else ret
  5. call EnableAutoTextBoxDrawing
  6. ld a, [wSpriteStateData1 + 9]
  7. cp SPRITE_FACING_UP
  8. ret nz
  9. ld hl, .BadgeFlags
  10. ld a, [wCurMap]
  11. ld b, a
  12. .loop
  13. ld a, [hli]
  14. cp $ff
  15. ret z
  16. cp b
  17. jr z, .match
  18. inc hl
  19. jr .loop
  20. .match
  21. ld b, [hl]
  22. ld a, [wBeatGymFlags]
  23. and b
  24. cp b
  25. tx_pre_id GymStatueText2
  26. jr z, .haveBadge
  27. tx_pre_id GymStatueText1
  28. .haveBadge
  29. jp PrintPredefTextID
  30. .BadgeFlags:
  31. db PEWTER_GYM, %00000001
  32. db CERULEAN_GYM, %00000010
  33. db VERMILION_GYM,%00000100
  34. db CELADON_GYM, %00001000
  35. db FUCHSIA_GYM, %00010000
  36. db SAFFRON_GYM, %00100000
  37. db CINNABAR_GYM, %01000000
  38. db VIRIDIAN_GYM, %10000000
  39. db $ff
  40. GymStatueText1:
  41. TX_FAR _GymStatueText1
  42. db "@"
  43. GymStatueText2:
  44. TX_FAR _GymStatueText2
  45. db "@"
  46. PrintBenchGuyText:
  47. call EnableAutoTextBoxDrawing
  48. ld hl, BenchGuyTextPointers
  49. ld a, [wCurMap]
  50. ld b, a
  51. .loop
  52. ld a, [hli]
  53. cp $ff
  54. ret z
  55. cp b
  56. jr z, .match
  57. inc hl
  58. inc hl
  59. jr .loop
  60. .match
  61. ld a, [hli]
  62. ld b, a
  63. ld a, [wSpriteStateData1 + 9]
  64. cp b
  65. jr nz, .loop ; player isn't facing left at the bench guy
  66. ld a, [hl]
  67. jp PrintPredefTextID
  68. ; format: db map id, player sprite facing direction, text id of PredefTextIDPointerTable
  69. BenchGuyTextPointers:
  70. db VIRIDIAN_POKECENTER, SPRITE_FACING_LEFT
  71. db_tx_pre ViridianCityPokecenterBenchGuyText
  72. db PEWTER_POKECENTER, SPRITE_FACING_LEFT
  73. db_tx_pre PewterCityPokecenterBenchGuyText
  74. db CERULEAN_POKECENTER, SPRITE_FACING_LEFT
  75. db_tx_pre CeruleanCityPokecenterBenchGuyText
  76. db LAVENDER_POKECENTER, SPRITE_FACING_LEFT
  77. db_tx_pre LavenderCityPokecenterBenchGuyText
  78. db VERMILION_POKECENTER, SPRITE_FACING_LEFT
  79. db_tx_pre VermilionCityPokecenterBenchGuyText
  80. db CELADON_POKECENTER, SPRITE_FACING_LEFT
  81. db_tx_pre CeladonCityPokecenterBenchGuyText
  82. db CELADON_HOTEL, SPRITE_FACING_LEFT
  83. db_tx_pre CeladonCityHotelText
  84. db FUCHSIA_POKECENTER, SPRITE_FACING_LEFT
  85. db_tx_pre FuchsiaCityPokecenterBenchGuyText
  86. db CINNABAR_POKECENTER, SPRITE_FACING_LEFT
  87. db_tx_pre CinnabarIslandPokecenterBenchGuyText
  88. db SAFFRON_POKECENTER, SPRITE_FACING_LEFT
  89. db_tx_pre SaffronCityPokecenterBenchGuyText
  90. db MT_MOON_POKECENTER, SPRITE_FACING_LEFT
  91. db_tx_pre MtMoonPokecenterBenchGuyText
  92. db ROCK_TUNNEL_POKECENTER,SPRITE_FACING_LEFT
  93. db_tx_pre RockTunnelPokecenterBenchGuyText
  94. db $FF
  95. ViridianCityPokecenterBenchGuyText:
  96. TX_FAR _ViridianCityPokecenterGuyText
  97. db "@"
  98. PewterCityPokecenterBenchGuyText:
  99. TX_FAR _PewterCityPokecenterGuyText
  100. db "@"
  101. CeruleanCityPokecenterBenchGuyText:
  102. TX_FAR _CeruleanPokecenterGuyText
  103. db "@"
  104. LavenderCityPokecenterBenchGuyText:
  105. TX_FAR _LavenderPokecenterGuyText
  106. db "@"
  107. MtMoonPokecenterBenchGuyText:
  108. TX_FAR _MtMoonPokecenterBenchGuyText
  109. db "@"
  110. RockTunnelPokecenterBenchGuyText:
  111. TX_FAR _RockTunnelPokecenterGuyText
  112. db "@"
  113. UnusedBenchGuyText1:
  114. TX_FAR _UnusedBenchGuyText1
  115. db "@"
  116. UnusedBenchGuyText2:
  117. TX_FAR _UnusedBenchGuyText2
  118. db "@"
  119. UnusedBenchGuyText3:
  120. TX_FAR _UnusedBenchGuyText3
  121. db "@"
  122. VermilionCityPokecenterBenchGuyText:
  123. TX_FAR _VermilionPokecenterGuyText
  124. db "@"
  125. CeladonCityPokecenterBenchGuyText:
  126. TX_FAR _CeladonCityPokecenterGuyText
  127. db "@"
  128. FuchsiaCityPokecenterBenchGuyText:
  129. TX_FAR _FuchsiaCityPokecenterGuyText
  130. db "@"
  131. CinnabarIslandPokecenterBenchGuyText:
  132. TX_FAR _CinnabarPokecenterGuyText
  133. db "@"
  134. SaffronCityPokecenterBenchGuyText:
  135. TX_ASM
  136. CheckEvent EVENT_BEAT_SILPH_CO_GIOVANNI
  137. ld hl, SaffronCityPokecenterBenchGuyText2
  138. jr nz, .asm_624f2
  139. ld hl, SaffronCityPokecenterBenchGuyText1
  140. .asm_624f2
  141. call PrintText
  142. jp TextScriptEnd
  143. SaffronCityPokecenterBenchGuyText1:
  144. TX_FAR _SaffronCityPokecenterGuyText1
  145. db "@"
  146. SaffronCityPokecenterBenchGuyText2:
  147. TX_FAR _SaffronCityPokecenterGuyText2
  148. db "@"
  149. CeladonCityHotelText:
  150. TX_FAR _CeladonCityHotelText
  151. db "@"
  152. ret
  153. UnusedPredefText:
  154. db "@"
  155. PrintBookcaseText:
  156. call EnableAutoTextBoxDrawing
  157. tx_pre_jump BookcaseText
  158. BookcaseText:
  159. TX_FAR _BookcaseText
  160. db "@"
  161. OpenPokemonCenterPC:
  162. ld a, [wSpriteStateData1 + 9]
  163. cp SPRITE_FACING_UP ; check to see if player is facing up
  164. ret nz
  165. call EnableAutoTextBoxDrawing
  166. ld a, $1
  167. ld [wAutoTextBoxDrawingControl], a
  168. tx_pre_jump PokemonCenterPCText
  169. PokemonCenterPCText:
  170. TX_POKECENTER_PC