diff options
author | red031000 <rubenru09@aol.com> | 2020-12-06 19:50:02 +0000 |
---|---|---|
committer | red031000 <rubenru09@aol.com> | 2020-12-06 19:50:02 +0000 |
commit | a3060d816a528bdef9f5b6da7246c423a46fce61 (patch) | |
tree | fb01073e5301d384ffd9c552fe45120b1b30a49f /arm9 | |
parent | 87be48c985eeb0c1c8faf2817898f4cef3d4830f (diff) |
almost finished
Diffstat (limited to 'arm9')
-rw-r--r-- | arm9/modules/21/asm/mod21_02254A6C_asm.s | 42 | ||||
-rw-r--r-- | arm9/modules/21/include/mod21_02254A6C.h | 19 | ||||
-rw-r--r-- | arm9/modules/21/src/mod21_02254A6C_src.c | 34 |
3 files changed, 41 insertions, 54 deletions
diff --git a/arm9/modules/21/asm/mod21_02254A6C_asm.s b/arm9/modules/21/asm/mod21_02254A6C_asm.s index b70b3d9a..05679d5c 100644 --- a/arm9/modules/21/asm/mod21_02254A6C_asm.s +++ b/arm9/modules/21/asm/mod21_02254A6C_asm.s @@ -3,48 +3,10 @@ .section .text .balign 4, 0 - .extern MOD21_02254B4C .extern MOD21_02254B60 .extern MOD21_02254BF4 - - thumb_func_start MOD21_02254C14 -MOD21_02254C14: ; 0x02254C14 - push {r4, lr} - add r4, r1, #0 - add r0, r4, #0 - bl MOD20_022538A0 - ldr r0, [r0] - ldr r0, [r0, #0xc] - cmp r0, #0 - beq _02254C30 - mov r0, #0 - add r1, r0, #0 - bl MOD11_02252DB4 - b _02254C38 -_02254C30: - mov r0, #0 - add r1, r0, #0 - bl MOD20_02252D7C -_02254C38: - add r0, r4, #0 - bl MOD21_02254B4C - pop {r4, pc} - thumb_func_end MOD21_02254C14 - - thumb_func_start MOD21_02254C40 -MOD21_02254C40: ; 0x02254C40 - push {r4, lr} - add r4, r1, #0 - add r0, r4, #0 - bl MOD20_022538A0 - ldr r0, [r0, #4] - mov r1, #6 - bl FUN_020178A0 - add r0, r4, #0 - bl MOD21_02254B4C - pop {r4, pc} - .align 2, 0 - thumb_func_end MOD21_02254C40 + .extern MOD21_02254C14 + .extern MOD21_02254C40 thumb_func_start MOD21_02254C5C MOD21_02254C5C: ; 0x02254C5C diff --git a/arm9/modules/21/include/mod21_02254A6C.h b/arm9/modules/21/include/mod21_02254A6C.h index 5376e325..568ec26f 100644 --- a/arm9/modules/21/include/mod21_02254A6C.h +++ b/arm9/modules/21/include/mod21_02254A6C.h @@ -3,20 +3,17 @@ #include "nitro/types.h" -typedef struct UnkStruct02254A6C +typedef struct UnkStruct02254A6C UnkStruct02254A6C; + +struct UnkStruct02254A6C { - void *Unk00; + UnkStruct02254A6C *Unk00; u32 Unk04; u32 Unk08[1]; - u8 padding0[0x24]; + u32 Unk0C; + u8 padding0[0x20]; u32 Unk30[1]; -} UnkStruct02254A6C; - -typedef struct UnkStruct02254B60 -{ - u32 Unk00; - u32 Unk04; -} UnkStruct02254B60; +}; BOOL MOD21_02254A6C(UnkStruct02254A6C *param0, void *param1); void MOD21_02254AD4(void *param0, void *param1); @@ -27,5 +24,7 @@ BOOL MOD21_02254B40(void *param0); BOOL MOD21_02254B4C(void *param0); BOOL MOD21_02254B60(u32 param0, void *param1); BOOL MOD21_02254BF4(u32 param0, void *param1); +BOOL MOD21_02254C14(u32 param0, void *param1); +BOOL MOD21_02254C40(u32 param0, void *param1); #endif //POKEDIAMOND_MOD21_02254A6C_H diff --git a/arm9/modules/21/src/mod21_02254A6C_src.c b/arm9/modules/21/src/mod21_02254A6C_src.c index 25a8548b..ef422905 100644 --- a/arm9/modules/21/src/mod21_02254A6C_src.c +++ b/arm9/modules/21/src/mod21_02254A6C_src.c @@ -10,7 +10,7 @@ extern void MOD20_022537E0(void *param0, u32 param1, void *param2, u32 param3, v extern void MOD21_02254DAC(void); extern BOOL MOD20_02253794(void *param0, u32 param1); extern BOOL MOD20_022537B8(void *param0); -extern UnkStruct02254B60 *MOD20_022538A0(void *param0); +extern UnkStruct02254A6C *MOD20_022538A0(void *param0); extern BOOL MOD20_02253888(void *param0, void *param1); extern void MOD21_02254D90(void); @@ -19,8 +19,11 @@ extern void FUN_02016C18(u32 param0, u32 param1, void *param2, u32 param3); extern void FUN_0200687C(u32 param0, u32 param1, u32 param2, u32 param3, u32 param4, u32 param5, u32 param6, u32 param7); extern void FUN_020068C8(u32 param0, u32 param1, u32 param2, u32 param3, u32 param4, u32 param5, u32 param6, u32 param7); extern void MOD20_02252D7C(u32 param0, u32 param1); -extern void MOD21_02254C5C(UnkStruct02254B60 *param0); +extern void MOD21_02254C5C(UnkStruct02254A6C *param0); extern void FUN_02017CD0(u32 param0, u32 param1); +extern void FUN_020178A0(u32 param0, u32 param1); + +extern void MOD11_02252DB4(u32 param0, u32 param1); THUMB_FUNC BOOL MOD21_02254A6C(UnkStruct02254A6C *param0, void *param1) { @@ -89,7 +92,7 @@ THUMB_FUNC BOOL MOD21_02254B4C(void *param0) THUMB_FUNC BOOL MOD21_02254B60(u32 param0, void *param1) { #pragma unused (param0) - UnkStruct02254B60 *strct = MOD20_022538A0(param1); + UnkStruct02254A6C *strct = MOD20_022538A0(param1); FUN_02016C18(strct->Unk04, 6, MOD21_02254D90, 0); FUN_0200687C(12, 23, strct->Unk04, 6, 0, 0, 1, 8); FUN_020068C8(12, 24, strct->Unk04, 6, 0, 0, 1, 8); @@ -112,8 +115,31 @@ THUMB_FUNC BOOL MOD21_02254B60(u32 param0, void *param1) THUMB_FUNC BOOL MOD21_02254BF4(u32 param0, void *param1) { #pragma unused (param0) - UnkStruct02254B60 *strct = MOD20_022538A0(param1); + UnkStruct02254A6C *strct = MOD20_022538A0(param1); MOD21_02254C5C(strct); FUN_02017CD0(strct->Unk04, 6); return MOD21_02254B4C(param1); } + +THUMB_FUNC BOOL MOD21_02254C14(u32 param0, void *param1) +{ +#pragma unused (param0) + UnkStruct02254A6C *strct = MOD20_022538A0(param1); + if (strct->Unk00->Unk0C) + { + MOD11_02252DB4(0, 0); + } + else + { + MOD20_02252D7C(0, 0); + } + return MOD21_02254B4C(param1); +} + +THUMB_FUNC BOOL MOD21_02254C40(u32 param0, void *param1) +{ +#pragma unused (param0) + UnkStruct02254A6C *strct = MOD20_022538A0(param1); + FUN_020178A0(strct->Unk04, 6); + return MOD21_02254B4C(param1); +} |