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
@@ -85,6 +85,7 @@ src/063_Shrine/MapObject/MapObjectUnkLTRW.cpp:
.text start:0x02160ad0 end:0x02160e98
.init start:0x02162d20 end:0x02162da0
.ctor start:0x02162e6c end:0x02162e70
.data start:0x021639c4 end:0x02163a94
.bss start:0x021646f8 end:0x02164800
src/063_Shrine/MapObject/MapObjectUnkMTJR.cpp:
+7 -7
View File
@@ -1180,17 +1180,17 @@ from:0x02160aec kind:arm_call to:0x02011f3c module:main
from:0x02160af8 kind:arm_call to:0x02160bd0 module:overlay(63)
from:0x02160b10 kind:arm_call to:0x0209c9a8 module:overlay(0)
from:0x02160b20 kind:arm_call to:0x0207c018 module:overlay(0)
from:0x02160bb4 kind:load to:0x021639fc module:overlay(63)
from:0x02160bb8 kind:load to:0x02163a34 module:overlay(63)
from:0x02160bbc kind:load to:0x02163a18 module:overlay(63)
from:0x02160bb4 kind:load to:0x021639f4 module:overlay(63) add:0x8
from:0x02160bb8 kind:load to:0x02163a2c module:overlay(63) add:0x8
from:0x02160bbc kind:load to:0x02163a10 module:overlay(63) add:0x8
from:0x02160bc8 kind:load to:0x021639c4 module:overlay(63)
from:0x02160bd8 kind:arm_call to:0x0209cfe0 module:overlay(0)
from:0x02160c30 kind:arm_call_thumb to:0x02057b70 module:overlay(0)
from:0x02160c60 kind:load to:0x02163a5c module:overlay(63)
from:0x02160c60 kind:load to:0x02163a54 module:overlay(63) add:0x8
from:0x02160c64 kind:load to:0x02164708 module:overlay(63)
from:0x02160c68 kind:load to:0x021639e4 module:overlay(63)
from:0x02160c68 kind:load to:0x021639dc module:overlay(63) add:0x8
from:0x02160cb8 kind:arm_call to:0x02160d18 module:overlay(63)
from:0x02160cc4 kind:load to:0x021647dc module:overlay(63)
from:0x02160cc4 kind:load to:0x02164708 add:0xd4 module:overlay(63)
from:0x02160d04 kind:arm_call to:0x020e0f30 module:overlay(31)
from:0x02160d50 kind:arm_call to:0x0209d22c module:overlay(0)
from:0x02160d5c kind:arm_call to:0x020730ac module:overlay(0)
@@ -1212,7 +1212,7 @@ from:0x02160ed8 kind:arm_call to:0x0209c9a8 module:overlay(0)
from:0x02160ee8 kind:arm_call to:0x0207c018 module:overlay(0)
from:0x02160f48 kind:load to:0x02163820 module:overlay(63) add:0x8
from:0x02160f4c kind:load to:0x02163858 module:overlay(63) add:0x8
from:0x02160f50 kind:load to:0x02163a9c module:overlay(63)
from:0x02160f50 kind:load to:0x02163a94 module:overlay(63) add:0x8
from:0x02160f6c kind:arm_call to:0x0209cfe0 module:overlay(0)
from:0x02160fc4 kind:arm_call_thumb to:0x02057b70 module:overlay(0)
from:0x02160ff4 kind:load to:0x02163ab8 module:overlay(63)
+16 -17
View File
@@ -308,13 +308,13 @@ _ZN23MapObjectProfileUnkLTRW10GetProfileEv kind:function(arm,size=0xc) addr:0x02
_ZN23MapObjectProfileUnkLTRW6CreateEv kind:function(arm,size=0x24) addr:0x02160adc
_ZN23MapObjectProfileUnkLTRWC1Ev kind:function(arm,size=0xd0) addr:0x02160b00
_ZN16MapObjectUnkLTRWC1Ev kind:function(arm,size=0x9c) addr:0x02160bd0
_ZN16MapObjectUnkLTRW19func_ov063_02160c6cEv kind:function(arm,size=0x5c) addr:0x02160c6c
_ZN16MapObjectUnkLTRW19func_ov063_02160cc8Ev kind:function(arm,size=0x1c) addr:0x02160cc8
_ZN16MapObjectUnkLTRW19func_ov063_02160ce4Ev kind:function(arm,size=0x34) addr:0x02160ce4
_ZN16MapObjectUnkLTRW19func_ov063_02160d18Ev kind:function(arm,size=0x1c) addr:0x02160d18
_ZN16MapObjectUnkLTRW19func_ov063_02160d34Ev kind:function(arm,size=0xc4) addr:0x02160d34
_ZN16MapObjectUnkLTRW19func_ov063_02160df8Ev kind:function(arm,size=0x20) addr:0x02160df8
_ZN16MapObjectUnkLTRW19func_ov063_02160e18Ev kind:function(arm,size=0x24) addr:0x02160e18
_ZN16MapObjectUnkLTRW8vfunc_00Ev kind:function(arm,size=0x5c) addr:0x02160c6c
_ZN16MapObjectUnkLTRW8vfunc_08Ev kind:function(arm,size=0x1c) addr:0x02160cc8
_ZN16MapObjectUnkLTRW8vfunc_1CE8ActorRefiP7VecFx32 kind:function(arm,size=0x34) addr:0x02160ce4
_ZN16MapObjectUnkLTRW19func_ov063_02160d18Ei kind:function(arm,size=0x1c) addr:0x02160d18
_ZN16MapObjectUnkLTRW8vfunc_28Eiii kind:function(arm,size=0xc4) addr:0x02160d34
_ZN16MapObjectUnkLTRW8vfunc_14Ev kind:function(arm,size=0x20) addr:0x02160df8
_ZN24UnkStruct_ov063_021639e49vfunc2_04Ev kind:function(arm,size=0x24) addr:0x02160e18
_ZN16MapObjectUnkLTRWD1Ev kind:function(arm,size=0x20) addr:0x02160e3c
_ZN16MapObjectUnkLTRWD0Ev kind:function(arm,size=0x28) addr:0x02160e5c
_ZN23MapObjectProfileUnkLTRWD1Ev kind:function(arm,size=0x14) addr:0x02160e84
@@ -395,7 +395,7 @@ __sinit_ov063_021629c4 kind:function(arm,size=0x168) addr:0x021629c4
__sinit_ActorUnkRBLS.cpp kind:function(arm,size=0x50) addr:0x02162b2c
__sinit_MapObjectUnkSTAT.cpp kind:function(arm,size=0x50) addr:0x02162b7c
__sinit_MapObjectUnkWLMS.cpp kind:function(arm,size=0x154) addr:0x02162bcc
__sinit_MapObjectUnkLTRW.cpp kind:function(arm,size=0x80) addr:0x02162d20
__sinit_MapObjectUnkLTRW.cpp kind:function(arm,size=0x80) addr:0x02162d20 local
__sinit_MapObjectUnkMTJR.cpp kind:function(arm,size=0x50) addr:0x02162da0
__sinit_MapObjectUnkSWCR.cpp kind:function(arm,size=0x50) addr:0x02162df0
.p__sinit_ActorUnkCANS.cpp kind:data(word) addr:0x02162e40
@@ -409,7 +409,7 @@ __sinit_MapObjectUnkSWCR.cpp kind:function(arm,size=0x50) addr:0x02162df0
.p__sinit_ActorUnkRBLS.cpp kind:data(word) addr:0x02162e60
.p__sinit_MapObjectUnkSTAT.cpp kind:data(word) addr:0x02162e64
.p__sinit_MapObjectUnkWLMS.cpp kind:data(word) addr:0x02162e68
.p__sinit_MapObjectUnkLTRW.cpp kind:data(word) addr:0x02162e6c
.p__sinit_MapObjectUnkLTRW.cpp kind:data(word) addr:0x02162e6c local
.p__sinit_MapObjectUnkMTJR.cpp kind:data(word) addr:0x02162e70
.p__sinit_MapObjectUnkSWCR.cpp kind:data(word) addr:0x02162e74
_ZTV24UnkStruct_ov063_02162e88 kind:data(any) addr:0x02162e80
@@ -484,13 +484,13 @@ data_ov063_02163910 kind:data(any) addr:0x02163910
data_ov063_02163928 kind:data(any) addr:0x02163928
data_ov063_02163944 kind:data(any) addr:0x02163944
_ZTV19data_ov063_02163980 kind:data(any) addr:0x02163980
data_ov063_021639c4 kind:data(any) addr:0x021639c4
data_ov063_021639e4 kind:data(any) addr:0x021639e4
data_ov063_021639fc kind:data(any) addr:0x021639fc
data_ov063_02163a18 kind:data(any) addr:0x02163a18
data_ov063_02163a34 kind:data(any) addr:0x02163a34
data_ov063_02163a5c kind:data(any) addr:0x02163a5c
data_ov063_02163a9c kind:data(any) addr:0x02163a9c
data_ov063_021639c4 kind:data(any) addr:0x021639c4 local
_ZTV24UnkStruct_ov063_021639e4 kind:data(any) addr:0x021639dc
_ZTV28MapObjectProfileUnkLTRW_Base kind:data(any) addr:0x021639f4
_ZTV23MapObjectProfileUnkLTRW kind:data(any) addr:0x02163a10
_ZTV31MapObjectProfileUnkLTRW_Base_D4 kind:data(any) addr:0x02163a2c
_ZTV16MapObjectUnkLTRW kind:data(any) addr:0x02163a54
data_ov063_02163a9c kind:data(any) addr:0x02163a94
data_ov063_02163ab8 kind:data(any) addr:0x02163ab8
data_ov063_02163af8 kind:data(any) addr:0x02163af8
data_ov063_02163b0c kind:data(any) addr:0x02163b0c
@@ -536,7 +536,6 @@ data_ov063_021646d8 kind:bss addr:0x021646d8
_ZGVN15ProfileInstanceI23MapObjectProfileUnkLTRWE8sProfileE kind:bss addr:0x021646f8
@12257 kind:bss addr:0x021646fc
_ZN15ProfileInstanceI23MapObjectProfileUnkLTRWE8sProfileE kind:bss addr:0x02164708
data_ov063_021647dc kind:bss addr:0x021647dc
_ZGVN15ProfileInstanceI23MapObjectProfileUnkMTJRE8sProfileE kind:bss addr:0x02164800
@12263 kind:bss addr:0x02164804
_ZN15ProfileInstanceI23MapObjectProfileUnkMTJRE8sProfileE kind:bss addr:0x02164810
@@ -85,6 +85,7 @@ src/063_Shrine/MapObject/MapObjectUnkLTRW.cpp:
.text start:0x021628e8 end:0x02162cb0
.init start:0x02164b38 end:0x02164bb8
.ctor start:0x02164c84 end:0x02164c88
.data start:0x021657e4 end:0x021658b4
.bss start:0x02166518 end:0x02166620
src/063_Shrine/MapObject/MapObjectUnkMTJR.cpp:
+7 -7
View File
@@ -1188,17 +1188,17 @@ from:0x02162904 kind:arm_call to:0x02011f3c module:main
from:0x02162910 kind:arm_call to:0x021629e8 module:overlay(63)
from:0x02162928 kind:arm_call to:0x0209e16c module:overlay(0)
from:0x02162938 kind:arm_call to:0x0207d6d0 module:overlay(0)
from:0x021629cc kind:load to:0x0216581c module:overlay(63)
from:0x021629d0 kind:load to:0x02165854 module:overlay(63)
from:0x021629d4 kind:load to:0x02165838 module:overlay(63)
from:0x021629cc kind:load to:0x02165814 module:overlay(63) add:0x8
from:0x021629d0 kind:load to:0x0216584c module:overlay(63) add:0x8
from:0x021629d4 kind:load to:0x02165830 module:overlay(63) add:0x8
from:0x021629e0 kind:load to:0x021657e4 module:overlay(63)
from:0x021629f0 kind:arm_call to:0x0209e7a4 module:overlay(0)
from:0x02162a48 kind:arm_call_thumb to:0x020590f0 module:overlay(0)
from:0x02162a78 kind:load to:0x0216587c module:overlay(63)
from:0x02162a78 kind:load to:0x02165874 module:overlay(63) add:0x8
from:0x02162a7c kind:load to:0x02166528 module:overlay(63)
from:0x02162a80 kind:load to:0x02165804 module:overlay(63)
from:0x02162a80 kind:load to:0x021657fc module:overlay(63) add:0x8
from:0x02162ad0 kind:arm_call to:0x02162b30 module:overlay(63)
from:0x02162adc kind:load to:0x021665fc module:overlay(63)
from:0x02162adc kind:load to:0x02166528 add:0xd4 module:overlay(63)
from:0x02162b1c kind:arm_call to:0x020e2900 module:overlay(31)
from:0x02162b68 kind:arm_call to:0x0209e9f0 module:overlay(0)
from:0x02162b74 kind:arm_call to:0x02074764 module:overlay(0)
@@ -1220,7 +1220,7 @@ from:0x02162cf0 kind:arm_call to:0x0209e16c module:overlay(0)
from:0x02162d00 kind:arm_call to:0x0207d6d0 module:overlay(0)
from:0x02162d60 kind:load to:0x02165640 module:overlay(63) add:0x8
from:0x02162d64 kind:load to:0x02165678 module:overlay(63) add:0x8
from:0x02162d68 kind:load to:0x021658bc module:overlay(63)
from:0x02162d68 kind:load to:0x021658b4 module:overlay(63) add:0x8
from:0x02162d84 kind:arm_call to:0x0209e7a4 module:overlay(0)
from:0x02162ddc kind:arm_call_thumb to:0x020590f0 module:overlay(0)
from:0x02162e0c kind:load to:0x021658d8 module:overlay(63)
+16 -17
View File
@@ -310,13 +310,13 @@ _ZN23MapObjectProfileUnkLTRW10GetProfileEv kind:function(arm,size=0xc) addr:0x02
_ZN23MapObjectProfileUnkLTRW6CreateEv kind:function(arm,size=0x24) addr:0x021628f4
_ZN23MapObjectProfileUnkLTRWC1Ev kind:function(arm,size=0xd0) addr:0x02162918
_ZN16MapObjectUnkLTRWC1Ev kind:function(arm,size=0x9c) addr:0x021629e8
_ZN16MapObjectUnkLTRW19func_ov063_02160c6cEv kind:function(arm,size=0x5c) addr:0x02162a84
_ZN16MapObjectUnkLTRW19func_ov063_02160cc8Ev kind:function(arm,size=0x1c) addr:0x02162ae0
_ZN16MapObjectUnkLTRW19func_ov063_02160ce4Ev kind:function(arm,size=0x34) addr:0x02162afc
_ZN16MapObjectUnkLTRW19func_ov063_02160d18Ev kind:function(arm,size=0x1c) addr:0x02162b30
_ZN16MapObjectUnkLTRW19func_ov063_02160d34Ev kind:function(arm,size=0xc4) addr:0x02162b4c
_ZN16MapObjectUnkLTRW19func_ov063_02160df8Ev kind:function(arm,size=0x20) addr:0x02162c10
_ZN16MapObjectUnkLTRW19func_ov063_02160e18Ev kind:function(arm,size=0x24) addr:0x02162c30
_ZN16MapObjectUnkLTRW8vfunc_00Ev kind:function(arm,size=0x5c) addr:0x02162a84
_ZN16MapObjectUnkLTRW8vfunc_08Ev kind:function(arm,size=0x1c) addr:0x02162ae0
_ZN16MapObjectUnkLTRW8vfunc_1CE8ActorRefiP7VecFx32 kind:function(arm,size=0x34) addr:0x02162afc
_ZN16MapObjectUnkLTRW19func_ov063_02160d18Ei kind:function(arm,size=0x1c) addr:0x02162b30
_ZN16MapObjectUnkLTRW8vfunc_28Eiii kind:function(arm,size=0xc4) addr:0x02162b4c
_ZN16MapObjectUnkLTRW8vfunc_14Ev kind:function(arm,size=0x20) addr:0x02162c10
_ZN24UnkStruct_ov063_021639e49vfunc2_04Ev kind:function(arm,size=0x24) addr:0x02162c30
_ZN16MapObjectUnkLTRWD1Ev kind:function(arm,size=0x20) addr:0x02162c54
_ZN16MapObjectUnkLTRWD0Ev kind:function(arm,size=0x28) addr:0x02162c74
_ZN23MapObjectProfileUnkLTRWD1Ev kind:function(arm,size=0x14) addr:0x02162c9c
@@ -397,7 +397,7 @@ __sinit_ov063_021647dc kind:function(arm,size=0x168) addr:0x021647dc
__sinit_ActorUnkRBLS.cpp kind:function(arm,size=0x50) addr:0x02164944
__sinit_MapObjectUnkSTAT.cpp kind:function(arm,size=0x50) addr:0x02164994
__sinit_MapObjectUnkWLMS.cpp kind:function(arm,size=0x154) addr:0x021649e4
__sinit_MapObjectUnkLTRW.cpp kind:function(arm,size=0x80) addr:0x02164b38
__sinit_MapObjectUnkLTRW.cpp kind:function(arm,size=0x80) addr:0x02164b38 local
__sinit_MapObjectUnkMTJR.cpp kind:function(arm,size=0x50) addr:0x02164bb8
__sinit_MapObjectUnkSWCR.cpp kind:function(arm,size=0x50) addr:0x02164c08
.p__sinit_ActorUnkCANS.cpp kind:data(word) addr:0x02164c58
@@ -411,7 +411,7 @@ __sinit_MapObjectUnkSWCR.cpp kind:function(arm,size=0x50) addr:0x02164c08
.p__sinit_ActorUnkRBLS.cpp kind:data(word) addr:0x02164c78
.p__sinit_MapObjectUnkSTAT.cpp kind:data(word) addr:0x02164c7c
.p__sinit_MapObjectUnkWLMS.cpp kind:data(word) addr:0x02164c80
.p__sinit_MapObjectUnkLTRW.cpp kind:data(word) addr:0x02164c84
.p__sinit_MapObjectUnkLTRW.cpp kind:data(word) addr:0x02164c84 local
.p__sinit_MapObjectUnkMTJR.cpp kind:data(word) addr:0x02164c88
.p__sinit_MapObjectUnkSWCR.cpp kind:data(word) addr:0x02164c8c
_ZTV24UnkStruct_ov063_02162e88 kind:data(any) addr:0x02164ca0
@@ -487,13 +487,13 @@ data_ov063_02165730 kind:data(any) addr:0x02165730
data_ov063_02165748 kind:data(any) addr:0x02165748
data_ov063_02165764 kind:data(any) addr:0x02165764
_ZTV19data_ov063_021657a0 kind:data(any) addr:0x021657a0
data_ov063_021657e4 kind:data(any) addr:0x021657e4
data_ov063_02165804 kind:data(any) addr:0x02165804
data_ov063_0216581c kind:data(any) addr:0x0216581c
data_ov063_02165838 kind:data(any) addr:0x02165838
data_ov063_02165854 kind:data(any) addr:0x02165854
data_ov063_0216587c kind:data(any) addr:0x0216587c
data_ov063_021658bc kind:data(any) addr:0x021658bc
data_ov063_021639c4 kind:data(any) addr:0x021657e4 local
_ZTV24UnkStruct_ov063_021639e4 kind:data(any) addr:0x021657fc
_ZTV28MapObjectProfileUnkLTRW_Base kind:data(any) addr:0x02165814
_ZTV23MapObjectProfileUnkLTRW kind:data(any) addr:0x02165830
_ZTV31MapObjectProfileUnkLTRW_Base_D4 kind:data(any) addr:0x0216584c
_ZTV16MapObjectUnkLTRW kind:data(any) addr:0x02165874
data_ov063_021658bc kind:data(any) addr:0x021658b4
data_ov063_021658d8 kind:data(any) addr:0x021658d8
data_ov063_02165918 kind:data(any) addr:0x02165918
data_ov063_0216592c kind:data(any) addr:0x0216592c
@@ -541,7 +541,6 @@ data_ov063_021664f8 kind:bss addr:0x021664f8
_ZGVN15ProfileInstanceI23MapObjectProfileUnkLTRWE8sProfileE kind:bss addr:0x02166518
@32263 kind:bss addr:0x0216651c
_ZN15ProfileInstanceI23MapObjectProfileUnkLTRWE8sProfileE kind:bss addr:0x02166528
data_ov063_021665fc kind:bss addr:0x021665fc
_ZGVN15ProfileInstanceI23MapObjectProfileUnkMTJRE8sProfileE kind:bss addr:0x02166620
@32269 kind:bss addr:0x02166624
_ZN15ProfileInstanceI23MapObjectProfileUnkMTJRE8sProfileE kind:bss addr:0x02166630
+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) {}
};
+4
View File
@@ -894,6 +894,10 @@ public:
bool mUnk_04b;
bool mUnk_05;
};
struct {
unk16 mUnk_04h;
unk16 mUnk_06;
};
unk32 mUnk_04;
};
/* 08 */
-2
View File
@@ -10,8 +10,6 @@ extern char data_ov063_021625e8[0x10]; // = "RMSD";
ActorUnkZLSL_AnimationTag data_ov063_021634b0 = {0, "RMSD"};
extern "C" void func_ov000_02099ff8(unk32 *param1, ActorUnkZLSL_AnimationTag param2, unk32 param8);
DECL_PROFILE(ActorProfileUnkRMSD);
Actor *ActorProfileUnkRMSD::Create() {
-1
View File
@@ -10,7 +10,6 @@ extern char data_ov063_02162578[0x10]; // = "RMSV";
extern char data_ov063_02162588[0x10]; // = "RMSV_wall";
// Overlay 0
extern "C" void func_ov000_02099ff8(unk32 *param1, ActorUnkZLSL_AnimationTag param2, unk32 param8);
extern "C" void func_ov000_02099e58(UnkStruct_ov063_021632e4 *param1, ActorUnkZLSL_AnimationTag param2, unk32 param8);
// Overlay 31
+1 -4
View File
@@ -1,6 +1,5 @@
#include "Actor/ActorUnkRMSW.hpp"
#include "Actor/ActorId.hpp"
#include "Actor/ActorUnkZLSL_ZSRS.hpp"
#include "Actor/Actor_Derived1.hpp"
#include "nns/g3d/g3d.h"
#include "profile.hpp"
@@ -11,8 +10,6 @@ extern char data_ov063_021625a8[0x10]; // = "RMSW";
struct ActorUnkZLSL_AnimationTag data_ov063_02163388 = {0, "RMSW"};
extern "C" void func_ov000_02099ff8(unk32 *param1, struct UnkStruct_data_ov063_02163388 param2, unk32 param8);
DECL_PROFILE(ActorProfileUnkRMSW);
Actor *ActorProfileUnkRMSW::Create() {
@@ -27,7 +24,7 @@ ActorUnkRMSW::ActorUnkRMSW() :
bool ActorUnkRMSW::vfunc_18(unk32 param1) {
bool res = ActorUnkRMSBase::vfunc_18(param1);
((UnkStruct_ov000_020b31a8 *) &this->mUnk_158)->func_ov000_02099ff8(data_ov063_02163388, 0x1000);
this->mUnk_158.func_ov000_02099ff8(data_ov063_02163388, 0x1000);
return res;
}
+111 -15
View File
@@ -1,26 +1,122 @@
//! TODO: This file was generated automatically and might contain errors
#include "MapObject/MapObjectUnkLTRW.hpp"
#include "System/SysNew.hpp"
#include "Actor/Actor_Derived1.hpp"
#include "MapObject/MapObject.hpp"
#include "MapObject/MapObjectProfile.hpp"
#include "Unknown/Common.hpp"
#include "Unknown/UnkStruct_027e09b8.hpp"
#include "Unknown/UnkStruct_027e0cd8.hpp"
#include "flags.h"
#include "nitro/fx.h"
#include "nitro/math.h"
#include "nns/g3d/g3d.h"
#include "profile.hpp"
// Overlay 31
extern "C" void func_ov031_020e0f30(ActorRef);
struct UnkStruct_data_ov063_021639c4 {
/* 00 */ unk32 mUnk_00;
/* 04 */ unk32 mUnk_04;
/* 08 */ unk32 mUnk_08;
/* 0C */ VecFx32 vec;
UnkStruct_data_ov063_021639c4(unk32 param) {
mUnk_08 = param;
mUnk_04 = param + 4;
mUnk_00 = param + 7;
VecFx32_Init(0, 0, 0, &vec);
}
};
const UnkStruct_data_ov063_021639c4 data_ov063_021639c4(0x10002);
DECL_PROFILE(MapObjectProfileUnkLTRW);
MapObject *MapObjectProfileUnkLTRW::Create() {
return new(HeapIndex_2) MapObjectUnkLTRW();
return new(HeapIndex_ITCM) MapObjectUnkLTRW();
}
MapObjectProfileUnkLTRW::MapObjectProfileUnkLTRW() :
MapObjectProfile(MapObjectId_LTRW) {}
MapObjectProfileUnkLTRW_Base(MapObjectId_LTRW, MapObjectId_LTRW) {
mUnk_D4.mUnk_08 = 0x04007007;
VecFx32_Init(data_ov063_021639c4.vec.x - FLOAT_TO_FX32(.6f), data_ov063_021639c4.vec.y,
data_ov063_021639c4.vec.z - FLOAT_TO_FX32(.4f), &mUnk_D4.mUnk_0C);
VecFx32_Init(data_ov063_021639c4.vec.x + FLOAT_TO_FX32(.6f), data_ov063_021639c4.vec.y + FLOAT_TO_FX32(1.2f),
data_ov063_021639c4.vec.z + FLOAT_TO_FX32(.4f), &mUnk_D4.mUnk_18);
mUnk_06 = 1;
mUnk_0C = 0x1333;
}
MapObjectUnkLTRW::MapObjectUnkLTRW() {}
MapObjectUnkLTRW::MapObjectUnkLTRW() :
mUnk_40(G3d_GetModelPtr(GET_PROFILE(MapObjectProfileUnkLTRW)->mUnk_20.mUnk_50)),
mUnk_A0(1),
mUnk_A4(0),
mUnk_A6(0),
mUnk_A8() {}
void MapObjectUnkLTRW::func_ov063_02160c6c(void) {}
void MapObjectUnkLTRW::func_ov063_02160cc8(void) {}
void MapObjectUnkLTRW::func_ov063_02160ce4(void) {}
void MapObjectUnkLTRW::func_ov063_02160d18(void) {}
void MapObjectUnkLTRW::func_ov063_02160d34(void) {}
void MapObjectUnkLTRW::func_ov063_02160df8(void) {}
void MapObjectUnkLTRW::func_ov063_02160e18(void) {}
bool MapObjectUnkLTRW::vfunc_00() {
mPos.x -= FLOAT_TO_FX32(.5f);
mPos.z -= FLOAT_TO_FX32(.5f);
mUnk_10 = &GET_PROFILE(MapObjectProfileUnkLTRW)->mUnk_D4;
SET_FLAG(mFlags, MapObjFlag_9);
mUnk_18[0] = 0x10;
mUnk_A8.mUnk_04h = mUnk_20.mUnk_08[0];
mUnk_A8.mUnk_06 = mUnk_20.mUnk_0A[0];
this->func_ov063_02160d18(0);
return true;
}
MapObjectUnkLTRW::~MapObjectUnkLTRW() {}
MapObjectProfileUnkLTRW::~MapObjectProfileUnkLTRW() {}
void MapObjectUnkLTRW::vfunc_08() {
if (mUnk_A4 < mUnk_A6) {
mUnk_A4++;
}
}
void MapObjectUnkLTRW::vfunc_14() {
mUnk_40.vfunc_18(&mPos);
}
bool MapObjectUnkLTRW::vfunc_1C(ActorRef param1, unk32 param2, VecFx32 *param3) {
if (param2 == 0xD) {
func_ov031_020e0f30(param1);
return false;
}
return true;
}
unk32 MapObjectUnkLTRW::vfunc_28(unk32 param1, unk32 param2, unk32 param3) {
unk16 *plocal_60;
unk16 local_60;
plocal_60 = (unk16 *) &local_60;
MapObject::func_ov000_0209d22c(plocal_60, this, param1);
unk16 angle = plocal_60[0];
ActorUnk_vfunc_B0 varActor = ActorUnk_vfunc_B0();
if ((angle <= DEG_TO_ANG(90)) && (angle >= -DEG_TO_ANG(90))) {
varActor.mUnk_0C = mUnk_20.mUnk_10;
varActor.mUnk_14 = 2;
varActor.mUnk_28 = (uintptr_t) this;
varActor.mUnk_32 = 3;
VecFx32_Copy(&mPos, &varActor.mUnk_34);
varActor.mUnk_04 = &mUnk_A8;
} else {
varActor.mUnk_0C = data_ov063_021639c4.mUnk_08;
varActor.mUnk_14 = 0;
}
data_027e09b8->func_ov000_02073470(&varActor, 0);
return 0;
}
void MapObjectUnkLTRW::func_ov063_02160d18(unk32 param1) {
mUnk_A0 = param1;
mUnk_A6 = -1;
mUnk_A4 = 0;
}
void UnkStruct_ov063_021639e4::vfunc2_04() {
data_027e0cd8->func_ov000_02081d7c(mUnk_06, mUnk_04h, 1);
}