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
|
.include "constants/gba_constants.inc"
.include "constants/species_constants.inc"
.include "asm/macros.inc"
.syntax unified
.text
thumb_func_start sub_806A328
sub_806A328: @ 806A328
push {lr}
ldr r0, _0806A350 @ =0x00000835
bl FlagSet
bl RtcCalcLocalTime
ldr r2, _0806A354 @ =gSaveBlock2
adds r2, 0xA0
ldr r3, _0806A358 @ =gLocalTime
ldr r0, [r3]
ldr r1, [r3, 0x4]
str r0, [r2]
str r1, [r2, 0x4]
ldr r0, _0806A35C @ =0x00004040
ldrh r1, [r3]
bl VarSet
pop {r0}
bx r0
.align 2, 0
_0806A350: .4byte 0x00000835
_0806A354: .4byte gSaveBlock2
_0806A358: .4byte gLocalTime
_0806A35C: .4byte 0x00004040
thumb_func_end sub_806A328
thumb_func_start DoTimeBasedEvents
DoTimeBasedEvents: @ 806A360
push {r4,lr}
ldr r0, _0806A388 @ =0x00000835
bl FlagGet
lsls r0, 24
cmp r0, 0
beq _0806A380
bl RtcCalcLocalTime
ldr r4, _0806A38C @ =gLocalTime
adds r0, r4, 0
bl sub_806A390
adds r0, r4, 0
bl sub_806A3F4
_0806A380:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0806A388: .4byte 0x00000835
_0806A38C: .4byte gLocalTime
thumb_func_end DoTimeBasedEvents
thumb_func_start sub_806A390
sub_806A390: @ 806A390
push {r4-r6,lr}
adds r5, r0, 0
ldr r0, _0806A3F0 @ =0x00004040
bl GetVarPointer
adds r6, r0, 0
ldrh r0, [r6]
movs r2, 0
ldrsh r1, [r5, r2]
cmp r0, r1
beq _0806A3EA
cmp r0, r1
bgt _0806A3EA
ldrh r4, [r5]
subs r4, r0
lsls r4, 16
lsrs r4, 16
bl ClearUpperFlags
adds r0, r4, 0
bl sub_80FA220
adds r0, r4, 0
bl sub_80BE8C4
adds r0, r4, 0
bl sub_8080834
adds r0, r4, 0
bl UpdatePartyPokerusTime
adds r0, r4, 0
bl sub_810D2F4
adds r0, r4, 0
bl UpdateBirchState
adds r0, r4, 0
bl sub_810F618
adds r0, r4, 0
bl SetRandomLotteryNumber
ldrh r0, [r5]
strh r0, [r6]
_0806A3EA:
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0806A3F0: .4byte 0x00004040
thumb_func_end sub_806A390
thumb_func_start sub_806A3F4
sub_806A3F4: @ 806A3F4
push {r4-r6,lr}
sub sp, 0x8
adds r5, r0, 0
mov r4, sp
ldr r6, _0806A448 @ =gSaveBlock2 + 0xA0
mov r0, sp
adds r1, r6, 0
adds r2, r5, 0
bl CalcTimeDifference
mov r0, sp
movs r2, 0
ldrsh r1, [r0, r2]
lsls r0, r1, 1
adds r0, r1
lsls r1, r0, 4
subs r1, r0
lsls r1, 5
movs r2, 0x2
ldrsb r2, [r4, r2]
lsls r0, r2, 4
subs r0, r2
lsls r0, 2
adds r1, r0
movs r0, 0x3
ldrsb r0, [r4, r0]
adds r0, r1, r0
cmp r0, 0
beq _0806A43E
cmp r0, 0
blt _0806A43E
bl BerryTreeTimeUpdate
ldr r0, [r5]
ldr r1, [r5, 0x4]
str r0, [r6]
str r1, [r6, 0x4]
_0806A43E:
add sp, 0x8
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0806A448: .4byte gSaveBlock2 + 0xA0
thumb_func_end sub_806A3F4
thumb_func_start sub_806A44C
sub_806A44C: @ 806A44C
push {lr}
bl sub_806A328
ldr r0, _0806A45C @ =c2_exit_to_overworld_1_continue_scripts_restart_music
bl SetMainCallback2
pop {r0}
bx r0
.align 2, 0
_0806A45C: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
thumb_func_end sub_806A44C
thumb_func_start sub_806A460
sub_806A460: @ 806A460
push {lr}
ldr r0, _0806A474 @ =Cb2_StartWallClock
bl SetMainCallback2
ldr r1, _0806A478 @ =gMain
ldr r0, _0806A47C @ =sub_806A44C
str r0, [r1, 0x8]
pop {r0}
bx r0
.align 2, 0
_0806A474: .4byte Cb2_StartWallClock
_0806A478: .4byte gMain
_0806A47C: .4byte sub_806A44C
thumb_func_end sub_806A460
.align 2, 0 @ Don't pad with nop.
|