Move ov000 documentation from Ghidra

This commit is contained in:
Aetias
2025-01-20 20:09:15 +01:00
parent a5fd54fe70
commit 7a2009cab9
21 changed files with 555 additions and 220 deletions
+56 -1
View File
@@ -3,4 +3,59 @@
#include "global.h"
#include "types.h"
class CutsceneHandler;
#include <nds/math.h>
#include "Render/FadeControl.hpp"
class CutsceneHandler {
public:
/* 00 */ u32 mFlags1;
/* 04 */ u32 mFlags2;
/* 08 */ bool mCutsceneActive;
/* 09 */ bool mSkipping;
/* 0a */ bool mUnk_0a;
/* 0b */ unk8 mUnk_0b;
/* 0c */ unk32 mCutsceneTimer1;
/* 10 */ unk32 mCutsceneTimer2;
/* 14 */ unk32 mCutsceneEnd;
/* 18 */ unk32 mFreeze;
/* 1c */ u32 mUnk_1c;
/* 20 */ unk8 mUnk_20;
/* 21 */ char mUnk_21;
/* 22 */ unk8 mUnk_22;
/* 23 */ unk8 mUnk_23;
/* 24 */ unk16 mUnk_24;
/* 26 */ unk8 mUnk_26[0x2];
/* 28 */ s32 mUnk_28;
/* 2c */ s32 mUnk_2c;
/* 30 */ unk32 mUnk_30;
/* 34 */ unk32 mUnk_34;
/* 38 */ unk32 mUnk_38;
/* 3c */ unk32 mUnk_3c;
/* 40 */ unk32 mUnk_40;
/* 44 */ unk32 mUnk_44;
/* 48 */ unk16 mUnk_48;
/* 4a */ unk8 mUnk_4a[0x2];
/* 4c */ Mat4x3p mUnk_4c;
/* 7c */ FadeControl *mFadeControl;
/* 80 */ s32 **mUnk_80;
/* 84 */ s32 *mUnk_84;
/* 88 */ s32 mUnk_88;
/* 8c */
CutsceneHandler();
s32 func_ov000_020980fc(unk32 param1, unk32 param2, void **param3);
bool func_ov000_02098114();
bool SkipCutscene(s32 param1);
unk32 func_ov000_020981b8(unk32 *param1);
void func_ov000_020985c0();
void func_ov000_020985c4();
void func_ov000_02098618(s32 param1, unk32 param2, void **param3);
void func_ov000_02098658();
bool func_ov000_02098694(unk32 param1);
bool func_ov000_020987c4(unk32 param1, unk16 param2, unk32 param3, unk32 param4, bool param5);
bool func_ov000_02098834();
bool func_ov000_02098860();
unk32 func_ov000_02098890(unk32 param1, s32 param2);
static unk32 func_ov000_02098920(unk32 param1);
};
+17 -3
View File
@@ -21,8 +21,22 @@ public:
/* 20 */ unk32 mFlags0[1];
/* 24 */ unk32 mFlags1[8];
/* 44 */ unk32 mFlags2[2];
/* 4c */ unk32 mFlags3[1];
/* 50 */ unk32 mUnk_50;
/* 54 */ unk32 mUnk_54;
/* 4c */ unk32 mFlags3[2];
/* 54 */ unk32 mFlags4[1];
/* 58 */
MapData(u8 *map, unk8 param2, unk8 param3, unk32 param4, unk32 param5);
~MapData();
void func_ov000_020972e4(u16 *param1, unk32 *param2, bool param3);
void func_ov000_02097354();
void SetFlag0(u32 index, bool value);
bool GetFlag0(u32 index);
void SetFlag1(u32 index, bool value);
bool GetFlag1(u32 index);
void SetFlag2(u32 index, bool value);
bool GetFlag2(u32 index);
void SetFlag3(u32 index, bool value);
bool GetFlag3(u32 index);
void SetFlag4(u32 index, bool value);
bool GetFlag4(u32 index);
};
+9
View File
@@ -7,7 +7,16 @@
#include "Physics/AABB.hpp"
class TriggerAABB : public TriggerBase {
public:
/* 00 (base) */
/* 14 */ AABB mAABB;
/* 2c */
/* 00 */ virtual ~TriggerAABB() override;
/* 14 */ virtual bool Overlaps(Vec3p *point) override;
/* 18 */ virtual bool GetBoundingBox(AABB *bbox) override;
/* 1c */
TriggerAABB(TriggerParams *params);
TriggerAABB(u8 id, u32 param2, u32 param3, u32 param4);
};
+7
View File
@@ -6,6 +6,7 @@
#include "Map/TriggerAABB.hpp"
class TriggerAABB_Unk1 : public TriggerAABB {
public:
/* 00 (base) */
/* 2c */ unk8 mUnk_2c;
/* 2d */ unk8 mUnk_2d[3];
@@ -17,4 +18,10 @@ class TriggerAABB_Unk1 : public TriggerAABB {
/* 3c */ unk32 mUnk_3c;
/* 40 */ unk32 mUnk_40;
/* 44 */
/* 00 */ virtual ~TriggerAABB_Unk1() override;
/* 08 */ virtual void vfunc_08() override;
/* 1c */
TriggerAABB_Unk1(TriggerParams *params);
};
+38 -1
View File
@@ -4,10 +4,47 @@
#include "types.h"
#include "Map/TriggerAABB.hpp"
#include "Unknown/UnkStruct_ov000_020e2f04.hpp"
class TriggerAABB_Unk2_Unk1 : public UnkStruct_ov000_020e2f04 {
public:
/* 00 (base) */
/* 10 */ unk32 mUnk_10;
/* 14 */ AABB mUnk_14;
/* 2c */
/* 00 */ ~TriggerAABB_Unk2_Unk1() override;
/* 08 */ unk32 vfunc_08() override;
/* 14 */ void vfunc_14(AABB *param1, unk32 param2, unk32 param3, unk32 param4) override;
/* 20 */ void SetBoundingBox(AABB *param1) override;
/* 2c */ void GetBoundingBox(AABB *bbox) override;
/* 30 */ void SetPosition(Vec3p *pos) override;
/* 34 */ void vfunc_34() override;
/* 38 */ void vfunc_38() override;
/* 3c */ void GetPosition(Vec3p *pos) override;
/* 40 */ q20 GetSizeXZ() override;
/* 44 */ q20 GetHeight() override;
/* 48 */ bool ContainsInXZ(Vec3p *pos) override;
/* 4c */ bool Contains(Vec3p *pos) override;
/* 50 */ bool IntersectsCube(Cube *cube) override;
/* 54 */ void vfunc_54(Cube *param1, Vec3p *param2, u32 *param3) override;
/* 5c */
TriggerAABB_Unk2_Unk1();
};
class TriggerAABB_Unk2 : public TriggerAABB {
public:
/* 00 (base) */
/* 2c */ unk32 mUnk_2c;
/* 30 */ unk8 mUnk_30[0x2c][4]; // non-documented class which inherits from base class
/* 30 */ TriggerAABB_Unk2_Unk1 mUnk_30[4];
/* e0 */
/* 00 */ virtual ~TriggerAABB_Unk2() override;
/* 08 */ virtual void vfunc_08() override;
/* 0c */ virtual unk32 vfunc_0c() override;
/* 10 */ virtual unk32 vfunc_10() override;
/* 1c */
TriggerAABB_Unk2(TriggerParams *params);
};
+12 -5
View File
@@ -3,6 +3,9 @@
#include "global.h"
#include "types.h"
#include "nds/math.h"
#include "Physics/AABB.hpp"
#include "System/SysNew.hpp"
struct TriggerParams {
@@ -21,6 +24,7 @@ struct TriggerParams {
};
class TriggerBase : public SysObject {
public:
/* 00 (vtable) */
/* 04 */ unk8 mUnk_04;
/* 05 */ u8 mId;
@@ -31,10 +35,13 @@ class TriggerBase : public SysObject {
/* 14 */
/* 00 */ virtual ~TriggerBase();
/* 08 */ void vfunc_08();
/* 0c */ unk32 vfunc_0c();
/* 10 */ unk32 vfunc_10();
/* 14 */ bool Overlaps();
/* 18 */ bool GetBoundingBox();
/* 08 */ virtual void vfunc_08();
/* 0c */ virtual unk32 vfunc_0c();
/* 10 */ virtual unk32 vfunc_10();
/* 14 */ virtual bool Overlaps(Vec3p *point);
/* 18 */ virtual bool GetBoundingBox(AABB *bbox);
/* 1c */
TriggerBase(TriggerParams *params);
TriggerBase(u8 id, u32 param2, u32 param3, u32 param4);
};
+8
View File
@@ -11,4 +11,12 @@ class TriggerSphere : public TriggerBase {
/* 14 */ Sphere mSphere;
/* 24 */ s32 mHeight;
/* 28 */
/* 00 */ virtual ~TriggerSphere() override;
/* 14 */ virtual bool Overlaps(Vec3p *point) override;
/* 18 */ virtual bool GetBoundingBox(AABB *bbox) override;
/* 1c */
TriggerSphere(TriggerParams *params);
TriggerSphere(u8 id, u32 param2, u32 param3, u32 param4);
};
+11
View File
@@ -3,6 +3,8 @@
#include "global.h"
#include "types.h"
#include <nds/math.h>
#include "System/SysNew.hpp"
class ItemModel;
@@ -37,4 +39,13 @@ public:
/* 38 */ virtual void vfunc_38();
/* 3c */ virtual void vfunc_3c();
/* 40 */
ModelRender();
void *func_ov000_020a9624(s32 param1);
void func_ov000_020a98e8(unk32 param1);
void func_ov000_020a990c(unk32 param1);
void func_ov000_020a9938(unk32 param1);
void func_ov000_020a9960(unk32 param1);
void func_ov000_020a9998(unk32 param1, unk32 param2);
void func_ov000_020a99c0();
};
+6 -1
View File
@@ -51,6 +51,8 @@ struct FlagsUnk2 {
/* 16 */ unk8 mUnk_16;
/* 17 */ unk8 mUnk_17;
/* 18 */
~FlagsUnk2();
};
struct FlagsUnk {
@@ -69,6 +71,10 @@ struct FlagsUnk {
/* 4a */ unk8 mUnk_4a;
/* 4b */ unk8 mUnk_4b;
/* 4c */
~FlagsUnk();
void func_ov000_020980f8();
};
class AdventureFlags : public SysObject {
@@ -125,7 +131,6 @@ public:
bool func_ov00_0209809c();
bool func_ov00_020980ac();
void func_ov00_020980bc(s32 param1);
void func_ov00_020980d0();
};
extern AdventureFlags *gAdventureFlags;
@@ -0,0 +1,27 @@
#pragma once
#include "global.h"
#include "types.h"
#include <nds/math.h>
class UnkStruct_ov000_020b1528 {
public:
/* 00 (vtable) */
/* 04 */ unk16 mUnk_04;
/* 06 */ unk8 mUnk_06[0x2];
/* 08 */ Vec3p mUnk_08;
/* 14 */ u32 mUnk_14;
/* 18 */ unk32 mUnk_18;
/* 1c */
/* 00 */ virtual ~UnkStruct_ov000_020b1528();
/* 08 */ virtual bool vfunc_08();
/* 0c */ virtual bool vfunc_0c();
/* 10 */ virtual bool vfunc_10(s32 *param1);
/* 14 */ virtual bool vfunc_14(u16 *index, unk32 param2);
/* 18 */ virtual void Clear();
/* 1c */
UnkStruct_ov000_020b1528();
};
@@ -0,0 +1,45 @@
#pragma once
#include "global.h"
#include "types.h"
class UnkStruct_ov000_020e2f04 {
public:
/* 00 (vtable) */
/* 04 */ unk8 mUnk_04;
/* 05 */ unk8 mUnk_05;
/* 06 */ unk8 mUnk_06[0x2];
/* 08 */ unk32 mUnk_08;
/* 0c */ unk32 mUnk_0c;
/* 10 */
/* 00 */ virtual ~UnkStruct_ov000_020e2f04();
/* 08 */ virtual unk32 vfunc_08() = 0;
/* 0c */ virtual void vfunc_0c();
/* 10 */ virtual void vfunc_10();
/* 14 */ virtual void vfunc_14(AABB *param1, unk32 param2, unk32 param3, unk32 param4);
/* 18 */ virtual void vfunc_18();
/* 1c */ virtual void vfunc_1c();
/* 20 */ virtual void SetBoundingBox(AABB *param1);
/* 24 */ virtual void vfunc_24();
/* 28 */ virtual void vfunc_28();
/* 2c */ virtual void GetBoundingBox(AABB *bbox);
/* 30 */ virtual void SetPosition(Vec3p *pos) = 0;
/* 34 */ virtual void vfunc_34() = 0;
/* 38 */ virtual void vfunc_38() = 0;
/* 3c */ virtual void GetPosition(Vec3p *pos) = 0;
/* 40 */ virtual q20 GetSizeXZ() = 0;
/* 44 */ virtual q20 GetHeight() = 0;
/* 48 */ virtual bool ContainsInXZ(Vec3p *pos) = 0;
/* 4c */ virtual bool Contains(Vec3p *pos) = 0;
/* 50 */ virtual bool IntersectsCube(Cube *cube) = 0;
/* 54 */ virtual void vfunc_54(Cube *param1, Vec3p *param2, u32 *param3) = 0;
/* 58 */ virtual void vfunc_58(unk32 param1, unk32 param2, s32 param3);
/* 5c */
inline UnkStruct_ov000_020e2f04() :
mUnk_04(1),
mUnk_05(0),
mUnk_08(0),
mUnk_0c(0) {}
};