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
|
SafariZoneGate_Script:
call EnableAutoTextBoxDrawing
ld hl, SafariZoneGate_ScriptPointers
ld a, [wSafariZoneGateCurScript]
call CallFunctionInTable
ret
SafariZoneGate_ScriptPointers:
dw .SafariZoneEntranceScript0
dw .SafariZoneEntranceScript1
dw .SafariZoneEntranceScript2
dw .SafariZoneEntranceScript3
dw .SafariZoneEntranceScript4
dw .SafariZoneEntranceScript5
dw .SafariZoneEntranceScript6
.SafariZoneEntranceScript0
ld hl, .CoordsData_75221
call ArePlayerCoordsInArray
ret nc
ld a, $3
ldh [hSpriteIndexOrTextID], a
call DisplayTextID
ld a, $ff
ld [wJoyIgnore], a
xor a
ldh [hJoyHeld], a
ld a, SPRITE_FACING_RIGHT
ld [wSpritePlayerStateData1FacingDirection], a
ld a, [wCoordIndex]
cp $1
jr z, .asm_7520f
ld a, $2
ld [wSafariZoneGateCurScript], a
ret
.asm_7520f
ld a, D_RIGHT
ld c, $1
call SafariZoneEntranceAutoWalk
ld a, $f0
ld [wJoyIgnore], a
ld a, $1
ld [wSafariZoneGateCurScript], a
ret
.CoordsData_75221:
dbmapcoord 3, 2
dbmapcoord 4, 2
db -1 ; end
.SafariZoneEntranceScript1
call SafariZoneEntranceScript_752b4
ret nz
.SafariZoneEntranceScript2
xor a
ldh [hJoyHeld], a
ld [wJoyIgnore], a
call UpdateSprites
ld a, $4
ldh [hSpriteIndexOrTextID], a
call DisplayTextID
ld a, $ff
ld [wJoyIgnore], a
ret
.SafariZoneEntranceScript3
call SafariZoneEntranceScript_752b4
ret nz
xor a
ld [wJoyIgnore], a
ld a, $5
ld [wSafariZoneGateCurScript], a
ret
.SafariZoneEntranceScript5
ld a, PLAYER_DIR_DOWN
ld [wPlayerMovingDirection], a
CheckAndResetEvent EVENT_SAFARI_GAME_OVER
jr z, .asm_7527f
ResetEventReuseHL EVENT_IN_SAFARI_ZONE
call UpdateSprites
ld a, $f0
ld [wJoyIgnore], a
ld a, $6
ldh [hSpriteIndexOrTextID], a
call DisplayTextID
xor a
ld [wNumSafariBalls], a
ld [wSafariSteps], a
ld [wSafariSteps], a ; ?????
ld a, D_DOWN
ld c, $3
call SafariZoneEntranceAutoWalk
ld a, $4
ld [wSafariZoneGateCurScript], a
jr .asm_75286
.asm_7527f
ld a, $5
ldh [hSpriteIndexOrTextID], a
call DisplayTextID
.asm_75286
ret
.SafariZoneEntranceScript4
call SafariZoneEntranceScript_752b4
ret nz
xor a
ld [wJoyIgnore], a
ld a, $0
ld [wSafariZoneGateCurScript], a
ret
.SafariZoneEntranceScript6
call SafariZoneEntranceScript_752b4
ret nz
call Delay3
ld a, [wcf0d]
ld [wSafariZoneGateCurScript], a
ret
SafariZoneEntranceAutoWalk:
push af
ld b, 0
ld a, c
ld [wSimulatedJoypadStatesIndex], a
ld hl, wSimulatedJoypadStatesEnd
pop af
call FillMemory
jp StartSimulatingJoypadStates
SafariZoneEntranceScript_752b4:
ld a, [wSimulatedJoypadStatesIndex]
and a
ret
SafariZoneGate_TextPointers:
dw .SafariZoneEntranceText1
dw .SafariZoneEntranceText2
dw .SafariZoneEntranceText1
dw .SafariZoneEntranceText4
dw .SafariZoneEntranceText5
dw .SafariZoneEntranceText6
.SafariZoneEntranceText1
text_far _SafariZoneEntranceText1
text_end
.SafariZoneEntranceText4
text_asm
callfar Func_f1f77
jp TextScriptEnd
.SafariZoneEntranceText5
text_far SafariZoneEntranceText_9e814
text_asm
call YesNoChoice
ld a, [wCurrentMenuItem]
and a
jr nz, .asm_7539c
ld hl, .SafariZoneEntranceText_753bb
call PrintText
xor a
ld [wSpritePlayerStateData1FacingDirection], a
ld a, D_DOWN
ld c, $3
call SafariZoneEntranceAutoWalk
ResetEvents EVENT_SAFARI_GAME_OVER, EVENT_IN_SAFARI_ZONE
ld a, $0
ld [wcf0d], a
jr .asm_753b3
.asm_7539c
ld hl, .SafariZoneEntranceText_753c0
call PrintText
ld a, SPRITE_FACING_UP
ld [wSpritePlayerStateData1FacingDirection], a
ld a, D_UP
ld c, $1
call SafariZoneEntranceAutoWalk
ld a, $5
ld [wcf0d], a
.asm_753b3
ld a, $6
ld [wSafariZoneGateCurScript], a
jp TextScriptEnd
.SafariZoneEntranceText_753bb
text_far _SafariZoneEntranceText_753bb
text_end
.SafariZoneEntranceText_753c0
text_far _SafariZoneEntranceText_753c0
text_end
.SafariZoneEntranceText6
text_far _SafariZoneEntranceText_753c5
text_end
.SafariZoneEntranceText2
text_asm
callfar Func_f203e
jp TextScriptEnd
|