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
|
PewterGym_Script:
ld hl, wCurrentMapScriptFlags
bit BIT_CUR_MAP_LOADED_2, [hl]
res BIT_CUR_MAP_LOADED_2, [hl]
call nz, .LoadNames
call EnableAutoTextBoxDrawing
ld hl, PewterGymTrainerHeaders
ld de, PewterGym_ScriptPointers
ld a, [wPewterGymCurScript]
call ExecuteCurMapScriptInTable
ld [wPewterGymCurScript], a
ret
.LoadNames:
ld hl, .CityName
ld de, .LeaderName
call LoadGymLeaderAndCityName
ret
.CityName:
db "PEWTER CITY@"
.LeaderName:
db "BROCK@"
PewterGymResetScripts:
xor a
ld [wJoyIgnore], a
ld [wPewterGymCurScript], a
ld [wCurMapScript], a
ret
PewterGym_ScriptPointers:
def_script_pointers
dw_const CheckFightingMapTrainers, SCRIPT_PEWTERGYM_DEFAULT
dw_const DisplayEnemyTrainerTextAndStartBattle, SCRIPT_PEWTERGYM_START_BATTLE
dw_const EndTrainerBattle, SCRIPT_PEWTERGYM_END_BATTLE
dw_const PewterGymBrockPostBattle, SCRIPT_PEWTERGYM_BROCK_POST_BATTLE
PewterGymBrockPostBattle:
ld a, [wIsInBattle]
cp $ff
jp z, PewterGymResetScripts
ld a, PAD_CTRL_PAD
ld [wJoyIgnore], a
; fallthrough
PewterGymScriptReceiveTM34:
ld a, TEXT_PEWTERGYM_BROCK_WAIT_TAKE_THIS
ldh [hTextID], a
call DisplayTextID
SetEvent EVENT_BEAT_BROCK
lb bc, TM_BIDE, 1
call GiveItem
jr nc, .BagFull
ld a, TEXT_PEWTERGYM_RECEIVED_TM34
ldh [hTextID], a
call DisplayTextID
SetEvent EVENT_GOT_TM34
jr .gymVictory
.BagFull
ld a, TEXT_PEWTERGYM_TM34_NO_ROOM
ldh [hTextID], a
call DisplayTextID
.gymVictory
ld hl, wObtainedBadges
set BIT_BOULDERBADGE, [hl]
ld hl, wBeatGymFlags
set BIT_BOULDERBADGE, [hl]
ld a, TOGGLE_GYM_GUY
ld [wToggleableObjectIndex], a
predef HideObject
ld a, TOGGLE_ROUTE_22_RIVAL_1
ld [wToggleableObjectIndex], a
predef HideObject
ResetEvents EVENT_1ST_ROUTE22_RIVAL_BATTLE, EVENT_ROUTE22_RIVAL_WANTS_BATTLE
; deactivate gym trainers
SetEvent EVENT_BEAT_PEWTER_GYM_TRAINER_0
jp PewterGymResetScripts
PewterGym_TextPointers:
def_text_pointers
dw_const PewterGymBrockText, TEXT_PEWTERGYM_BROCK
dw_const PewterGymCooltrainerMText, TEXT_PEWTERGYM_COOLTRAINER_M
dw_const PewterGymGuideText, TEXT_PEWTERGYM_GYM_GUIDE
dw_const PewterGymBrockWaitTakeThisText, TEXT_PEWTERGYM_BROCK_WAIT_TAKE_THIS
dw_const PewterGymReceivedTM34Text, TEXT_PEWTERGYM_RECEIVED_TM34
dw_const PewterGymTM34NoRoomText, TEXT_PEWTERGYM_TM34_NO_ROOM
PewterGymTrainerHeaders:
def_trainers 2
PewterGymTrainerHeader0:
trainer EVENT_BEAT_PEWTER_GYM_TRAINER_0, 5, PewterGymCooltrainerMBattleText, PewterGymCooltrainerMEndBattleText, PewterGymCooltrainerMAfterBattleText
db -1 ; end
PewterGymBrockText:
text_asm
CheckEvent EVENT_BEAT_BROCK
jr z, .beforeBeat
CheckEventReuseA EVENT_GOT_TM34
jr nz, .afterBeat
call z, PewterGymScriptReceiveTM34
call DisableWaitingAfterTextDisplay
jr .done
.afterBeat
ld hl, .PostBattleAdviceText
call PrintText
jr .done
.beforeBeat
ld hl, .PreBattleText
call PrintText
ld hl, wStatusFlags3
set BIT_TALKED_TO_TRAINER, [hl]
set BIT_PRINT_END_BATTLE_TEXT, [hl]
ld hl, PewterGymBrockReceivedBoulderBadgeText
ld de, PewterGymBrockReceivedBoulderBadgeText
call SaveEndBattleTextPointers
ldh a, [hSpriteIndex]
ld [wSpriteIndex], a
call EngageMapTrainer
call InitBattleEnemyParameters
ld a, $1
ld [wGymLeaderNo], a
xor a
ldh [hJoyHeld], a
ld a, SCRIPT_PEWTERGYM_BROCK_POST_BATTLE
ld [wPewterGymCurScript], a
ld [wCurMapScript], a
.done
jp TextScriptEnd
.PreBattleText:
text_far _PewterGymBrockPreBattleText
text_end
.PostBattleAdviceText:
text_far _PewterGymBrockPostBattleAdviceText
text_end
PewterGymBrockWaitTakeThisText:
text_far _PewterGymBrockWaitTakeThisText
text_end
PewterGymReceivedTM34Text:
text_far _PewterGymReceivedTM34Text
sound_get_item_1
text_far _TM34ExplanationText
text_end
PewterGymTM34NoRoomText:
text_far _PewterGymTM34NoRoomText
text_end
PewterGymBrockReceivedBoulderBadgeText:
text_far _PewterGymBrockReceivedBoulderBadgeText
sound_get_item_1
text_far _PewterGymBrockBoulderBadgeInfoText ; Text to tell that the flash technique can be used
text_end
PewterGymCooltrainerMText:
text_asm
ld hl, PewterGymTrainerHeader0
call TalkToTrainer
jp TextScriptEnd
PewterGymCooltrainerMBattleText:
text_far _PewterGymCooltrainerMBattleText
text_end
PewterGymCooltrainerMEndBattleText:
text_far _PewterGymCooltrainerMEndBattleText
text_end
PewterGymCooltrainerMAfterBattleText:
text_far _PewterGymCooltrainerMAfterBattleText
text_end
PewterGymGuideText:
text_asm
ld a, [wBeatGymFlags]
bit BIT_BOULDERBADGE, a
jr nz, .afterBeat
ld hl, PewterGymGuidePreAdviceText
call PrintText
call YesNoChoice
ld a, [wCurrentMenuItem]
and a
jr nz, .PewterGymGuideBeginAdviceText
ld a, [wPikachuSpawnStateFlags]
bit BIT_PIKACHU_SPAWN_STARTER, a
jp nz, .asm_5c3fa
ld hl, PewterGymGuideBeginAdviceText
call PrintText
jr .PewterGymGuideAdviceText
.PewterGymGuideBeginAdviceText
ld hl, PewterGymGuideFreeServiceText
call PrintText
.PewterGymGuideAdviceText
ld hl, PewterGymGuideAdviceText
call PrintText
jr .done
.afterBeat
ld hl, PewterGymGuidePostBattleText
call PrintText
.done
jp TextScriptEnd
.asm_5c3fa
ld hl, PewterGymText_5c41c
call PrintText
jp TextScriptEnd
PewterGymGuidePreAdviceText:
text_far _PewterGymGuidePreAdviceText
text_end
PewterGymGuideBeginAdviceText:
text_far _PewterGymGuideBeginAdviceText
text_end
PewterGymGuideAdviceText:
text_far _PewterGymGuideAdviceText
text_end
PewterGymGuideFreeServiceText:
text_far _PewterGymGuideFreeServiceText
text_end
PewterGymGuidePostBattleText:
text_far _PewterGymGuidePostBattleText
text_end
PewterGymText_5c41c:
text_far _PewterGymGuyText
text_end
|