PageRenderTime 26ms CodeModel.GetById 16ms RepoModel.GetById 0ms app.codeStats 0ms

/scripts/mtmoon3.asm

https://gitlab.com/eientei95/pokered-fr
Assembly | 407 lines | 359 code | 48 blank | 0 comment | 0 complexity | 3d03aa6138716bb360d67c5799b232ee MD5 | raw file
  1. MtMoon3Script:
  2. call EnableAutoTextBoxDrawing
  3. ld hl, MtMoon3TrainerHeader0
  4. ld de, MtMoon3ScriptPointers
  5. ld a, [wMtMoon3CurScript]
  6. call ExecuteCurMapScriptInTable
  7. ld [wMtMoon3CurScript], a
  8. CheckEvent EVENT_BEAT_MT_MOON_EXIT_SUPER_NERD
  9. ret z
  10. ld hl, CoordsData_49d37
  11. call ArePlayerCoordsInArray
  12. jr nc, .asm_49d31
  13. ld hl, wd72e
  14. set 4, [hl]
  15. ret
  16. .asm_49d31
  17. ld hl, wd72e
  18. res 4, [hl]
  19. ret
  20. CoordsData_49d37:
  21. db $05,$0B
  22. db $05,$0C
  23. db $05,$0D
  24. db $05,$0E
  25. db $06,$0B
  26. db $06,$0C
  27. db $06,$0D
  28. db $06,$0E
  29. db $07,$0B
  30. db $07,$0C
  31. db $07,$0D
  32. db $07,$0E
  33. db $08,$0B
  34. db $08,$0C
  35. db $08,$0D
  36. db $08,$0E
  37. db $FF
  38. MtMoon3Script_49d58:
  39. xor a
  40. ld [wJoyIgnore], a
  41. ld [wMtMoon3CurScript], a
  42. ld [wCurMapScript], a
  43. ret
  44. MtMoon3ScriptPointers:
  45. dw MtMoon3Script0
  46. dw DisplayEnemyTrainerTextAndStartBattle
  47. dw EndTrainerBattle
  48. dw MtMoon3Script3
  49. dw MtMoon3Script4
  50. dw MtMoon3Script5
  51. MtMoon3Script0:
  52. CheckEvent EVENT_BEAT_MT_MOON_EXIT_SUPER_NERD
  53. jp nz, MtMoon3Script_49d91
  54. ld a, [wYCoord]
  55. cp $8
  56. jp nz, MtMoon3Script_49d91
  57. ld a, [wXCoord]
  58. cp $d
  59. jp nz, MtMoon3Script_49d91
  60. xor a
  61. ld [hJoyHeld], a
  62. ld a, $1
  63. ld [hSpriteIndexOrTextID], a
  64. jp DisplayTextID
  65. MtMoon3Script_49d91:
  66. CheckEitherEventSet EVENT_GOT_DOME_FOSSIL, EVENT_GOT_HELIX_FOSSIL
  67. jp z, CheckFightingMapTrainers
  68. ret
  69. MtMoon3Script3:
  70. ld a, [wIsInBattle]
  71. cp $ff
  72. jp z, MtMoon3Script_49d58
  73. call UpdateSprites
  74. call Delay3
  75. SetEvent EVENT_BEAT_MT_MOON_EXIT_SUPER_NERD
  76. xor a
  77. ld [wJoyIgnore], a
  78. ld a, $0
  79. ld [wMtMoon3CurScript], a
  80. ld [wCurMapScript], a
  81. ret
  82. MtMoon3Script4:
  83. ld a, $1
  84. ld [H_SPRITEINDEX], a
  85. call SetSpriteMovementBytesToFF
  86. ld hl, CoordsData_49dea
  87. call ArePlayerCoordsInArray
  88. jr c, .asm_49dd7
  89. ld hl, CoordsData_49df1
  90. call ArePlayerCoordsInArray
  91. jp nc, CheckFightingMapTrainers
  92. ld de, MovementData_49df9
  93. jr .asm_49dda
  94. .asm_49dd7
  95. ld de, MovementData_49df8
  96. .asm_49dda
  97. ld a, $1
  98. ld [H_SPRITEINDEX], a
  99. call MoveSprite
  100. ld a, $5
  101. ld [wMtMoon3CurScript], a
  102. ld [wCurMapScript], a
  103. ret
  104. CoordsData_49dea:
  105. db $07,$0C
  106. db $06,$0B
  107. db $05,$0C
  108. db $FF
  109. CoordsData_49df1:
  110. db $07,$0D
  111. db $06,$0E
  112. db $05,$0E
  113. db $FF
  114. MovementData_49df8:
  115. db NPC_MOVEMENT_RIGHT
  116. MovementData_49df9:
  117. db NPC_MOVEMENT_UP,$FF
  118. MtMoon3Script5:
  119. ld a, [wd730]
  120. bit 0, a
  121. ret nz
  122. ld a, $f0
  123. ld [wJoyIgnore], a
  124. ld a, $1
  125. ld [wDoNotWaitForButtonPressAfterDisplayingText], a
  126. ld a, $a
  127. ld [hSpriteIndexOrTextID], a
  128. call DisplayTextID
  129. CheckEvent EVENT_GOT_DOME_FOSSIL
  130. jr z, .asm_49e1d
  131. ld a, HS_MT_MOON_3_FOSSIL_2
  132. jr .asm_49e1f
  133. .asm_49e1d
  134. ld a, HS_MT_MOON_3_FOSSIL_1
  135. .asm_49e1f
  136. ld [wMissableObjectIndex], a
  137. predef HideObject
  138. xor a
  139. ld [wJoyIgnore], a
  140. ld a, $0
  141. ld [wMtMoon3CurScript], a
  142. ld [wCurMapScript], a
  143. ret
  144. MtMoon3TextPointers:
  145. dw MtMoon3Text1
  146. dw MtMoon3Text2
  147. dw MtMoon3Text3
  148. dw MtMoon3Text4
  149. dw MtMoon3Text5
  150. dw MtMoon3Text6
  151. dw MtMoon3Text7
  152. dw PickUpItemText
  153. dw PickUpItemText
  154. dw MtMoon3Text_49f99
  155. MtMoon3TrainerHeaders:
  156. MtMoon3TrainerHeader0:
  157. dbEventFlagBit EVENT_BEAT_MT_MOON_3_TRAINER_0
  158. db ($4 << 4) ; trainer's view range
  159. dwEventFlagAddress EVENT_BEAT_MT_MOON_3_TRAINER_0
  160. dw MtMoon3BattleText2 ; TextBeforeBattle
  161. dw MtMoon3AfterBattleText2 ; TextAfterBattle
  162. dw MtMoon3EndBattleText2 ; TextEndBattle
  163. dw MtMoon3EndBattleText2 ; TextEndBattle
  164. MtMoon3TrainerHeader2:
  165. dbEventFlagBit EVENT_BEAT_MT_MOON_3_TRAINER_2
  166. db ($4 << 4) ; trainer's view range
  167. dwEventFlagAddress EVENT_BEAT_MT_MOON_3_TRAINER_2
  168. dw MtMoon3BattleText3 ; TextBeforeBattle
  169. dw MtMoon3AfterBattleText3 ; TextAfterBattle
  170. dw MtMoon3EndBattleText3 ; TextEndBattle
  171. dw MtMoon3EndBattleText3 ; TextEndBattle
  172. MtMoon3TrainerHeader3:
  173. dbEventFlagBit EVENT_BEAT_MT_MOON_3_TRAINER_3
  174. db ($4 << 4) ; trainer's view range
  175. dwEventFlagAddress EVENT_BEAT_MT_MOON_3_TRAINER_3
  176. dw MtMoon3BattleText4 ; TextBeforeBattle
  177. dw MtMoon3AfterBattleText4 ; TextAfterBattle
  178. dw MtMoon3EndBattleText4 ; TextEndBattle
  179. dw MtMoon3EndBattleText4 ; TextEndBattle
  180. MtMoon3TrainerHeader4:
  181. dbEventFlagBit EVENT_BEAT_MT_MOON_3_TRAINER_4
  182. db ($4 << 4) ; trainer's view range
  183. dwEventFlagAddress EVENT_BEAT_MT_MOON_3_TRAINER_4
  184. dw MtMoon3BattleText5 ; TextBeforeBattle
  185. dw MtMoon3AfterBattleText5 ; TextAfterBattle
  186. dw MtMoon3EndBattleText5 ; TextEndBattle
  187. dw MtMoon3EndBattleText5 ; TextEndBattle
  188. db $ff
  189. MtMoon3Text1:
  190. TX_ASM
  191. CheckEvent EVENT_BEAT_MT_MOON_EXIT_SUPER_NERD
  192. jr z, .asm_49e8d
  193. and $c0
  194. jr nz, .asm_49eb8
  195. ld hl, MtMoon3Text_49f8f
  196. call PrintText
  197. jr .asm_49ebe
  198. .asm_49e8d
  199. ld hl, MtMoon3Text_49f85
  200. call PrintText
  201. ld hl, wd72d
  202. set 6, [hl]
  203. set 7, [hl]
  204. ld hl, MtMoon3Text_49f8a
  205. ld de, MtMoon3Text_49f8a
  206. call SaveEndBattleTextPointers
  207. ld a, [H_SPRITEINDEX]
  208. ld [wSpriteIndex], a
  209. call EngageMapTrainer
  210. call InitBattleEnemyParameters
  211. ld a, $3
  212. ld [wMtMoon3CurScript], a
  213. ld [wCurMapScript], a
  214. jr .asm_49ebe
  215. .asm_49eb8
  216. ld hl, MtMoon3Text_49f94
  217. call PrintText
  218. .asm_49ebe
  219. jp TextScriptEnd
  220. MtMoon3Text2:
  221. TX_ASM
  222. ld hl, MtMoon3TrainerHeader0
  223. call TalkToTrainer
  224. jp TextScriptEnd
  225. MtMoon3Text3:
  226. TX_ASM
  227. ld hl, MtMoon3TrainerHeader2
  228. call TalkToTrainer
  229. jp TextScriptEnd
  230. MtMoon3Text4:
  231. TX_ASM
  232. ld hl, MtMoon3TrainerHeader3
  233. call TalkToTrainer
  234. jp TextScriptEnd
  235. MtMoon3Text5:
  236. TX_ASM
  237. ld hl, MtMoon3TrainerHeader4
  238. call TalkToTrainer
  239. jp TextScriptEnd
  240. MtMoon3Text6:
  241. TX_ASM
  242. ld a, $1
  243. ld [wDoNotWaitForButtonPressAfterDisplayingText], a
  244. ld hl, MtMoon3Text_49f24
  245. call PrintText
  246. call YesNoChoice
  247. ld a, [wCurrentMenuItem]
  248. and a
  249. jr nz, .asm_49f21
  250. lb bc, DOME_FOSSIL, 1
  251. call GiveItem
  252. jp nc, MtMoon3Script_49f76
  253. call MtMoon3Script_49f69
  254. ld a, HS_MT_MOON_3_FOSSIL_1
  255. ld [wMissableObjectIndex], a
  256. predef HideObject
  257. SetEvent EVENT_GOT_DOME_FOSSIL
  258. ld a, $4
  259. ld [wMtMoon3CurScript], a
  260. ld [wCurMapScript], a
  261. .asm_49f21
  262. jp TextScriptEnd
  263. MtMoon3Text_49f24:
  264. TX_FAR _MtMoon3Text_49f24
  265. db "@"
  266. MtMoon3Text7:
  267. TX_ASM
  268. ld a, $1
  269. ld [wDoNotWaitForButtonPressAfterDisplayingText], a
  270. ld hl, MtMoon3Text_49f64
  271. call PrintText
  272. call YesNoChoice
  273. ld a, [wCurrentMenuItem]
  274. and a
  275. jr nz, .asm_49f61
  276. lb bc, HELIX_FOSSIL, 1
  277. call GiveItem
  278. jp nc, MtMoon3Script_49f76
  279. call MtMoon3Script_49f69
  280. ld a, HS_MT_MOON_3_FOSSIL_2
  281. ld [wMissableObjectIndex], a
  282. predef HideObject
  283. SetEvent EVENT_GOT_HELIX_FOSSIL
  284. ld a, $4
  285. ld [wMtMoon3CurScript], a
  286. ld [wCurMapScript], a
  287. .asm_49f61
  288. jp TextScriptEnd
  289. MtMoon3Text_49f64:
  290. TX_FAR _MtMoon3Text_49f64
  291. db "@"
  292. MtMoon3Script_49f69:
  293. ld hl, MtMoon3Text_49f6f
  294. jp PrintText
  295. MtMoon3Text_49f6f:
  296. TX_FAR _MtMoon3Text_49f6f
  297. TX_SFX_KEY_ITEM
  298. TX_WAIT
  299. db "@"
  300. MtMoon3Script_49f76:
  301. ld hl, MtMoon3Text_49f7f
  302. call PrintText
  303. jp TextScriptEnd
  304. MtMoon3Text_49f7f:
  305. TX_FAR _MtMoon3Text_49f7f
  306. TX_WAIT
  307. db "@"
  308. MtMoon3Text_49f85:
  309. TX_FAR _MtMoon3Text_49f85
  310. db "@"
  311. MtMoon3Text_49f8a:
  312. TX_FAR _MtMoon3Text_49f8a
  313. db "@"
  314. MtMoon3Text_49f8f:
  315. TX_FAR _MtMoon3Text_49f8f
  316. db "@"
  317. MtMoon3Text_49f94:
  318. TX_FAR _MtMoon3Text_49f94
  319. db "@"
  320. MtMoon3Text_49f99:
  321. TX_FAR _MtMoon3Text_49f99
  322. TX_SFX_KEY_ITEM
  323. db "@"
  324. MtMoon3BattleText2:
  325. TX_FAR _MtMoon3BattleText2
  326. db "@"
  327. MtMoon3EndBattleText2:
  328. TX_FAR _MtMoon3EndBattleText2
  329. db "@"
  330. MtMoon3AfterBattleText2:
  331. TX_FAR _MtMoon3AfterBattleText2
  332. db "@"
  333. MtMoon3BattleText3:
  334. TX_FAR _MtMoon3BattleText3
  335. db "@"
  336. MtMoon3EndBattleText3:
  337. TX_FAR _MtMoon3EndBattleText3
  338. db "@"
  339. MtMoon3AfterBattleText3:
  340. TX_FAR _MtMoon3AfterBattleText3
  341. db "@"
  342. MtMoon3BattleText4:
  343. TX_FAR _MtMoon3BattleText4
  344. db "@"
  345. MtMoon3EndBattleText4:
  346. TX_FAR _MtMoon3EndBattleText4
  347. db "@"
  348. MtMoon3AfterBattleText4:
  349. TX_FAR _MtMoon3AfterBattleText4
  350. db "@"
  351. MtMoon3BattleText5:
  352. TX_FAR _MtMoon3BattleText5
  353. db "@"
  354. MtMoon3EndBattleText5:
  355. TX_FAR _MtMoon3EndBattleText5
  356. db "@"
  357. MtMoon3AfterBattleText5:
  358. TX_FAR _MtMoon3AfterBattleText5
  359. db "@"