Decompiling MapObject UnkTSUB (aka Pot) (#101)

* feat: begin decompilation of UnkTsub

* refactor: rename mapobject

* feat: delink

* feat: introduce virtual functions

* fix: rename map object in jp delink

* feat: match 91% of the mapobject

* feat: increate .data match

* refactor: rename ModelRender2 with its vtable address

* style: remove empty lines

* refactor: change magic value
This commit is contained in:
Alessevan
2026-07-05 13:35:40 +02:00
committed by GitHub
parent 33299ac188
commit 9987fee73a
20 changed files with 362 additions and 151 deletions
+2 -2
View File
@@ -141,7 +141,7 @@ public:
/* 18 */ virtual void vfunc_18(s8 *param1, s8 param2);
/* 1C */ virtual bool vfunc_1C(ActorRef param1, unk32 param2, VecFx32 *param3);
/* 20 */ virtual void vfunc_20();
/* 24 */ virtual void vfunc_24();
/* 24 */ virtual void vfunc_24(MapObject *param1, VecFx32 param2);
/* 28 */ virtual unk32 vfunc_28();
/* 2C */ virtual bool vfunc_2C(VecFx32 *param1);
/* 30 */ virtual ~MapObject();
@@ -176,7 +176,7 @@ public:
void func_ov000_0209d2f0(unk32 param1, unk32 param2, Vec2bCpp *param3);
void func_ov000_0209d3b4(unk32 param1, fx32 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_0209d518(VecFx32 *param1, unk32 param2, unk32 param3, u8 param4);
void func_ov000_0209d5c8(ActorRef ref);
void func_ov000_0209d614(unk32 param1);
bool func_ov000_0209d668();
+40
View File
@@ -0,0 +1,40 @@
#pragma once
#include "Actor/ActorId.hpp"
#include "MapObject/MapObject.hpp"
#include "MapObject/MapObjectProfile.hpp"
#include "MapObject_ov031.hpp"
#include "global.h"
#include "types.h"
class MapObjectPot : public MapObjectPot_Base {
public:
/* 00 (base) */
/* 40 */ ActorId mUnk_40;
/* 44 */ STRUCT_PAD(0x44, 0x48);
/* 48 */ ModelRender_ov000_020b198c mUnk_48;
MapObjectPot();
/* 04 */ virtual void vfunc_04() override; // func_ov031_02105088
/* 14 */ virtual void vfunc_14() override; // func_ov031_021052cc
/* 1C */ virtual bool vfunc_1C(ActorRef param1, unk32 param2, VecFx32 *param3); // func_ov031_021050b4
/* 24 */ virtual void vfunc_24(MapObject *param1, VecFx32 param2) override; // func_ov031_02105348
/* 30 */ virtual ~MapObjectPot() override;
/* 3C */ virtual bool vfunc_3C() override; // func_ov031_021053b4
/* 40 */ virtual bool vfunc_40() override; // func_ov031_021053fc
/* 48 */ virtual void vfunc_48() override; // func_ov031_021051d4
/* 54 */ virtual unk32 vfunc_54() override; // func_ov031_02105310
};
class MapObjectProfilePot : public MapObjectProfilePot_Base {
public:
/* 00 (base) */
MapObjectProfilePot();
~MapObjectProfilePot();
/* 0C */ virtual MapObject *Create();
static MapObjectProfilePot *GetProfile();
};
-39
View File
@@ -1,39 +0,0 @@
//! TODO: This file was generated automatically and might contain errors
#pragma once
#include "MapObject/MapObject.hpp"
#include "MapObject/MapObjectProfile.hpp"
#include "global.h"
#include "types.h"
class MapObjectUnkTSUB : public MapObject {
public:
/* 00 (base) */
/* 40 */
MapObjectUnkTSUB();
/* 30 */ virtual ~MapObjectUnkTSUB() override;
void func_ov031_02105088(void);
void func_ov031_021050b4(void);
void func_ov031_021051d4(void);
void func_ov031_021052cc(void);
void func_ov031_02105310(void);
void func_ov031_02105348(void);
void func_ov031_021053b4(void);
void func_ov031_021053fc(void);
};
class MapObjectProfileUnkTSUB : public MapObjectProfile {
public:
/* 00 (base) */
MapObjectProfileUnkTSUB();
~MapObjectProfileUnkTSUB();
/* 0C */ virtual MapObject *Create();
static MapObjectProfileUnkTSUB *GetProfile();
};
+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() 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) {}
};