summaryrefslogtreecommitdiff
path: root/asm/safari_zone.s
blob: b29c367390574891bb4babfffeb5582c41ea59a9 (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
163
164
165
166
167
	.include "asm/macros.inc"
	.include "constants/constants.inc"

	.syntax unified

	.text

	thumb_func_start GetSafariZoneFlag
GetSafariZoneFlag: @ 80A0E90
	push {lr}
	movs r0, 0x80
	lsls r0, 4
	bl FlagGet
	lsls r0, 24
	lsrs r0, 24
	pop {r1}
	bx r1
	thumb_func_end GetSafariZoneFlag

	thumb_func_start sub_80A0EA4
sub_80A0EA4: @ 80A0EA4
	push {lr}
	movs r0, 0x80
	lsls r0, 4
	bl FlagSet
	pop {r0}
	bx r0
	thumb_func_end sub_80A0EA4

	thumb_func_start ResetSafariZoneFlag
ResetSafariZoneFlag: @ 80A0EB4
	push {lr}
	movs r0, 0x80
	lsls r0, 4
	bl FlagClear
	pop {r0}
	bx r0
	thumb_func_end ResetSafariZoneFlag

	thumb_func_start sub_80A0EC4
sub_80A0EC4: @ 80A0EC4
	push {lr}
	movs r0, 0x11
	bl IncrementGameStat
	bl sub_80A0EA4
	ldr r1, _080A0EE4 @ =gUnknown_2039994
	movs r0, 0x1E
	strb r0, [r1]
	ldr r1, _080A0EE8 @ =gUnknown_2039996
	movs r2, 0x96
	lsls r2, 2
	adds r0, r2, 0
	strh r0, [r1]
	pop {r0}
	bx r0
	.align 2, 0
_080A0EE4: .4byte gUnknown_2039994
_080A0EE8: .4byte gUnknown_2039996
	thumb_func_end sub_80A0EC4

	thumb_func_start sub_80A0EEC
sub_80A0EEC: @ 80A0EEC
	push {lr}
	bl ResetSafariZoneFlag
	ldr r1, _080A0F04 @ =gUnknown_2039994
	movs r0, 0
	strb r0, [r1]
	ldr r1, _080A0F08 @ =gUnknown_2039996
	movs r0, 0
	strh r0, [r1]
	pop {r0}
	bx r0
	.align 2, 0
_080A0F04: .4byte gUnknown_2039994
_080A0F08: .4byte gUnknown_2039996
	thumb_func_end sub_80A0EEC

	thumb_func_start sub_80A0F0C
sub_80A0F0C: @ 80A0F0C
	push {lr}
	bl GetSafariZoneFlag
	cmp r0, 0
	beq _080A0F24
	ldr r1, _080A0F28 @ =gUnknown_2039996
	ldrh r0, [r1]
	subs r0, 0x1
	strh r0, [r1]
	lsls r0, 16
	cmp r0, 0
	beq _080A0F2C
_080A0F24:
	movs r0, 0
	b _080A0F34
	.align 2, 0
_080A0F28: .4byte gUnknown_2039996
_080A0F2C:
	ldr r0, _080A0F38 @ =gUnknown_81BFBC5
	bl ScriptContext1_SetupScript
	movs r0, 0x1
_080A0F34:
	pop {r1}
	bx r1
	.align 2, 0
_080A0F38: .4byte gUnknown_81BFBC5
	thumb_func_end sub_80A0F0C

	thumb_func_start sub_80A0F3C
sub_80A0F3C: @ 80A0F3C
	push {lr}
	ldr r0, _080A0F48 @ =gUnknown_81BFBAA
	bl ScriptContext1_SetupScript
	pop {r0}
	bx r0
	.align 2, 0
_080A0F48: .4byte gUnknown_81BFBAA
	thumb_func_end sub_80A0F3C

	thumb_func_start sub_80A0F4C
sub_80A0F4C: @ 80A0F4C
	push {lr}
	ldr r0, _080A0F60 @ =gUnknown_2039994
	ldrb r0, [r0]
	cmp r0, 0
	beq _080A0F68
	ldr r0, _080A0F64 @ =c2_exit_to_overworld_2_switch
	bl SetMainCallback2
	b _080A0FB0
	.align 2, 0
_080A0F60: .4byte gUnknown_2039994
_080A0F64: .4byte c2_exit_to_overworld_2_switch
_080A0F68:
	ldr r0, _080A0F88 @ =gUnknown_2023E8A
	ldrb r0, [r0]
	cmp r0, 0x8
	bne _080A0F9C
	ldr r0, _080A0F8C @ =gUnknown_81BFB87
	bl ScriptContext2_RunNewScript
	bl warp_in
	ldr r1, _080A0F90 @ =gUnknown_3005020
	ldr r0, _080A0F94 @ =sub_807E3EC
	str r0, [r1]
	ldr r0, _080A0F98 @ =sub_805671C
	bl SetMainCallback2
	b _080A0FB0
	.align 2, 0
_080A0F88: .4byte gUnknown_2023E8A
_080A0F8C: .4byte gUnknown_81BFB87
_080A0F90: .4byte gUnknown_3005020
_080A0F94: .4byte sub_807E3EC
_080A0F98: .4byte sub_805671C
_080A0F9C:
	cmp r0, 0x7
	bne _080A0FB0
	ldr r0, _080A0FB4 @ =gUnknown_81BFBD7
	bl ScriptContext1_SetupScript
	bl ScriptContext1_Stop
	ldr r0, _080A0FB8 @ =c2_exit_to_overworld_1_continue_scripts_restart_music
	bl SetMainCallback2
_080A0FB0:
	pop {r0}
	bx r0
	.align 2, 0
_080A0FB4: .4byte gUnknown_81BFBD7
_080A0FB8: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
	thumb_func_end sub_80A0F4C

	.align 2, 0 @ Don't pad with nop.