diff --git a/config/eur/arm9/overlays/ov063/delinks.txt b/config/eur/arm9/overlays/ov063/delinks.txt index 854cb9f8..757a2895 100644 --- a/config/eur/arm9/overlays/ov063/delinks.txt +++ b/config/eur/arm9/overlays/ov063/delinks.txt @@ -92,6 +92,7 @@ src/063_Shrine/MapObject/MapObjectUnkMTJR.cpp: .text start:0x02160e98 end:0x02161430 .init start:0x02162da0 end:0x02162df0 .ctor start:0x02162e70 end:0x02162e74 + .data start:0x02163a94 end:0x02163af0 .bss start:0x02164800 end:0x02164904 src/063_Shrine/MapObject/MapObjectUnkSWCR.cpp: diff --git a/config/eur/arm9/overlays/ov063/relocs.txt b/config/eur/arm9/overlays/ov063/relocs.txt index d2aeeb58..90b96670 100644 --- a/config/eur/arm9/overlays/ov063/relocs.txt +++ b/config/eur/arm9/overlays/ov063/relocs.txt @@ -1215,12 +1215,12 @@ from:0x02160f4c kind:load to:0x02163858 add:0x8 module:overlay(63) from:0x02160f50 kind:load to:0x02163a94 add:0x8 module:overlay(63) 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) +from:0x02160ff4 kind:load to:0x02163ab0 module:overlay(63) add:0x8 from:0x02160ff8 kind:load to:0x02164810 module:overlay(63) from:0x0216100c kind:arm_call to:0x0209d29c module:overlay(0) from:0x02161050 kind:arm_call to:0x020a0334 module:overlay(0) from:0x0216105c kind:arm_call to:0x02161254 module:overlay(63) -from:0x02161068 kind:load to:0x021648e4 module:overlay(63) +from:0x02161068 kind:load to:0x02164810 add:0xd4 module:overlay(63) from:0x0216117c kind:arm_call to:0x020a0220 module:overlay(0) from:0x021611a0 kind:load to:0x02049be4 module:main from:0x021611a8 kind:load to:0x027e0cec module:dtcm @@ -1255,7 +1255,7 @@ from:0x02161480 kind:arm_call to:0x0207c018 module:overlay(0) from:0x021614e0 kind:load to:0x02163820 add:0x8 module:overlay(63) from:0x021614e4 kind:load to:0x02163858 add:0x8 module:overlay(63) from:0x021614e8 kind:load to:0x02163b0c module:overlay(63) -from:0x02161508 kind:load to:0x02163af8 module:overlay(63) +from:0x02161508 kind:load to:0x02163af0 module:overlay(63) add:0x8 from:0x02161518 kind:load to:0x0216153c module:overlay(63) from:0x02161528 kind:load to:0x021615c4 module:overlay(63) from:0x02161538 kind:load to:0x02161638 module:overlay(63) diff --git a/config/eur/arm9/overlays/ov063/symbols.txt b/config/eur/arm9/overlays/ov063/symbols.txt index bd3c973b..3086ac8e 100644 --- a/config/eur/arm9/overlays/ov063/symbols.txt +++ b/config/eur/arm9/overlays/ov063/symbols.txt @@ -322,13 +322,13 @@ _ZN23MapObjectProfileUnkMTJR10GetProfileEv kind:function(arm,size=0xc) addr:0x02 _ZN23MapObjectProfileUnkMTJR6CreateEv kind:function(arm,size=0x24) addr:0x02160ea4 _ZN23MapObjectProfileUnkMTJRC1Ev kind:function(arm,size=0x9c) addr:0x02160ec8 _ZN16MapObjectUnkMTJRC1Ev kind:function(arm,size=0x98) addr:0x02160f64 -_ZN16MapObjectUnkMTJR19func_ov063_02160ffcEv kind:function(arm,size=0x74) addr:0x02160ffc -_ZN16MapObjectUnkMTJR19func_ov063_02161070Ev kind:function(arm,size=0x13c) addr:0x02161070 -_ZN16MapObjectUnkMTJR19func_ov063_021611acEv kind:function(arm,size=0x14) addr:0x021611ac -_ZN16MapObjectUnkMTJR19func_ov063_021611c0Ev kind:function(arm,size=0x94) addr:0x021611c0 -_ZN16MapObjectUnkMTJR19func_ov063_02161254Ev kind:function(arm,size=0x34) addr:0x02161254 +_ZN16MapObjectUnkMTJR8vfunc_00Ev kind:function(arm,size=0x74) addr:0x02160ffc +_ZN16MapObjectUnkMTJR8vfunc_08Ev kind:function(arm,size=0x13c) addr:0x02161070 +_ZN16MapObjectUnkMTJR8vfunc_0CEv kind:function(arm,size=0x14) addr:0x021611ac +_ZN16MapObjectUnkMTJR8vfunc_1CE8ActorRefiP7VecFx32 kind:function(arm,size=0x94) addr:0x021611c0 +_ZN16MapObjectUnkMTJR19func_ov063_02161254Ei kind:function(arm,size=0x34) addr:0x02161254 _ZN16MapObjectUnkMTJR19func_ov063_02161288Ev kind:function(arm,size=0xf8) addr:0x02161288 -_ZN16MapObjectUnkMTJR19func_ov063_02161380Ev kind:function(arm,size=0x44) addr:0x02161380 +_ZN16MapObjectUnkMTJR8vfunc_14Ev kind:function(arm,size=0x44) addr:0x02161380 _ZN16MapObjectUnkMTJRD1Ev kind:function(arm,size=0x28) addr:0x021613c4 _ZN16MapObjectUnkMTJRD0Ev kind:function(arm,size=0x30) addr:0x021613ec _ZN23MapObjectProfileUnkMTJRD1Ev kind:function(arm,size=0x14) addr:0x0216141c @@ -490,9 +490,9 @@ _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 +_ZTV23MapObjectProfileUnkMTJR kind:data(any) addr:0x02163a94 +_ZTV16MapObjectUnkMTJR kind:data(any) addr:0x02163ab0 +data_ov063_02163af8 kind:data(any) addr:0x02163af0 data_ov063_02163b0c kind:data(any) addr:0x02163b0c data_ov063_02163b28 kind:data(any) addr:0x02163b28 _ZGVN15ProfileInstanceI19ActorProfileUnkCANSE8sProfileE kind:bss addr:0x02163b60 @@ -539,7 +539,6 @@ _ZN15ProfileInstanceI23MapObjectProfileUnkLTRWE8sProfileE kind:bss addr:0x021647 _ZGVN15ProfileInstanceI23MapObjectProfileUnkMTJRE8sProfileE kind:bss addr:0x02164800 @12263 kind:bss addr:0x02164804 _ZN15ProfileInstanceI23MapObjectProfileUnkMTJRE8sProfileE kind:bss addr:0x02164810 -data_ov063_021648e4 kind:bss addr:0x021648e4 _ZGVN15ProfileInstanceI23MapObjectProfileUnkSWCRE8sProfileE kind:bss addr:0x02164904 @12269 kind:bss addr:0x02164908 _ZN15ProfileInstanceI23MapObjectProfileUnkSWCRE8sProfileE kind:bss addr:0x02164914 diff --git a/config/jp/arm9/overlays/ov063/delinks.txt b/config/jp/arm9/overlays/ov063/delinks.txt index c51cc3f2..5c8b312b 100644 --- a/config/jp/arm9/overlays/ov063/delinks.txt +++ b/config/jp/arm9/overlays/ov063/delinks.txt @@ -92,6 +92,7 @@ src/063_Shrine/MapObject/MapObjectUnkMTJR.cpp: .text start:0x02162cb0 end:0x02163248 .init start:0x02164bb8 end:0x02164c08 .ctor start:0x02164c88 end:0x02164c8c + .data start:0x021658b4 end:0x02165910 .bss start:0x02166620 end:0x02166724 src/063_Shrine/MapObject/MapObjectUnkSWCR.cpp: diff --git a/config/jp/arm9/overlays/ov063/relocs.txt b/config/jp/arm9/overlays/ov063/relocs.txt index c4abdab5..aa537df1 100644 --- a/config/jp/arm9/overlays/ov063/relocs.txt +++ b/config/jp/arm9/overlays/ov063/relocs.txt @@ -1223,12 +1223,12 @@ from:0x02162d64 kind:load to:0x02165678 add:0x8 module:overlay(63) from:0x02162d68 kind:load to:0x021658b4 add:0x8 module:overlay(63) 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) +from:0x02162e0c kind:load to:0x021658d0 module:overlay(63) add:0x8 from:0x02162e10 kind:load to:0x02166630 module:overlay(63) from:0x02162e24 kind:arm_call to:0x0209ea60 module:overlay(0) from:0x02162e68 kind:arm_call to:0x020a1b0c module:overlay(0) from:0x02162e74 kind:arm_call to:0x0216306c module:overlay(63) -from:0x02162e80 kind:load to:0x02166704 module:overlay(63) +from:0x02162e80 kind:load to:0x02166630 add:0xd4 module:overlay(63) from:0x02162f94 kind:arm_call to:0x020a19f8 module:overlay(0) from:0x02162fb8 kind:load to:0x0204b164 module:main from:0x02162fc0 kind:load to:0x027e0cec module:dtcm @@ -1263,7 +1263,7 @@ from:0x02163298 kind:arm_call to:0x0207d6d0 module:overlay(0) from:0x021632f8 kind:load to:0x02165640 add:0x8 module:overlay(63) from:0x021632fc kind:load to:0x02165678 add:0x8 module:overlay(63) from:0x02163300 kind:load to:0x0216592c module:overlay(63) -from:0x02163320 kind:load to:0x02165918 module:overlay(63) +from:0x02163320 kind:load to:0x02165910 module:overlay(63) add:0x8 from:0x02163330 kind:load to:0x02163354 module:overlay(63) from:0x02163340 kind:load to:0x021633dc module:overlay(63) from:0x02163350 kind:load to:0x02163450 module:overlay(63) diff --git a/config/jp/arm9/overlays/ov063/symbols.txt b/config/jp/arm9/overlays/ov063/symbols.txt index 67fe7f36..a3900b72 100644 --- a/config/jp/arm9/overlays/ov063/symbols.txt +++ b/config/jp/arm9/overlays/ov063/symbols.txt @@ -324,13 +324,13 @@ _ZN23MapObjectProfileUnkMTJR10GetProfileEv kind:function(arm,size=0xc) addr:0x02 _ZN23MapObjectProfileUnkMTJR6CreateEv kind:function(arm,size=0x24) addr:0x02162cbc _ZN23MapObjectProfileUnkMTJRC1Ev kind:function(arm,size=0x9c) addr:0x02162ce0 _ZN16MapObjectUnkMTJRC1Ev kind:function(arm,size=0x98) addr:0x02162d7c -_ZN16MapObjectUnkMTJR19func_ov063_02160ffcEv kind:function(arm,size=0x74) addr:0x02162e14 -_ZN16MapObjectUnkMTJR19func_ov063_02161070Ev kind:function(arm,size=0x13c) addr:0x02162e88 -_ZN16MapObjectUnkMTJR19func_ov063_021611acEv kind:function(arm,size=0x14) addr:0x02162fc4 -_ZN16MapObjectUnkMTJR19func_ov063_021611c0Ev kind:function(arm,size=0x94) addr:0x02162fd8 -_ZN16MapObjectUnkMTJR19func_ov063_02161254Ev kind:function(arm,size=0x34) addr:0x0216306c +_ZN16MapObjectUnkMTJR8vfunc_00Ev kind:function(arm,size=0x74) addr:0x02162e14 +_ZN16MapObjectUnkMTJR8vfunc_08Ev kind:function(arm,size=0x13c) addr:0x02162e88 +_ZN16MapObjectUnkMTJR8vfunc_0CEv kind:function(arm,size=0x14) addr:0x02162fc4 +_ZN16MapObjectUnkMTJR8vfunc_1CE8ActorRefiP7VecFx32 kind:function(arm,size=0x94) addr:0x02162fd8 +_ZN16MapObjectUnkMTJR19func_ov063_02161254Ei kind:function(arm,size=0x34) addr:0x0216306c _ZN16MapObjectUnkMTJR19func_ov063_02161288Ev kind:function(arm,size=0xf8) addr:0x021630a0 -_ZN16MapObjectUnkMTJR19func_ov063_02161380Ev kind:function(arm,size=0x44) addr:0x02163198 +_ZN16MapObjectUnkMTJR8vfunc_14Ev kind:function(arm,size=0x44) addr:0x02163198 _ZN16MapObjectUnkMTJRD1Ev kind:function(arm,size=0x28) addr:0x021631dc _ZN16MapObjectUnkMTJRD0Ev kind:function(arm,size=0x30) addr:0x02163204 _ZN23MapObjectProfileUnkMTJRD1Ev kind:function(arm,size=0x14) addr:0x02163234 @@ -493,9 +493,9 @@ _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 +_ZTV23MapObjectProfileUnkMTJR kind:data(any) addr:0x021658b4 +_ZTV16MapObjectUnkMTJR kind:data(any) addr:0x021658d0 +data_ov063_02165918 kind:data(any) addr:0x02165910 data_ov063_0216592c kind:data(any) addr:0x0216592c data_ov063_02165948 kind:data(any) addr:0x02165948 _ZGVN15ProfileInstanceI19ActorProfileUnkCANSE8sProfileE kind:bss addr:0x02165980 @@ -544,7 +544,6 @@ _ZN15ProfileInstanceI23MapObjectProfileUnkLTRWE8sProfileE kind:bss addr:0x021665 _ZGVN15ProfileInstanceI23MapObjectProfileUnkMTJRE8sProfileE kind:bss addr:0x02166620 @32269 kind:bss addr:0x02166624 _ZN15ProfileInstanceI23MapObjectProfileUnkMTJRE8sProfileE kind:bss addr:0x02166630 -data_ov063_02166704 kind:bss addr:0x02166704 _ZGVN15ProfileInstanceI23MapObjectProfileUnkSWCRE8sProfileE kind:bss addr:0x02166724 @32275 kind:bss addr:0x02166728 _ZN15ProfileInstanceI23MapObjectProfileUnkSWCRE8sProfileE kind:bss addr:0x02166734 diff --git a/include/MapObject/MapObjectUnkMTJR.hpp b/include/MapObject/MapObjectUnkMTJR.hpp index 40e7300f..5132a492 100644 --- a/include/MapObject/MapObjectUnkMTJR.hpp +++ b/include/MapObject/MapObjectUnkMTJR.hpp @@ -1,36 +1,41 @@ -//! TODO: This file was generated automatically and might contain errors - #pragma once #include "MapObject/MapObject.hpp" #include "MapObject/MapObjectProfile.hpp" -#include "global.h" +#include "MapObject/MapObjectUnkSTAT.hpp" +#include "Render/ModelRender.hpp" +#include "Unknown/Common.hpp" #include "types.h" class MapObjectUnkMTJR : public MapObject { public: /* 00 (base) */ - /* 40 */ + /* 40 */ ModelRender mUnk_40; + /* A0 */ unk32 mUnk_A0; + /* A4 */ volatile u16 mUnk_A4; // Probably a counter + /* A6 */ u16 mUnk_A6; // Counter (mUnk_A4) bound + /* A8 */ UnkSystem7 mUnk_A8; + /* AC */ unk32 mUnk_AC; + /* B0 */ unk32 mUnk_B0; MapObjectUnkMTJR(); - /* 30 */ virtual ~MapObjectUnkMTJR() override; + /* 00 */ virtual bool vfunc_00() override; + /* 08 */ virtual void vfunc_08() override; + /* 0C */ virtual void vfunc_0C() override; + /* 14 */ virtual void vfunc_14() override; + /* 1C */ virtual bool vfunc_1C(ActorRef param1, unk32 param2, VecFx32 *param3) override; - void func_ov063_02160ffc(void); - void func_ov063_02161070(void); - void func_ov063_021611ac(void); - void func_ov063_021611c0(void); - void func_ov063_02161254(void); + void func_ov063_02161254(unk32 param1); void func_ov063_02161288(void); - void func_ov063_02161380(void); }; -class MapObjectProfileUnkMTJR : public MapObjectProfile { +class MapObjectProfileUnkMTJR : public MapObjectProfileUnkSTAT_Base { public: /* 00 (base) */ + /* F8 */ MapObjectProfileUnkMTJR(); - ~MapObjectProfileUnkMTJR(); /* 0C */ virtual MapObject *Create(); diff --git a/include/MapObject/MapObjectUnkSTAT.hpp b/include/MapObject/MapObjectUnkSTAT.hpp index 5f72fe3b..1dd4ce84 100644 --- a/include/MapObject/MapObjectUnkSTAT.hpp +++ b/include/MapObject/MapObjectUnkSTAT.hpp @@ -40,6 +40,10 @@ public: class MapObjectProfileUnkSTAT_Base_D4 : public MapObject_10 { public: + /* 00 (vtable) */ + /* 24 */ + + MapObjectProfileUnkSTAT_Base_D4() {} }; class MapObjectProfileUnkSTAT_Base : public MapObjectProfile_Derived2 { diff --git a/src/031_Land/MapObject/MapObjectBombFlower.cpp b/src/031_Land/MapObject/MapObjectBombFlower.cpp index 23b0043f..265184fa 100644 --- a/src/031_Land/MapObject/MapObjectBombFlower.cpp +++ b/src/031_Land/MapObject/MapObjectBombFlower.cpp @@ -5,6 +5,7 @@ #include "System/SysNew.hpp" #include "Unknown/UnkStruct_027e09a8.hpp" #include "Unknown/UnkStruct_027e0d38.hpp" +#include "profile.hpp" extern "C" fx32 func_01ffb464(fx32); extern "C" void func_01ff9218(fx32 *, fx32, fx32); @@ -30,7 +31,7 @@ MapObjectProfileBombFlower::MapObjectProfileBombFlower() : // non-matching MapObjectBombFlower::MapObjectBombFlower() : - mUnk_48(G3d_GetModelPtr(GET_PROFILE(MapObjectProfileBombFlower)->mUnk_20.mUnk_50), 0x0, 0x0), + mUnk_48(G3d_GetModelPtr(GET_PROFILE_20_50(MapObjectProfileBombFlower)), 0x0, 0x0), mUnk_B4(0x1000), mUnk_B8(0x0), mUnk_BA(0x0), diff --git a/src/031_Land/MapObject/MapObjectPot.cpp b/src/031_Land/MapObject/MapObjectPot.cpp index aeeb15c5..b190774c 100644 --- a/src/031_Land/MapObject/MapObjectPot.cpp +++ b/src/031_Land/MapObject/MapObjectPot.cpp @@ -8,6 +8,7 @@ #include "Unknown/UnkStruct_027e0d38.hpp" #include "limits.h" +#include "profile.hpp" extern "C" MapObject_10_Pot data_ov031_02118010; @@ -43,7 +44,7 @@ ModelRender_ov000_020b198c::ModelRender_ov000_020b198c(G3d_Model *pModel, unk8 p // non-matching MapObjectPot::MapObjectPot() : - mUnk_48(G3d_GetModelPtr(GET_PROFILE(MapObjectProfilePot)->mUnk_20.mUnk_50), 0x1) { + mUnk_48(G3d_GetModelPtr(GET_PROFILE_20_50(MapObjectProfilePot)), 0x1) { this->mUnk_40 = ActorId_NTUB; this->mUnk_10 = &data_ov031_02118010; SET_FLAG(this->mFlags, MapObjFlag_8); diff --git a/src/031_Land/MapObject/MapObjectUnkSWHT.cpp b/src/031_Land/MapObject/MapObjectUnkSWHT.cpp index bdd7465c..da3876db 100644 --- a/src/031_Land/MapObject/MapObjectUnkSWHT.cpp +++ b/src/031_Land/MapObject/MapObjectUnkSWHT.cpp @@ -7,6 +7,7 @@ #include "Unknown/UnkStruct_027e09b8.hpp" #include "Unknown/UnkStruct_027e0cec.hpp" #include "Unknown/UnkStruct_ov000_020b5214.hpp" +#include "profile.hpp" extern const char data_ov031_02110ce0; @@ -40,7 +41,7 @@ MapObjectUnkSWHT::MapObjectUnkSWHT() : mUnk_0F4(NULL), mUnk_0F8(-0x1), mUnk_0FC(0x0) { - this->mUnk_054.vfunc_08(G3d_GetModelPtr(GET_PROFILE(MapObjectProfileUnkSWHT)->mUnk_20.mUnk_50)); + this->mUnk_054.vfunc_08(G3d_GetModelPtr(GET_PROFILE_20_50(MapObjectProfileUnkSWHT))); this->mUnk_0B4.mpModel = this->mUnk_054.mpModel; unk32 param2 = data_ov031_021179e8.func_ov000_02058a24(); diff --git a/src/032_MapA1/MapObject/MapObjectUnkSWSW.cpp b/src/032_MapA1/MapObject/MapObjectUnkSWSW.cpp index 9110be22..967dbd89 100644 --- a/src/032_MapA1/MapObject/MapObjectUnkSWSW.cpp +++ b/src/032_MapA1/MapObject/MapObjectUnkSWSW.cpp @@ -1,6 +1,7 @@ #define VECFX32_CTORS #include "MapObject/MapObjectUnkSWSW.hpp" +#include "profile.hpp" #include "Actor/Actor.hpp" #include "Actor/ActorManager.hpp" @@ -97,7 +98,7 @@ void MapObjectUnkSWSW_40::func_ov032_021210a0(fx32 param1) { } MapObjectUnkSWSW::MapObjectUnkSWSW() : - mUnk_040(G3d_GetUnkPtr(GET_PROFILE(MapObjectProfileUnkSWSW)->mUnk_20.mUnk_50, &data_ov032_02121ef4)), + mUnk_040(G3d_GetUnkPtr(GET_PROFILE_20_50(MapObjectProfileUnkSWSW), &data_ov032_02121ef4)), mUnk_0AC(&this->mUnk_0CC, NULL), mUnk_0EC(FLOAT_TO_FX32(0.0f), FLOAT_TO_FX32(0.5f), FLOAT_TO_FX32(-0.4202f)), mUnk_0F8(NULL), diff --git a/src/063_Shrine/Actor/ActorUnkCANS.cpp b/src/063_Shrine/Actor/ActorUnkCANS.cpp index 7a7bc260..347415f3 100644 --- a/src/063_Shrine/Actor/ActorUnkCANS.cpp +++ b/src/063_Shrine/Actor/ActorUnkCANS.cpp @@ -10,7 +10,6 @@ #include "MapObject/MapObject.hpp" #include "MapObject/MapObjectManager.hpp" #include "Physics/Cylinder.hpp" -#include "Player/PlayerGet.hpp" #include "Render/ModelRender.hpp" #include "Save/AdventureFlags.hpp" #include "System/Random.hpp" @@ -156,8 +155,9 @@ unk32 UnkStruct_ov063_02162e88::vfunc_04(ActorRef param1, unk32 param2, unk32 pa return ret1; } +// non-matching ActorUnkCANS::ActorUnkCANS() : - mUnk_0B0(G3d_GetModelPtr(((MapObjectProfile_Derived2_20 *) GET_PROFILE(ActorProfileUnkCANS)->vfunc_04())->mUnk_50)), + mUnk_0B0(G3d_GetModelPtr(GET_PROFILE(ActorProfileUnkCANS)->vfunc_04()->mUnk_50)), mUnk_128(&mUnk_0B0, GET_PROFILE(ActorProfileUnkCANS)->vfunc_04()), mUnk_1F4(), mUnk_200(this), @@ -244,6 +244,7 @@ void ActorUnkCANS::vfunc_24(void) { } } +// non-matching void ActorUnkCANS::vfunc_20(void) { if (mUnk_238 < mUnk_23A) { mUnk_238++; @@ -252,7 +253,7 @@ void ActorUnkCANS::vfunc_20(void) { if (!this->func_ov017_020bef4c(0x4000) && mUnk_48 != 0 && mState != 4) { return; } - mUnk_3C = (Actor_9C *) &mUnk_200; + mUnk_3C = &mUnk_200; CALL_PTMF(PTMF, data_ov063_02162fb0[mState]); @@ -295,9 +296,7 @@ void ActorUnkCANS::vfunc_20(void) { if (var == 0) { if (mUnk_268 != NULL) { - //! INFO: mUnk_268 is NOT an ActorUnkCANS*, this is a placeholder as mUnk_1F4 is not yet defined in - //! ActorUnkCASE (current type of *mUnk_268) - *(char *) &((ActorUnkCANS *) mUnk_268)->mUnk_1F4 = 0; + mUnk_268->mUnk_1F4 = 0; } } else { @@ -384,7 +383,7 @@ void ActorUnkCANS::vfunc_20(void) { case 11: default: if (iVar5 != 0) { - this->func_ov017_020bfb18((Actor_9C *) &mUnk_200); + this->func_ov017_020bfb18(&mUnk_200); if (mState != 4) { this->func_ov063_02158448(5); } @@ -395,9 +394,7 @@ void ActorUnkCANS::vfunc_20(void) { } } if (mUnk_268 != NULL) { - //! INFO: mUnk_268 is NOT an ActorUnkCANS*, this is a placeholder as mUnk_1F4 is not yet defined in - //! ActorUnkCASE (current type of *mUnk_268) - *(char *) &((ActorUnkCANS *) mUnk_268)->mUnk_1F4 = (char) iVar5; + mUnk_268->mUnk_1F4 = iVar5; } } } @@ -468,16 +465,17 @@ void ActorUnkCANS::vfunc_2C(unk32 param1) { } void ActorUnkCANS::func_ov063_02158b0c(void) { - mUnk_268 = NULL; - ((u16 *) mUnk_38)[4] = 1; - mUnk_34 = (Cylinder *) &data_ov063_02162e90; - mUnk_30 = (Cylinder *) &data_ov063_02162e90; + mUnk_268 = NULL; + mUnk_38->mUnk_08 = 1; + mUnk_34 = (Cylinder *) &data_ov063_02162e90; + mUnk_30 = (Cylinder *) &data_ov063_02162e90; } void ActorUnkCANS::func_ov063_02158b34(void) { mUnk_128.vfunc_1C(data_ov063_02163068, 0x1000, 0x19A, 0); } +// non-matching void ActorUnkCANS::func_ov063_02158b98(void) { if (mUnk_128.vfunc_28()->func_02015080(0x1000) || mUnk_128.vfunc_28()->func_02015080(0x11000) || mUnk_128.vfunc_28()->func_02015080(0x21000)) { @@ -514,6 +512,7 @@ void ActorUnkCANS::func_ov063_02158d40(void) { mUnk_238 = 0; } +// non-matching void ActorUnkCANS::func_ov063_02158db0(void) { if (mUnk_128.vfunc_28()->func_02015080(0x1000) || mUnk_128.vfunc_28()->func_02015080(0xD000) || mUnk_128.vfunc_28()->func_02015080(0x19000) || mUnk_128.vfunc_28()->func_02015080(0x25000)) { @@ -572,13 +571,13 @@ void ActorUnkCANS::func_ov063_02158db0(void) { void ActorUnkCANS::func_ov063_021590c8(void) { func_ov017_020bf634(this, (unk16 *) &mUnk_200.mUnk_10, this->func_ov063_0215a5bc(), this->func_ov063_0215a5d8()); - ((Actor_9C *) &mUnk_200)->func_ov000_02097bec(); + mUnk_200.func_ov000_02097bec(); } void ActorUnkCANS::func_ov063_02159100(void) { func_ov017_020bf688(this); - if (!GET_FLAG(this->mFlags, 5)) { + if (!GET_FLAG(this->mFlags, ActorFlag_5)) { return; } @@ -590,7 +589,7 @@ void ActorUnkCANS::func_ov063_02159100(void) { return; } - u16 *tmpArr = (u16 *) &mUnk_224.mUnk_08; + u16 *tmpArr = &mUnk_224.mUnk_08; if (tmpArr[0] < tmpArr[1]) { this->func_ov063_02158448(4); return; @@ -653,7 +652,7 @@ void ActorUnkCANS::func_ov063_02159258(void) { void ActorUnkCANS::func_ov063_02159408(void) { this->func_ov000_02099450(&mUnk_224, &data_027e07d4, 0, data_ov000_020aecf0[0]); mUnk_128.vfunc_1C(data_ov063_02163068, 0, 0x19A, 0); - ((Actor_9C *) &mUnk_200)->func_ov000_02097bec(); + mUnk_200.func_ov000_02097bec(); } void ActorUnkCANS::func_ov063_02159494(void) { @@ -691,7 +690,7 @@ void ActorUnkCANS::func_ov063_021595a4(void) { mVel.z = 0; mUnk_270 = 0; mUnk_128.vfunc_1C(data_ov063_021630b0, 0x1000, 0x400, 0); - ((Actor_9C *) &mUnk_200)->func_ov000_02097bec(); + mUnk_200.func_ov000_02097bec(); } void ActorUnkCANS::func_ov063_02159618(void) { @@ -767,6 +766,7 @@ void ActorUnkCANS::func_ov063_021598fc(void) { mUnk_276 = gRandom.Next32(0) & 0x80000000 ? 1 : -1; } +// non-matching void ActorUnkCANS::func_ov063_021599e4(void) { if (mUnk_128.vfunc_28()->func_02015080(0x1000) || mUnk_128.vfunc_28()->func_02015080(0xA000) || mUnk_128.vfunc_28()->func_02015080(0x13000) || mUnk_128.vfunc_28()->func_02015080(0x1C000)) { @@ -878,6 +878,7 @@ void ActorUnkCANS::func_ov063_02159e20(void) { mUnk_38->mUnk_08 = 3; } +// non-matching void ActorUnkCANS::func_ov063_02159ec0(void) { this->vfunc_44(); @@ -898,6 +899,7 @@ void ActorUnkCANS::func_ov063_02159ec0(void) { *(s16 *) &mUnk_44 |= 0x20; } +// non-matching // return bool ? unk32 ActorUnkCANS::func_ov063_02159f3c(unk32 param1) { s16 var; @@ -940,6 +942,7 @@ unk32 ActorUnkCANS::func_ov063_02159f3c(unk32 param1) { return func_01ff9a5c(data_027e0ce0->func_01fff148(0), &vec1, &vec2) < param1; } +// non-matching // return bool ? unk32 ActorUnkCANS::func_ov063_0215a0f0(void) { s16 var1; @@ -987,6 +990,7 @@ unk32 ActorUnkCANS::func_ov063_0215a0f0(void) { return func_01ff9a5c(data_027e0ce0->func_01fff148(0), &mPos, &vec) < 0x4CD; } +// non-matching unk32 ActorUnkCANS::func_ov063_0215a2c0(void) { s16 var1; func_ov000_020986b4((s16 *) &var1, this, 0); @@ -1035,7 +1039,7 @@ unk32 ActorUnkCANS::func_ov063_0215a2c0(void) { void ActorUnkCANS::func_ov063_0215a428(void) { // A not very clean code to access 22C and 22E matching the asm - u16 *values = (u16 *) &mUnk_224.mUnk_08; + u16 *values = &mUnk_224.mUnk_08; if (values[0] < values[1]) { this->func_ov063_02158448(4); } else if (mUnk_268 == NULL) { @@ -1081,7 +1085,7 @@ unk32 ActorUnkCANS::func_ov063_0215a514(void) { func_ov000_020986b4((s16 *) &var, this, 0); var = (volatile s16) var - mUnk_26C; - return 0x4AAB < ABS(var); + return DEG_TO_ANG(105) + 1 < ABS(var); } // return bool ? @@ -1093,12 +1097,13 @@ unk32 ActorUnkCANS::func_ov063_0215a56c(unk32 param1) { return DEG_TO_ANG(90) <= ABS((s16) (param1 - mAngle)); } +// non-matching void ActorUnkCANS::func_ov063_0215a5a0(VecFx32 *param1) { // Does not match instruction order VecFx32 vec; - vec.x = ((VecFx32 *) &mUnk_250)->x; - vec.y = ((VecFx32 *) &mUnk_250)->y; - vec.z = ((VecFx32 *) &mUnk_250)->z; + vec.x = mUnk_250.x; + vec.y = mUnk_250.y; + vec.z = mUnk_250.z; param1->z = vec.z; param1->x = vec.x; param1->y = vec.y; @@ -1118,6 +1123,7 @@ unk32 ActorUnkCANS::func_ov063_0215a5d8(void) { return data_ov000_020aecfc[0]; } +// non-matching void ActorUnkCANS::vfunc_10(Cylinder *param1) { Cylinder *cylinder = this->mUnk_34; *param1 = *cylinder; @@ -1132,6 +1138,7 @@ void ActorUnkCANS::vfunc_10(Cylinder *param1) { } } +// non-matching void ActorUnkCANS::func_ov063_0215a678(ActorUnkCANS *actor, UnkStruct_func_ov063_0215a678 *param2) { ModelRender *modelRender = param2->mUnk_04; u8 var1; @@ -1209,6 +1216,7 @@ UnkStruct_ov063_02162ea8::UnkStruct_ov063_02162ea8() { UnkStruct_ov063_02162ea8::~UnkStruct_ov063_02162ea8() {} +// non-matching bool UnkStruct_ov063_02162ea8::vfunc_08(const UnkStruct_ov031_020f3310 *param1) { bool retVal = UnkStruct_ov031_Items_00::vfunc_08(param1); if (retVal && func_01ff9258(param1->mUnk_08.x, param1->mUnk_08.z) > 0) { @@ -1224,6 +1232,7 @@ bool UnkStruct_ov063_02162ea8::vfunc_08(const UnkStruct_ov031_020f3310 *param1) return retVal; } +// non-matching bool UnkStruct_ov063_02162ea8::vfunc_0C(const UnkStruct_ov031_020e54d4 *param1, unk32 *param2, unk32 param3) { UnkStruct_02162ea8_vfunc_0C *param2Struct = (UnkStruct_02162ea8_vfunc_0C *) param2; if ((*(u16 *) ¶m2Struct->mUnk_04 & 0x1000) != 0) { diff --git a/src/063_Shrine/Actor/ActorUnkCASE.cpp b/src/063_Shrine/Actor/ActorUnkCASE.cpp index 56f62899..0047b9ff 100644 --- a/src/063_Shrine/Actor/ActorUnkCASE.cpp +++ b/src/063_Shrine/Actor/ActorUnkCASE.cpp @@ -8,7 +8,6 @@ #include "Actor/ActorShotArrow.hpp" #include "Actor/ActorUnkCANS.hpp" #include "Actor/ActorUnkITWP.hpp" -#include "MapObject/MapObjectProfile_Derived2_20.hpp" #include "Physics/Cylinder.hpp" #include "Render/ModelRender.hpp" #include "Unknown/UnkStruct_027e09a8.hpp" @@ -69,6 +68,7 @@ static PTMF data_ov063_02163110[0x6] = {ActorUnkCASE::func_ov063_0 DECL_PROFILE(ActorProfileUnkCASE); +// non-matching (profile is smaller than target) Actor *ActorProfileUnkCASE::Create() { return new(HeapIndex_2) ActorUnkCASE(); } @@ -139,7 +139,7 @@ void ActorUnkCASE::func_ov063_0215acec(ActorRef *ref1, ActorRef ref2) { } ActorUnkCASE::ActorUnkCASE() : - mUnk_0B0(G3d_GetModelPtr(((MapObjectProfile_Derived2_20 *) GET_PROFILE(ActorProfileUnkCASE)->vfunc_04())->mUnk_50)), + mUnk_0B0(G3d_GetModelPtr(GET_PROFILE(ActorProfileUnkCASE)->vfunc_04()->mUnk_50)), mUnk_120(0), mUnk_124(this), mUnk_14C(NULL), @@ -312,6 +312,7 @@ void ActorUnkCASE::vfunc_24() { this->vfunc_20(); } +// non-matching void ActorUnkCASE::vfunc_20() { mUnk_150.mUnk_1C = 1; @@ -445,6 +446,7 @@ void ActorUnkCASE::vfunc_2C(unk32 param1) { } } +// non-matching void ActorUnkCASE::func_ov063_0215b6c8(VecFx32 *param1, UnkAngleStruct angle) { VecFx32 vec = *param1; VecFx32_Copy(&vec, &mPos); @@ -460,6 +462,7 @@ void ActorUnkCASE::func_ov063_0215b724(void) { data_027e09a8->func_ov000_02071b30(0x9865, &mPos, 0); } +// non-matching void ActorUnkCASE::vfunc_10(Cylinder *param1) { if (mUnk_14C != NULL) { ((ActorUnkCASE *) mUnk_14C)->vfunc_10(param1); @@ -479,6 +482,7 @@ void ActorUnkCASE::func_ov063_0215b814(ActorRef ref) { this->func_ov063_0215aefc(1); } +// non-matching void ActorUnkCASE::func_ov063_0215b854(void) { if (mUnk_14C != NULL) { ActorUnkCANS *actorCans = (ActorUnkCANS *) mUnk_14C; @@ -506,6 +510,7 @@ static inline bool VecFx32_IsZero(VecFx32 *vec) { return vec->x == 0 && vec->y == 0 && vec->z == 0; } +// non-matching void ActorUnkCASE::func_ov063_0215b8e8(VecFx32 *param1) { if (mUnk_14C != NULL) { diff --git a/src/063_Shrine/Actor/ActorUnkRBLS.cpp b/src/063_Shrine/Actor/ActorUnkRBLS.cpp index 262a4f05..b95b457b 100644 --- a/src/063_Shrine/Actor/ActorUnkRBLS.cpp +++ b/src/063_Shrine/Actor/ActorUnkRBLS.cpp @@ -1,5 +1,4 @@ #include "Actor/ActorUnkRBLS.hpp" -#include "Actor/Actor_Derived1.hpp" #include "Render/ModelRender.hpp" #include "Unknown/UnkStruct_027e0cd8.hpp" #include "nitro/fx.h" @@ -18,6 +17,7 @@ Actor *ActorProfileUnkRBLS::Create() { ActorProfileUnkRBLS::ActorProfileUnkRBLS() : ActorProfile_Derived1(ActorId_RBLS) {} +// non-matching ActorUnkRBLS::ActorUnkRBLS() : mUnk_94(G3d_GetModelPtr(GET_PROFILE(ActorProfileUnkRBLS)->mUnk_3C.mUnk_50)), mUnk_F4(&mUnk_94, GET_PROFILE(ActorProfileUnkRBLS)->vfunc_04()) {} diff --git a/src/063_Shrine/Actor/ActorUnkRMSD.cpp b/src/063_Shrine/Actor/ActorUnkRMSD.cpp index 10fa2533..045a1d51 100644 --- a/src/063_Shrine/Actor/ActorUnkRMSD.cpp +++ b/src/063_Shrine/Actor/ActorUnkRMSD.cpp @@ -1,6 +1,5 @@ #include "Actor/ActorUnkRMSD.hpp" #include "Actor/ActorUnkRMSV.hpp" -#include "Actor/Actor_Derived1.hpp" #include "nns/g3d/g3d.h" #include "profile.hpp" #include "types.h" @@ -29,7 +28,7 @@ bool ActorUnkRMSD::vfunc_18(unk32 param1) { } void ActorUnkRMSD::vfunc_20(void) { - (*(Actor *) &this->mUnk_158).vfunc_34(); // Not an Actor + this->mUnk_158.vfunc_34(); } void ActorUnkRMSD::vfunc_24(void) { this->vfunc_20(); diff --git a/src/063_Shrine/Actor/ActorUnkRMSV.cpp b/src/063_Shrine/Actor/ActorUnkRMSV.cpp index 119f3e94..3b1e9a15 100644 --- a/src/063_Shrine/Actor/ActorUnkRMSV.cpp +++ b/src/063_Shrine/Actor/ActorUnkRMSV.cpp @@ -2,7 +2,6 @@ #include "Actor/Actor.hpp" #include "Actor/ActorId.hpp" #include "Actor/ActorUnkRMSBase.hpp" -#include "Actor/Actor_Derived1.hpp" #include "nns/g3d/g3d.h" #include "profile.hpp" diff --git a/src/063_Shrine/Actor/ActorUnkRMSW.cpp b/src/063_Shrine/Actor/ActorUnkRMSW.cpp index bf73d24d..eba5f697 100644 --- a/src/063_Shrine/Actor/ActorUnkRMSW.cpp +++ b/src/063_Shrine/Actor/ActorUnkRMSW.cpp @@ -1,6 +1,5 @@ #include "Actor/ActorUnkRMSW.hpp" #include "Actor/ActorId.hpp" -#include "Actor/Actor_Derived1.hpp" #include "nns/g3d/g3d.h" #include "profile.hpp" #include "types.h" @@ -29,7 +28,7 @@ bool ActorUnkRMSW::vfunc_18(unk32 param1) { } void ActorUnkRMSW::vfunc_20(void) { - (*(Actor *) &this->mUnk_158).vfunc_34(); // Not an Actor + this->mUnk_158.vfunc_34(); } void ActorUnkRMSW::vfunc_24(void) { diff --git a/src/063_Shrine/MapObject/MapObjectUnkLTRW.cpp b/src/063_Shrine/MapObject/MapObjectUnkLTRW.cpp index 3431baa2..4e223cec 100644 --- a/src/063_Shrine/MapObject/MapObjectUnkLTRW.cpp +++ b/src/063_Shrine/MapObject/MapObjectUnkLTRW.cpp @@ -48,7 +48,7 @@ MapObjectProfileUnkLTRW::MapObjectProfileUnkLTRW() : } MapObjectUnkLTRW::MapObjectUnkLTRW() : - mUnk_40(G3d_GetModelPtr(GET_PROFILE(MapObjectProfileUnkLTRW)->mUnk_20.mUnk_50)), + mUnk_40(G3d_GetModelPtr(GET_PROFILE_20_50(MapObjectProfileUnkLTRW))), mUnk_A0(1), mUnk_A4(0), mUnk_A6(0), @@ -57,7 +57,7 @@ MapObjectUnkLTRW::MapObjectUnkLTRW() : bool MapObjectUnkLTRW::vfunc_00() { mPos.x -= FLOAT_TO_FX32(.5f); mPos.z -= FLOAT_TO_FX32(.5f); - mUnk_10 = &GET_PROFILE(MapObjectProfileUnkLTRW)->mUnk_D4; + mUnk_10 = GET_PROFILE_D4(MapObjectProfileUnkLTRW); SET_FLAG(mFlags, MapObjFlag_9); mUnk_18[0] = 0x10; mUnk_A8.mUnk_04h = mUnk_20.mUnk_08[0]; diff --git a/src/063_Shrine/MapObject/MapObjectUnkMTJR.cpp b/src/063_Shrine/MapObject/MapObjectUnkMTJR.cpp index f06d88f9..0c3d4fcd 100644 --- a/src/063_Shrine/MapObject/MapObjectUnkMTJR.cpp +++ b/src/063_Shrine/MapObject/MapObjectUnkMTJR.cpp @@ -1,26 +1,130 @@ -//! TODO: This file was generated automatically and might contain errors - #include "MapObject/MapObjectUnkMTJR.hpp" -#include "System/SysNew.hpp" +#include "System/Random.hpp" +#include "Unknown/UnkStruct_027e09a8.hpp" +#include "Unknown/UnkStruct_027e0cec.hpp" +#include "flags.h" +#include "nitro/fx.h" +#include "nitro/math.h" +#include "profile.hpp" + +// Overlay 31 +extern "C" void func_ov031_020e0f30(ActorRef); DECL_PROFILE(MapObjectProfileUnkMTJR); MapObject *MapObjectProfileUnkMTJR::Create() { - return new(HeapIndex_2) MapObjectUnkMTJR(); + return new(HeapIndex_ITCM) MapObjectUnkMTJR(); } +// non-matching MapObjectProfileUnkMTJR::MapObjectProfileUnkMTJR() : - MapObjectProfile(MapObjectId_MTJR) {} + MapObjectProfileUnkSTAT_Base(MapObjectId_MTJR, MapObjectId_MTJR) { + mUnk_D4.mUnk_08 = 0x7009; -MapObjectUnkMTJR::MapObjectUnkMTJR() {} + VecFx32_Init(0, 0, 0, &mUnk_D4.mUnk_0C); + mUnk_D4.mUnk_18.x = FLOAT_TO_FX32(0.7f); + mUnk_D4.mUnk_18.y = FLOAT_TO_FX32(2.4f); -void MapObjectUnkMTJR::func_ov063_02160ffc(void) {} -void MapObjectUnkMTJR::func_ov063_02161070(void) {} -void MapObjectUnkMTJR::func_ov063_021611ac(void) {} -void MapObjectUnkMTJR::func_ov063_021611c0(void) {} -void MapObjectUnkMTJR::func_ov063_02161254(void) {} -void MapObjectUnkMTJR::func_ov063_02161288(void) {} -void MapObjectUnkMTJR::func_ov063_02161380(void) {} + mUnk_06 = -1; + UNSET_FLAG2(mUnk_1E, 0x0); +} -MapObjectUnkMTJR::~MapObjectUnkMTJR() {} -MapObjectProfileUnkMTJR::~MapObjectProfileUnkMTJR() {} +MapObjectUnkMTJR::MapObjectUnkMTJR() : + mUnk_40(G3d_GetModelPtr(GET_PROFILE_20_50(MapObjectProfileUnkMTJR))), + mUnk_A0(2), + mUnk_A4(0), + mUnk_A6(0), + mUnk_A8(NULL), + mUnk_AC(-1), + mUnk_B0(0) {} + +bool MapObjectUnkMTJR::vfunc_00() { + if (!this->func_ov000_0209d29c(0)) { + return false; + } + + mPos.x += FLOAT_TO_FX32(.5f); + mPos.z += FLOAT_TO_FX32(.5f); + mUnk_10 = GET_PROFILE_D4(MapObjectProfileUnkMTJR); + mUnk_AC = 0x86F; + mUnk_B0 = 4; + mUnk_A8.func_ov000_020a0334(); + this->func_ov063_02161254(0); + return true; +} + +// non-matching +void MapObjectUnkMTJR::vfunc_08() { + if (mUnk_A0 == 0) { + fx32 tmp_x = mPos.x - FLOAT_TO_FX32(1.f) + (fx32) gRandom.Next32(0); + fx32 tmp_y = mPos.y + (fx32) gRandom.Next32(0x1801); + fx32 tmp_z = mPos.z - FLOAT_TO_FX32(1.f) + (fx32) gRandom.Next32(0); + VecFx32 stack_vec = {tmp_x, tmp_y, tmp_z}; + data_027e0cec->func_ov000_020a0220(&mUnk_A8, &stack_vec); + } + if (mUnk_A4 < mUnk_A6) { + mUnk_A4++; + } +} + +void MapObjectUnkMTJR::vfunc_0C() { + this->vfunc_08(); +} + +bool MapObjectUnkMTJR::vfunc_1C(ActorRef param1, unk32 param2, VecFx32 *param3) { + switch (param2) { + case 13: + this->func_ov063_02161254(1); + func_ov031_020e0f30(param1); + break; + case 0: + case 1: + case 7: + case 8: + this->func_ov063_02161254(1); + break; + case 3: + case 12: + this->func_ov063_02161254(1); + return false; + break; + case 10: + case 11: + this->func_ov063_02161254(1); + break; + case 2: + case 4: + case 5: + case 6: + case 9: + default: + break; + } + return true; +} + +void MapObjectUnkMTJR::func_ov063_02161254(unk32 param1) { + mUnk_A0 = param1; + mUnk_A6 = -1; + mUnk_A4 = 0; + if (param1 != 0 && param1 == 1) { + this->func_ov063_02161288(); + } +} + +void MapObjectUnkMTJR::func_ov063_02161288(void) { + data_027e09a8->func_ov000_02071b30(0xFC, &mPos, 0); + data_027e09a8->func_ov000_02071eac(&mPos); + VecFx32 vec = mPos; + data_027e0cec->func_ov000_0209feac(0xCC17, &vec, 4, 0, 0); + data_027e0cec->func_ov000_0209feac(0xCC18, &vec, 4, 0, 0); + data_027e0cec->func_ov000_0209feac(0xCC19, &vec, 4, 0, 0); + data_027e0cec->func_ov000_0209feac(0xCC1A, &vec, 4, 0, 0); + this->func_ov000_0209d2c4(1, true); + UNSET_FLAG(mFlags, 0); +} + +void MapObjectUnkMTJR::vfunc_14() { + this->func_ov000_0209d518(&mPos, 0xD9A, 0xD9A, 0x1F); + mUnk_40.vfunc_18(&mPos); +} diff --git a/src/063_Shrine/MapObject/MapObjectUnkSTAT.cpp b/src/063_Shrine/MapObject/MapObjectUnkSTAT.cpp index 4a9740aa..d42e2f6c 100644 --- a/src/063_Shrine/MapObject/MapObjectUnkSTAT.cpp +++ b/src/063_Shrine/MapObject/MapObjectUnkSTAT.cpp @@ -42,6 +42,7 @@ MapObject *MapObjectProfileUnkSTAT::Create() { return new(HeapIndex_ITCM) MapObjectUnkSTAT(); } +// non-matching MapObjectProfileUnkSTAT::MapObjectProfileUnkSTAT() : MapObjectProfileUnkSTAT_Base(MapObjectId_STAT, MapObjectId_STAT) { mUnk_D4.mUnk_08 = 0x7007; @@ -54,7 +55,7 @@ MapObjectProfileUnkSTAT::MapObjectProfileUnkSTAT() : } MapObjectUnkSTAT::MapObjectUnkSTAT() : - mUnk_40(G3d_GetModelPtr(GET_PROFILE(MapObjectProfileUnkSTAT)->mUnk_20.mUnk_50), true), + mUnk_40(G3d_GetModelPtr(GET_PROFILE_20_50(MapObjectProfileUnkSTAT)), true), mUnk_4C(4), mUnk_50(-1), mUnk_54(0x8000), @@ -67,6 +68,7 @@ MapObjectUnkSTAT::MapObjectUnkSTAT() : mUnk_10 = GET_PROFILE_D4(MapObjectProfileUnkSTAT); } +// non-matching bool MapObjectUnkSTAT::vfunc_00(void) { unk32 val; switch (mUnk_20.mParams[0]) { @@ -121,6 +123,7 @@ void MapObjectUnkSTAT::vfunc_14(void) { mUnk_40.func_01ffc6d4(mAngleStruct, &vec); } +// non-matching void MapObjectUnkSTAT::func_ov063_0215f7ac(void) { if (!this->func_ov000_0209d29c(0) || this->func_ov000_0209d29c(1)) { return;