mirror of
https://github.com/zeldaret/st
synced 2026-05-23 15:01:41 -04:00
645ed65b76
* playrget progress and match treasuremanager remaining functions * some docs * fix build issues * random docs * match func_ov094_02172290 * random docs * actor cleanup * match freestanding item funcs * mType -> mpProfile * decompile random functions * docs and start of wip chest stuff * random docs * more random docs * match func_ov036_0211d0a8 * match func_ov036_0211d2dc & func_ov036_0211d570 * match func_ov110_02184a40 * random doc * document letter/stamps system * match func_ov001_020bb9f8 * fix build issues * decompile tres * start decomp chest base * fix regressions * name TRES * name UnkStruct_ov024_020d86b0 * name stamp types and update save struct stuff * name things and document BMG IDs
118 lines
3.4 KiB
C++
118 lines
3.4 KiB
C++
#pragma once
|
|
|
|
#include "Map/MapObjectId.hpp"
|
|
#include "MapObject/MapObjectProfile_Derived2_20.hpp"
|
|
#include "Physics/Cylinder.hpp"
|
|
#include "System/SysNew.hpp"
|
|
#include "Unknown/Common.hpp"
|
|
#include "Unknown/UnkStruct_ov000_020b4f84.hpp"
|
|
#include "profile.hpp"
|
|
#include "types.h"
|
|
|
|
class MapObject;
|
|
class MapObject_20;
|
|
class MapObjectProfile_Derived2_20;
|
|
|
|
class MapObjectProfile : public SysObject {
|
|
public:
|
|
/* 00 (vtable) */
|
|
/* 04 */ unk8 mUnk_04[2];
|
|
/* 06 */ s8 mUnk_06;
|
|
/* 07 */ unk8 mUnk_07;
|
|
/* 08 */ unk32 mUnk_08;
|
|
/* 0C */ unk16 mUnk_0C;
|
|
/* 0E */ unk8 mUnk_0E;
|
|
/* 0F */ u8 mUnk_0F;
|
|
/* 10 */ MapObjectId mMapObjId;
|
|
/* 14 */ MapObjectId mUnk_14;
|
|
/* 18 */ unk32 mUnk_18;
|
|
/* 1C */ unk8 mUnk_1C;
|
|
/* 1D */ unk8 mUnk_1D;
|
|
/* 1E */ u16 mUnk_1E;
|
|
/* 20 */
|
|
|
|
MapObjectProfile(MapObjectId mapObjId); // func_ov000_0209c828
|
|
~MapObjectProfile();
|
|
|
|
// data_ov000_020b3524
|
|
/* 00 */ virtual MapObject *Create() = 0;
|
|
/* 04 */ virtual MapObjectProfile_Derived2_20 *vfunc_04();
|
|
/* 08 */ virtual void vfunc_08();
|
|
/* 0C */ virtual void vfunc_0C();
|
|
/* 10 */ virtual void vfunc_10();
|
|
/* 14 */
|
|
|
|
unk32 func_ov000_0209c8e4(MapObject_20 *param1);
|
|
void func_ov000_0209c95c();
|
|
void func_ov000_0209c970();
|
|
|
|
static unk32 func_ov000_0209c820();
|
|
static void func_ov000_0209c8ec(MapObjectProfile *thisx);
|
|
};
|
|
|
|
class MapObjectProfile_Derived1 : public MapObjectProfile {
|
|
public:
|
|
/* 00 (base) */
|
|
/* 20 */ MapObjectProfile_Derived2_20 *mUnk_20[16];
|
|
/* 60 */ unk32 mUnk_60;
|
|
/* 64 */ unk16 mUnk_64;
|
|
/* 66 */ unk16 mUnk_66;
|
|
/* 68 */
|
|
|
|
MapObjectProfile_Derived1(MapObjectId mapObjId, unk32 param2, unk32 param3); // func_ov000_0209cb4c
|
|
|
|
// data_ov000_020b3540
|
|
/* 04 */ virtual MapObjectProfile_Derived2_20 *vfunc_04();
|
|
/* 08 */ virtual void vfunc_08();
|
|
/* 0C */ virtual void vfunc_0C();
|
|
/* 10 */ virtual void vfunc_10();
|
|
/* 14 */ virtual ~MapObjectProfile_Derived1();
|
|
/* 1C */ virtual MapObjectProfile_Derived2_20 *vfunc_1C(unk32 param1);
|
|
|
|
void func_ov000_0209ccd8(unk32 param1, u32 param2);
|
|
};
|
|
|
|
class MapObjectProfile_Derived2 : public MapObjectProfile {
|
|
public:
|
|
/* 00 (base) */
|
|
/* 20 */ MapObjectProfile_Derived2_20 mUnk_20;
|
|
/* D4 */
|
|
|
|
MapObjectProfile_Derived2(MapObjectId mapObjId1, MapObjectId mapObjId2); // func_ov000_0209c9a8
|
|
~MapObjectProfile_Derived2();
|
|
|
|
// data_ov000_020b3508
|
|
/* 04 */ virtual MapObjectProfile_Derived2_20 *vfunc_04() override;
|
|
/* 08 */ virtual void vfunc_08() override;
|
|
/* 0C */ virtual void vfunc_0C() override;
|
|
/* 10 */ virtual void vfunc_10() override;
|
|
};
|
|
|
|
class MapObjectProfile_Derived3 : public MapObjectProfile {
|
|
public:
|
|
/* 00 (base) */
|
|
/* 20 */ MapObjectProfile_Derived2_20 *mUnk_20;
|
|
/* 24 */
|
|
|
|
MapObjectProfile_Derived3(MapObjectId mapObjId1, MapObjectId mapObjId2); // func_ov000_0209ca88
|
|
~MapObjectProfile_Derived3() {}
|
|
|
|
// data_ov000_020b34ec
|
|
/* 04 */ virtual MapObjectProfile_Derived2_20 *vfunc_04() override;
|
|
/* 08 */ virtual void vfunc_08() override;
|
|
};
|
|
|
|
class MapObjectProfile_Derived4 : public MapObjectProfile_Derived2 {
|
|
/* 00 (base) */
|
|
/* D4 */
|
|
|
|
MapObjectProfile_Derived4(MapObjectId mapObjId1, MapObjectId mapObjId2); // func_ov000_0209c9a8
|
|
~MapObjectProfile_Derived4();
|
|
|
|
// data_ov000_020b34d0
|
|
/* 08 */ virtual void vfunc_08() override;
|
|
/* 0C */ virtual void vfunc_0C() override;
|
|
};
|
|
|
|
typedef MapObjectProfile *(*GetMapObjectProfile)();
|