started GameModeAdventure (97%)

This commit is contained in:
Yanis002
2025-07-05 16:36:04 +02:00
parent 1e2adf0ebd
commit f81e8e85d0
17 changed files with 468 additions and 66 deletions
+65 -6
View File
@@ -1,6 +1,7 @@
#pragma once
#include "global.h"
#include "nds/math.h"
#include "types.h"
struct UnkStruct_027e0d38_UnkC {
@@ -9,12 +10,68 @@ struct UnkStruct_027e0d38_UnkC {
s32 func_ov000_020a5e9c(void);
};
class UnkStruct_02082348_04 {
public:
/* 00 */ Vec3p mPos;
/* 0c */ unk16 mAngle;
/* 0e */ u8 mId;
/* 0f */ u8 mUnk_0f;
/* 10 */ u8 mUnk_10;
/* 11 */ u8 mUnk_11;
/* 14 */
};
// This might be FlagsUnk2
struct UnkStruct_02082348 {
/* 00 */ UnkStruct_027e0d38_UnkC mUnk_00;
/* 04 */ UnkStruct_02082348_04 mUnk_04;
/* 18 */
void func_ov000_02078bf0(UnkStruct_02082348 *param_2);
void func_ov004_02100ae0();
};
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 */ UnkStruct_02082348 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 +80,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 +96,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;
+1 -1
View File
@@ -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 */
+2 -2
View File
@@ -8,7 +8,7 @@
class GameMode : public SysObject {
public:
/* 000 (vtable) */
/* 004 */ unk32 mUnk_000;
/* 004 */ unk32 mUnk_004;
/* 008 */
/* 00 */ virtual ~GameMode();
@@ -21,7 +21,7 @@ public:
inline GameMode() {}
inline GameMode(unk32 param1) :
mUnk_000(param1) {}
mUnk_004(param1) {}
void func_0202c0b8();
};
+85 -2
View File
@@ -4,13 +4,96 @@
#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:
/* 00 */ unk8 pad[0x18];
/* 18 */
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;
+7 -1
View File
@@ -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:
+2
View File
@@ -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);