summaryrefslogtreecommitdiff
path: root/eonticket/eonticket.asm
blob: 98f4e9467ef3df7981c4a1ddea2e1385416b582c (plain)
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