Decompile Door Map Objects 1 (DRDS, DRCK, DRKY, DRSW, DRTC) (#56)

* random docs

* "match" ctor

* match ctor and link miniblocks

* DRDS 98%

* jp differences

* improve MapObjectUnkDRDS::vfunc_04

* MapObjectDoorBase 78%

* fix regressions

* MapObjectDoorBase 98%

* MapObjectUnkDRKY 98%

* MapObjectUnkDRSW 100%

* fix build issues

* MapObjectUnkDRTC 100%

* DRCK delinks

* MapObjectUnkDRCK 98%
This commit is contained in:
Yanis
2026-04-23 18:42:59 +02:00
committed by GitHub
parent 4a07ec0baa
commit c3c34ebe5a
68 changed files with 3685 additions and 986 deletions
+2 -2
View File
@@ -41,8 +41,8 @@ public:
class Actor_5c_temp : public Actor_5c_Base {
public:
/* 00 (base) */
/* 10 */ unk16 mUnk_10;
/* 14 */ STRUCT_PAD(0x14, 0x28);
/* 10 */ unk16 mUnk_10[3];
/* 16 */ STRUCT_PAD(0x16, 0x28);
/* 28 */ unk32 mUnk_28;
Actor_5c_temp() {};
+5 -1
View File
@@ -6,6 +6,8 @@
#include "files.h"
#include "types.h"
class UnkStruct_SceneChange1;
struct UnkStruct_func_ov001_020bb018_param2 {
/* 00 */ STRUCT_PAD(0x00, 0x08);
/* 08 */ u16 mUnk_08;
@@ -45,6 +47,8 @@ public:
Actor **func_01fff350(void *param1, Actor **ppActorTable);
void func_ov000_02096e44(int index);
unk32 func_ov000_0209704c();
unk32 func_ov000_020970c8(u16 param1, unk32 *param2);
int ClearInstance();
void func_ov001_020bafdc();
@@ -52,7 +56,7 @@ public:
void func_ov001_020bb488();
void func_ov001_020bb548();
void func_ov001_020bb630();
void func_ov001_020bb6b0(s32 *param1);
void func_ov001_020bb6b0(UnkStruct_SceneChange1 *param1);
void func_ov001_020bb7b0(ZeldaObjectList *pObjList);
void func_ov001_020bb7f0();
+2 -17
View File
@@ -2,30 +2,15 @@
#include "Actor/Actor.hpp"
#include "Actor/ActorProfile.hpp"
#include "Unknown/Common.hpp"
#include "global.h"
#include "types.h"
class ActorUnkEFIK_98 {
public:
/* 00 */ unk32 mUnk_00;
ActorUnkEFIK_98() {
this->mUnk_00 = 0;
}
~ActorUnkEFIK_98() {
this->func_ov000_020a0304();
}
void func_ov000_020a0304(void);
void func_ov000_020a0334();
};
class ActorUnkEFIK : public Actor {
public:
/* 00 (base) */
/* 94 */ unk32 mUnk_94;
/* 98 */ ActorUnkEFIK_98 mUnk_98;
/* 98 */ UnkSystem7 mUnk_98;
/* 9C */ unk32 mUnk_9C;
/* A0 */ unk32 mUnk_A0;
+2 -2
View File
@@ -136,8 +136,8 @@ public:
void func_ov000_020a8ae0(q20 param1);
ActorUnk_ov000_020a8bb0(UnkSystem4 *param1, unk32 param2);
unk32 func_ov000_020a8db0();
unk32 func_ov000_020a8dd0();
bool func_ov000_020a8db0();
bool func_ov000_020a8dd0();
void func_ov000_020a8df0(ActorRef param1, unk32 param2);
void func_ov000_020a8e9c(Vec3p *param1);
void func_ov000_020a8ff4();
+31 -15
View File
@@ -51,7 +51,7 @@ enum MapObjFlag_ {
class MapObject_10_Base {
public:
/* 00 (vtable) */
/* 04 */ unk8 mUnk_04;
/* 04 */ u8 mUnk_04;
/* 05 */ unk8 mUnk_05;
/* 06 */ unk8 mUnk_06;
/* 07 */ unk8 mUnk_07;
@@ -75,10 +75,11 @@ public:
class MapObject_10 : public MapObject_10_Base {
public:
/* 00 (vtable) */
/* 0C */
/* 0C */ Vec3p mUnk_0C;
/* 18 */ Vec3p mUnk_18;
/* 24 */
MapObject_10() {}
~MapObject_10() {}
// data_ov031_02113f18
/* 00 */ virtual void vfunc_00();
@@ -100,7 +101,7 @@ public:
/* 0E */ unk16 mUnk_0E;
/* 10 */ unk32 mUnk_10;
/* 14 */ s16 mUnk_14;
/* 16 */ unk8 mUnk_16;
/* 16 */ bool mUnk_16;
/* 16 */ unk8 mUnk_17;
/* 18 */
@@ -117,36 +118,51 @@ public:
/* 00 (vtable) */
/* 04 */ Vec3p mPos;
/* 10 */ MapObject_10 *mUnk_10;
/* 14 */ unk16 mUnk_14;
/* 16 */ unk16 mUnk_16;
/* 18 */ unk8 mUnk_18[2]; // bools? when set Link walks to the map object when touched
/* 14 */ s16 mUnk_14;
/* 16 */ s16 mUnk_16;
/* 18 */ unk8 mUnk_18[2]; // related to Link walking to the map object when touched
/* 1A */ unk8 mUnk_1A;
/* 1B */ unk8 mUnk_1B;
/* 1C */ MapObjFlags mFlags[1];
/* 1E */ unk16 mUnk_1E;
/* 20 */ MapObject_20 mUnk_20;
/* 38 */ unk8 mUnk_38;
/* 38 */ unk8 mUnk_39;
/* 39 */ unk8 mUnk_39;
/* 3A */ Vec2b mUnk_3A;
/* 3C */ MapObjectProfile *mpProfile;
/* 40 */
// data_ov000_020b3590
/* 00 */ virtual bool vfunc_00();
/* 04 */ virtual bool vfunc_04();
/* 08 */ virtual unk16 vfunc_08();
/* 0C */ virtual unk8 vfunc_0C();
/* 04 */ virtual void vfunc_04();
/* 08 */ virtual void vfunc_08();
/* 0C */ virtual void vfunc_0C();
/* 10 */ virtual void vfunc_10();
/* 14 */ virtual void vfunc_14();
/* 18 */ virtual void vfunc_18();
/* 18 */ virtual void vfunc_18(s8 *param1, s8 param2);
/* 1C */ virtual bool vfunc_1C();
/* 20 */ virtual void vfunc_20();
/* 24 */ virtual void vfunc_24();
/* 28 */ virtual bool vfunc_28();
/* 28 */ virtual unk32 vfunc_28();
/* 2C */ virtual bool vfunc_2C(Vec3p *param1);
/* 30 */ virtual ~MapObject();
/* 38 */
u16 GetDirection() {
return (u16) (this->mUnk_14 + DEG_TO_ANG(45)) / DEG_TO_ANG(90);
}
bool IsOrientedVertically() {
bool isVertical = true;
u16 direction = GetDirection();
if (direction != 3 && direction != 1) {
isVertical = false;
}
return isVertical;
}
MapObject();
MapObjectId GetMapObjectId();
@@ -156,13 +172,12 @@ public:
bool func_ov000_0209d12c();
bool func_ov000_0209d144(Vec2s *param1, unk32 param2, unk32 param3);
void func_ov000_0209d274(unk32 param1);
unk32 func_ov000_0209d29c(unk32 param1);
bool func_ov000_0209d29c(unk32 param1);
void func_ov000_0209d2c4(unk32 param1, unk32 param2);
void func_ov000_0209d2f0(unk32 param1, unk32 param2, Vec2b *param3);
void func_ov000_0209d3b4(unk32 param1, q20 size);
void func_ov000_0209d434(s8 *param1, UnkStruct_ov019_020d24c8_28_258_00 *param2, unk32 param3);
void func_ov000_0209d518(unk32 param1, unk32 param2, unk32 param3, u8 param4);
void func_ov000_0209d54c(unk32 param1, u16 param2, Vec3p *param3, s16 param4, u16 param5);
void func_ov000_0209d5c8(ActorRef ref);
void func_ov000_0209d614(unk32 param1);
bool func_ov000_0209d668();
@@ -172,4 +187,5 @@ public:
static void func_ov000_0209d0bc(Vec2b *param1, MapObject *thisx);
static void func_ov000_0209d22c(unk16 *param1, MapObject *thisx, unk32 param2);
static void func_ov000_0209d54c(void *param1, MapObject *thisx, unk32 param2, Vec3p *param3, unk32 param4, unk32 param5);
};
+132
View File
@@ -0,0 +1,132 @@
#pragma once
#include "MapObject/MapObject.hpp"
#include "Player/PlayerGet.hpp"
class MapObject_UnkStruct1 {
public:
/* 00 (vtable) */
/* 04 */ unk32 mUnk_44;
/* 08 */ unk16 mUnk_48;
/* 0A */ s16 mUnk_4A;
/* 0C */ Vec3p mUnk_4C;
/* 18 */
MapObject_UnkStruct1(); // func_ov000_02073194 & func_ov000_020731c4
// data_ov000_020b2290
/* 00 */ virtual void vfunc2_00();
/* 04 */ virtual void vfunc2_04();
/* 08 */ virtual void vfunc2_08();
/* 0C */ virtual void vfunc2_0C();
};
class MapObject_UnkStruct1_Derived1 : public MapObject_UnkStruct1 {
public:
/* 00 (base) */
/* 18 */ bool mUnk_58;
/* 19 */ unk8 mUnk_59;
/* 1A */ s16 mUnk_5A;
/* 1C */ Vec3p mUnk_5C;
/* 28 */
MapObject_UnkStruct1_Derived1(); // func_ov000_02073234
// data_ov000_020b22a8
/* 0C */ virtual void vfunc2_0C() override;
};
class MapObject_UnkStruct1_Derived2 : public MapObject_UnkStruct1_Derived1 {
public:
/* 00 (base) */
/* 28 */
// data_ov031_021150a0
/* 04 */ virtual void vfunc2_04() override;
/* 08 */ virtual void vfunc2_08() override;
};
class MapObjectDoorBase : public MapObject, public MapObject_UnkStruct1_Derived2 {
public:
/* 00 (base MapObject) */
/* 40 (base MapObject_UnkStruct1_Derived2) */
/* 68 */ UnkStruct_PlayerGet_ec mUnk_68;
/* 6C */ unk32 mUnk_6C;
/* 70 */ unk32 mUnk_70;
/* 74 */ unk32 mUnk_74;
/* 78 */ u16 mUnk_78;
/* 7A */ u16 mUnk_7A;
/* 7C */ u16 mUnk_7C;
/* 7E */ u16 mUnk_7E;
/* 80 */ unk16 mUnk_80;
/* 82 */ u16 mUnk_82;
/* 84 */ u16 mUnk_84;
/* 86 */ bool mUnk_86;
/* 87 */ bool mUnk_87;
/* 88 */ bool mUnk_88;
/* 89 */ bool mUnk_89;
/* 8A */ bool mUnk_8A;
/* 8B */ bool mUnk_8B;
/* 8C */ bool mUnk_8C;
/* 8D */ bool mUnk_8D;
/* 8E */ bool mUnk_8E;
/* 8F */ bool mUnk_8F;
/* 90 */ bool mUnk_90;
/* 91 */ bool mUnk_91;
/* 91 */ unk8 mUnk_92; // pad?
/* 91 */ unk8 mUnk_93; // pad?
/* 94 */
MapObjectDoorBase();
// data_ov031_02115008 (MapObject)
/* 08 */ virtual void vfunc_08() override;
/* 0C */ virtual void vfunc_0C() override;
#ifdef DOORBASE_DTOR_NOINLINE
//! TODO: hacky trick to match function order (pch hint?)
/* 30 */ virtual ~MapObjectDoorBase() override;
#else
/* 30 */ virtual ~MapObjectDoorBase() override {}
#endif
// (MapObject_UnkStruct1_Derived2)
/* 04 */ virtual void vfunc2_04() override;
/* 08 */ virtual void vfunc2_08() override;
// (MapObject)
/* 40 */ virtual void vfunc_40();
/* 44 */ virtual void vfunc_44();
/* 48 */ virtual void vfunc_48();
/* 4C */ virtual void vfunc_4C();
/* 50 */ virtual void vfunc_50();
/* 54 */ virtual void vfunc_54();
/* 58 */ virtual void vfunc_58();
/* 5C */ virtual void vfunc_5C(unk32 param1, unk32 param2);
/* 60 */ virtual void vfunc_60();
/* 64 */ virtual bool vfunc_64();
/* 68 */ virtual bool vfunc_68();
/* 6C */ virtual bool vfunc_6C();
/* 70 */ virtual void vfunc_70();
/* 74 */ virtual void vfunc_74();
/* 78 */ virtual void vfunc_78();
/* 7C */ virtual void vfunc_7C();
/* 80 */ virtual void vfunc_80();
/* 84 */ virtual void vfunc_84(unk32 param1, Vec3p *param2, unk16 *param3);
/* 88 */ virtual bool vfunc_88();
/* 8C */ virtual unk32 vfunc_8C();
/* 90 */
void func_ov031_020fbf10(bool param1, bool param2);
void func_ov031_020fcb78(s8 *param1, s8 param2);
void func_ov031_020fcd40();
void func_ov031_020fcf0c(unk32 param1);
bool func_ov031_020fcf30();
};
struct UnkStruct_ov031_021150b0 {
/* 00 */ u32 mUnk_00;
UnkStruct_ov031_021150b0(u32 val) :
mUnk_00(val) {}
};
+1
View File
@@ -32,6 +32,7 @@ public:
MapObject *func_01fff498(UnkStruct_func_01fff498 param1);
void func_01fff4cc(UnkCallback_func_01fff4cc param1, void *param2);
MapObject **func_01fff520(UnkStruct_ov000_020b34c4 *param1, MapObject **param2);
void func_01fff6d0(Vec3p *param1, s32 *param2, s32 *param3);
void func_ov000_0209c3a8();
void func_ov000_0209c3e8();
+1 -2
View File
@@ -9,8 +9,7 @@
class MapObjectMiniBlocks : public MapObject {
public:
/* 00 (base) */
/* 40 */ UnkSystem6 mUnk_40;
/* 44 */ unk32 mUnk_44;
/* 40 */ UnkSystem6_Derived2 mUnk_40;
/* 48 */ unk8 mUnk_48;
/* 49 */ unk8 mUnk_49; // pad?
/* 4A */ unk16 mUnk_4A; // pad?
@@ -24,23 +24,6 @@ public:
unk32 param5); // func_020153fc
};
class MapObjectProfile_Derived2_20_Base_50 {
public:
/* 00 */ unk32 mUnk_00;
/* 04 */ unk32 mUnk_04;
/* 08 */ u8 mUnk_08;
/* 08 */ u8 mUnk_09;
/* 08 */ u8 mUnk_0A;
/* 08 */ u8 mUnk_0B;
/* 0C */ unk8 mUnk_0C;
/* 0C */ unk8 mUnk_0D;
/* 0C */ u16 mUnk_0E;
/* 10 */
MapObjectProfile_Derived2_20_Base_50();
~MapObjectProfile_Derived2_20_Base_50();
};
class MapObjectProfile_Derived2_20_Base_54 {
public:
/* 00 */ unk32 mUnk_00;
@@ -58,17 +41,12 @@ public:
/* 00 (vtable) */
/* 04 */ const char *mUnk_04;
/* 08 */ const char *mUnk_08;
/* 0C */ void *mUnk_0C;
/* 10 */ void *mUnk_10;
/* 14 */ unk8 mUnk_14; // bool?
/* 15 */ unk8 mUnk_15; // bool?
/* 16 */ unk8 mUnk_16; // bool?
/* 17 */ unk8 mUnk_17; // pad?
/* 0C */ UnkResourceStruct_Base mUnk_0C;
/* 18 */ MapObjectProfile_Derived2_20_Base_18 mUnk_18;
/* 20 */ MapObjectProfile_Derived2_20_Base_20 mUnk_20;
/* 2C */ UnkFileSystem3 mUnk_2C;
/* 3C */ UnkFileSystem5 mUnk_3C;
/* 50 */ MapObjectProfile_Derived2_20_Base_50 *mUnk_50;
/* 50 */ UnkResourceStruct *mUnk_50;
/* 54 */ MapObjectProfile_Derived2_20_Base_54 mUnk_54[4];
/* 94 */
+2 -4
View File
@@ -40,9 +40,9 @@ public:
MapObjectSwitchStep();
/* 00 */ virtual bool vfunc_00() override;
/* 08 */ virtual unk16 vfunc_08() override;
/* 08 */ virtual void vfunc_08() override;
/* 14 */ virtual void vfunc_14() override;
/* 18 */ virtual void vfunc_18() override;
/* 18 */ virtual void vfunc_18(s8 *param1, s8 param2) override;
/* 20 */ virtual void vfunc_20() override;
/* 30 */ virtual ~MapObjectSwitchStep() override;
@@ -66,8 +66,6 @@ public:
class MapObjectProfileSwitchStep : public MapObjectProfileSwitchStep_Base {
public:
/* 00 (base) */
/* E0 */ Vec3p mUnk_E0;
/* EC */ Vec3p mUnk_EC;
/* F8 */
MapObjectProfileSwitchStep();
+44 -38
View File
@@ -1,53 +1,59 @@
//! TODO: This file was generated automatically and might contain errors
#pragma once
#include "MapObject/MapObject.hpp"
#include "MapObject/MapObjectDoorBase.hpp"
#include "MapObject/MapObjectProfile.hpp"
#include "global.h"
#include "types.h"
class MapObjectUnkDRCK : public MapObject {
public:
/* 00 (base) */
/* 40 */
MapObjectUnkDRCK();
/* 30 */ virtual ~MapObjectUnkDRCK() override;
void func_ov031_020ff598(void);
void func_ov031_020ff6a8(void);
void func_ov031_020ff6bc(void);
void func_ov031_020ff7bc(void);
void func_ov031_020ffb8c(void);
void func_ov031_020ffb98(void);
void func_ov031_020ffce4(void);
void func_ov031_020ffddc(void);
void func_ov031_020ffde4(void);
void func_ov031_020ffe1c(void);
void func_ov031_020ffe7c(void);
void func_ov031_020ffe8c(void);
void func_ov031_020ffe94(void);
void func_ov031_020ffe9c(void);
void func_ov031_020ffeec(void);
void func_ov031_020fff10(void);
void func_ov031_021000ac(void);
void func_ov031_02100138(void);
void func_ov031_02100164(void);
void func_ov031_021001a8(void);
void func_ov031_021001ac(void);
void func_ov031_021001b0(void);
};
class MapObjectProfileUnkDRCK : public MapObjectProfile {
class MapObjectProfileUnkDRCK : public MapObjectProfile_Derived1 {
public:
/* 00 (base) */
MapObjectProfileUnkDRCK();
~MapObjectProfileUnkDRCK();
~MapObjectProfileUnkDRCK() {}
/* 0C */ virtual MapObject *Create();
static MapObjectProfileUnkDRCK *GetProfile();
};
class MapObjectUnkDRCK : public MapObjectDoorBase {
public:
/* 00 (base) */
/* 94 */ UnkSystem6_Derived2 mUnk_94;
/* 9C */ unk8 mUnk_9C; // bool?
/* 9D */ unk8 mUnk_9D; // pad?
/* 9E */ unk8 mUnk_9E; // pad?
/* 9F */ unk8 mUnk_9F; // pad?
/* A0 */ UnkStruct_PlayerGet_ec mUnk_A0;
/* A0 */ unk32 mUnk_A4;
/* A8 */ MapObject_10 mUnk_A8;
/* CC */
MapObjectUnkDRCK();
/* 00 */ virtual bool vfunc_00() override;
/* 08 */ virtual void vfunc_08() override;
/* 14 */ virtual void vfunc_14() override;
/* 18 */ virtual void vfunc_18(s8 *param1, s8 param2) override;
/* 28 */ virtual unk32 vfunc_28() override;
/* 30 */ virtual ~MapObjectUnkDRCK() override {}
/* 40 */ virtual void vfunc_40() override;
/* 44 */ virtual void vfunc_44() override;
/* 48 */ virtual void vfunc_48() override;
/* 4C */ virtual void vfunc_4C() override;
/* 5C */ virtual void vfunc_5C(unk32 param1, unk32 param2) override;
/* 64 */ virtual bool vfunc_64() override;
/* 68 */ virtual bool vfunc_68() override;
/* 6C */ virtual bool vfunc_6C() override;
/* 74 */ virtual void vfunc_74() override;
/* 78 */ virtual void vfunc_78() override;
/* 7C */ virtual void vfunc_7C() override;
/* 10 */ virtual void vfunc2_10();
/* 14 */ virtual MapObject_10 *vfunc2_14();
/* 18 */ virtual void vfunc2_18();
/* 1C */ virtual u16 vfunc2_1C(unk32 param2);
bool func_ov031_020ffde4();
};
+59 -38
View File
@@ -1,48 +1,14 @@
//! TODO: This file was generated automatically and might contain errors
#pragma once
#include "MapObject/MapObject.hpp"
#include "MapObject/MapObjectDoorBase.hpp"
#include "MapObject/MapObjectProfile.hpp"
#include "Player/PlayerGet.hpp"
#include "Unknown/Common.hpp"
#include "global.h"
#include "types.h"
class MapObjectUnkDRDS : public MapObject {
public:
/* 00 (base) */
/* 40 */
MapObjectUnkDRDS();
/* 30 */ virtual ~MapObjectUnkDRDS() override;
void func_ov031_020fd234(void);
void func_ov031_020fd284(void);
void func_ov031_020fd3f8(void);
void func_ov031_020fd404(void);
void func_ov031_020fd474(void);
void func_ov031_020fd7e8(void);
void func_ov031_020fd814(void);
void func_ov031_020fdc08(void);
void func_ov031_020fdcc4(void);
void func_ov031_020fdd70(void);
void func_ov031_020fdec8(void);
void func_ov031_020fdfc0(void);
void func_ov031_020fdfcc(void);
void func_ov031_020fe04c(void);
void func_ov031_020fe0d0(void);
void func_ov031_020fe22c(void);
void func_ov031_020fe250(void);
void func_ov031_020fe278(void);
void func_ov031_020fe2bc(void);
void func_ov031_020fe2e8(void);
void func_ov031_020fe32c(void);
void func_ov031_020fe350(void);
void func_ov031_020fe388(void);
void func_ov031_020fe5fc(void);
};
class MapObjectProfileUnkDRDS : public MapObjectProfile {
class MapObjectProfileUnkDRDS : public MapObjectProfile_Derived2 {
public:
/* 00 (base) */
@@ -53,3 +19,58 @@ public:
static MapObjectProfileUnkDRDS *GetProfile();
};
class MapObjectUnkDRDS : public MapObjectDoorBase {
public:
/* 00 (base) */
/* 94 */ UnkSystem6_Derived2 mUnk_94;
/* 9C */ unk8 mUnk_9C;
/* 9D */ unk8 mUnk_9D;
/* 9E */ unk8 mUnk_9E;
/* 9F */ unk8 mUnk_9F;
/* A0 */ unk8 mUnk_A0;
/* A1 */ bool mUnk_A1;
/* A2 */ bool mUnk_A2;
/* A3 */ unk8 mUnk_A3;
/* A4 */ unk32 mUnk_A4;
/* A8 */ UnkStruct_PlayerGet_ec mUnk_A8;
/* AC */ volatile u16 mUnk_AC;
/* AE */ u16 mUnk_AE;
MapObjectUnkDRDS();
// data_ov031_021150d8 (MapObject)
/* 00 */ virtual bool vfunc_00() override;
/* 04 */ virtual void vfunc_04() override;
/* 08 */ virtual void vfunc_08() override;
/* 0C */ virtual void vfunc_0C() override;
/* 14 */ virtual void vfunc_14() override;
/* 18 */ virtual void vfunc_18(s8 *param1, s8 param2) override;
/* 30 */ virtual ~MapObjectUnkDRDS() override;
// (MapObject_UnkStruct1_Derived1)
/* 04 */ virtual void vfunc2_04() override;
/* 08 */ virtual void vfunc2_08() override;
// (MapObject)
/* 40 */ virtual void vfunc_40() override;
/* 44 */ virtual void vfunc_44() override;
/* 48 */ virtual void vfunc_48() override;
/* 4C */ virtual void vfunc_4C() override;
/* 5C */ virtual void vfunc_5C(unk32 param1, unk32 param2) override;
/* 64 */ virtual bool vfunc_64() override;
/* 68 */ virtual bool vfunc_68() override;
/* 6C */ virtual bool vfunc_6C() override;
/* 74 */ virtual void vfunc_74() override;
/* 7C */ virtual void vfunc_7C() override;
/* 84 */ virtual void vfunc_84(unk32 param1, Vec3p *param2, unk16 *param3) override;
/* 88 */ virtual bool vfunc_88() override;
/* 8C */ virtual unk32 vfunc_8C() override;
// (MapObject_UnkStruct1_Derived1)
/* 10 */ virtual void vfunc2_10();
bool func_ov031_020fdec8(void);
static void func_ov031_020fe5fc(Vec3p *param1, MapObjectUnkDRDS *thisx);
};
+31 -22
View File
@@ -1,41 +1,50 @@
//! TODO: This file was generated automatically and might contain errors
#pragma once
#include "MapObject/MapObject.hpp"
#include "MapObject/MapObjectDoorBase.hpp"
#include "MapObject/MapObjectProfile.hpp"
#include "global.h"
#include "types.h"
class MapObjectUnkDRKY : public MapObject {
class MapObjectUnkDRKY : public MapObjectDoorBase {
public:
/* 00 (base) */
/* 40 */
/* 94 */ UnkSystem6_Derived2 mUnk_94;
/* 9C */ unk8 mUnk_9C;
/* 9D */ unk8 mUnk_9D; // pad?
/* 9E */ unk8 mUnk_9E; // pad?
/* 9F */ unk8 mUnk_9F; // pad?
/* A0 */ UnkStruct_PlayerGet_ec mUnk_A0;
/* A4 */ bool mUnk_A4;
/* A5 */ unk8 mUnk_A5; // pad?
/* A6 */ unk8 mUnk_A6; // pad?
/* A7 */ unk8 mUnk_A7; // pad?
/* A8 */
MapObjectUnkDRKY();
/* 00 */ virtual bool vfunc_00() override;
/* 08 */ virtual void vfunc_08() override;
/* 14 */ virtual void vfunc_14() override;
/* 18 */ virtual void vfunc_18(s8 *param1, s8 param2) override;
/* 28 */ virtual unk32 vfunc_28() override;
/* 30 */ virtual ~MapObjectUnkDRKY() override;
/* 40 */ virtual void vfunc_40() override;
/* 44 */ virtual void vfunc_44() override;
/* 48 */ virtual void vfunc_48() override;
/* 4C */ virtual void vfunc_4C() override;
/* 5C */ virtual void vfunc_5C(unk32 param1, unk32 param2) override;
/* 64 */ virtual bool vfunc_64() override;
/* 68 */ virtual bool vfunc_68() override;
/* 6C */ virtual bool vfunc_6C() override;
/* 74 */ virtual void vfunc_74() override;
/* 78 */ virtual void vfunc_78() override;
/* 7C */ virtual void vfunc_7C() override;
void func_ov031_020fe86c(void);
void func_ov031_020fe888(void);
void func_ov031_020fe8a0(void);
void func_ov031_020fe8ac(void);
void func_ov031_020fe9f8(void);
void func_ov031_020fea88(void);
void func_ov031_020feabc(void);
void func_ov031_020feb4c(void);
void func_ov031_020feb58(void);
void func_ov031_020feb60(void);
void func_ov031_020feb68(void);
void func_ov031_020febb8(void);
void func_ov031_020febdc(void);
void func_ov031_020fed78(void);
void func_ov031_020feda4(void);
void func_ov031_020fede8(void);
void func_ov031_020fedec(void);
bool func_ov031_020fea88(void);
};
class MapObjectProfileUnkDRKY : public MapObjectProfile {
class MapObjectProfileUnkDRKY : public MapObjectProfile_Derived2 {
public:
/* 00 (base) */
+36 -22
View File
@@ -1,40 +1,54 @@
//! TODO: This file was generated automatically and might contain errors
#pragma once
#include "MapObject/MapObject.hpp"
#include "MapObject/MapObjectDoorBase.hpp"
#include "MapObject/MapObjectProfile.hpp"
#include "global.h"
#include "types.h"
#include "versions.h"
class MapObjectUnkDRSW : public MapObject {
class MapObjectUnkDRSW : public MapObjectDoorBase {
public:
/* 00 (base) */
/* 40 */
/* 000 (base) */
/* 094 */ UnkSystem4 mUnk_094;
/* 0F4 */ MapObject_10 mUnk_0F4;
#if IS_JP
/* 118 */ MapObject_10 mUnk_118;
/* 13C */ q20 mUnkPos;
/* 140 */ bool mUnk_140;
/* 141 */ bool mUnk_141;
/* 142 */ unk8 mUnk_142; // pad
/* 143 */ unk8 mUnk_143; // pad
/* 144 */
#else
/* 118 */ q20 mUnkPos;
/* 11C */
#endif
MapObjectUnkDRSW();
// data_ov031_0211527c (MapObject)
/* 00 */ virtual bool vfunc_00() override;
/* 08 */ virtual void vfunc_08() override;
/* 14 */ virtual void vfunc_14() override;
/* 18 */ virtual void vfunc_18(s8 *param1, s8 param2) override;
/* 30 */ virtual ~MapObjectUnkDRSW() override;
/* 40 */ virtual void vfunc_40() override;
/* 44 */ virtual void vfunc_44() override;
/* 48 */ virtual void vfunc_48() override;
/* 4C */ virtual void vfunc_4C() override;
/* 50 */ virtual void vfunc_50() override;
/* 54 */ virtual void vfunc_54() override;
/* 58 */ virtual void vfunc_58() override;
/* 64 */ virtual bool vfunc_64() override;
/* 6C */ virtual bool vfunc_6C() override;
/* 74 */ virtual void vfunc_74() override;
void func_ov031_020feee4(void);
void func_ov031_020fefac(void);
void func_ov031_020ff07c(void);
void func_ov031_020ff100(void);
void func_ov031_020ff110(void);
void func_ov031_020ff130(void);
void func_ov031_020ff1b0(void);
void func_ov031_020ff1bc(void);
void func_ov031_020ff288(void);
void func_ov031_020ff2d8(void);
void func_ov031_020ff318(void);
void func_ov031_020ff38c(void);
void func_ov031_020ff3d0(void);
void func_ov031_020ff3fc(void);
void func_ov031_020ff43c(void);
void func_ov031_020ff468(void);
// (MapObject_UnkStruct1_Derived1)
/* 10 */ virtual void *vfunc2_10();
};
class MapObjectProfileUnkDRSW : public MapObjectProfile {
class MapObjectProfileUnkDRSW : public MapObjectProfile_Derived2 {
public:
/* 00 (base) */
+10 -12
View File
@@ -1,31 +1,29 @@
//! TODO: This file was generated automatically and might contain errors
#pragma once
#include "MapObject/MapObject.hpp"
#include "MapObject/MapObjectProfile.hpp"
#include "MapObject/MapObjectUnkDRCK.hpp"
#include "global.h"
#include "types.h"
class MapObjectUnkDRTC : public MapObject {
class MapObjectUnkDRTC : public MapObjectUnkDRCK {
public:
/* 00 (base) */
/* 40 */
MapObjectUnkDRTC();
/* 00 */ virtual bool vfunc_00() override;
/* 30 */ virtual ~MapObjectUnkDRTC() override;
/* 40 */ virtual void vfunc_40() override;
/* 44 */ virtual void vfunc_44() override;
/* 48 */ virtual void vfunc_48() override;
/* 4C */ virtual void vfunc_4C() override;
void func_ov031_021002fc(void);
void func_ov031_02100314(void);
void func_ov031_021003a0(void);
void func_ov031_021003c8(void);
void func_ov031_0210040c(void);
void func_ov031_02100410(void);
void func_ov031_02100414(void);
/* 10 */ virtual void vfunc2_10() override;
/* 18 */ virtual void vfunc2_18() override;
};
class MapObjectProfileUnkDRTC : public MapObjectProfile {
class MapObjectProfileUnkDRTC : public MapObjectProfile_Derived1 {
public:
/* 00 (base) */
-13
View File
@@ -51,19 +51,6 @@ public:
}
};
class UnkStruct_PlayerGet_ec {
public:
/* 00 */ unk32 *mUnk_00;
/* 04 */
UnkStruct_PlayerGet_ec(unk32 *param1) {
this->mUnk_00 = param1;
}
UnkStruct_PlayerGet_ec();
~UnkStruct_PlayerGet_ec();
};
class UnkStruct_PlayerGet_50 {
public:
unk32 func_01ff8fa8();
+153 -8
View File
@@ -4,6 +4,7 @@
#include "System/SysNew.hpp"
#include "Unknown/UnkFileSystem.hpp"
#include "global.h"
#include "profile.hpp"
#include "types.h"
#include <nitro/math.h>
#include <nns/text.h>
@@ -921,10 +922,10 @@ public:
// data_ov000_020b1a6c
/* 00 */ virtual ~UnkSystem4();
/* 08 */ virtual void vfunc_08(unk32 param1);
/* 08 */ virtual void vfunc_08(void *param1); // resource thing? (GetUnkPointer1_Impl as param1)
/* 0C */ virtual void vfunc_0C();
/* 10 */ virtual void vfunc_10();
/* 14 */ virtual void vfunc_14();
/* 14 */ virtual void vfunc_14(Mat3p *param1, Vec3p *param2);
/* 18 */ virtual void vfunc_18();
/* 1C */ virtual void vfunc_1C(UnkSystem4_vfunc_1C *param1);
/* 20 */ virtual void vfunc_20();
@@ -933,6 +934,53 @@ public:
void func_ov000_0209a7b8(void *param1, UnkSystem4_UnkCallback param2);
};
struct UnkResourceStruct_Base {
/* 00 */ void *mUnk_00;
/* 04 */ void *mUnk_04;
/* 08 */ u8 mUnk_08;
/* 09 */ u8 mUnk_09;
/* 0A */ u8 mUnk_0A;
/* 0B */ u8 mUnk_0B;
/* 0C */
};
struct UnkResourceStruct : public UnkResourceStruct_Base {
/* 0C */ unk8 mUnk_0C;
/* 0D */ unk8 mUnk_0D;
/* 0E */ u16 mUnk_0E;
/* 10 */
};
static inline void *GetUnkPointer1_Impl(UnkResourceStruct *ptr) {
if (ptr != NULL) {
u8 *temp_r1 = (u8 *) ptr + 8;
u32 *var_r0;
u8 zero = 0;
if (temp_r1 != NULL && ptr->mUnk_09 > zero) {
var_r0 = (u32 *) (temp_r1 + *(u16 *) ((u8 *) ptr + 14) + 4);
} else {
var_r0 = NULL;
}
if (var_r0 != NULL) {
return (void *) ((u8 *) ptr + *var_r0);
}
}
return NULL;
}
template <typename T> static inline void *GetUnkPointer1() {
return GetUnkPointer1_Impl((UnkResourceStruct *) GET_PROFILE_20_50(T));
}
template <typename T> static inline void *GetUnkPointer2(unk32 param1, u32 resId) {
T *pProfile = GET_PROFILE(T);
pProfile->func_ov000_0209ccd8(param1, resId);
return GetUnkPointer1_Impl((UnkResourceStruct *) pProfile->mUnk_20[param1]->mUnk_50);
}
class UnkSystem5 {
public:
/* 00 */ unk32 mUnk_00;
@@ -961,12 +1009,109 @@ public:
UnkSystem6() {}
// data_ov000_020b1968
// data_ov000_020b1a98
/* 00 */ virtual ~UnkSystem6();
/* 08 */ virtual void vfunc_08(unk32 param1);
/* 0C */ virtual void vfunc_0C();
/* 10 */ virtual void vfunc_10();
/* 14 */ virtual void vfunc_14(Mat3p *param1, Vec3p *param2);
/* 18 */ virtual void vfunc_18();
/* 08 */ virtual void vfunc_08(void *param1); // resource thing like UnkSystem4?
/* 0C */ virtual void vfunc_0C() = 0;
/* 10 */ virtual void vfunc_10() = 0;
/* 14 */ virtual void vfunc_14(Mat3p *param1, Vec3p *param2) = 0;
/* 18 */ virtual void vfunc_18() = 0;
/* 1C */
};
class UnkSystem6_Derived1 : public UnkSystem6 {
public:
/* 00 (base) */
/* 04 */ void *mUnk_04;
UnkSystem6_Derived1(void *ptr) :
mUnk_04(ptr) {}
// data_ov000_020b1a48
/* 00 */ virtual ~UnkSystem6_Derived1() override {}
/* 10 */ virtual void vfunc_10() override;
/* 14 */ virtual void vfunc_14(Mat3p *param1, Vec3p *param2) override;
/* 18 */ virtual void vfunc_18() override;
};
class UnkSystem6_Derived2 : public UnkSystem6_Derived1 {
public:
/* 00 (base) */
/* 08 */
UnkSystem6_Derived2() :
UnkSystem6_Derived1(NULL) {}
UnkSystem6_Derived2(void *ptr) :
UnkSystem6_Derived1(ptr) {}
// data_ov000_020b1968
/* 00 */ virtual ~UnkSystem6_Derived2() {}
/* 0C */ virtual void vfunc_0C() override;
};
class MapObject;
struct UnkStackStruct1 {
/* 00 */ unk8 mUnk_00;
/* 01 */ unk8 mUnk_01;
/* 02 */ unk8 mUnk_02;
/* 03 */ unk8 mUnk_03;
/* 04 */ void *mUnk_04;
/* 08 */ unk32 mUnk_08;
/* 0C */ Vec3p mUnk_0C;
/* 18 */ unk16 mUnk_18;
/* 1A */ unk16 mUnk_1A;
/* 1C */ unk16 mUnk_1C;
/* 1E */ unk16 mUnk_1E;
/* 20 */ unk32 mUnk_20;
/* 24 */ Vec3p mUnk_24;
/* 30 */ unk16 mUnk_30;
/* 32 */ unk16 mUnk_32;
/* 34 */ unk16 mUnk_34;
/* 36 */ unk16 mUnk_36;
/* 38 */ u16 mUnk_38;
/* 3A */ unk8 mUnk_3A;
/* 3B */ unk8 mUnk_3B;
/* 3C */ unk32 mUnk_3C;
/* 40 */
};
extern "C" void func_ov000_02072fd0(UnkStackStruct1 *);
struct UnkSystem7_UnkStruct_00 {
/* 00 */ STRUCT_PAD(0x00, 0x24);
/* 24 */ unk32 mUnk_24;
/* 28 */ STRUCT_PAD(0x28, 0xA4);
/* A4 */ unk16 mUnk_A4;
void func_ov000_02052c48(Vec3p *param1, Vec3p *param2);
};
class UnkSystem7 {
public:
/* 00 */ UnkSystem7_UnkStruct_00 *mUnk_00;
/* 04 */
UnkSystem7(UnkSystem7_UnkStruct_00 *param1) {
this->mUnk_00 = param1;
}
~UnkSystem7() {
this->func_ov000_020a0304();
}
void func_ov000_020a0304(void);
void func_ov000_020a0334();
};
class UnkStruct_PlayerGet_ec : public UnkSystem7 {
public:
/* 00 (base) */
/* 04 */
UnkStruct_PlayerGet_ec(UnkSystem7_UnkStruct_00 *param1) :
UnkSystem7(param1) {}
UnkStruct_PlayerGet_ec();
~UnkStruct_PlayerGet_ec();
};
+2 -10
View File
@@ -141,14 +141,6 @@ enum SceneIndex_ {
/* 121 */ SceneIndex_Max = 0x79
};
struct UnkStruct_027e09a4_58_78 {
unk32 mUnk_00;
unk32 mUnk_04;
unk8 mUnk_08;
unk8 mUnk_09;
u8 mUnk_0A;
};
struct UnkStruct_func_01ffd400 {
/* 00 */ STRUCT_PAD(0x00, 0x10);
/* 1B */ unk32 mUnk_10;
@@ -164,7 +156,7 @@ struct UnkStruct_SceneChange1 {
/* 04 */ unk32 mUnk_04;
/* 08 */ unk16 mUnk_08;
/* 0A */ u8 mRoomIndex;
/* 0B */ unk8 mSpawnIndex;
/* 0B */ u8 mSpawnIndex;
/* 0C */ bool mNextIsCS;
/* 0D */ unk8 mUnk_0D;
/* 0E */ unk8 mCutsceneIndex;
@@ -265,7 +257,7 @@ public:
UnkStruct_func_01ffd400 *func_01ffd400();
unk8 func_ov000_02070bd0(unk32 csIndex, unk32 param2);
UnkStruct_027e09a4_58_78 *func_ov000_02070560();
UnkStruct_SceneChange1 *func_ov000_02070560();
void func_ov000_020707a8(void *param1);
void func_ov000_02070834(void *param1);
void func_ov000_0207087c(unk32 param1);
+1
View File
@@ -6,6 +6,7 @@
class UnkStruct_027e09a8 {
public:
void func_ov000_02071b30(unk32 param1, Vec3p *pPos, unk32 param3);
void func_ov000_02071d34(void *param1, unk32 param2, Vec3p *pPos, unk32 param4);
};
extern UnkStruct_027e09a8 *data_027e09a8;
+2 -1
View File
@@ -12,8 +12,9 @@ public:
unk32 func_ov000_020732ec(unk32 param1);
unk32 func_ov000_020732fc(unk32 param1);
unk32 func_ov000_020732dc(unk32 param1);
unk32 func_ov000_0207330c();
unk32 func_ov000_02073470(void *param1, unk32 param2);
unk32 func_ov000_02073388(void *param1);
unk32 func_ov000_02073388(void *param1, unk32 param2);
};
extern UnkStruct_027e09b8 *data_027e09b8;
+2 -1
View File
@@ -5,7 +5,8 @@
class UnkStruct_027e09bc_0c {
public:
void func_ov000_02078230(unk32 param1);
void func_ov000_0207834c(Vec3p *param1, unk32 param2, unk32 param3);
bool func_ov000_0207834c(Vec3p *param1, unk32 param2, unk32 param3);
bool func_ov000_02078764(Vec3p *param1, void *param2, unk32 param3);
};
class UnkStruct_027e09bc {
+11 -8
View File
@@ -4,8 +4,11 @@
#include "types.h"
#include <nitro/math.h>
#include "MapObject/MapObjectManager.hpp"
#include "Unknown/UnkStruct_027e09a4.hpp"
class MapObject_20;
class UnkStruct_027e0cd8_0c {
public:
/* 000 (vtable) */
@@ -81,18 +84,17 @@ public:
/* 2C */ virtual void vfunc_2c();
q20 func_01ffedf4(Vec2b *pPos);
unk32 func_ov000_02080180(void *param1);
bool func_ov000_02080658(unk32 param1, UnkStruct_SceneChange1 *param2);
void func_ov000_020808f4(void *param1, void *param2, unk32 param3);
unk32 func_ov000_02080a44();
void func_ov000_020801b0(Vec2b *param1, unk32 param2, unk32 param3);
};
void func_ov000_0208053c(u16 param1);
void func_ov000_020803ec(u16 param1);
unk32 func_ov000_020802ec(u16 param1, Vec3p *param2);
class UnkStruct_027e0cd8_10 {
public:
/* 00 */ unk32 mUnk_00;
void func_01fff6d0(Vec3p *param1, s32 *param2, s32 *param3);
Vec3p *func_ov001_020b8a5c(unk32 spawnIndex, unk32 param1);
};
class UnkStruct_027e0cd8 {
@@ -101,15 +103,16 @@ public:
/* 04 */ unk32 *mUnk_04;
/* 08 */ unk32 mUnk_08;
/* 0C */ UnkStruct_027e0cd8_0c *mUnk_0C;
/* 10 */ UnkStruct_027e0cd8_10 *mUnk_10;
/* 10 */ MapObjectManager *mUnk_10;
/* 14 */ STRUCT_PAD(0x14, 0x4C);
/* 4C */
unk32 func_ov000_02081e30(unk32 param1, unk32 param2);
bool func_ov000_02081e30(unk32 param1, unk32 param2);
void func_ov000_02081d7c(unk32 param1, unk32 param2, unk32 param3);
void func_ov000_02081ecc(unk16 param1, unk32 param2);
void func_ov000_02081eec(unk16 param1, unk32 param2, unk32 param3);
bool func_ov000_02081f3c(unk16 param1, unk32 param2);
unk32 func_ov000_02081d5c();
};
extern UnkStruct_027e0cd8 *data_027e0cd8;
+4
View File
@@ -54,8 +54,12 @@ public:
/* 44 */
Vec3p *func_01fff148(unk32 param1);
bool func_01fff1a4();
void func_ov000_0208a318(unk32 param1, unk32 param2, unk32 param3);
void func_ov000_0208bbd4(unk32 param1, Vec3p *param2, u16 param3);
void func_ov000_0208bbd4(unk32 param1, Vec3p *param2, void *param3);
};
extern UnkStruct_027e0ce0 *data_027e0ce0;
+16
View File
@@ -0,0 +1,16 @@
#pragma once
#include "global.h"
#include "types.h"
class UnkStruct_027e0d34 {
public:
/* 00 */ unk32 mUnk_00;
UnkStruct_027e0d34();
~UnkStruct_027e0d34();
void func_ov031_020d9844();
};
extern UnkStruct_027e0d34 *data_027e0d34;
+16
View File
@@ -0,0 +1,16 @@
#pragma once
#include "global.h"
#include "types.h"
class UnkStruct_027e0d38 {
public:
/* 00 */ unk32 mUnk_00;
UnkStruct_027e0d38();
~UnkStruct_027e0d38();
void func_ov031_020d9c44(unk32 param1);
};
extern UnkStruct_027e0d38 *data_027e0d38;
+1 -1
View File
@@ -6,7 +6,7 @@
class UnkStruct_027e0d70 : public SysObject {
public:
~UnkStruct_027e0d70();
void func_ov068_0215e8f8();
void func_ov071_0215e8f8();
void func_ov071_0215e9ac();
void func_ov071_0215eac8();
};
+17
View File
@@ -0,0 +1,17 @@
#pragma once
#include "global.h"
#include "types.h"
class UnkStruct_027e0d8c {
public:
/* 00 */ unk32 mUnk_00;
UnkStruct_027e0d8c();
~UnkStruct_027e0d8c();
void func_ov093_02166058();
void func_ov093_02166068();
};
extern UnkStruct_027e0d8c *data_027e0d8c;
+3 -3
View File
@@ -8,10 +8,10 @@ typedef bool (**UnkStruct_ov000_020b34c4_Callback)(void *, void *);
class UnkStruct_ov000_020b34c4 {
public:
/* 00 */ UnkStruct_ov000_020b34c4_Callback mUnk_00;
/* 08 */ unk32 mUnk_08;
/* 08 */ unk32 mUnk_0C;
/* 00 */ UnkStruct_ov000_020b34c4_Callback *mUnk_00;
/* 04 */ unk32 mUnk_04;
/* 00 */ virtual bool vfunc_00(void *param1);
};
extern UnkStruct_ov000_020b34c4 data_ov000_020b34c4;
+5 -3
View File
@@ -62,11 +62,13 @@ public:
UnkStruct_ov000_020b51b8();
~UnkStruct_ov000_020b51b8();
void func_ov000_0206d0bc(unk32 param1);
void func_ov000_0206d274(unk32 param1);
void func_ov000_0206c608(unk32 param1, unk32 param2, unk32 param3);
void func_ov000_0206c96c(unk32 param1);
void func_ov000_0206c9a8(unk32 param1, unk32 param2, unk32 param3, unk32 param4);
void func_ov000_0206c608(unk32 param1, unk32 param2, unk32 param3);
void func_ov000_0206d0bc(unk32 param1);
void func_ov000_0206d0ec(unk32 param1, unk32 param2, unk32 param3, unk32 param4);
void func_ov000_0206d134(unk32 param1);
void func_ov000_0206d274(unk32 param1);
void func_ov018_020c5940();
};