1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
|
RocketHideoutB4F_Script:
call EnableAutoTextBoxDrawing
ld hl, RocketHideout4TrainerHeaders
ld de, RocketHideoutB4F_ScriptPointers
ld a, [wRocketHideoutB4FCurScript]
call ExecuteCurMapScriptInTable
ld [wRocketHideoutB4FCurScript], a
ret
RocketHideoutB4FResetScripts:
CheckAndResetEvent EVENT_6A0
call nz, RocketHideoutB4FScript_HideJessieJames
xor a
ld [wJoyIgnore], a
RocketHideoutB4FSetScript:
ld [wRocketHideoutB4FCurScript], a
ld [wCurMapScript], a
ret
RocketHideoutB4FScript_HideJessieJames:
ld a, TOGGLE_ROCKET_HIDEOUT_B4F_JAMES
call RocketHideoutB4FScript_HideObject
ld a, TOGGLE_ROCKET_HIDEOUT_B4F_JESSIE
call RocketHideoutB4FScript_HideObject
ret
RocketHideoutB4F_ScriptPointers:
def_script_pointers
dw_const RocketHideoutB4FDefaultScript, SCRIPT_ROCKETHIDEOUTB4F_DEFAULT
dw_const DisplayEnemyTrainerTextAndStartBattle, SCRIPT_ROCKETHIDEOUTB4F_SCRIPT1
dw_const EndTrainerBattle, SCRIPT_ROCKETHIDEOUTB4F_SCRIPT2
dw_const RocketHideoutB4FBeatGiovanniScript, SCRIPT_ROCKETHIDEOUTB4F_BEAT_GIOVANNI
dw_const RocketHideoutB4FScript4, SCRIPT_ROCKETHIDEOUTB4F_SCRIPT4
dw_const RocketHideoutB4FScript5, SCRIPT_ROCKETHIDEOUTB4F_SCRIPT5
dw_const RocketHideoutB4FScript6, SCRIPT_ROCKETHIDEOUTB4F_SCRIPT6
dw_const RocketHideoutB4FScript7, SCRIPT_ROCKETHIDEOUTB4F_SCRIPT7
dw_const RocketHideoutB4FScript8, SCRIPT_ROCKETHIDEOUTB4F_SCRIPT8
dw_const RocketHideoutB4FScript9, SCRIPT_ROCKETHIDEOUTB4F_SCRIPT9
dw_const RocketHideoutB4FScript10, SCRIPT_ROCKETHIDEOUTB4F_SCRIPT10
dw_const RocketHideoutB4FScript11, SCRIPT_ROCKETHIDEOUTB4F_SCRIPT11
dw_const RocketHideoutB4FScript12, SCRIPT_ROCKETHIDEOUTB4F_SCRIPT12
dw_const RocketHideoutB4FScript13, SCRIPT_ROCKETHIDEOUTB4F_SCRIPT13
RocketHideoutB4FBeatGiovanniScript:
ld a, [wIsInBattle]
cp $ff
jp z, RocketHideoutB4FResetScripts
ld a, PAD_SELECT | PAD_START | PAD_CTRL_PAD
ld [wJoyIgnore], a
SetEvent EVENT_BEAT_ROCKET_HIDEOUT_GIOVANNI
ld a, TEXT_ROCKETHIDEOUTB4F_GIOVANNI_HOPE_WE_MEET_AGAIN
ldh [hTextID], a
call DisplayTextID
call GBFadeOutToBlack
ld a, TOGGLE_ROCKET_HIDEOUT_B4F_GIOVANNI
ld [wToggleableObjectIndex], a
predef HideObject
ld a, TOGGLE_ROCKET_HIDEOUT_B4F_ITEM_4
ld [wToggleableObjectIndex], a
predef ShowObject
call UpdateSprites
call GBFadeInFromBlack
xor a
ld [wJoyIgnore], a
ld hl, wCurrentMapScriptFlags
set BIT_CUR_MAP_LOADED_1, [hl]
ld a, SCRIPT_ROCKETHIDEOUTB4F_DEFAULT
ld [wRocketHideoutB4FCurScript], a
ld [wCurMapScript], a
ret
RocketHideoutB4FDefaultScript:
IF DEF(_DEBUG)
call DebugPressedOrHeldB
ret nz
ENDC
CheckEvent EVENT_BEAT_ROCKET_HIDEOUT_4_JESSIE_JAMES
call z, RocketHideoutB4FScript_455a5
CheckEvent EVENT_BEAT_ROCKET_HIDEOUT_4_TRAINER_2
call z, CheckFightingMapTrainers
ret
RocketHideoutB4FScript_455a5:
ld a, [wYCoord]
cp $e
ret nz
ResetEvent EVENT_ROCKET_HIDEOUT_4_JESSIE_JAMES_ON_LEFT
ld a, [wXCoord]
cp $18
jr z, .asm_455c2
ld a, [wXCoord]
cp $19
ret nz
SetEvent EVENT_ROCKET_HIDEOUT_4_JESSIE_JAMES_ON_LEFT
.asm_455c2
xor a
ldh [hJoyHeld], a
ld a, PAD_SELECT | PAD_START | PAD_CTRL_PAD
ld [wJoyIgnore], a
call StopAllMusic
ld c, BANK(Music_MeetJessieJames)
ld a, MUSIC_MEET_JESSIE_JAMES
call PlayMusic
call UpdateSprites
call Delay3
call UpdateSprites
call Delay3
ld a, $1
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
ld a, TEXT_ROCKETHIDEOUTB4F_TEXT11
ldh [hTextID], a
call DisplayTextID
xor a
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
ld a, PAD_BUTTONS | PAD_CTRL_PAD
ld [wJoyIgnore], a
ld a, TOGGLE_ROCKET_HIDEOUT_B4F_JAMES
call RocketHideoutB4FScript_ShowObject
ld a, TOGGLE_ROCKET_HIDEOUT_B4F_JESSIE
call RocketHideoutB4FScript_ShowObject
ld a, SCRIPT_ROCKETHIDEOUTB4F_SCRIPT4
call RocketHideoutB4FSetScript
ret
RocketHideoutB4FJessieJamesMovementData_45605:
db $4
RocketHideoutB4FJessieJamesMovementData_45606:
db $4
db $4
db $4
db $ff
RocketHideoutB4FScript4:
ld de, RocketHideoutB4FJessieJamesMovementData_45605
CheckEvent EVENT_ROCKET_HIDEOUT_4_JESSIE_JAMES_ON_LEFT
jr z, .asm_45617
ld de, RocketHideoutB4FJessieJamesMovementData_45606
.asm_45617
ld a, ROCKETHIDEOUTB4F_JAMES
ldh [hSpriteIndex], a
call MoveSprite
ld a, PAD_BUTTONS | PAD_CTRL_PAD
ld [wJoyIgnore], a
ld a, SCRIPT_ROCKETHIDEOUTB4F_SCRIPT5
call RocketHideoutB4FSetScript
ret
RocketHideoutB4FScript5:
ld a, PAD_BUTTONS | PAD_CTRL_PAD
ld [wJoyIgnore], a
ld a, [wStatusFlags5]
bit BIT_SCRIPTED_NPC_MOVEMENT, a
ret nz
RocketHideoutB4FScript6:
ld a, $2
ld [wSprite02StateData1MovementStatus], a
ld a, SPRITE_FACING_LEFT
ld [wSprite02StateData1FacingDirection], a
CheckEvent EVENT_ROCKET_HIDEOUT_4_JESSIE_JAMES_ON_LEFT
jr z, .asm_4564a
ld a, SPRITE_FACING_DOWN
ld [wSprite02StateData1FacingDirection], a
.asm_4564a
call Delay3
ld a, PAD_SELECT | PAD_START | PAD_CTRL_PAD
ld [wJoyIgnore], a
RocketHideoutB4FScript7:
ld de, RocketHideoutB4FJessieJamesMovementData_45606
CheckEvent EVENT_ROCKET_HIDEOUT_4_JESSIE_JAMES_ON_LEFT
jr z, .asm_4565f
ld de, RocketHideoutB4FJessieJamesMovementData_45605
.asm_4565f
ld a, ROCKETHIDEOUTB4F_JESSIE
ldh [hSpriteIndex], a
call MoveSprite
ld a, PAD_BUTTONS | PAD_CTRL_PAD
ld [wJoyIgnore], a
ld a, SCRIPT_ROCKETHIDEOUTB4F_SCRIPT8
call RocketHideoutB4FSetScript
ret
RocketHideoutB4FScript8:
ld a, PAD_BUTTONS | PAD_CTRL_PAD
ld [wJoyIgnore], a
ld a, [wStatusFlags5]
bit BIT_SCRIPTED_NPC_MOVEMENT, a
ret nz
ld a, PAD_SELECT | PAD_START | PAD_CTRL_PAD
ld [wJoyIgnore], a
RocketHideoutB4FScript9:
ld a, $2
ld [wSprite03StateData1MovementStatus], a
ld a, SPRITE_FACING_DOWN
ld [wSprite03StateData1FacingDirection], a
CheckEvent EVENT_ROCKET_HIDEOUT_4_JESSIE_JAMES_ON_LEFT
jr z, .asm_45697
ld a, SPRITE_FACING_RIGHT
ld [wSprite03StateData1FacingDirection], a
.asm_45697
call Delay3
ld a, TEXT_ROCKETHIDEOUTB4F_TEXT12
ldh [hTextID], a
call DisplayTextID
RocketHideoutB4FScript10:
ld hl, wStatusFlags3
set BIT_TALKED_TO_TRAINER, [hl]
set BIT_PRINT_END_BATTLE_TEXT, [hl]
ld hl, RocketHideoutB4FJessieJamesEndBattleText
ld de, RocketHideoutB4FJessieJamesEndBattleText
call SaveEndBattleTextPointers
ld a, OPP_ROCKET
ld [wCurOpponent], a
ld a, $2b
ld [wTrainerNo], a
xor a
ldh [hJoyHeld], a
ld [wJoyIgnore], a
SetEvent EVENT_6A0
ld a, SCRIPT_ROCKETHIDEOUTB4F_SCRIPT11
call RocketHideoutB4FSetScript
ret
RocketHideoutB4FScript11:
ld a, PAD_BUTTONS | PAD_CTRL_PAD
ld [wJoyIgnore], a
ld a, [wIsInBattle]
cp $ff
jp z, RocketHideoutB4FResetScripts
ld a, $2
ld [wSprite02StateData1MovementStatus], a
ld [wSprite03StateData1MovementStatus], a
xor a
ld [wSprite02StateData1FacingDirection], a
ld [wSprite03StateData1FacingDirection], a
ld a, PAD_SELECT | PAD_START | PAD_CTRL_PAD
ld [wJoyIgnore], a
ld a, $1
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
ld a, TEXT_ROCKETHIDEOUTB4F_TEXT13
ldh [hTextID], a
call DisplayTextID
xor a
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
call StopAllMusic
ld c, BANK(Music_MeetJessieJames)
ld a, MUSIC_MEET_JESSIE_JAMES
call PlayMusic
ld a, PAD_BUTTONS | PAD_CTRL_PAD
ld [wJoyIgnore], a
ld a, SCRIPT_ROCKETHIDEOUTB4F_SCRIPT12
call RocketHideoutB4FSetScript
ret
RocketHideoutB4FScript12:
ld a, PAD_BUTTONS | PAD_CTRL_PAD
ld [wJoyIgnore], a
call GBFadeOutToBlack
ld a, TOGGLE_ROCKET_HIDEOUT_B4F_JAMES
call RocketHideoutB4FScript_HideObject
ld a, TOGGLE_ROCKET_HIDEOUT_B4F_JESSIE
call RocketHideoutB4FScript_HideObject
call UpdateSprites
call Delay3
call GBFadeInFromBlack
ld a, SCRIPT_ROCKETHIDEOUTB4F_SCRIPT13
call RocketHideoutB4FSetScript
ret
RocketHideoutB4FScript13:
call PlayDefaultMusic
xor a
ldh [hJoyHeld], a
ld [wJoyIgnore], a
SetEvent EVENT_BEAT_ROCKET_HIDEOUT_4_JESSIE_JAMES
ld a, SCRIPT_ROCKETHIDEOUTB4F_DEFAULT
call RocketHideoutB4FSetScript
ret
RocketHideoutB4FScript_ShowObject:
ld [wToggleableObjectIndex], a
predef ShowObject
call UpdateSprites
call Delay3
ret
RocketHideoutB4FScript_HideObject:
ld [wToggleableObjectIndex], a
predef HideObject
ret
RocketHideoutB4F_TextPointers:
def_text_pointers
dw_const RocketHideoutB4FGiovanniText, TEXT_ROCKETHIDEOUTB4F_GIOVANNI
dw_const RocketHideoutB4FJessieJamesText, TEXT_ROCKETHIDEOUTB4F_JAMES
dw_const RocketHideoutB4FJessieJamesText, TEXT_ROCKETHIDEOUTB4F_JESSIE
dw_const RocketHideoutB4FRocketText, TEXT_ROCKETHIDEOUTB4F_ROCKET
dw_const PickUpItemText, TEXT_ROCKETHIDEOUTB4F_HP_UP
dw_const PickUpItemText, TEXT_ROCKETHIDEOUTB4F_TM_RAZOR_WIND
dw_const PickUpItemText, TEXT_ROCKETHIDEOUTB4F_IRON
dw_const PickUpItemText, TEXT_ROCKETHIDEOUTB4F_SILPH_SCOPE
dw_const PickUpItemText, TEXT_ROCKETHIDEOUTB4F_LIFT_KEY
dw_const RocketHideoutB4FGiovanniHopeWeMeetAgainText, TEXT_ROCKETHIDEOUTB4F_GIOVANNI_HOPE_WE_MEET_AGAIN
dw_const RocketHideoutB4FText11, TEXT_ROCKETHIDEOUTB4F_TEXT11
dw_const RocketHideoutB4FText12, TEXT_ROCKETHIDEOUTB4F_TEXT12
dw_const RocketHideoutB4FText13, TEXT_ROCKETHIDEOUTB4F_TEXT13
RocketHideout4TrainerHeaders:
def_trainers 4
RocketHideout4TrainerHeader0:
trainer EVENT_BEAT_ROCKET_HIDEOUT_4_TRAINER_2, 1, RocketHideoutB4FRocketBattleText, RocketHideoutB4FRocketEndBattleText, RocketHideoutB4FRocketAfterBattleText
db -1 ; end
RocketHideoutB4FJessieJamesText:
text_end
RocketHideoutB4FText11:
text_far _RocketHideoutJessieJamesText1
text_asm
ld c, 10
call DelayFrames
ld a, $8
ld [wPlayerMovingDirection], a
ld a, $0
ld [wEmotionBubbleSpriteIndex], a
ld a, EXCLAMATION_BUBBLE
ld [wWhichEmotionBubble], a
predef EmotionBubble
ld c, 20
call DelayFrames
jp TextScriptEnd
RocketHideoutB4FText12:
text_far _RocketHideoutJessieJamesText2
text_end
RocketHideoutB4FJessieJamesEndBattleText:
text_far _RocketHideoutJessieJamesText3
text_end
RocketHideoutB4FText13:
text_far _RocketHideoutJessieJamesText4
text_asm
ld c, 64
call DelayFrames
jp TextScriptEnd
RocketHideoutB4FGiovanniText:
text_asm
CheckEvent EVENT_BEAT_ROCKET_HIDEOUT_GIOVANNI
jp nz, .beat_giovanni
ld hl, .ImpressedYouGotHereText
call PrintText
ld hl, wStatusFlags3
set BIT_TALKED_TO_TRAINER, [hl]
set BIT_PRINT_END_BATTLE_TEXT, [hl]
ld hl, .WhatCannotBeText
ld de, .WhatCannotBeText
call SaveEndBattleTextPointers
ldh a, [hSpriteIndex]
ld [wSpriteIndex], a
call EngageMapTrainer
call InitBattleEnemyParameters
xor a
ldh [hJoyHeld], a
ld a, SCRIPT_ROCKETHIDEOUTB4F_BEAT_GIOVANNI
ld [wRocketHideoutB4FCurScript], a
ld [wCurMapScript], a
jr .done
.beat_giovanni
ld hl, RocketHideoutB4FGiovanniHopeWeMeetAgainText
call PrintText
.done
jp TextScriptEnd
.ImpressedYouGotHereText:
text_far _RocketHideoutB4FGiovanniImpressedYouGotHereText
text_end
.WhatCannotBeText:
text_far _RocketHideoutB4FGiovanniWhatCannotBeText
text_end
RocketHideoutB4FGiovanniHopeWeMeetAgainText:
text_far _RocketHideoutB4FGiovanniHopeWeMeetAgainText
text_end
RocketHideoutB4FRocketText:
text_asm
ld hl, RocketHideout4TrainerHeader0
call TalkToTrainer
jp TextScriptEnd
RocketHideoutB4FRocketBattleText:
text_far _RocketHideoutB4FRocketBattleText
text_end
RocketHideoutB4FRocketEndBattleText:
text_far _RocketHideoutB4FRocketEndBattleText
text_promptbutton
text_asm
SetEvent EVENT_ROCKET_DROPPED_LIFT_KEY
ld a, TOGGLE_ROCKET_HIDEOUT_B4F_ITEM_5
ld [wToggleableObjectIndex], a
predef ShowObject
jp TextScriptEnd
RocketHideoutB4FRocketAfterBattleText:
text_asm
ld hl, .Text
call PrintText
jp TextScriptEnd
.Text:
text_far _RocketHideoutB4FRocketAfterBattleText
text_end
|