-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathRoute31.asm
439 lines (359 loc) · 8.52 KB
/
Route31.asm
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
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
const_def 2 ; object constants
const ROUTE31_FISHER
const ROUTE31_YOUNGSTER
const ROUTE31_BUG_CATCHER
const ROUTE31_COOLTRAINER_M
const ROUTE31_FRUIT_TREE
const ROUTE31_POKE_BALL1
const ROUTE31_POKE_BALL2
Route31_MapScripts:
db 0 ; scene scripts
db 1 ; callbacks
callback MAPCALLBACK_NEWMAP, .CheckMomCall
.CheckMomCall:
checkevent EVENT_TALKED_TO_MOM_AFTER_MYSTERY_EGG_QUEST
iffalse .DoMomCall
return
.DoMomCall:
specialphonecall SPECIALCALL_WORRIED
return
TrainerBugCatcherWade1:
trainer BUG_CATCHER, WADE1, EVENT_BEAT_BUG_CATCHER_WADE, BugCatcherWade1SeenText, BugCatcherWade1BeatenText, 0, .Script
.Script:
writecode VAR_CALLERID, PHONE_BUG_CATCHER_WADE
endifjustbattled
opentext
checkflag ENGINE_WADE
iftrue .WadeRematch
checkflag ENGINE_WADE_HAS_ITEM
iftrue .WadeItem
checkcellnum PHONE_BUG_CATCHER_WADE
iftrue .AcceptedNumberSTD
checkevent EVENT_WADE_ASKED_FOR_PHONE_NUMBER
iftrue .AskAgain
writetext BugCatcherWade1AfterText
waitbutton
setevent EVENT_WADE_ASKED_FOR_PHONE_NUMBER
scall .AskPhoneNumberSTD
jump .Continue
.AskAgain:
scall .AskAgainSTD
.Continue:
askforphonenumber PHONE_BUG_CATCHER_WADE
ifequal PHONE_CONTACTS_FULL, .PhoneFullSTD
ifequal PHONE_CONTACT_REFUSED, .DeclinedNumberSTD
trainertotext BUG_CATCHER, WADE1, MEM_BUFFER_0
scall .RegisterNumberSTD
jump .AcceptedNumberSTD
.WadeRematch:
scall .RematchSTD
winlosstext BugCatcherWade1BeatenText, 0
copybytetovar wWadeFightCount
ifequal 4, .Fight4
ifequal 3, .Fight3
ifequal 2, .Fight2
ifequal 1, .Fight1
ifequal 0, .LoadFight0
.Fight4:
checkevent EVENT_BEAT_ELITE_FOUR
iftrue .LoadFight4
.Fight3:
checkevent EVENT_CLEARED_RADIO_TOWER
iftrue .LoadFight3
.Fight2:
checkflag ENGINE_FLYPOINT_MAHOGANY
iftrue .LoadFight2
.Fight1:
checkflag ENGINE_FLYPOINT_GOLDENROD
iftrue .LoadFight1
.LoadFight0:
loadtrainer BUG_CATCHER, WADE1
startbattle
reloadmapafterbattle
loadvar wWadeFightCount, 1
clearflag ENGINE_WADE
end
.LoadFight1:
loadtrainer BUG_CATCHER, WADE2
startbattle
reloadmapafterbattle
loadvar wWadeFightCount, 2
clearflag ENGINE_WADE
end
.LoadFight2:
loadtrainer BUG_CATCHER, WADE3
startbattle
reloadmapafterbattle
loadvar wWadeFightCount, 3
clearflag ENGINE_WADE
end
.LoadFight3:
loadtrainer BUG_CATCHER, WADE4
startbattle
reloadmapafterbattle
loadvar wWadeFightCount, 4
clearflag ENGINE_WADE
end
.LoadFight4:
loadtrainer BUG_CATCHER, WADE5
startbattle
reloadmapafterbattle
clearflag ENGINE_WADE
end
.WadeItem:
scall .ItemSTD
checkevent EVENT_WADE_HAS_BERRY
iftrue .Berry
checkevent EVENT_WADE_HAS_PSNCUREBERRY
iftrue .Psncureberry
checkevent EVENT_WADE_HAS_PRZCUREBERRY
iftrue .Przcureberry
checkevent EVENT_WADE_HAS_BITTER_BERRY
iftrue .BitterBerry
.Berry:
verbosegiveitem BERRY
iffalse .PackFull
jump .Done
.Psncureberry:
verbosegiveitem PSNCUREBERRY
iffalse .PackFull
jump .Done
.Przcureberry:
verbosegiveitem PRZCUREBERRY
iffalse .PackFull
jump .Done
.BitterBerry:
verbosegiveitem BITTER_BERRY
iffalse .PackFull
.Done:
clearflag ENGINE_WADE_HAS_ITEM
jump .AcceptedNumberSTD
.PackFull:
jump .PackFullSTD
.AskPhoneNumberSTD:
jumpstd asknumber1m
end
.AskAgainSTD:
jumpstd asknumber2m
end
.RegisterNumberSTD:
jumpstd registerednumberm
end
.AcceptedNumberSTD:
jumpstd numberacceptedm
end
.DeclinedNumberSTD:
jumpstd numberdeclinedm
end
.PhoneFullSTD:
jumpstd phonefullm
end
.RematchSTD:
jumpstd rematchm
end
.ItemSTD:
jumpstd giftm
end
.PackFullSTD:
jumpstd packfullm
end
Route31MailRecipientScript:
faceplayer
opentext
checkevent EVENT_GOT_TM50_NIGHTMARE
iftrue .DescribeNightmare
checkevent EVENT_GOT_KENYA
iftrue .TryGiveKenya
writetext Text_Route31SleepyMan
waitbutton
closetext
end
.TryGiveKenya:
writetext Text_Route31SleepyManGotMail
buttonsound
checkpokemail ReceivedSpearowMailText
ifequal POKEMAIL_WRONG_MAIL, .WrongMail
ifequal POKEMAIL_REFUSED, .Refused
ifequal POKEMAIL_NO_MAIL, .NoMail
ifequal POKEMAIL_LAST_MON, .LastMon
; POKEMAIL_CORRECT
writetext Text_Route31HandOverMailMon
buttonsound
writetext Text_Route31ReadingMail
buttonsound
setevent EVENT_GAVE_KENYA
verbosegiveitem TM_NIGHTMARE
iffalse .NoRoomForItems
setevent EVENT_GOT_TM50_NIGHTMARE
.DescribeNightmare:
writetext Text_Route31DescribeNightmare
waitbutton
.NoRoomForItems:
closetext
end
.WrongMail:
writetext Text_Route31WrongMail
waitbutton
closetext
end
.NoMail:
writetext Text_Route31MissingMail
waitbutton
closetext
end
.Refused:
writetext Text_Route31DeclinedToHandOverMail
waitbutton
closetext
end
.LastMon:
writetext Text_Route31CantTakeLastMon
waitbutton
closetext
end
ReceivedSpearowMailText:
db "DARK CAVE leads"
next "to another road@"
Route31YoungsterScript:
jumptextfaceplayer Route31YoungsterText
Route31Sign:
jumptext Route31SignText
DarkCaveSign:
jumptext DarkCaveSignText
Route31CooltrainerMScript:
jumptextfaceplayer Route31CooltrainerMText
Route31FruitTree:
fruittree FRUITTREE_ROUTE_31
Route31Potion:
itemball POTION
Route31PokeBall:
itemball POKE_BALL
Route31CooltrainerMText:
text "DARK CAVE…"
para "If #MON could"
line "light it up, I'd"
cont "explore it."
done
BugCatcherWade1SeenText:
text "I caught a bunch"
line "of #MON. Let me"
cont "battle with you!"
done
BugCatcherWade1BeatenText:
text "Awwwww…"
done
BugCatcherWade1AfterText:
text "You can catch"
line "#MON even if"
para "you have six with"
line "you."
para "If you catch one,"
line "it'll go to your"
cont "BOX automatically."
done
Text_Route31SleepyMan:
text "… Hnuurg… Huh?"
para "I walked too far"
line "today looking for"
cont "#MON."
para "My feet hurt and"
line "I'm sleepy…"
para "If I were a wild"
line "#MON, I'd be"
cont "easy to catch…"
para "…Zzzz…"
done
Text_Route31SleepyManGotMail:
text "…Zzzz… Huh?"
para "What's that? You"
line "have MAIL for me?"
done
Text_Route31HandOverMailMon:
text "<PLAYER> handed"
line "over the #MON"
cont "holding the MAIL."
done
Text_Route31ReadingMail:
text "Let's see…"
para "…DARK CAVE leads"
line "to another road…"
para "That's good to"
line "know."
para "Thanks for bring-"
line "ing this to me."
para "My friend's a good"
line "guy, and you're"
cont "swell too!"
para "I'd like to do"
line "something good in"
cont "return too!"
para "I know! I want you"
line "to have this!"
done
Text_Route31DescribeNightmare:
text "TM50 is NIGHTMARE."
para "It's a wicked move"
line "that steadily cuts"
para "the HP of a sleep-"
line "ing enemy."
para "Ooooh…"
line "That's scary…"
para "I don't want to"
line "have bad dreams."
done
Text_Route31WrongMail:
text "This MAIL isn't"
line "for me."
done
Text_Route31MissingMail:
text "Why is this #-"
line "MON so special?"
para "It doesn't have"
line "any MAIL."
done
Text_Route31DeclinedToHandOverMail:
text "What? You don't"
line "want anything?"
done
Text_Route31CantTakeLastMon:
text "If I take that"
line "#MON from you,"
para "what are you going"
line "to use in battle?"
done
Route31YoungsterText:
text "I found a good"
line "#MON in DARK"
cont "CAVE."
para "I'm going to raise"
line "it to take on"
cont "FALKNER."
para "He's the leader of"
line "VIOLET CITY's GYM."
done
Route31SignText:
text "ROUTE 31"
para "VIOLET CITY -"
line "CHERRYGROVE CITY"
done
DarkCaveSignText:
text "DARK CAVE"
done
Route31_MapEvents:
db 0, 0 ; filler
db 3 ; warp events
warp_event 4, 6, ROUTE_31_VIOLET_GATE, 3
warp_event 4, 7, ROUTE_31_VIOLET_GATE, 4
warp_event 34, 5, DARK_CAVE_VIOLET_ENTRANCE, 1
db 0 ; coord events
db 2 ; bg events
bg_event 7, 5, BGEVENT_READ, Route31Sign
bg_event 31, 5, BGEVENT_READ, DarkCaveSign
db 7 ; object events
object_event 17, 7, SPRITE_FISHER, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, Route31MailRecipientScript, -1
object_event 9, 5, SPRITE_YOUNGSTER, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, Route31YoungsterScript, -1
object_event 21, 13, SPRITE_BUG_CATCHER, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_BROWN, OBJECTTYPE_TRAINER, 5, TrainerBugCatcherWade1, -1
object_event 33, 8, SPRITE_COOLTRAINER_M, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, Route31CooltrainerMScript, -1
object_event 16, 7, SPRITE_FRUIT_TREE, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, Route31FruitTree, -1
object_event 29, 5, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_ITEMBALL, 0, Route31Potion, EVENT_ROUTE_31_POTION
object_event 19, 15, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_ITEMBALL, 0, Route31PokeBall, EVENT_ROUTE_31_POKE_BALL