summaryrefslogtreecommitdiff
path: root/arm9/modules/21/src
diff options
context:
space:
mode:
authorred031000 <rubenru09@aol.com>2020-11-10 16:38:39 +0000
committerred031000 <rubenru09@aol.com>2020-11-10 16:38:39 +0000
commitebbcd4c9d985bd3c66e45fee6cf201525d501633 (patch)
tree9ae3122291dd1824a8d3782c4c22f6fa6160ace7 /arm9/modules/21/src
parentb65d56bc44308503f4da143fd9a014926020450c (diff)
mod21_0225489C
Diffstat (limited to 'arm9/modules/21/src')
-rw-r--r--arm9/modules/21/src/mod21_02254854_src.c46
1 files changed, 42 insertions, 4 deletions
diff --git a/arm9/modules/21/src/mod21_02254854_src.c b/arm9/modules/21/src/mod21_02254854_src.c
index fcb34247..5e808856 100644
--- a/arm9/modules/21/src/mod21_02254854_src.c
+++ b/arm9/modules/21/src/mod21_02254854_src.c
@@ -3,20 +3,58 @@
#include "unk_0200CA44.h"
#include "mod21_02254854.h"
-extern BOOL MOD21_0225489C(void *param0, u32 param1, u32 param2, u32 param3);
extern void MOD21_02254930(void *, void *);
-THUMB_FUNC BOOL MOD21_02254854(u32 *param0, u32 param1, u32 param2, u32 param3) //param0 is likely actually a struct
+extern void GF_RTC_CopyTime(u32 *param0);
+
+extern void MOD21_02254D80();
+extern void MOD21_02254974();
+extern BOOL MOD21_02254A6C(u32 *param0, u32 *param1);
+extern BOOL MOD20_02254130(void *param0, BOOL param1, void *param2, UnkStruct02254854 *param3, u32 param4);
+
+THUMB_FUNC BOOL MOD21_02254854(UnkStruct02254854 **param0, u32 param1, u32 param2, u32 param3)
{
- void * alloced = AllocFromHeap(8, 0x2c);
+ UnkStruct02254854 *alloced = (UnkStruct02254854 *)AllocFromHeap(8, sizeof(UnkStruct02254854));
if (alloced != NULL)
{
if (MOD21_0225489C(alloced, param1, param2, param3) && FUN_0200CA44(MOD21_02254930, alloced, (void *)1))
{
- *param0 = (u32)alloced;
+ *param0 = alloced;
return TRUE;
}
FreeToHeap(alloced);
}
return FALSE;
}
+
+THUMB_FUNC BOOL MOD21_0225489C(UnkStruct02254854 *param0, u32 param1, u32 param2, u32 param3)
+{
+#pragma unused (param2, param3) //not sure, please check
+ if (MOD21_02254A6C(&param0->Unk24, param0->Unk14))
+ {
+ param0->bytearray[0] = 0;
+ param0->bytearray[1] = 0;
+ param0->bytearray[2] = 0;
+ param0->bytearray[3] = 1;
+ param0->bytearray[6] = 0;
+ param0->Unk20 = 0;
+ GF_RTC_CopyTime(param0->Unk14);
+ if (param0->Unk14[0] >= 0x18)
+ {
+ param0->Unk14[0] = param0->Unk14[0] % 0x18;
+ }
+ if (param0->Unk14[1] >= 0x3c)
+ {
+ param0->Unk14[0] = param0->Unk14[0] % 0x3c;
+ }
+ param0->bytearray[5] = (u8)param0->Unk14[1];
+ param0->Unk10 = MOD20_02254130(MOD21_02254D80, TRUE, MOD21_02254974, param0, 8);
+ if (param0->Unk10 == FALSE)
+ {
+ return FALSE;
+ }
+ param0->Unk28 = param1;
+ return TRUE;
+ }
+ return FALSE;
+}