summaryrefslogtreecommitdiff
path: root/arm9/modules/52/src
diff options
context:
space:
mode:
Diffstat (limited to 'arm9/modules/52/src')
-rw-r--r--arm9/modules/52/src/module_52.c677
1 files changed, 169 insertions, 508 deletions
diff --git a/arm9/modules/52/src/module_52.c b/arm9/modules/52/src/module_52.c
index 1f74c77f..41f2706a 100644
--- a/arm9/modules/52/src/module_52.c
+++ b/arm9/modules/52/src/module_52.c
@@ -1,28 +1,173 @@
#include "module_52.h"
#include "heap.h"
#include "unk_0205FA2C.h"
+#include "unk_02015E30.h"
extern struct Unk21DBE18 UNK_020FD144;
extern struct Unk21DBE18 UNK_020F2B7C;
extern struct Unk21DBE18 UNK_020F2B8C;
-extern void FUN_02015E3C(struct IGT *igt);
extern int FUN_02053678(u32 random, u32 gender, u32 param2);
-extern void FUN_020250C4(void *sav_ptr, u32 heap_id, const u8 param2[], u32 param3);
+extern void FUN_020250C4(void *sav_ptr, u32 heap_id, const u16 param2[], u32 param3);
extern void FUN_020377E0(struct SaveBlock2 *sav2);
extern void FUN_0205ECD4(struct ScriptState *script_state);
-THUMB_FUNC int MOD52_021D74E0()
+const struct Unk21DBE18 MOD52_021D76E8 = {
+ MOD52_021D74E0,
+ MOD52_021D74F8,
+ MOD52_021D750C,
+ 0xFFFFFFFF,
+};
+
+const struct Unk21DBE18 MOD52_021D76D8 = {
+ MOD52_021D7528,
+ MOD52_021D7540,
+ MOD52_021D7560,
+ 0xFFFFFFFF,
+};
+
+const struct Unk21DBE18 MOD52_021D76C8 = {
+ MOD52_021D757C,
+ MOD52_021D7594,
+ MOD52_021D75E8,
+ 0xFFFFFFFF,
+};
+
+const u16 MOD52_021D76F8[] = {
+ ITEM_ORAN_BERRY, 1,
+ ITEM_CHERI_BERRY, 1,
+ ITEM_CHESTO_BERRY, 1,
+ ITEM_PECHA_BERRY, 1,
+ ITEM_ORAN_BERRY, 1,
+ ITEM_PECHA_BERRY, 1,
+ ITEM_RAZZ_BERRY, 2,
+ ITEM_BLUK_BERRY, 2,
+ ITEM_CHERI_BERRY, 1,
+ ITEM_ORAN_BERRY, 2,
+ ITEM_SITRUS_BERRY, 1,
+ ITEM_WEPEAR_BERRY, 2,
+ ITEM_WEPEAR_BERRY, 2,
+ ITEM_KELPSY_BERRY, 1,
+ ITEM_CHERI_BERRY, 1,
+ ITEM_PECHA_BERRY, 1,
+ ITEM_ORAN_BERRY, 1,
+ ITEM_ORAN_BERRY, 1,
+ ITEM_RAWST_BERRY, 1,
+ ITEM_RAWST_BERRY, 1,
+ ITEM_RAZZ_BERRY, 1,
+ ITEM_RAZZ_BERRY, 1,
+ ITEM_CHERI_BERRY, 1,
+ ITEM_ORAN_BERRY, 1,
+ ITEM_ORAN_BERRY, 1,
+ ITEM_BLUK_BERRY, 1,
+ ITEM_NANAB_BERRY, 2,
+ ITEM_RAZZ_BERRY, 2,
+ ITEM_BLUK_BERRY, 2,
+ ITEM_PINAP_BERRY, 2,
+ ITEM_LEPPA_BERRY, 1,
+ ITEM_CHESTO_BERRY, 1,
+ ITEM_RAZZ_BERRY, 1,
+ ITEM_RAZZ_BERRY, 1,
+ ITEM_PERSIM_BERRY, 1,
+ ITEM_NANAB_BERRY, 1,
+ ITEM_NANAB_BERRY, 1,
+ ITEM_FIGY_BERRY, 1,
+ ITEM_ASPEAR_BERRY, 1,
+ ITEM_ASPEAR_BERRY, 1,
+ ITEM_RAZZ_BERRY, 1,
+ ITEM_PINAP_BERRY, 1,
+ ITEM_SITRUS_BERRY, 1,
+ ITEM_CHESTO_BERRY, 1,
+ ITEM_WIKI_BERRY, 1,
+ ITEM_AGUAV_BERRY, 1,
+ ITEM_PECHA_BERRY, 1,
+ ITEM_ASPEAR_BERRY, 1,
+ ITEM_IAPAPA_BERRY, 1,
+ ITEM_GREPA_BERRY, 1,
+ ITEM_SITRUS_BERRY, 1,
+ ITEM_ASPEAR_BERRY, 1,
+ ITEM_TAMATO_BERRY, 1,
+ ITEM_LUM_BERRY, 1,
+ ITEM_PECHA_BERRY, 1,
+ ITEM_PINAP_BERRY, 1,
+ ITEM_PINAP_BERRY, 1,
+ ITEM_PINAP_BERRY, 1,
+ ITEM_PERSIM_BERRY, 1,
+ ITEM_PERSIM_BERRY, 1,
+ ITEM_NANAB_BERRY, 1,
+ ITEM_NANAB_BERRY, 1,
+ ITEM_AGUAV_BERRY, 1,
+ ITEM_IAPAPA_BERRY, 1,
+ ITEM_RAWST_BERRY, 1,
+ ITEM_RAWST_BERRY, 1,
+ ITEM_CHERI_BERRY, 1,
+ ITEM_SITRUS_BERRY, 1,
+ ITEM_CHESTO_BERRY, 1,
+ ITEM_POMEG_BERRY, 1,
+ ITEM_PECHA_BERRY, 2,
+ ITEM_BLUK_BERRY, 2,
+ ITEM_WIKI_BERRY, 1,
+ ITEM_MAGO_BERRY, 1,
+ ITEM_RAWST_BERRY, 1,
+ ITEM_PERSIM_BERRY, 1,
+ ITEM_FIGY_BERRY, 1,
+ ITEM_PINAP_BERRY, 2,
+ ITEM_LEPPA_BERRY, 1,
+ ITEM_PECHA_BERRY, 1,
+ ITEM_MAGO_BERRY, 1,
+ ITEM_HONDEW_BERRY, 1,
+ ITEM_WIKI_BERRY, 2,
+ ITEM_MAGO_BERRY, 2,
+ ITEM_AGUAV_BERRY, 2,
+ ITEM_QUALOT_BERRY, 1,
+ ITEM_SITRUS_BERRY, 2,
+ ITEM_BLUK_BERRY, 3,
+ ITEM_NANAB_BERRY, 3,
+ ITEM_WEPEAR_BERRY, 3,
+ ITEM_POMEG_BERRY, 1,
+ ITEM_POMEG_BERRY, 1,
+ ITEM_HONDEW_BERRY, 2,
+ ITEM_HONDEW_BERRY, 2,
+ ITEM_KELPSY_BERRY, 1,
+ ITEM_KELPSY_BERRY, 1,
+ ITEM_TAMATO_BERRY, 1,
+ ITEM_TAMATO_BERRY, 1,
+ ITEM_QUALOT_BERRY, 1,
+ ITEM_QUALOT_BERRY, 1,
+ ITEM_POMEG_BERRY, 1,
+ ITEM_POMEG_BERRY, 1,
+ ITEM_HONDEW_BERRY, 1,
+ ITEM_HONDEW_BERRY, 1,
+ ITEM_TAMATO_BERRY, 1,
+ ITEM_TAMATO_BERRY, 1,
+ ITEM_GREPA_BERRY, 1,
+ ITEM_GREPA_BERRY, 1,
+ ITEM_QUALOT_BERRY, 1,
+ ITEM_QUALOT_BERRY, 1,
+ ITEM_LUM_BERRY, 1,
+ ITEM_LEPPA_BERRY, 1,
+ ITEM_QUALOT_BERRY, 2,
+ ITEM_GREPA_BERRY, 2,
+ ITEM_KELPSY_BERRY, 2,
+ ITEM_KELPSY_BERRY, 2,
+ ITEM_GREPA_BERRY, 1,
+ ITEM_GREPA_BERRY, 1,
+};
+
+THUMB_FUNC BOOL MOD52_021D74E0(struct UnkStruct_02006234 *arg1, u32 *arg2)
{
+#pragma unused(arg1)
+#pragma unused(arg2)
FUN_0201681C(3, 0x4d, 2 << 16);
InitializeMainRNG();
return 1;
}
-THUMB_FUNC int MOD52_021D74F8(struct UnkStruct_02006234 *param0)
+THUMB_FUNC BOOL MOD52_021D74F8(struct UnkStruct_02006234 *param0, u32 *unused)
{
+#pragma unused(unused)
struct SaveBlock2 *sav2 = (struct SaveBlock2 *)OverlayManager_GetField18(param0)[2]; // weird
MOD52_021D769C(0x4d, sav2);
@@ -30,24 +175,29 @@ THUMB_FUNC int MOD52_021D74F8(struct UnkStruct_02006234 *param0)
return 1;
}
-THUMB_FUNC int MOD52_021D750C()
+THUMB_FUNC BOOL MOD52_021D750C(struct UnkStruct_02006234 *arg1, u32 *arg2)
{
+#pragma unused(arg1)
+#pragma unused(arg2)
FUN_020168D0(0x4d);
RegisterMainOverlay(0XFFFFFFFF, &UNK_020FD144);
return 1;
}
-THUMB_FUNC int MOD52_021D7528()
+THUMB_FUNC BOOL MOD52_021D7528(struct UnkStruct_02006234 *arg1, u32 *arg2)
{
+#pragma unused(arg1)
+#pragma unused(arg2)
FUN_0201681C(3, 0x4d, 2 << 16);
InitializeMainRNG();
return 1;
}
-THUMB_FUNC int MOD52_021D7540(struct UnkStruct_02006234 *param0)
+THUMB_FUNC BOOL MOD52_021D7540(struct UnkStruct_02006234 *param0, u32 *unused)
{
+#pragma unused(unused)
struct SaveBlock2 *sav2 = (struct SaveBlock2 *)OverlayManager_GetField18(param0)[2]; // weird
MOD52_021D7604(0x4d, sav2, 1);
@@ -57,24 +207,29 @@ THUMB_FUNC int MOD52_021D7540(struct UnkStruct_02006234 *param0)
return 1;
}
-THUMB_FUNC int MOD52_021D7560()
+THUMB_FUNC BOOL MOD52_021D7560(struct UnkStruct_02006234 *arg1, u32 *arg2)
{
+#pragma unused(arg1)
+#pragma unused(arg2)
FUN_020168D0(0x4d);
RegisterMainOverlay(0xFFFFFFFF, &UNK_020F2B7C);
return 1;
}
-THUMB_FUNC int MOD52_021D757C()
+THUMB_FUNC BOOL MOD52_021D757C(struct UnkStruct_02006234 *arg1, u32 *arg2)
{
+#pragma unused(arg1)
+#pragma unused(arg2)
FUN_0201681C(3, 0x4d, 2 << 16);
InitializeMainRNG();
return 1;
}
-THUMB_FUNC int MOD52_021D7594(struct UnkStruct_02006234 *param0)
+THUMB_FUNC BOOL MOD52_021D7594(struct UnkStruct_02006234 *param0, u32 *unused)
{
+#pragma unused(unused)
struct SaveBlock2 *sav2 = (struct SaveBlock2 *)OverlayManager_GetField18(param0)[2]; // weird
struct SavSysInfo *sav2_info = Sav2_SysInfo_get(sav2);
@@ -93,8 +248,10 @@ THUMB_FUNC int MOD52_021D7594(struct UnkStruct_02006234 *param0)
return 1;
}
-THUMB_FUNC int MOD52_021D75E8()
+THUMB_FUNC BOOL MOD52_021D75E8(struct UnkStruct_02006234 *arg1, u32 *arg2)
{
+#pragma unused(arg1)
+#pragma unused(arg2)
FUN_020168D0(0x4d);
RegisterMainOverlay(0XFFFFFFFF, &UNK_020F2B8C);
@@ -124,7 +281,7 @@ THUMB_FUNC void MOD52_021D7604(u32 heap_id, struct SaveBlock2 *sav2, BOOL set_tr
PlayerProfile_SetAvatar(player_data, (u8)avatar);
- FUN_020250C4(FUN_02024ECC(sav2), heap_id, MOD52_021D76F8, 0x76);
+ FUN_020250C4(FUN_02024ECC(sav2), heap_id, MOD52_021D76F8, NELEMS(MOD52_021D76F8) / 2);
}
THUMB_FUNC void MOD52_021D7688(u32 unused, struct SaveBlock2 *sav2)
@@ -149,499 +306,3 @@ THUMB_FUNC void MOD52_021D769C(u32 unused, struct SaveBlock2 *sav2)
PlayerProfile_SetMoney(player_data, 3000);
FUN_0205ECD4(SavArray_Flags_get(sav2));
}
-
-const struct MOD52_Struct MOD52_021D76C8 = {
- MOD52_021D757C,
- MOD52_021D7594,
- MOD52_021D75E8,
- 0xFFFFFFFF,
-};
-
-const struct MOD52_Struct MOD52_021D76D8 = {
- MOD52_021D7528,
- MOD52_021D7540,
- MOD52_021D7560,
- 0xFFFFFFFF,
-};
-
-const struct MOD52_Struct MOD52_021D76E8 = {
- MOD52_021D74E0,
- MOD52_021D74F8,
- MOD52_021D750C,
- 0xFFFFFFFF,
-};
-
-const u8 MOD52_021D76F8[] = {
- 0x9B,
- 0x00,
- 0x01,
- 0x00,
- 0x95,
- 0x00,
- 0x01,
- 0x00,
- 0x96,
- 0x00,
- 0x01,
- 0x00,
- 0x97,
- 0x00,
- 0x01,
- 0x00,
- 0x9B,
- 0x00,
- 0x01,
- 0x00,
- 0x97,
- 0x00,
- 0x01,
- 0x00,
- 0xA4,
- 0x00,
- 0x02,
- 0x00,
- 0xA5,
- 0x00,
- 0x02,
- 0x00,
- 0x95,
- 0x00,
- 0x01,
- 0x00,
- 0x9B,
- 0x00,
- 0x02,
- 0x00,
- 0x9E,
- 0x00,
- 0x01,
- 0x00,
- 0xA7,
- 0x00,
- 0x02,
- 0x00,
- 0xA7,
- 0x00,
- 0x02,
- 0x00,
- 0xAA,
- 0x00,
- 0x01,
- 0x00,
- 0x95,
- 0x00,
- 0x01,
- 0x00,
- 0x97,
- 0x00,
- 0x01,
- 0x00,
- 0x9B,
- 0x00,
- 0x01,
- 0x00,
- 0x9B,
- 0x00,
- 0x01,
- 0x00,
- 0x98,
- 0x00,
- 0x01,
- 0x00,
- 0x98,
- 0x00,
- 0x01,
- 0x00,
- 0xA4,
- 0x00,
- 0x01,
- 0x00,
- 0xA4,
- 0x00,
- 0x01,
- 0x00,
- 0x95,
- 0x00,
- 0x01,
- 0x00,
- 0x9B,
- 0x00,
- 0x01,
- 0x00,
- 0x9B,
- 0x00,
- 0x01,
- 0x00,
- 0xA5,
- 0x00,
- 0x01,
- 0x00,
- 0xA6,
- 0x00,
- 0x02,
- 0x00,
- 0xA4,
- 0x00,
- 0x02,
- 0x00,
- 0xA5,
- 0x00,
- 0x02,
- 0x00,
- 0xA8,
- 0x00,
- 0x02,
- 0x00,
- 0x9A,
- 0x00,
- 0x01,
- 0x00,
- 0x96,
- 0x00,
- 0x01,
- 0x00,
- 0xA4,
- 0x00,
- 0x01,
- 0x00,
- 0xA4,
- 0x00,
- 0x01,
- 0x00,
- 0x9C,
- 0x00,
- 0x01,
- 0x00,
- 0xA6,
- 0x00,
- 0x01,
- 0x00,
- 0xA6,
- 0x00,
- 0x01,
- 0x00,
- 0x9F,
- 0x00,
- 0x01,
- 0x00,
- 0x99,
- 0x00,
- 0x01,
- 0x00,
- 0x99,
- 0x00,
- 0x01,
- 0x00,
- 0xA4,
- 0x00,
- 0x01,
- 0x00,
- 0xA8,
- 0x00,
- 0x01,
- 0x00,
- 0x9E,
- 0x00,
- 0x01,
- 0x00,
- 0x96,
- 0x00,
- 0x01,
- 0x00,
- 0xA0,
- 0x00,
- 0x01,
- 0x00,
- 0xA2,
- 0x00,
- 0x01,
- 0x00,
- 0x97,
- 0x00,
- 0x01,
- 0x00,
- 0x99,
- 0x00,
- 0x01,
- 0x00,
- 0xA3,
- 0x00,
- 0x01,
- 0x00,
- 0xAD,
- 0x00,
- 0x01,
- 0x00,
- 0x9E,
- 0x00,
- 0x01,
- 0x00,
- 0x99,
- 0x00,
- 0x01,
- 0x00,
- 0xAE,
- 0x00,
- 0x01,
- 0x00,
- 0x9D,
- 0x00,
- 0x01,
- 0x00,
- 0x97,
- 0x00,
- 0x01,
- 0x00,
- 0xA8,
- 0x00,
- 0x01,
- 0x00,
- 0xA8,
- 0x00,
- 0x01,
- 0x00,
- 0xA8,
- 0x00,
- 0x01,
- 0x00,
- 0x9C,
- 0x00,
- 0x01,
- 0x00,
- 0x9C,
- 0x00,
- 0x01,
- 0x00,
- 0xA6,
- 0x00,
- 0x01,
- 0x00,
- 0xA6,
- 0x00,
- 0x01,
- 0x00,
- 0xA2,
- 0x00,
- 0x01,
- 0x00,
- 0xA3,
- 0x00,
- 0x01,
- 0x00,
- 0x98,
- 0x00,
- 0x01,
- 0x00,
- 0x98,
- 0x00,
- 0x01,
- 0x00,
- 0x95,
- 0x00,
- 0x01,
- 0x00,
- 0x9E,
- 0x00,
- 0x01,
- 0x00,
- 0x96,
- 0x00,
- 0x01,
- 0x00,
- 0xA9,
- 0x00,
- 0x01,
- 0x00,
- 0x97,
- 0x00,
- 0x02,
- 0x00,
- 0xA5,
- 0x00,
- 0x02,
- 0x00,
- 0xA0,
- 0x00,
- 0x01,
- 0x00,
- 0xA1,
- 0x00,
- 0x01,
- 0x00,
- 0x98,
- 0x00,
- 0x01,
- 0x00,
- 0x9C,
- 0x00,
- 0x01,
- 0x00,
- 0x9F,
- 0x00,
- 0x01,
- 0x00,
- 0xA8,
- 0x00,
- 0x02,
- 0x00,
- 0x9A,
- 0x00,
- 0x01,
- 0x00,
- 0x97,
- 0x00,
- 0x01,
- 0x00,
- 0xA1,
- 0x00,
- 0x01,
- 0x00,
- 0xAC,
- 0x00,
- 0x01,
- 0x00,
- 0xA0,
- 0x00,
- 0x02,
- 0x00,
- 0xA1,
- 0x00,
- 0x02,
- 0x00,
- 0xA2,
- 0x00,
- 0x02,
- 0x00,
- 0xAB,
- 0x00,
- 0x01,
- 0x00,
- 0x9E,
- 0x00,
- 0x02,
- 0x00,
- 0xA5,
- 0x00,
- 0x03,
- 0x00,
- 0xA6,
- 0x00,
- 0x03,
- 0x00,
- 0xA7,
- 0x00,
- 0x03,
- 0x00,
- 0xA9,
- 0x00,
- 0x01,
- 0x00,
- 0xA9,
- 0x00,
- 0x01,
- 0x00,
- 0xAC,
- 0x00,
- 0x02,
- 0x00,
- 0xAC,
- 0x00,
- 0x02,
- 0x00,
- 0xAA,
- 0x00,
- 0x01,
- 0x00,
- 0xAA,
- 0x00,
- 0x01,
- 0x00,
- 0xAE,
- 0x00,
- 0x01,
- 0x00,
- 0xAE,
- 0x00,
- 0x01,
- 0x00,
- 0xAB,
- 0x00,
- 0x01,
- 0x00,
- 0xAB,
- 0x00,
- 0x01,
- 0x00,
- 0xA9,
- 0x00,
- 0x01,
- 0x00,
- 0xA9,
- 0x00,
- 0x01,
- 0x00,
- 0xAC,
- 0x00,
- 0x01,
- 0x00,
- 0xAC,
- 0x00,
- 0x01,
- 0x00,
- 0xAE,
- 0x00,
- 0x01,
- 0x00,
- 0xAE,
- 0x00,
- 0x01,
- 0x00,
- 0xAD,
- 0x00,
- 0x01,
- 0x00,
- 0xAD,
- 0x00,
- 0x01,
- 0x00,
- 0xAB,
- 0x00,
- 0x01,
- 0x00,
- 0xAB,
- 0x00,
- 0x01,
- 0x00,
- 0x9D,
- 0x00,
- 0x01,
- 0x00,
- 0x9A,
- 0x00,
- 0x01,
- 0x00,
- 0xAB,
- 0x00,
- 0x02,
- 0x00,
- 0xAD,
- 0x00,
- 0x02,
- 0x00,
- 0xAA,
- 0x00,
- 0x02,
- 0x00,
- 0xAA,
- 0x00,
- 0x02,
- 0x00,
- 0xAD,
- 0x00,
- 0x01,
- 0x00,
- 0xAD,
- 0x00,
- 0x01,
- 0x00,
-}; \ No newline at end of file