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
|
Preload_ChallengeHallNPCs2:
call Preload_ChallengeHallNPCs1
ccf
ret
Preload_ChallengeHallNPCs1:
get_event_value EVENT_CHALLENGE_CUP_STARTING
or a
jr z, .quit
ld a, MUSIC_CHALLENGE_HALL
ld [wDefaultSong], a
scf
.quit
ret
ChallengeHallLobbyLoadMap:
get_event_value EVENT_RONALD_CHALLENGE_HALL_LOBBY_STATE
or a
ret z
ld a, NPC_RONALD1
ld [wTempNPC], a
call FindLoadedNPC
ld bc, Script_f166
jp SetNextNPCAndScript
Script_Pappy3:
start_script
print_text_quit_fully Text050f
Script_Gal4:
start_script
print_text_quit_fully Text0510
Script_Champ:
start_script
print_text_quit_fully Text0511
Script_Hood2:
start_script
print_text_quit_fully Text0512
Script_Lass5:
start_script
print_text_quit_fully Text0513
Script_Chap5:
start_script
print_text_quit_fully Text0514
Preload_ChallengeHallLobbyRonald1:
set_event_zero EVENT_RONALD_CHALLENGE_HALL_LOBBY_STATE
get_event_value EVENT_RECEIVED_LEGENDARY_CARDS
or a
jr nz, .challenge_cup_2_ended
get_event_value EVENT_PLAYER_ENTERED_CHALLENGE_CUP
or a
jr nz, .dont_load
get_event_value EVENT_CHALLENGE_CUP_2_STATE
cp CHALLENGE_CUP_NOT_STARTED
jr z, .check_challenge_cup_1
call .challenge_cup_1_ended
get_event_value EVENT_CHALLENGE_CUP_2_STATE
ld e, a
get_event_value EVENT_CHALLENGE_CUP_2_RESULT
ld d, a
ld hl, RonaldChallengeHallLobbyCup2States
call SetRonaldChallengeHallLobbyState
jr nc, .dont_load
jr .load_ronald
.check_challenge_cup_1
get_event_value EVENT_CHALLENGE_CUP_1_STATE
ld e, a
get_event_value EVENT_CHALLENGE_CUP_1_RESULT
ld d, a
ld hl, RonaldChallengeHallLobbyCup1States
call SetRonaldChallengeHallLobbyState
jr nc, .dont_load
.load_ronald
ld a, [wPlayerYCoord]
ld [wLoadNPCYPos], a
scf
ret
.challenge_cup_2_ended
max_event_value EVENT_RONALD_CHALLENGE_HALL_LOBBY_CONVO_5
max_event_value EVENT_RONALD_CHALLENGE_HALL_LOBBY_CONVO_6
max_event_value EVENT_RONALD_CHALLENGE_HALL_LOBBY_CONVO_7
max_event_value EVENT_RONALD_CHALLENGE_HALL_LOBBY_CONVO_8
.challenge_cup_1_ended
max_event_value EVENT_RONALD_CHALLENGE_HALL_LOBBY_CONVO_1
max_event_value EVENT_RONALD_CHALLENGE_HALL_LOBBY_CONVO_2
max_event_value EVENT_RONALD_CHALLENGE_HALL_LOBBY_CONVO_3
max_event_value EVENT_RONALD_CHALLENGE_HALL_LOBBY_CONVO_4
.dont_load
or a
ret
SetRonaldChallengeHallLobbyState:
ld c, 4
.loop
ld a, [hli]
cp e
jr nz, .next_inc
ld a, [hli]
cp d
jr nz, .next
ld a, [hl]
call GetEventValue
or a
jr nz, .next
ld a, [hl]
call MaxOutEventValue
inc hl
ld c, [hl]
set_event_value EVENT_RONALD_CHALLENGE_HALL_LOBBY_STATE
scf
ret
.next_inc
inc hl
.next
inc hl
inc hl
dec c
jr nz, .loop
or a
ret
; format: cup state, cup result, convo event, convo number
; if the current cup state/result match a row in the table
; and the convo has not already occurred,
; then load the corresponding conversation
RonaldChallengeHallLobbyCup1States:
db CHALLENGE_CUP_READY_TO_START, CHALLENGE_CUP_NOT_STARTED, EVENT_RONALD_CHALLENGE_HALL_LOBBY_CONVO_1, 1
db CHALLENGE_CUP_LOST, CHALLENGE_CUP_LOST, EVENT_RONALD_CHALLENGE_HALL_LOBBY_CONVO_2, 2
db CHALLENGE_CUP_OVER, CHALLENGE_CUP_LOST, EVENT_RONALD_CHALLENGE_HALL_LOBBY_CONVO_3, 3
db CHALLENGE_CUP_OVER, CHALLENGE_CUP_NOT_STARTED, EVENT_RONALD_CHALLENGE_HALL_LOBBY_CONVO_4, 4
RonaldChallengeHallLobbyCup2States:
db CHALLENGE_CUP_READY_TO_START, CHALLENGE_CUP_NOT_STARTED, EVENT_RONALD_CHALLENGE_HALL_LOBBY_CONVO_5, 5
db CHALLENGE_CUP_LOST, CHALLENGE_CUP_LOST, EVENT_RONALD_CHALLENGE_HALL_LOBBY_CONVO_6, 6
db CHALLENGE_CUP_OVER, CHALLENGE_CUP_LOST, EVENT_RONALD_CHALLENGE_HALL_LOBBY_CONVO_7, 7
db CHALLENGE_CUP_OVER, CHALLENGE_CUP_NOT_STARTED, EVENT_RONALD_CHALLENGE_HALL_LOBBY_CONVO_8, 8
Script_f166:
start_script
move_active_npc NPCMovement_f232
jump_if_event_equal EVENT_RONALD_CHALLENGE_HALL_LOBBY_STATE, 1, .ows_f192
jump_if_event_equal EVENT_RONALD_CHALLENGE_HALL_LOBBY_STATE, 2, .ows_f1a5
jump_if_event_equal EVENT_RONALD_CHALLENGE_HALL_LOBBY_STATE, 3, .ows_f1b8
jump_if_event_equal EVENT_RONALD_CHALLENGE_HALL_LOBBY_STATE, 4, .ows_f1cb
jump_if_event_equal EVENT_RONALD_CHALLENGE_HALL_LOBBY_STATE, 5, .ows_f1de
jump_if_event_equal EVENT_RONALD_CHALLENGE_HALL_LOBBY_STATE, 6, .ows_f1f1
jump_if_event_equal EVENT_RONALD_CHALLENGE_HALL_LOBBY_STATE, 7, .ows_f204
jump_if_event_equal EVENT_RONALD_CHALLENGE_HALL_LOBBY_STATE, 8, .ows_f217
.ows_f192
print_npc_text Text0515
close_text_box
move_player WEST, 1
move_player WEST, 1
move_player WEST, 1
print_npc_text Text0516
script_jump .ows_f227
.ows_f1a5
print_npc_text Text0517
close_text_box
move_player WEST, 1
move_player WEST, 1
move_player WEST, 1
print_npc_text Text0518
script_jump .ows_f227
.ows_f1b8
print_npc_text Text0519
close_text_box
move_player WEST, 1
move_player WEST, 1
move_player WEST, 1
print_npc_text Text051a
script_jump .ows_f227
.ows_f1cb
print_npc_text Text051b
close_text_box
move_player WEST, 1
move_player WEST, 1
move_player WEST, 1
print_npc_text Text051c
script_jump .ows_f227
.ows_f1de
print_npc_text Text051d
close_text_box
move_player WEST, 1
move_player WEST, 1
move_player WEST, 1
print_npc_text Text051e
script_jump .ows_f227
.ows_f1f1
print_npc_text Text051f
close_text_box
move_player WEST, 1
move_player WEST, 1
move_player WEST, 1
print_npc_text Text0520
script_jump .ows_f227
.ows_f204
print_npc_text Text0521
close_text_box
move_player WEST, 1
move_player WEST, 1
move_player WEST, 1
print_npc_text Text0522
script_jump .ows_f227
.ows_f217
print_npc_text Text0523
close_text_box
move_player WEST, 1
move_player WEST, 1
move_player WEST, 1
print_npc_text Text0524
.ows_f227
close_text_box
set_player_direction SOUTH
move_player NORTH, 4
move_active_npc NPCMovement_f232
unload_active_npc
quit_script_fully
NPCMovement_f232:
db EAST
db EAST
db EAST
db EAST
db EAST
db EAST
db $ff
|