Files
st/include/MapObject/MapObjectDoorBase.hpp
T
Yanis c3c34ebe5a 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%
2026-04-23 18:42:59 +02:00

133 lines
3.7 KiB
C++

#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) {}
};