summaryrefslogtreecommitdiff
path: root/arm9
diff options
context:
space:
mode:
authorred031000 <rubenru09@aol.com>2020-12-06 19:50:02 +0000
committerred031000 <rubenru09@aol.com>2020-12-06 19:50:02 +0000
commita3060d816a528bdef9f5b6da7246c423a46fce61 (patch)
treefb01073e5301d384ffd9c552fe45120b1b30a49f /arm9
parent87be48c985eeb0c1c8faf2817898f4cef3d4830f (diff)
almost finished
Diffstat (limited to 'arm9')
-rw-r--r--arm9/modules/21/asm/mod21_02254A6C_asm.s42
-rw-r--r--arm9/modules/21/include/mod21_02254A6C.h19
-rw-r--r--arm9/modules/21/src/mod21_02254A6C_src.c34
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);
+}