diff --git a/config/eur/arm9/overlays/ov063/delinks.txt b/config/eur/arm9/overlays/ov063/delinks.txt index eed24631..854cb9f8 100644 --- a/config/eur/arm9/overlays/ov063/delinks.txt +++ b/config/eur/arm9/overlays/ov063/delinks.txt @@ -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: diff --git a/config/eur/arm9/overlays/ov063/relocs.txt b/config/eur/arm9/overlays/ov063/relocs.txt index 1101392f..335e16f6 100644 --- a/config/eur/arm9/overlays/ov063/relocs.txt +++ b/config/eur/arm9/overlays/ov063/relocs.txt @@ -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) diff --git a/config/eur/arm9/overlays/ov063/symbols.txt b/config/eur/arm9/overlays/ov063/symbols.txt index 37dcf906..bd3c973b 100644 --- a/config/eur/arm9/overlays/ov063/symbols.txt +++ b/config/eur/arm9/overlays/ov063/symbols.txt @@ -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 diff --git a/config/jp/arm9/overlays/ov063/delinks.txt b/config/jp/arm9/overlays/ov063/delinks.txt index 0cbac5ee..c51cc3f2 100644 --- a/config/jp/arm9/overlays/ov063/delinks.txt +++ b/config/jp/arm9/overlays/ov063/delinks.txt @@ -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: diff --git a/config/jp/arm9/overlays/ov063/relocs.txt b/config/jp/arm9/overlays/ov063/relocs.txt index 7396631f..d70f1efc 100644 --- a/config/jp/arm9/overlays/ov063/relocs.txt +++ b/config/jp/arm9/overlays/ov063/relocs.txt @@ -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) diff --git a/config/jp/arm9/overlays/ov063/symbols.txt b/config/jp/arm9/overlays/ov063/symbols.txt index 01433888..67fe7f36 100644 --- a/config/jp/arm9/overlays/ov063/symbols.txt +++ b/config/jp/arm9/overlays/ov063/symbols.txt @@ -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 diff --git a/include/MapObject/MapObject.hpp b/include/MapObject/MapObject.hpp index c082e2bd..8c83e5ee 100644 --- a/include/MapObject/MapObject.hpp +++ b/include/MapObject/MapObject.hpp @@ -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 diff --git a/include/MapObject/MapObjectUnkLTRW.hpp b/include/MapObject/MapObjectUnkLTRW.hpp index 91f05930..dcaf57ad 100644 --- a/include/MapObject/MapObjectUnkLTRW.hpp +++ b/include/MapObject/MapObjectUnkLTRW.hpp @@ -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(); diff --git a/include/MapObject/MapObjectUnkSTAT.hpp b/include/MapObject/MapObjectUnkSTAT.hpp index 0c89bddf..443b2f86 100644 --- a/include/MapObject/MapObjectUnkSTAT.hpp +++ b/include/MapObject/MapObjectUnkSTAT.hpp @@ -1,5 +1,3 @@ -//! TODO: This file was generated automatically and might contain errors - #pragma once #include "MapObject/MapObject.hpp" diff --git a/include/MapObject/MapObject_ov031.hpp b/include/MapObject/MapObject_ov031.hpp new file mode 100644 index 00000000..03736038 --- /dev/null +++ b/include/MapObject/MapObject_ov031.hpp @@ -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) {} +}; diff --git a/include/Unknown/Common.hpp b/include/Unknown/Common.hpp index 74f556b8..5b103624 100644 --- a/include/Unknown/Common.hpp +++ b/include/Unknown/Common.hpp @@ -894,6 +894,10 @@ public: bool mUnk_04b; bool mUnk_05; }; + struct { + unk16 mUnk_04h; + unk16 mUnk_06; + }; unk32 mUnk_04; }; /* 08 */ diff --git a/src/063_Shrine/Actor/ActorUnkRMSD.cpp b/src/063_Shrine/Actor/ActorUnkRMSD.cpp index b92d9677..10fa2533 100644 --- a/src/063_Shrine/Actor/ActorUnkRMSD.cpp +++ b/src/063_Shrine/Actor/ActorUnkRMSD.cpp @@ -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() { diff --git a/src/063_Shrine/Actor/ActorUnkRMSV.cpp b/src/063_Shrine/Actor/ActorUnkRMSV.cpp index 30949cf1..119f3e94 100644 --- a/src/063_Shrine/Actor/ActorUnkRMSV.cpp +++ b/src/063_Shrine/Actor/ActorUnkRMSV.cpp @@ -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 diff --git a/src/063_Shrine/Actor/ActorUnkRMSW.cpp b/src/063_Shrine/Actor/ActorUnkRMSW.cpp index 054a7a79..bf73d24d 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/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; } diff --git a/src/063_Shrine/MapObject/MapObjectUnkLTRW.cpp b/src/063_Shrine/MapObject/MapObjectUnkLTRW.cpp index 4b9341cc..3431baa2 100644 --- a/src/063_Shrine/MapObject/MapObjectUnkLTRW.cpp +++ b/src/063_Shrine/MapObject/MapObjectUnkLTRW.cpp @@ -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); +}