summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--arm9/arm9.lsf1
-rw-r--r--arm9/modules/52/asm/module_52.s0
-rw-r--r--arm9/modules/52/include/module_52.h42
-rw-r--r--arm9/modules/52/src/module_52.c (renamed from arm9/modules/52/src/module_52_c.c)60
-rw-r--r--include/global.h2
5 files changed, 63 insertions, 42 deletions
diff --git a/arm9/arm9.lsf b/arm9/arm9.lsf
index 615430f9..b8accee4 100644
--- a/arm9/arm9.lsf
+++ b/arm9/arm9.lsf
@@ -899,7 +899,6 @@ Overlay MODULE_52
{
##Some kind of transition overlay for intro##
After arm9
- Object module_52_c.o
Object module_52.o
}
diff --git a/arm9/modules/52/asm/module_52.s b/arm9/modules/52/asm/module_52.s
deleted file mode 100644
index e69de29b..00000000
--- a/arm9/modules/52/asm/module_52.s
+++ /dev/null
diff --git a/arm9/modules/52/include/module_52.h b/arm9/modules/52/include/module_52.h
new file mode 100644
index 00000000..46caf4e9
--- /dev/null
+++ b/arm9/modules/52/include/module_52.h
@@ -0,0 +1,42 @@
+#ifndef POKEDIAMOND_MODULE_52_H
+#define POKEDIAMOND_MODULE_52_H
+
+#include "global.h"
+#include "save_block_2.h"
+#include "event_data.h"
+#include "main.h"
+#include "math_util.h"
+#include "options.h"
+#include "overlay_manager.h"
+#include "player_data.h"
+#include "sav_system_info.h"
+#include "unk_02024E64.h"
+#include "unk_020286F8.h"
+
+const u8 MOD52_021D76F8[];
+
+THUMB_FUNC int MOD52_021D74E0();
+THUMB_FUNC int MOD52_021D74F8(struct UnkStruct_02006234 *param0);
+THUMB_FUNC int MOD52_021D750C();
+
+THUMB_FUNC int MOD52_021D7528();
+THUMB_FUNC int MOD52_021D7540(struct UnkStruct_02006234 *param0);
+THUMB_FUNC int MOD52_021D7560();
+
+THUMB_FUNC int MOD52_021D757C();
+THUMB_FUNC int MOD52_021D7594(struct UnkStruct_02006234 *param0);
+THUMB_FUNC int MOD52_021D75E8();
+
+THUMB_FUNC void MOD52_021D7604(u32 heap_id, struct SaveBlock2 *sav2, BOOL set_trainerid);
+THUMB_FUNC void MOD52_021D7688(u32 param0, struct SaveBlock2 *sav2);
+THUMB_FUNC void MOD52_021D769C(u32 param0, struct SaveBlock2 *sav2);
+
+struct MOD52_Struct
+{
+ int (*func1)(void);
+ int (*func2)(struct UnkStruct_02006234 *param0);
+ int (*func3)(void);
+ u32 terminator;
+};
+
+#endif //POKEDIAMOND_MODULE_52_H \ No newline at end of file
diff --git a/arm9/modules/52/src/module_52_c.c b/arm9/modules/52/src/module_52.c
index 3e6d360f..766d5169 100644
--- a/arm9/modules/52/src/module_52_c.c
+++ b/arm9/modules/52/src/module_52.c
@@ -1,36 +1,18 @@
-#include "global.h"
-#include "save_block_2.h"
-#include "event_data.h"
-#include "main.h"
-#include "math_util.h"
-#include "options.h"
-#include "overlay_manager.h"
-#include "player_data.h"
-#include "sav_system_info.h"
-#include "unk_02024E64.h"
-#include "unk_020286F8.h"
+#include "module_52.h"
-extern void FUN_0201681C(u32 param0, u32 heap_id, u32 param2);
-extern int FUN_020168D0(u32 heap_id);
-extern void MOD52_021D769C(u32 heap_id, struct SaveBlock2 *sav2);
extern struct Unk21DBE18 UNK_020FD144;
extern struct Unk21DBE18 UNK_020F2B7C;
extern struct Unk21DBE18 UNK_020F2B8C;
-void MOD52_021D7604(u32 heap_id, struct SaveBlock2 *sav2, BOOL set_trainerid);
+extern void FUN_0201681C(u32 param0, u32 heap_id, u32 param2);
+extern int FUN_020168D0(u32 heap_id);
extern void FUN_02015E3C(struct IGT *igt);
-
-extern void MOD52_021D7688(u32 heap_id, struct SaveBlock2 *sav2);
-
extern void FUN_0206007C(struct SaveBlock2 *sav2);
extern int FUN_02053678(u32 random, u32 gender, u32 param2);
-extern void FUN_020250C4(void *sav_ptr, u32 heap_id, u8 *param2, u32 param3);
-
+extern void FUN_020250C4(void *sav_ptr, u32 heap_id, const u8 param2[], u32 param3);
extern void FUN_020377E0(struct SaveBlock2 *sav2);
extern void FUN_0205ECD4(struct ScriptState *script_state);
-extern const u8 MOD52_021D76F8[];
-
THUMB_FUNC int MOD52_021D74E0()
{
FUN_0201681C(3, 0x4d, 2 << 16);
@@ -41,7 +23,7 @@ THUMB_FUNC int MOD52_021D74E0()
THUMB_FUNC int MOD52_021D74F8(struct UnkStruct_02006234 *param0)
{
- struct SaveBlock2 *sav2 = OverlayManager_GetField18(param0)[2];
+ struct SaveBlock2 *sav2 = (struct SaveBlock2 *)OverlayManager_GetField18(param0)[2]; // weird
MOD52_021D769C(0x4d, sav2);
@@ -51,7 +33,7 @@ THUMB_FUNC int MOD52_021D74F8(struct UnkStruct_02006234 *param0)
THUMB_FUNC int MOD52_021D750C()
{
FUN_020168D0(0x4d);
- RegisterMainOverlay(-1, &UNK_020FD144);
+ RegisterMainOverlay(0XFFFFFFFF, &UNK_020FD144);
return 1;
}
@@ -66,7 +48,8 @@ THUMB_FUNC int MOD52_021D7528()
THUMB_FUNC int MOD52_021D7540(struct UnkStruct_02006234 *param0)
{
- struct SaveBlock2 *sav2 = OverlayManager_GetField18(param0)[2];
+ struct SaveBlock2 *sav2 = (struct SaveBlock2 *)OverlayManager_GetField18(param0)[2]; // weird
+
MOD52_021D7604(0x4d, sav2, 1);
struct IGT *igt = Sav2_PlayerData_GetIGTAddr(sav2);
FUN_02015E3C(igt);
@@ -77,7 +60,7 @@ THUMB_FUNC int MOD52_021D7540(struct UnkStruct_02006234 *param0)
THUMB_FUNC int MOD52_021D7560()
{
FUN_020168D0(0x4d);
- RegisterMainOverlay(-1, &UNK_020F2B7C);
+ RegisterMainOverlay(0xFFFFFFFF, &UNK_020F2B7C);
return 1;
}
@@ -92,7 +75,8 @@ THUMB_FUNC int MOD52_021D757C()
THUMB_FUNC int MOD52_021D7594(struct UnkStruct_02006234 *param0)
{
- struct SaveBlock2 *sav2 = OverlayManager_GetField18(param0)[2];
+ struct SaveBlock2 *sav2 = (struct SaveBlock2 *)OverlayManager_GetField18(param0)[2]; // weird
+
struct SavSysInfo *sav2_info = Sav2_SysInfo_get(sav2);
MOD52_021D7688(0x4d, sav2);
@@ -112,7 +96,7 @@ THUMB_FUNC int MOD52_021D7594(struct UnkStruct_02006234 *param0)
THUMB_FUNC int MOD52_021D75E8()
{
FUN_020168D0(0x4d);
- RegisterMainOverlay(-1, &UNK_020F2B8C);
+ RegisterMainOverlay(0XFFFFFFFF, &UNK_020F2B8C);
return 1;
}
@@ -138,12 +122,12 @@ THUMB_FUNC void MOD52_021D7604(u32 heap_id, struct SaveBlock2 *sav2, BOOL set_tr
u32 gender = PlayerProfile_GetTrainerGender(player_data);
int avatar = FUN_02053678(trainerid, gender, 0);
- PlayerProfile_SetAvatar(player_data, avatar);
+ PlayerProfile_SetAvatar(player_data, (u8)avatar);
- FUN_020250C4(FUN_02024ECC(sav2), heap_id, &MOD52_021D76F8[0], 0x76);
+ FUN_020250C4(FUN_02024ECC(sav2), heap_id, MOD52_021D76F8, 0x76);
}
-THUMB_FUNC void MOD52_021D7688(u32 param0, struct SaveBlock2 *sav2)
+THUMB_FUNC void MOD52_021D7688(u32 unused UNUSED, struct SaveBlock2 *sav2)
{
if (FUN_020226FC(sav2))
{
@@ -153,7 +137,7 @@ THUMB_FUNC void MOD52_021D7688(u32 param0, struct SaveBlock2 *sav2)
OS_ResetSystem(0);
}
-THUMB_FUNC void MOD52_021D769C(u32 param0, struct SaveBlock2 *sav2)
+THUMB_FUNC void MOD52_021D769C(u32 unused UNUSED, struct SaveBlock2 *sav2)
{
Sav2_InitDynamicRegion(sav2);
FUN_020377E0(sav2);
@@ -162,27 +146,21 @@ THUMB_FUNC void MOD52_021D769C(u32 param0, struct SaveBlock2 *sav2)
FUN_0205ECD4(SavArray_Flags_get(sav2));
}
-// struct MOD52_Struct {
-// int (*func1)(void);
-// int (*func2)(struct UnkStruct_02006234 *param0);
-// int (*func3)(void);
-// };
-
-const u32 MOD52_021D76C8[4] = {
+const struct MOD52_Struct MOD52_021D76C8 = {
MOD52_021D757C,
MOD52_021D7594,
MOD52_021D75E8,
0xFFFFFFFF,
};
-const u32 MOD52_021D76D8[4] = {
+const struct MOD52_Struct MOD52_021D76D8 = {
MOD52_021D7528,
MOD52_021D7540,
MOD52_021D7560,
0xFFFFFFFF,
};
-const u32 MOD52_021D76E8[4] = {
+const struct MOD52_Struct MOD52_021D76E8 = {
MOD52_021D74E0,
MOD52_021D74F8,
MOD52_021D750C,
diff --git a/include/global.h b/include/global.h
index e0e8cb22..be0e1870 100644
--- a/include/global.h
+++ b/include/global.h
@@ -14,6 +14,8 @@
#define GF_ASSERT(expr) do {if (!(expr)) ErrorHandling();} while (0)
+#define UNUSED __attribute__((unused))
+
#ifndef IN_MAIN_C
extern const u8 gGameLanguage;
extern const u8 gGameVersion;