Decompiling MapObjectUnkLTRW (#142)

* feat: Start decompiling MapObjectUnkLTRW

* fix: Remove unused code in ActorUnkCANS

* feat: Match LTRW vfuncs

* feat: Match LTRW functions

* fix: Update MapObject vfunc_28 with new signature, and symbols

* feat: Update a class with parent

* feat: Create hollow parent class

* feat: Complete sinit (non-matching)

* feat: Match all of LTRW

* feat: Sync jp

* feat: Improve constants for their own type

* Update src/063_Shrine/MapObject/MapObjectUnkLTRW.cpp

Co-authored-by: Yanis <35189056+Yanis002@users.noreply.github.com>

* fix: Update some vfunc_28 with new signature

* fix: Broken data

* fix: More data

* fix: Update vfunc 28 🤡

---------

Co-authored-by: Yanis <35189056+Yanis002@users.noreply.github.com>
This commit is contained in:
Mityno
2026-08-25 13:10:10 +00:00
committed by GitHub
parent db8e927982
commit 939c492b33
15 changed files with 256 additions and 86 deletions
+5
View File
@@ -94,6 +94,11 @@ public:
/* 20 */
};
class MapObject_10_Derived1 : public MapObject_10 {
public:
MapObject_10_Derived1() {}
};
class MapObject_20 {
public:
/* 00 */ u16 mParams[4]; // parameters
+42 -14
View File
@@ -1,36 +1,64 @@
//! TODO: This file was generated automatically and might contain errors
#pragma once
#include "Actor/ActorUnkTLKT.hpp"
#include "MapObject/MapObject.hpp"
#include "MapObject/MapObjectProfile.hpp"
#include "Render/ModelRender.hpp"
#include "global.h"
#include "types.h"
class UnkStruct_ov063_021639e4 : public ActorUnkTLKT_9C_Base {
public:
/* 00 (vtable) */
/* 08 */
UnkStruct_ov063_021639e4() {
mUnk_04h = 0;
mUnk_06 = 0;
};
/* 04 */ virtual void vfunc2_04() override;
};
class MapObjectUnkLTRW : public MapObject {
public:
/* 00 (base) */
/* 40 */
/* 40 */ ModelRender mUnk_40;
/* A0 */ unk32 mUnk_A0;
/* A4 */ volatile u16 mUnk_A4;
/* A6 */ u16 mUnk_A6;
/* A8 */ UnkStruct_ov063_021639e4 mUnk_A8;
MapObjectUnkLTRW();
/* 30 */ virtual ~MapObjectUnkLTRW() override;
/* 00 */ virtual bool vfunc_00() override;
/* 08 */ virtual void vfunc_08() override;
/* 14 */ virtual void vfunc_14() override;
/* 1C */ virtual bool vfunc_1C(ActorRef param1, unk32 param2, VecFx32 *param3) override;
/* 28 */ virtual unk32 vfunc_28(unk32 param1, unk32 param2, unk32 param3) override;
void func_ov063_02160c6c(void);
void func_ov063_02160cc8(void);
void func_ov063_02160ce4(void);
void func_ov063_02160d18(void);
void func_ov063_02160d34(void);
void func_ov063_02160df8(void);
void func_ov063_02160e18(void);
void func_ov063_02160d18(unk32 param1);
};
class MapObjectProfileUnkLTRW : public MapObjectProfile {
class MapObjectProfileUnkLTRW_Base_D4 : public MapObject_10 {
public:
};
class MapObjectProfileUnkLTRW_Base : public MapObjectProfile_Derived2 {
public:
/* 00 (base) */
/* D4 */ MapObjectProfileUnkLTRW_Base_D4 mUnk_D4;
/* F8 */
MapObjectProfileUnkLTRW_Base(MapObjectId mapObjId1, MapObjectId mapObjId2) :
MapObjectProfile_Derived2(mapObjId1, mapObjId2),
mUnk_D4() {};
};
class MapObjectProfileUnkLTRW : public MapObjectProfileUnkLTRW_Base {
public:
/* 00 (base) */
MapObjectProfileUnkLTRW();
~MapObjectProfileUnkLTRW();
/* 0C */ virtual MapObject *Create();
-2
View File
@@ -1,5 +1,3 @@
//! TODO: This file was generated automatically and might contain errors
#pragma once
#include "MapObject/MapObject.hpp"
+45
View File
@@ -0,0 +1,45 @@
#pragma once
class MapObjectPot_Base : public MapObject {
public:
/* 00 (base) */
/* 40 */
MapObjectPot_Base();
// data_ov000_020b35d0
/* 00 */ virtual bool vfunc_00(); // func_ov000_0209d780
/* 24 */ virtual void vfunc_24(MapObject *param1, VecFx32 param2) override; // func_ov000_0209d8e8
/* 28 */ virtual unk32 vfunc_28(unk32 param1) override; // func_ov000_0209d9f8
/* 30 */ virtual ~MapObjectPot_Base() = 0 override;
/* 38 */ virtual void vfunc_38() override; // func_ov000_0209d9ac
/* 3C */ virtual bool vfunc_3C() override; // func_ov000_0209db74
/* 40 */ virtual bool vfunc_40() override; // func_ov000_0209db7c
/* 44 */ virtual void vfunc_44(unk32, unk32) override; // func_ov000_0209d7a4
/* 48 */ virtual void vfunc_48() override; // func_ov000_0209da60
/* 4C */ virtual void vfunc_4C() override; // func_ov000_0209da70
/* 50 */ virtual void vfunc_50() override; // func_ov000_0209dac0
/* 54 */ virtual unk32 vfunc_54() override; // func_ov000_0209da64
// overlay 0
void func_ov000_0209d8e8(MapObjectPot_Base *param1, fx32 param2);
unk32 func_ov000_0209da64();
};
class MapObject_10_Pot : public MapObject_10 {
public:
/* 00 (base) */
/* 24 */
MapObject_10_Pot() {}
};
class MapObjectProfilePot_Base : public MapObjectProfile_Derived2 {
public:
/* 00 (base) */
/* D4 */ MapObject_10_Pot mUnk_D4;
MapObjectProfilePot_Base(MapObjectId param1, MapObjectId param2) :
MapObjectProfile_Derived2(param1, param2) {}
};