diff options
| author | Aetias <144526980+AetiasHax@users.noreply.github.com> | 2025-07-06 11:09:25 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-07-06 11:09:25 +0200 |
| commit | 87ea4c687d97fc9a0e3e06fa4732087794881039 (patch) | |
| tree | bf8f539742eead3ca8d660361dd790375a406a54 /include | |
| parent | 1e2adf0ebd714f9ed2c1e814276278755278dd12 (diff) | |
| parent | 476d7d305fd1f39922761ab78498783af809e234 (diff) | |
Merge pull request #109 from Yanis002/gamemodeadventure
Started `09_Adventure/Game/GameModeAdventure.cpp` (97%)
Diffstat (limited to 'include')
| -rw-r--r-- | include/DTCM/UnkStruct_027e0d38.hpp | 57 | ||||
| -rw-r--r-- | include/Game/Game.hpp | 2 | ||||
| -rw-r--r-- | include/Game/GameMode.hpp | 18 | ||||
| -rw-r--r-- | include/Game/GameModeAdventure.hpp | 94 | ||||
| -rw-r--r-- | include/Message/MsgProc.hpp | 8 | ||||
| -rw-r--r-- | include/Save/AdventureFlags.hpp | 36 | ||||
| -rw-r--r-- | include/System/SysNew.hpp | 2 |
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);
|
