summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorAetias <aetias@outlook.com>2025-07-06 11:30:55 +0200
committerAetias <aetias@outlook.com>2025-07-06 11:30:55 +0200
commit2031427f9a965f9be7215bda016ae8e60784d3d2 (patch)
tree27e5c63c376fb89c7aee9a060747f1f36be66743 /include
parent767b0b099fc192b20953947cc9179b5cb70b07fa (diff)
parent87ea4c687d97fc9a0e3e06fa4732087794881039 (diff)
Merge remote-tracking branch 'zeldaret/main' into game-state
Diffstat (limited to 'include')
-rw-r--r--include/DTCM/UnkStruct_027e0d38.hpp57
-rw-r--r--include/Game/Game.hpp2
-rw-r--r--include/Game/GameMode.hpp18
-rw-r--r--include/Game/GameModeAdventure.hpp94
-rw-r--r--include/Message/MsgProc.hpp8
-rw-r--r--include/Save/AdventureFlags.hpp36
-rw-r--r--include/System/SysNew.hpp2
7 files changed, 187 insertions, 30 deletions
diff --git a/include/DTCM/UnkStruct_027e0d38.hpp b/include/DTCM/UnkStruct_027e0d38.hpp
index ba565f60..f2f0ac51 100644
--- a/include/DTCM/UnkStruct_027e0d38.hpp
+++ b/include/DTCM/UnkStruct_027e0d38.hpp
@@ -1,20 +1,51 @@
#pragma once
+#include "Save/AdventureFlags.hpp"
#include "global.h"
+#include "nds/math.h"
#include "types.h"
-struct UnkStruct_027e0d38_UnkC {
- /* 00 */ unk32 mUnk_00;
-
- s32 func_ov000_020a5e9c(void);
-};
-
struct UnkStruct_027e0d38_Unk28 {
- /* 00 */ unk8 mUnk_00[0x34];
- /* 34 */ bool mUnk_34;
- /* 35 */ unk8 mUnk_35[0x27];
- /* 5c */ unk32 mUnk_5c[3];
- /* 68 */
+ /* 000 */ unk32 *mUnk_00;
+ /* 004 */ unk32 mUnk_04;
+ /* 008 */ unk32 mUnk_08;
+ /* 00C */ unk32 mUnk_0c;
+ /* 010 */ unk32 mUnk_10;
+ /* 014 */ unk32 mUnk_14;
+ /* 018 */ unk32 mUnk_18;
+ /* 01C */ UnkStruct_027e0d38_UnkC mUnk_1c;
+ /* 020 */ unk32 mUnk_20;
+ /* 024 */ unk32 mUnk_24;
+ /* 028 */ unk32 mUnk_28;
+ /* 02C */ unk8 mUnk_2c;
+ /* 02D */ unk8 mUnk_2d;
+ /* 02E */ u8 mUnk_2e;
+ /* 02F */ unk8 mUnk_2f;
+ /* 030 */ unk32 mUnk_30;
+ /* 034 */ bool mUnk_34;
+ /* 035 */ unk8 mUnk_35;
+ /* 036 */ unk16 mUnk_36;
+ /* 038 */ Vec3p mUnk_38;
+ /* 044 */ UnkStruct_027e0d38_UnkC mUnk_44;
+ /* 048 */ unk8 mUnk_48[0x50 - 0x48];
+ /* 050 */ unk8 mUnk_50;
+ /* 051 */ unk8 mUnk_51;
+ /* 052 */ unk8 mUnk_52;
+ /* 053 */ unk8 mUnk_53;
+ /* 054 */ unk8 mUnk_54;
+ /* 055 */ unk8 mUnk_55;
+ /* 056 */ u8 mUnk_56;
+ /* 057 */ unk8 mUnk_57;
+ /* 058 */ unk32 mUnk_58;
+ /* 05c */ UnkStruct_02082348_04 mUnk_5c;
+ /* 070 */ FlagsUnk2 mUnk_70;
+ /* 088 */ unk8 pad1[0x9A - 0x88];
+ /* 09a */ u8 mUnk_9a;
+ /* 09b */ u8 mUnk_9b;
+ /* 09c */ unk32 mUnk_9c;
+ /* 0a0 */ Vec3p mUnk_a0;
+ /* 0ac */ unk32 mUnk_ac;
+ /* 110 */
};
struct UnkStruct_027e0d38 {
@@ -23,7 +54,7 @@ struct UnkStruct_027e0d38 {
/* 04 */ unk32 mUnk_04;
/* 08 */ unk32 mUnk_08;
/* 0c */ UnkStruct_027e0d38_UnkC mUnk_0c;
- /* 10 */ unk32 mUnk_10;
+ /* 10 */ unk32 mUnk_10; // `UnkStruct_02082348_04`?
/* 14 */ unk32 mUnk_14;
/* 18 */ unk32 mUnk_18;
/* 1c */ unk16 mUnk_1c;
@@ -39,6 +70,8 @@ struct UnkStruct_027e0d38 {
s32 func_ov000_02078b40();
unk8 func_ov000_02078b64();
bool func_ov000_02078b88();
+ void func_ov004_02100bcc();
+ unk32 func_ov005_02100b7c(unk32 param_1);
};
extern UnkStruct_027e0d38 *data_027e0d38;
diff --git a/include/Game/Game.hpp b/include/Game/Game.hpp
index 95d49801..8bb41b95 100644
--- a/include/Game/Game.hpp
+++ b/include/Game/Game.hpp
@@ -21,7 +21,7 @@ public:
/* 0fe */ unk16 mUnk_0fe;
/* 100 */ unk8 mUnk_100;
/* 101 */ s8 mUnk_101;
- /* 102 */ unk8 mUnk_102;
+ /* 102 */ bool mUnk_102;
/* 103 */ u8 mUnk_103;
/* 104 */
diff --git a/include/Game/GameMode.hpp b/include/Game/GameMode.hpp
index 6888b023..2a80d115 100644
--- a/include/Game/GameMode.hpp
+++ b/include/Game/GameMode.hpp
@@ -5,10 +5,22 @@
#include "System/SysNew.hpp"
+typedef unk32 GameModeId;
+enum GameModeId_ {
+ GameModeId_Load = 0,
+ GameModeId_StartupScreen = 1,
+ GameModeId_Adventure = 2,
+ GameModeId_FileSelect = 3,
+ GameModeId_WFCSetup = 4,
+ GameModeId_DownloadPlay = 5,
+ GameModeId_Battle = 6,
+ GameModeId_Contact = 7
+};
+
class GameMode : public SysObject {
public:
/* 000 (vtable) */
- /* 004 */ unk32 mUnk_000;
+ /* 004 */ GameModeId mModeId;
/* 008 */
/* 00 */ virtual ~GameMode();
@@ -20,8 +32,8 @@ public:
/* 1c */
inline GameMode() {}
- inline GameMode(unk32 param1) :
- mUnk_000(param1) {}
+ inline GameMode(GameModeId modeId) :
+ mModeId(modeId) {}
void func_0202c0b8();
};
diff --git a/include/Game/GameModeAdventure.hpp b/include/Game/GameModeAdventure.hpp
index a004fb70..934a6a10 100644
--- a/include/Game/GameModeAdventure.hpp
+++ b/include/Game/GameModeAdventure.hpp
@@ -4,13 +4,103 @@
#include "types.h"
#include "Game/GameModePlay.hpp"
+#include "Render/FadeControl.hpp"
+#include "System/SysNew.hpp"
+#include "Unknown/UnkStruct_02037750.hpp"
+
+class UnkStruct_020fadf4_Base : public SysObject {
+public:
+ unk32 func_ov009_021136c4();
+ unk32 func_ov009_0211370c();
+};
+
+class UnkStruct_0211a9ac : public SysObject {
+public:
+ /* 000 */ unk8 pad[0x354];
+ /* 354 */
+
+ UnkStruct_0211a9ac();
+ ~UnkStruct_0211a9ac();
+
+ void func_ov002_020f50c0(unk32 param_1);
+ void func_ov002_020f5390(u16 *param_1);
+ void func_ov002_020f5504(u16 *param_1);
+ void func_ov002_020f56c8(u16 *param_1);
+};
+
+// ov003
+class UnkStruct_020fadf4 : public UnkStruct_020fadf4_Base {
+public:
+ /* 00 */ unk8 pad[0x4c];
+ /* 4c */
+
+ UnkStruct_020fadf4();
+ UnkStruct_020fadf4(UnkStruct_0211a9ac *param_1);
+ ~UnkStruct_020fadf4();
+
+ void func_ov009_021135d0();
+ void func_ov003_020fae64();
+};
+
+class UnkStruct_020f2978_00 {
+public:
+ /* 000 (vtable) */
+ /* 04 */ unk8 pad[0x14];
+ /* 18 */
+
+ /* 00 */ virtual void vfunc_00(); // func_ov000_020d0670
+ /* 04 */ virtual void vfunc_04(); // func_ov000_020cff1c
+ /* 08 */ virtual void vfunc_08(); // func_ov000_020d0000
+ /* 0c */ virtual void vfunc_0c(); // func_ov000_020d0048
+ /* 10 */ virtual void vfunc_10(); // func_ov000_020cff8c
+
+ UnkStruct_020f2978_00();
+ ~UnkStruct_020f2978_00();
+};
+
+// ov003
+class UnkStruct_020f2978 : public SysObject {
+public:
+ /* 00 */ UnkStruct_020f2978_00 mUnk_00[2];
+ /* 30 */ UnkStruct_02037750 mUnk_30;
+ /* 50 */ unk8 pad2[0x88 - 0x50];
+ /* 88 */
+
+ UnkStruct_020f2978();
+
+ unk32 func_ov003_020f2a2c();
+ unk32 func_ov003_020f2acc();
+};
+
+class UnkStruct_0211ac0c : public UnkStruct_020fadf4_Base {
+public:
+ /* 00 */ unk32 mUnk_00;
+ /* 04 */ FadeControl mUnk_04;
+ /* 28 */ unk8 pad[0x44 - 0x28];
+ /* 44 */
+
+ UnkStruct_0211ac0c();
+ UnkStruct_0211ac0c(UnkStruct_020f2978 *param_1);
+
+ void func_ov009_0211372c();
+ void func_ov003_020fb26c();
+ unk32 func_ov009_021136e8();
+ unk32 func_ov003_020fb148();
+ unk32 func_ov003_020fb258(u16 *param_1);
+ void func_ov009_0211ac2c();
+ void func_ov003_020faf90();
+ void func_ov003_020fb010();
+};
class GameModeAdventure : public GameModePlay {
+public:
/* 000 (base) */
- /* 008 */ unk8 mUnk_008[0x10];
+ /* 008 */ UnkStruct_0211a9ac *mUnk_008;
+ /* 00c */ UnkStruct_020fadf4 *mUnk_00c;
+ /* 010 */ UnkStruct_020f2978 *mUnk_010;
+ /* 014 */ UnkStruct_0211ac0c *mUnk_014;
/* 018 */
-public:
/* 00 */ virtual ~GameModeAdventure() override;
/* 08 */ virtual unk32 vfunc_08(unk32 param1) override;
/* 0c */ virtual void vfunc_0c(u16 *param1) override;
diff --git a/include/Message/MsgProc.hpp b/include/Message/MsgProc.hpp
index bfdbc86b..00536c57 100644
--- a/include/Message/MsgProc.hpp
+++ b/include/Message/MsgProc.hpp
@@ -120,11 +120,13 @@ extern struct TouchControl gTouchControl;
class UnkClass_027e0e28 {
public:
unk32 func_ov000_0207bc48();
+ void func_ov000_0207bc9c();
};
extern UnkClass_027e0e28 *data_027e0e28;
extern u8 data_027e0c54;
extern unk32 *data_ov009_0211f5b4;
extern "C" unk32 func_ov003_020f3f94(unk32 *);
+extern "C" void func_ov003_020f4060(unk32 **);
extern unk32 *data_02057ed4;
// see Actor.cpp
@@ -161,8 +163,12 @@ public:
void func_ov003_020f4874(void);
void func_ov003_020f4760(u8, unk32);
+ unk32 func_ov003_020f4960(void);
+ void func_ov003_020f4a5c(void);
+ void func_ov003_02f46f8(void);
+ void func_ov003_020f4678(unk32);
};
-extern UnkClass_027e1054 data_027e1054;
+extern UnkClass_027e1054 *data_027e1054;
class UnkClass_ov000_020eec9c {
public:
diff --git a/include/Save/AdventureFlags.hpp b/include/Save/AdventureFlags.hpp
index 39d2e409..33f7c578 100644
--- a/include/Save/AdventureFlags.hpp
+++ b/include/Save/AdventureFlags.hpp
@@ -57,21 +57,35 @@ enum AdventureFlag_ {
/* 0x187 */ AdventureFlag_COUNT = 391,
};
-struct FlagsUnk2 {
+struct UnkStruct_027e0d38_UnkC {
/* 00 */ unk32 mUnk_00;
- /* 04 */ unk32 mUnk_04;
- /* 08 */ unk32 mUnk_08;
- /* 0c */ unk32 mUnk_0c;
- /* 10 */ unk16 mUnk_10;
- /* 12 */ unk8 mUnk_12;
- /* 13 */ unk8 mUnk_13;
- /* 14 */ unk8 mUnk_14;
- /* 15 */ unk8 mUnk_15;
- /* 16 */ unk8 mUnk_16;
- /* 17 */ unk8 mUnk_17;
+
+ s32 func_ov000_020a5e9c(void);
+};
+
+class UnkStruct_02082348_04 {
+public:
+ /* 00 */ unk32 mUnk_00;
+ /* 00 */ unk32 mUnk_04;
+ /* 00 */ unk32 mUnk_08;
+ /* 0c */ unk16 mUnk_0c;
+ /* 0e */ u8 mUnk_0e;
+ /* 0f */ u8 mUnk_0f;
+ /* 10 */ u8 mUnk_10;
+ /* 11 */ u8 mUnk_11;
+ /* 12 */ u8 mUnk_12;
+ /* 13 */ u8 mUnk_13;
+ /* 14 */
+};
+
+struct FlagsUnk2 {
+ /* 00 */ UnkStruct_027e0d38_UnkC mUnk_00;
+ /* 04 */ UnkStruct_02082348_04 mUnk_04;
/* 18 */
~FlagsUnk2();
+ void func_ov000_02078bf0(FlagsUnk2 *param_2);
+ void func_ov004_02100ae0();
};
struct FlagsUnk {
diff --git a/include/System/SysNew.hpp b/include/System/SysNew.hpp
index 184c27fb..df660a1b 100644
--- a/include/System/SysNew.hpp
+++ b/include/System/SysNew.hpp
@@ -15,6 +15,8 @@ void SysDelete(void *ptr);
void *func_0202e99c(s32 length);
void *func_0202e9bc(s32 length);
+extern u32 *data_027e0ce0[];
+
class SysObject {
public:
static void *operator new(unsigned long length, u32 *id, u32 idLength);