Decompiling MapObjectUnkSTAT (#134)

* feat: Match MapObjectUnkSTAT ctor and decompile its profile, rename vfuncs

* feat: Decompile vfuncs (match 3/4)

* feat: Start decompiling func_ov063_0215f7ac

* fix: Update symbols and fix wrong behavior

* feat: Improve func_ov063_0215f7ac

* feat: Investigate func_ov063_0215f7ac conditions

* feat: Decompile funcs, rename symbols, update .bss

* feat: Improvements to functions

* feat: Add .data for jp
This commit is contained in:
Mityno
2026-08-15 16:11:44 +00:00
committed by GitHub
parent 0d066f6447
commit 347ac5860d
10 changed files with 301 additions and 66 deletions
+4 -1
View File
@@ -120,7 +120,10 @@ public:
/* 00 (vtable) */
/* 04 */ VecFx32 mPos;
/* 10 */ MapObject_10 *mUnk_10;
/* 14 */ s16 mUnk_14;
/* 14 */ union {
s16 mUnk_14;
UnkAngleStruct mUnk_14_AngleStruct;
};
/* 16 */ MapObjState mState;
/* 18 */ unk8 mUnk_18[2]; // related to Link walking to the map object when touched
/* 1A */ unk8 mUnk_1A;
+37 -4
View File
@@ -4,30 +4,63 @@
#include "MapObject/MapObject.hpp"
#include "MapObject/MapObjectProfile.hpp"
#include "Render/ModelRender.hpp"
#include "global.h"
#include "types.h"
class MapObjectUnkSTAT : public MapObject {
public:
/* 00 (base) */
/* 40 */
/* 40 */ UnkSystem6_Derived2 mUnk_40;
/* 48 */ unk8 mUnk_48;
/* 49 */ STRUCT_PAD(0x49, 0x4C);
/* 4C */ unk32 mUnk_4C;
/* 50 */ unk32 mUnk_50;
/* 54 */ unk32 mUnk_54;
/* 58 */ unk16 mUnk_58;
/* 5A */ volatile u16 mUnk_5A;
/* 5C */ u16 mUnk_5C;
/* 5E */ STRUCT_PAD(0x5E, 0x60);
/* 60 */ unk32 mUnk_60;
/* 64 */ unk32 mUnk_64;
/* 68 */ unk32 mUnk_68;
MapObjectUnkSTAT();
/* 00 */ virtual bool vfunc_00() override; // Init
/* 08 */ virtual void vfunc_08() override;
/* 0C */ virtual void vfunc_0C() override;
/* 14 */ virtual void vfunc_14() override;
/* 30 */ virtual ~MapObjectUnkSTAT() override;
void func_ov063_0215f6d0(void);
void func_ov063_0215f710(void);
void func_ov063_0215f798(void);
void func_ov063_0215f7ac(void);
void func_ov063_0215fc40(void);
void func_ov063_0215fc40(unk32 param1);
void func_ov063_0215fc88(void);
void func_ov063_0215fce0(void);
unk32 func_ov063_0215fce0(void);
};
class MapObjectProfileUnkSTAT : public MapObjectProfile {
class MapObjectProfileUnkSTAT_Base_D4 : public MapObject_10 {
public:
};
class MapObjectProfileUnkSTAT_Base : public MapObjectProfile_Derived2 {
public:
/* 00 (base) */
/* D4 */ MapObjectProfileUnkSTAT_Base_D4 mUnk_D4;
/* F8 */
MapObjectProfileUnkSTAT_Base(MapObjectId mapObjId1, MapObjectId mapObjId2) :
MapObjectProfile_Derived2(mapObjId1, mapObjId2),
mUnk_D4() {};
};
class MapObjectProfileUnkSTAT : public MapObjectProfileUnkSTAT_Base {
public:
/* 00 (base) */
/* F8 */
MapObjectProfileUnkSTAT();
~MapObjectProfileUnkSTAT();