mirror of
https://github.com/pret/pokediamond.git
synced 2026-08-22 16:54:43 -05:00
mod21_0225489C
This commit is contained in:
@@ -3,69 +3,6 @@
|
||||
.section .text
|
||||
.balign 4, 0
|
||||
|
||||
thumb_func_start MOD21_0225489C
|
||||
MOD21_0225489C: ; 0x0225489C
|
||||
push {r3, r4, r5, lr}
|
||||
add r5, r0, #0
|
||||
add r4, r1, #0
|
||||
add r1, r5, #0
|
||||
add r0, #0x24
|
||||
add r1, #0x14
|
||||
bl MOD21_02254A6C
|
||||
cmp r0, #0
|
||||
beq _0225490A
|
||||
mov r1, #0
|
||||
strb r1, [r5]
|
||||
strb r1, [r5, #1]
|
||||
strb r1, [r5, #2]
|
||||
mov r0, #1
|
||||
strb r0, [r5, #3]
|
||||
strb r1, [r5, #6]
|
||||
add r0, r5, #0
|
||||
str r1, [r5, #0x20]
|
||||
add r0, #0x14
|
||||
bl GF_RTC_CopyTime
|
||||
ldr r0, [r5, #0x14]
|
||||
cmp r0, #0x18
|
||||
blo _022548D6
|
||||
mov r1, #0x18
|
||||
bl _u32_div_f
|
||||
str r1, [r5, #0x14]
|
||||
_022548D6:
|
||||
ldr r0, [r5, #0x18]
|
||||
cmp r0, #0x3c
|
||||
blo _022548E6
|
||||
ldr r0, [r5, #0x14]
|
||||
mov r1, #0x3c
|
||||
bl _u32_div_f
|
||||
str r1, [r5, #0x14]
|
||||
_022548E6:
|
||||
ldr r0, [r5, #0x18]
|
||||
ldr r2, _02254910 ; =MOD21_02254974
|
||||
strb r0, [r5, #5]
|
||||
mov r0, #8
|
||||
str r0, [sp]
|
||||
ldr r0, _02254914 ; =MOD21_02254D80
|
||||
mov r1, #1
|
||||
add r3, r5, #0
|
||||
bl MOD20_02254130
|
||||
str r0, [r5, #0x10]
|
||||
cmp r0, #0
|
||||
bne _02254904
|
||||
mov r0, #0
|
||||
pop {r3, r4, r5, pc}
|
||||
_02254904:
|
||||
str r4, [r5, #0x28]
|
||||
mov r0, #1
|
||||
pop {r3, r4, r5, pc}
|
||||
_0225490A:
|
||||
mov r0, #0
|
||||
pop {r3, r4, r5, pc}
|
||||
nop
|
||||
_02254910: .word MOD21_02254974
|
||||
_02254914: .word MOD21_02254D80
|
||||
thumb_func_end MOD21_0225489C
|
||||
|
||||
thumb_func_start MOD21_02254918
|
||||
MOD21_02254918: ; 0x02254918
|
||||
push {r4, lr}
|
||||
|
||||
@@ -3,6 +3,19 @@
|
||||
|
||||
#include "nitro/types.h"
|
||||
|
||||
BOOL MOD21_02254854(u32 *param0, u32 param1, u32 param2, u32 param3);
|
||||
typedef struct UnkStruct02254854
|
||||
{
|
||||
u8 bytearray[8];
|
||||
u8 padding0[8];
|
||||
BOOL Unk10;
|
||||
u32 Unk14[2];
|
||||
u8 padding1[4];
|
||||
u32 Unk20;
|
||||
u32 Unk24;
|
||||
u32 Unk28;
|
||||
} UnkStruct02254854;
|
||||
|
||||
BOOL MOD21_02254854(UnkStruct02254854 **param0, u32 param1, u32 param2, u32 param3);
|
||||
BOOL MOD21_0225489C(UnkStruct02254854 *param0, u32 param1, u32 param2, u32 param3);
|
||||
|
||||
#endif //POKEDIAMOND_MOD21_02254854_H
|
||||
|
||||
@@ -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(¶m0->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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user