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
|
INCLUDE "../macros.asm"
INCLUDE "../constants/items.asm"
INCLUDE "../constants/scriptcommands.asm"
Mystery_Event
db CHECKSUM_CRC
dd 0 ; checksum placeholder
GBAPTR DataStart
GBAPTR DataEnd
DataStart:
db IN_GAME_SCRIPT
db 8,1 ; Petalburg Gym
db 1 ; Norman
GBAPTR NormanScriptStart
GBAPTR NormanScriptEnd
db MIX_RECORDS_ITEM
db 1 ; ???
IF REGION == REGION_DE
db 5 ; distribution limit from German debug ROM
ELSE
db 30 ; distribution limit from English release
ENDC
dw EON_TICKET
db PRELOAD_SCRIPT
GBAPTR PreloadScriptStart
db END_OF_CHUNKS
GoSeeYourFather:
Text_DE "Lauf und besuche deinen Vater in der\n"
Text_DE "ARENA von BLÜTENBURG CITY.@"
Text_EN "Go see your father at the GYM in\n"
Text_EN "PETALBURG.@"
NormanScriptStart:
setvirtualaddress NormanScriptStart
checkitem EON_TICKET, 1
compare LASTRESULT, 1
virtualgotoif 1, .delete_script
checkpcitem EON_TICKET, 1
compare LASTRESULT, 1
virtualgotoif 1, .delete_script
checkflag $00CE
virtualgotoif 1, .delete_script
lock
faceplayer
virtualmsgbox GoodToSeeYou
waitmsg
waitkeypress
checkitemroom EON_TICKET, 1
compare LASTRESULT, 0
virtualgotoif 1, NoRoomToGive
copyvarifnotzero $8000, EON_TICKET
copyvarifnotzero $8001, 1
callstd 0
setflag $0853
virtualmsgbox AppearsToBeAFerryTicket
waitmsg
waitkeypress
release
.delete_script
killscript
NoRoomToGive:
virtualmsgbox KeyItemsPocketIsFull
waitmsg
waitkeypress
release
end
GoodToSeeYou:
Text_EN "DAD“\v1! Good to see you!\n"
Text_EN "There’s a letter here for you,\v1.@"
Text_DE "VATER: \v1! Schön, dich zu sehen!\n"
Text_DE "Hier ist ein Brief für dich, \v1.@"
AppearsToBeAFerryTicket:
Text_EN "DAD“It appears to be a ferry TICKET.\n"
Text_EN "but I’ve never seen one like it before.\l"
Text_EN "You should visit LILYCOVE and ask\n"
Text_EN "about it there.@"
Text_DE "VATER: Ich bin mir nicht sicher, es\n"
Text_DE "könnte ein TICKET für eine Fähre sein.\p"
Text_DE "Du solltest nach SEEGRASULB CITY gehen\n"
Text_DE "und dich dort genauer erkundigen.@"
KeyItemsPocketIsFull:
Text_EN "DAD“\v1’ the KEY ITEMS POCKET in\n"
Text_EN "your BAG is full.\p"
Text_EN "Move some key items for safekeeping\n"
Text_EN "in your PC’ then come see me.@"
Text_DE "VATER: \v1, die BASIS-TASCHE\n"
Text_DE "deines BEUTELS ist voll.\p"
Text_DE "Lagere einige deiner Basis-Items in\n"
Text_DE "deinem PC und komm dann wieder.@"
; whoever wrote the English text obviously wasn’t
; familiar with R/S’s character set…
NormanScriptEnd:
PreloadScriptStart:
setvirtualaddress PreloadScriptStart
checkitem EON_TICKET, 1
compare LASTRESULT, 1
virtualgotoif 1, .ineligible
checkpcitem EON_TICKET, 1
compare LASTRESULT, 1
virtualgotoif 1, .ineligible
checkflag $00CE
virtualgotoif 1, .ineligible
checkitemroom EON_TICKET, 1
compare LASTRESULT, 0
virtualgotoif 1, .no_room
virtualloadpointer GoSeeYourFather
setbyte 2
end
.ineligible
virtualloadpointer MayBeplayedOnlyOnce
setbyte 3
end
.no_room
virtualloadpointer BagsKeyItemsPocketFull
setbyte 3
end
MayBeplayedOnlyOnce:
; …or with the English language.
Text_EN "This EVENT may beplayed only once.@"
Text_DE "Dieses GESCHEHEN kann nur einmal\n"
Text_DE "gespielt werden.@"
BagsKeyItemsPocketFull:
Text_EN "Your BAG’s KEY ITEMS POCKET is full.@"
Text_DE "Deine BASIS-TASCHE ist voll.@"
DataEnd:
EOF
|