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
|
.xf1f77
ld hl,.ForJust500Text
call PrintText
ld a,MONEY_BOX
ld [wTextBoxID],a
call DisplayTextBoxID
call YesNoChoice
ld a,[wCurrentMenuItem]
and a
jp nz,.PleaseComeAgain
ld hl,$d346 ; yellow d346
ld a,[hli]
or [hl]
inc hl
or [hl]
jr nz,.xf1f9f
.xf1f98
call .xf20ce
jr c,.CantPayWalkDown
jr .xf1ff2
.xf1f9f
xor a
ld [hMoney],a
ld a,$05
ld [hMoney + 1],a
ld a,$00
ld [hMoney + 2],a
call HasEnoughMoney
jr nc,.success
ld hl,.NotEnoughMoneyText
call PrintText
call .xf2077
jr c,.CantPayWalkDown
jr .xf1ff2
.success
xor a
ld [wPriceTemp],a
ld a,$05
ld [wPriceTemp + 1],a
ld a,$00
ld [wPriceTemp + 2],a
ld hl,wPriceTemp + 2
ld de,wPlayerMoney + 2
ld c,3
predef SubBCDPredef
ld a,$b2
call $3736
call $373e
ld a,MONEY_BOX
ld [wTextBoxID],a
call DisplayTextBoxID
ld hl,.MakePaymentText
call PrintText
ld a,30
lb hl, (502 / $100), (502 % $100)
.xf1ff2
ld [wNumSafariBalls],a
ld a,h
ld [wSafariSteps],a
ld a,l
ld [wSafariSteps + 1],a
ld a,D_UP
ld c,3
call SafariZoneEntranceAutoWalk
SetEvent EVENT_IN_SAFARI_ZONE
ResetEventReuseHL EVENT_SAFARI_GAME_OVER
ld a,3
ld [wSafariZoneEntranceCurScript],a
jr .done
.PleaseComeAgain
ld hl,.PleaseComeAgainText
call PrintText
.CantPayWalkDown
ld a,D_DOWN
ld c,1
call SafariZoneEntranceAutoWalk
ld a,4
ld [wSafariZoneEntranceCurScript],a
.done
ret
.ForJust500Text
TX_FAR SafariZoneEntranceText_9e6e4
db "@"
.MakePaymentText
TX_FAR SafariZoneEntranceText_9e747
db $b
TX_FAR _SafariZoneEntranceText_75360
db "@"
.PleaseComeAgainText
TX_FAR _SafariZoneEntranceText_75365
db "@"
.NotEnoughMoneyText
TX_FAR _SafariZoneEntranceText_7536a
db "@"
.SafariZoneEntranceText2
ld hl,.FirstTimeQuestionText
call PrintText
call YesNoChoice
ld a,[wCurrentMenuItem]
and a
ld hl,.RegularText
jr nz,.Explanation
ld hl,.ExplanationText
.Explanation
call PrintText
ret
.FirstTimeQuestionText
TX_FAR _SafariZoneEntranceText_753e6
db "@"
.ExplanationText
TX_FAR _SafariZoneEntranceText_753eb
db "@"
.RegularText
TX_FAR _SafariZoneEntranceText_753f0
db "@"
SafariZoneEntranceAutoWalk:
push af
ld b,0
ld a,c
ld [wSimulatedJoypadStatesIndex],a
ld hl,wSimulatedJoypadStatesEnd
pop af
call FillMemory
jp StartSimulatingJoypadStates
.xf2077
ld hl,wPlayerMoney
ld de,$ff9f
ld bc,3
call $b1 ; yellow $00b1
xor a
ld [$ffa2],a
ld [$ffa3],a
ld a,$17 ; ¥17 per safari ball
ld [$ffa4],a
predef DivideBCDPredef3
ld a,[$ffa4]
call .xf211e
pop af
ld hl,$d346
xor a
ld bc,3
call FillMemory
ld hl,.OhAllRightText
call PrintText_NoCreatingTextBox
ld a,MONEY_BOX
ld a,[$d124]
call DisplayTextBoxID
ld hl,.CantGive30BallsText
call PrintText
pop af
inc a
jr z,.xf20bd
cp 29
jr c,.xf20bf
.xf20bd
ld a,29
.xf20bf
ld hl,$1f6
and a
ret
.OhAllRightText
TX_FAR _SafariZoneLowCostText1
db "@"
.CantGive30BallsText
TX_FAR _SafariZoneLowCostText2
db "@"
.xf20ce
ld hl,$d70c
ld a,[hl]
push af
inc [hl]
ld e,a
ld d,0
ld hl,.lowcosttextpointers
add hl,de
add hl,de
ld a,[hli]
ld h,[hl]
ld l,a
call PrintText
pop af
cp 3
jr z,.next
scf
ret
.next
ld hl,.xf20f6
call $3c46
ld a,1
ld hl,$01f6
and a
ret
.xf20f6
TX_FAR _SafariZoneLowCostText3
db $b
TX_FAR _SafariZoneLowCostText4
db "@"
.lowcosttextpointers
dw .xf210a
dw .xf210f
dw .xf2114
dw .xf2119
dw .xf2119
.xf210a
TX_FAR _SafariZoneLowCostText5
db "@"
.xf210f
TX_FAR _SafariZoneLowCostText6
db "@"
.xf2114
TX_FAR _SafariZoneLowCostText7
db "@"
.xf2119
TX_FAR _SafariZoneLowCostText8
db "@"
.xf211e
push hl
ld c,a
and $f
ld l,a
ld h,0
ld a,c
and $f0
swap a
ld bc,$a
call $3a74
ld a,l
pop hl
ret
.xf2133
|