diff --git a/config/eur/arm9/overlays/ov000/symbols.txt b/config/eur/arm9/overlays/ov000/symbols.txt index 5198a55a..60e56ab7 100644 --- a/config/eur/arm9/overlays/ov000/symbols.txt +++ b/config/eur/arm9/overlays/ov000/symbols.txt @@ -2380,7 +2380,7 @@ func_ov000_02099a7c kind:function(thumb,size=0x48) addr:0x02099a7c func_ov000_02099ac4 kind:function(thumb,size=0x28) addr:0x02099ac4 func_ov000_02099aec kind:function(thumb,size=0x2) addr:0x02099aec _ZN19func_ov000_02099af0D0Ev kind:function(thumb,size=0xc) addr:0x02099af0 -func_ov000_02099afc kind:function(thumb,size=0x2) addr:0x02099afc +_ZN24UnkStruct_ov000_020b31a8D2Ev kind:function(thumb,size=0x2) addr:0x02099afc _ZN24UnkStruct_ov000_020b31a88vfunc_08Ev kind:function(arm,size=0x38) addr:0x02099b00 _ZN24UnkStruct_ov000_020b31a88vfunc_0CEv kind:function(arm,size=0x68) addr:0x02099b38 _ZN24UnkStruct_ov000_020b31a88vfunc_20Ev kind:function(arm,size=0x110) addr:0x02099ba0 @@ -2390,7 +2390,7 @@ func_ov000_02099ddc kind:function(arm,size=0x7c) addr:0x02099ddc func_ov000_02099e58 kind:function(arm,size=0x98) addr:0x02099e58 func_ov000_02099ef0 kind:function(arm,size=0x74) addr:0x02099ef0 func_ov000_02099f64 kind:function(arm,size=0x94) addr:0x02099f64 -func_ov000_02099ff8 kind:function(arm,size=0x74) addr:0x02099ff8 +_ZN24UnkStruct_ov000_020b31a818func_ov000_02099f8E25ActorUnkZLSL_AnimationTagi kind:function(arm,size=0x74) addr:0x02099ff8 _ZN24UnkStruct_ov000_020b31a88vfunc_24Ev kind:function(arm,size=0x78) addr:0x0209a06c _ZN24UnkStruct_ov000_020b31a88vfunc_18Ev kind:function(arm,size=0x10) addr:0x0209a0e4 _ZN24UnkStruct_ov000_020b31a88vfunc_28Ev kind:function(arm,size=0x18) addr:0x0209a0f4 diff --git a/config/eur/arm9/overlays/ov031/delinks.txt b/config/eur/arm9/overlays/ov031/delinks.txt index ab1047c8..74292ebf 100644 --- a/config/eur/arm9/overlays/ov031/delinks.txt +++ b/config/eur/arm9/overlays/ov031/delinks.txt @@ -193,9 +193,11 @@ src/031_Land/Actor/ActorUnkCLLT.cpp: .bss start:0x02116fe8 end:0x02117034 src/031_Land/Actor/ActorUnkEFSB.cpp: + complete .text start:0x020fb4ac end:0x020fb80c .init start:0x02111a4c end:0x02111a9c .ctor start:0x02112808 end:0x0211280c + .data start:0x02114eac end:0x02114f60 .bss start:0x02117034 end:0x0211711c src/031_Land/Actor/ActorUnkNFSP.cpp: diff --git a/config/eur/arm9/overlays/ov031/symbols.txt b/config/eur/arm9/overlays/ov031/symbols.txt index 4a185847..d870f001 100644 --- a/config/eur/arm9/overlays/ov031/symbols.txt +++ b/config/eur/arm9/overlays/ov031/symbols.txt @@ -1246,11 +1246,11 @@ _ZN19ActorProfileUnkEFSB10GetProfileEv kind:function(arm,size=0xc) addr:0x020fb4 _ZN19ActorProfileUnkEFSB6CreateEv kind:function(arm,size=0x24) addr:0x020fb4b8 _ZN19ActorProfileUnkEFSBC1Ev kind:function(arm,size=0x28) addr:0x020fb4dc _ZN12ActorUnkEFSBC1Ev kind:function(arm,size=0x110) addr:0x020fb504 -_ZN12ActorUnkEFSB19func_ov031_020fb614Ev kind:function(arm,size=0xb8) addr:0x020fb614 -_ZN12ActorUnkEFSB19func_ov031_020fb6ccEv kind:function(arm,size=0x38) addr:0x020fb6cc -_ZN12ActorUnkEFSB19func_ov031_020fb704Ev kind:function(arm,size=0x14) addr:0x020fb704 -_ZN12ActorUnkEFSB19func_ov031_020fb718Ev kind:function(arm,size=0x8) addr:0x020fb718 -_ZN12ActorUnkEFSB19func_ov031_020fb720Ev kind:function(arm,size=0x70) addr:0x020fb720 +_ZN12ActorUnkEFSB8vfunc_18Ei kind:function(arm,size=0xb8) addr:0x020fb614 +_ZN12ActorUnkEFSB8vfunc_20Ev kind:function(arm,size=0x38) addr:0x020fb6cc +_ZN12ActorUnkEFSB8vfunc_24Ev kind:function(arm,size=0x14) addr:0x020fb704 +_ZN12ActorUnkEFSB8vfunc_54Ei kind:function(arm,size=0x8) addr:0x020fb718 +_ZN12ActorUnkEFSB8vfunc_2CEi kind:function(arm,size=0x70) addr:0x020fb720 _ZN12ActorUnkEFSBD1Ev kind:function(arm,size=0x30) addr:0x020fb790 _ZN12ActorUnkEFSBD0Ev kind:function(arm,size=0x38) addr:0x020fb7c0 _ZN19ActorProfileUnkEFSBD1Ev kind:function(arm,size=0x14) addr:0x020fb7f8 @@ -2097,7 +2097,7 @@ __sinit_ActorRollingStone.cpp kind:function(arm,size=0x50) addr:0x02111800 __sinit_ActorItemDrop.cpp kind:function(arm,size=0x138) addr:0x02111850 local __sinit_ActorUnkMLCK.cpp kind:function(arm,size=0x74) addr:0x02111988 __sinit_ActorUnkCLLT.cpp kind:function(arm,size=0x50) addr:0x021119fc -__sinit_ActorUnkEFSB.cpp kind:function(arm,size=0x50) addr:0x02111a4c +__sinit_ActorUnkEFSB.cpp kind:function(arm,size=0x50) addr:0x02111a4c local __sinit_ActorUnkNFSP.cpp kind:function(arm,size=0x50) addr:0x02111a9c local __sinit_MapObjectDoorBase.cpp kind:function(arm,size=0x3c) addr:0x02111aec local __sinit_MapObjectDoorDangerSpawn.cpp kind:function(arm,size=0x64) addr:0x02111b28 @@ -2161,7 +2161,7 @@ __sinit_MapObjectUnkSWFS.cpp kind:function(arm,size=0x70) addr:0x02112724 .p__sinit_ActorItemDrop.cpp kind:data(word) addr:0x021127fc local .p__sinit_ActorUnkMLCK.cpp kind:data(word) addr:0x02112800 .p__sinit_ActorUnkCLLT.cpp kind:data(word) addr:0x02112804 -.p__sinit_ActorUnkEFSB.cpp kind:data(word) addr:0x02112808 +.p__sinit_ActorUnkEFSB.cpp kind:data(word) addr:0x02112808 local .p__sinit_ActorUnkNFSP.cpp kind:data(word) addr:0x0211280c local .p__sinit_MapObjectDoorBase.cpp kind:data(word) addr:0x02112810 local .p__sinit_MapObjectDoorDangerSpawn.cpp kind:data(word) addr:0x02112814 @@ -2407,9 +2407,9 @@ _ZTV12ActorUnkMLCK kind:data(any) addr:0x02114d70 _ZTV15ActorUnkMLCK_94 kind:data(any) addr:0x02114dec _ZTV19data_ov031_02114e1c kind:data(any) addr:0x02114e1c _ZTV19data_ov031_02114e40 kind:data(any) addr:0x02114e40 -_ZTV19data_ov031_02114eac kind:data(any) addr:0x02114eac -data_ov031_02114ed0 kind:data(any) addr:0x02114ed0 -_ZTV19data_ov031_02114f00 kind:data(any) addr:0x02114f00 +_ZTV19ActorProfileUnkEFSB kind:data(any) addr:0x02114eac +data_ov031_02114ed0 kind:data(any) addr:0x02114ed0 local +_ZTV12ActorUnkEFSB kind:data(any) addr:0x02114f00 _ZTV15ActorUnkNFSP_C0 kind:data(any) addr:0x02114f60 _ZTV19ActorProfileUnkNFSP kind:data(any) addr:0x02114f78 _ZTV12ActorUnkNFSP kind:data(any) addr:0x02114f9c @@ -2615,7 +2615,7 @@ _ZGVN15ProfileInstanceI19ActorProfileUnkCLLTE8sProfileE kind:bss addr:0x02116fe8 @10926 kind:bss addr:0x02116fec _ZN15ProfileInstanceI19ActorProfileUnkCLLTE8sProfileE kind:bss addr:0x02116ff8 _ZGVN15ProfileInstanceI19ActorProfileUnkEFSBE8sProfileE kind:bss addr:0x02117034 -@10932 kind:bss addr:0x02117038 +@10932 kind:bss addr:0x02117038 local _ZN15ProfileInstanceI19ActorProfileUnkEFSBE8sProfileE kind:bss addr:0x02117044 _ZGVN15ProfileInstanceI19ActorProfileUnkNFSPE8sProfileE kind:bss addr:0x0211711c @10938 kind:bss addr:0x02117120 local diff --git a/config/jp/arm9/overlays/ov000/symbols.txt b/config/jp/arm9/overlays/ov000/symbols.txt index 28b92417..6c28d805 100644 --- a/config/jp/arm9/overlays/ov000/symbols.txt +++ b/config/jp/arm9/overlays/ov000/symbols.txt @@ -2377,7 +2377,7 @@ func_ov000_0209b248 kind:function(thumb,size=0x48) addr:0x0209b248 func_ov000_0209b290 kind:function(thumb,size=0x28) addr:0x0209b290 func_ov000_0209b2b8 kind:function(thumb,size=0x2) addr:0x0209b2b8 _ZN19func_ov000_0209b2bcD0Ev kind:function(thumb,size=0xc) addr:0x0209b2bc -_ZN23ActorTearLight_104_BaseD2Ev kind:function(thumb,size=0x2) addr:0x0209b2c8 +_ZN24UnkStruct_ov000_020b31a8D2Ev kind:function(thumb,size=0x2) addr:0x0209b2c8 _ZN24UnkStruct_ov000_020b31a88vfunc_08Ev kind:function(arm,size=0x38) addr:0x0209b2cc _ZN24UnkStruct_ov000_020b31a88vfunc_0CEv kind:function(arm,size=0x68) addr:0x0209b304 _ZN24UnkStruct_ov000_020b31a88vfunc_20Ev kind:function(arm,size=0x110) addr:0x0209b36c @@ -2387,7 +2387,7 @@ _ZN17ActorUnkZLSL_270019func_ov000_02099ddcE25ActorUnkZLSL_AnimationTagi kind:fu func_ov000_0209b624 kind:function(arm,size=0x98) addr:0x0209b624 func_ov000_0209b6bc kind:function(arm,size=0x74) addr:0x0209b6bc func_ov000_0209b730 kind:function(arm,size=0x94) addr:0x0209b730 -func_ov000_0209b7c4 kind:function(arm,size=0x74) addr:0x0209b7c4 +_ZN24UnkStruct_ov000_020b31a818func_ov000_02099f8E25ActorUnkZLSL_AnimationTagi kind:function(arm,size=0x74) addr:0x0209b7c4 _ZN24UnkStruct_ov000_020b31a88vfunc_24Ev kind:function(arm,size=0x78) addr:0x0209b838 _ZN24UnkStruct_ov000_020b31a88vfunc_18Ev kind:function(arm,size=0x10) addr:0x0209b8b0 _ZN24UnkStruct_ov000_020b31a88vfunc_28Ev kind:function(arm,size=0x18) addr:0x0209b8c0 diff --git a/config/jp/arm9/overlays/ov031/delinks.txt b/config/jp/arm9/overlays/ov031/delinks.txt index 6452d215..b3782f9c 100644 --- a/config/jp/arm9/overlays/ov031/delinks.txt +++ b/config/jp/arm9/overlays/ov031/delinks.txt @@ -189,9 +189,11 @@ src/031_Land/Actor/ActorUnkCLLT.cpp: .bss start:0x02118d88 end:0x02118dd4 src/031_Land/Actor/ActorUnkEFSB.cpp: + complete .text start:0x020fcf04 end:0x020fd264 .init start:0x021137d8 end:0x02113828 .ctor start:0x02114594 end:0x02114598 + .data start:0x02116c20 end:0x02116cd4 .bss start:0x02118dd4 end:0x02118ebc src/031_Land/Actor/ActorUnkNFSP.cpp: diff --git a/config/jp/arm9/overlays/ov031/symbols.txt b/config/jp/arm9/overlays/ov031/symbols.txt index 711122d9..62b9c947 100644 --- a/config/jp/arm9/overlays/ov031/symbols.txt +++ b/config/jp/arm9/overlays/ov031/symbols.txt @@ -1245,11 +1245,11 @@ _ZN19ActorProfileUnkEFSB10GetProfileEv kind:function(arm,size=0xc) addr:0x020fcf _ZN19ActorProfileUnkEFSB6CreateEv kind:function(arm,size=0x24) addr:0x020fcf10 _ZN19ActorProfileUnkEFSBC1Ev kind:function(arm,size=0x28) addr:0x020fcf34 _ZN12ActorUnkEFSBC1Ev kind:function(arm,size=0x110) addr:0x020fcf5c -_ZN12ActorUnkEFSB19func_ov031_020fb614Ev kind:function(arm,size=0xb8) addr:0x020fd06c -_ZN12ActorUnkEFSB19func_ov031_020fb6ccEv kind:function(arm,size=0x38) addr:0x020fd124 -_ZN12ActorUnkEFSB19func_ov031_020fb704Ev kind:function(arm,size=0x14) addr:0x020fd15c -_ZN12ActorUnkEFSB19func_ov031_020fb718Ev kind:function(arm,size=0x8) addr:0x020fd170 -_ZN12ActorUnkEFSB19func_ov031_020fb720Ev kind:function(arm,size=0x70) addr:0x020fd178 +_ZN12ActorUnkEFSB8vfunc_18Ei kind:function(arm,size=0xb8) addr:0x020fd06c +_ZN12ActorUnkEFSB8vfunc_20Ev kind:function(arm,size=0x38) addr:0x020fd124 +_ZN12ActorUnkEFSB8vfunc_24Ev kind:function(arm,size=0x14) addr:0x020fd15c +_ZN12ActorUnkEFSB8vfunc_54Ei kind:function(arm,size=0x8) addr:0x020fd170 +_ZN12ActorUnkEFSB8vfunc_2CEi kind:function(arm,size=0x70) addr:0x020fd178 _ZN12ActorUnkEFSBD1Ev kind:function(arm,size=0x30) addr:0x020fd1e8 _ZN12ActorUnkEFSBD0Ev kind:function(arm,size=0x38) addr:0x020fd218 _ZN19ActorProfileUnkEFSBD1Ev kind:function(arm,size=0x14) addr:0x020fd250 @@ -2094,7 +2094,7 @@ __sinit_ActorRollingStone.cpp kind:function(arm,size=0x50) addr:0x0211358c __sinit_ActorItemDrop.cpp kind:function(arm,size=0x138) addr:0x021135dc local __sinit_ActorUnkMLCK.cpp kind:function(arm,size=0x74) addr:0x02113714 __sinit_ActorUnkCLLT.cpp kind:function(arm,size=0x50) addr:0x02113788 -__sinit_ActorUnkEFSB.cpp kind:function(arm,size=0x50) addr:0x021137d8 +__sinit_ActorUnkEFSB.cpp kind:function(arm,size=0x50) addr:0x021137d8 local __sinit_ActorUnkNFSP.cpp kind:function(arm,size=0x50) addr:0x02113828 local __sinit_MapObjectDoorBase.cpp kind:function(arm,size=0x3c) addr:0x02113878 local __sinit_MapObjectDoorDangerSpawn.cpp kind:function(arm,size=0x64) addr:0x021138b4 @@ -2158,7 +2158,7 @@ __sinit_MapObjectUnkSWFS.cpp kind:function(arm,size=0x70) addr:0x021144b0 .p__sinit_ActorItemDrop.cpp kind:data(word) addr:0x02114588 local .p__sinit_ActorUnkMLCK.cpp kind:data(word) addr:0x0211458c .p__sinit_ActorUnkCLLT.cpp kind:data(word) addr:0x02114590 -.p__sinit_ActorUnkEFSB.cpp kind:data(word) addr:0x02114594 +.p__sinit_ActorUnkEFSB.cpp kind:data(word) addr:0x02114594 local .p__sinit_ActorUnkNFSP.cpp kind:data(word) addr:0x02114598 local .p__sinit_MapObjectDoorBase.cpp kind:data(word) addr:0x0211459c local .p__sinit_MapObjectDoorDangerSpawn.cpp kind:data(word) addr:0x021145a0 @@ -2402,9 +2402,9 @@ _ZTV19data_ov031_02116ae4 kind:data(any) addr:0x02116ae4 _ZTV19data_ov031_02116b60 kind:data(any) addr:0x02116b60 _ZTV19data_ov031_02116b90 kind:data(any) addr:0x02116b90 _ZTV19data_ov031_02116bb4 kind:data(any) addr:0x02116bb4 -_ZTV19data_ov031_02116c20 kind:data(any) addr:0x02116c20 -data_ov031_02116c44 kind:data(any) addr:0x02116c44 -_ZTV19data_ov031_02116c74 kind:data(any) addr:0x02116c74 +_ZTV19ActorProfileUnkEFSB kind:data(any) addr:0x02116c20 +data_ov031_02114ed0 kind:data(any) addr:0x02116c44 local +_ZTV12ActorUnkEFSB kind:data(any) addr:0x02116c74 _ZTV15ActorUnkNFSP_C0 kind:data(any) addr:0x02116cd4 _ZTV19ActorProfileUnkNFSP kind:data(any) addr:0x02116cec _ZTV12ActorUnkNFSP kind:data(any) addr:0x02116d10 @@ -2611,7 +2611,7 @@ _ZGVN15ProfileInstanceI19ActorProfileUnkCLLTE8sProfileE kind:bss addr:0x02118d88 @30926 kind:bss addr:0x02118d8c _ZN15ProfileInstanceI19ActorProfileUnkCLLTE8sProfileE kind:bss addr:0x02118d98 _ZGVN15ProfileInstanceI19ActorProfileUnkEFSBE8sProfileE kind:bss addr:0x02118dd4 -@30932 kind:bss addr:0x02118dd8 +@30932 kind:bss addr:0x02118dd8 local _ZN15ProfileInstanceI19ActorProfileUnkEFSBE8sProfileE kind:bss addr:0x02118de4 _ZGVN15ProfileInstanceI19ActorProfileUnkNFSPE8sProfileE kind:bss addr:0x02118ebc @30938 kind:bss addr:0x02118ec0 local diff --git a/include/Actor/ActorUnkCANS.hpp b/include/Actor/ActorUnkCANS.hpp index 08a2e4b4..90eacd99 100644 --- a/include/Actor/ActorUnkCANS.hpp +++ b/include/Actor/ActorUnkCANS.hpp @@ -81,8 +81,8 @@ public: mUnk_2C(&mUnk_4C, NULL), mUnk_7C(&mUnk_9C, NULL) { if (param4 != 0) { - *(unk32 *) &mUnk_7C = mUnk_10; - *(unk32 *) &mUnk_2C = mUnk_10; + mUnk_7C.mpModel = mUnk_10; + mUnk_2C.mpModel = mUnk_10; } } diff --git a/include/Actor/ActorUnkEFSB.hpp b/include/Actor/ActorUnkEFSB.hpp index 218f8e98..ae3586cd 100644 --- a/include/Actor/ActorUnkEFSB.hpp +++ b/include/Actor/ActorUnkEFSB.hpp @@ -1,36 +1,28 @@ -//! TODO: This file was generated automatically and might contain errors - #pragma once #include "Actor/Actor.hpp" #include "Actor/ActorProfile.hpp" +#include "ActorUnkZLSL_ZSRS.hpp" #include "global.h" #include "types.h" -class ActorUnkEFSB_C4 : public Actor_C4 { -public: - ActorUnkEFSB_C4(Actor *param1); - - /* 00 */ virtual bool vfunc_00(ActorRef ref, unk32 param2) override; - /* 04 */ virtual bool vfunc_04() override; - /* 08 */ virtual void vfunc_08() override; - /* 0C */ virtual void vfunc_0C(unk32 param1) override; -}; - class ActorUnkEFSB : public Actor { public: - /* 00 (base) */ - /* 94 */ + /* 000 (base) */ + /* 094 */ unk32 mUnk_094; + /* 098 */ ModelRender mUnk_098; + /* 0F8 */ ActorUnkZLSL_27CC mUnk_0F8; + /* 154 */ ActorUnkZLSL_27CC mUnk_154; + /* 1B0 */ unk32 mUnk_1B0; + /* 1B4 */ ActorUnkEFSB(); - /* 4C */ virtual ~ActorUnkEFSB() override; - - void func_ov031_020fb614(void); - void func_ov031_020fb6cc(void); - void func_ov031_020fb704(void); - void func_ov031_020fb718(void); - void func_ov031_020fb720(void); + /* 18 */ virtual bool vfunc_18(unk32 param1) override; + /* 20 */ virtual void vfunc_20() override; + /* 24 */ virtual void vfunc_24() override; + /* 2C */ virtual void vfunc_2C(unk32 param1) override; + /* 54 */ virtual void vfunc_54(unk32 param1); }; class ActorProfileUnkEFSB : public ActorProfile_Derived1 { @@ -38,7 +30,6 @@ public: /* 00 (base) */ ActorProfileUnkEFSB(); - ~ActorProfileUnkEFSB(); /* 0C */ virtual Actor *Create(); diff --git a/include/Actor/ActorUnkZLSL_ZSRS.hpp b/include/Actor/ActorUnkZLSL_ZSRS.hpp index 9f59dabb..6012d072 100644 --- a/include/Actor/ActorUnkZLSL_ZSRS.hpp +++ b/include/Actor/ActorUnkZLSL_ZSRS.hpp @@ -48,7 +48,7 @@ public: /* 04 */ UnkSystem5 *mUnk_04; /* 08 */ ModelRender *mUnk_08; /* 0C */ unk32 mUnk_0C; - /* 10 */ unk32 mUnk_10; + /* 10 */ G3d_Model *mUnk_10; /* 14 */ unk32 mUnk_14; /* 18 */ unk8 mUnk_18; // deduced from strb [..., 0x18] /* 19 */ STRUCT_PAD(0x19, 0x1C); @@ -72,16 +72,28 @@ public: /* 34 */ virtual void vfunc_34(); /* 38 */ virtual void vfunc_38(unk32 param1, unk32 param2); /* 3C */ virtual void vfunc_3C(); + + void func_ov000_02099f8(ActorUnkZLSL_AnimationTag param1, unk32 param2); }; class ActorUnkZLSL_27CC : public UnkStruct_ov000_020b31a8 { public: /* 00 (base) */ - /* 1C */ + /* 1C */ UnkSystem5 mUnk_1C; + /* 5C */ unk32 mUnk_5C; + /* 60 */ STRUCT_PAD(0x60, 0x7C); + /* 7C */ - ActorUnkZLSL_27CC(); + ActorUnkZLSL_27CC(UnkSystem5 *param1, ModelRender *param2, unk32 param3) : + UnkStruct_ov000_020b31a8(param1, param2, param3), + mUnk_1C(&mUnk_5C, NULL) { + if (param3 != 0x0) { + this->mUnk_1C.mpModel = this->mUnk_10; + } + } // data_ov031_0211369c + /* 00 */ WEAK virtual ~ActorUnkZLSL_27CC() override {} // TODO : to be updated in next dsd release /* 30 */ virtual s8 vfunc_30() override; /* 38 */ virtual void vfunc_38(unk32 param1, unk32 param2) override; /* 3C */ virtual void vfunc_3C() override; @@ -92,8 +104,10 @@ public: /* 00 (base) */ /* 04 */ - // data_ov031_021136e4 + ActorUnkZLSL_2700(UnkSystem5 *param1, ModelRender *param2, unk32 param3) : + ActorUnkZLSL_27CC(param1, param2, param3) {} + // data_ov031_021136e4 void func_ov000_02099ddc(ActorUnkZLSL_AnimationTag param1, unk32 param2); }; @@ -216,12 +230,9 @@ public: /* 1690 */ ActorUnkZLSL_1690 mUnk_1690; /* 1694 */ STRUCT_PAD(0x1694, 0x2700); /* 2700 */ ActorUnkZLSL_2700 mUnk_2700; - /* 2704 */ STRUCT_PAD(0x271C, 0x276C); + /* 2704 */ STRUCT_PAD(0x275C, 0x276C); /* 276C */ ModelRender_ov031_02113670 mUnk_276C; /* 27CC */ ActorUnkZLSL_27CC mUnk_27CC; - /* 1694 */ STRUCT_PAD(0x27E8, 0x2800); - /* 2800 */ unk32 mUnk_2800; - /* 2804 */ STRUCT_PAD(0x2804, 0x2828); /* 2828 */ UnkStruct_PlayerGet_ec mUnk_2828; /* 282C */ unk32 mUnk_282C; /* 2830 */ unk32 mUnk_2830; diff --git a/src/031_Land/Actor/ActorUnkEFSB.cpp b/src/031_Land/Actor/ActorUnkEFSB.cpp index 07bd00da..35b29b22 100644 --- a/src/031_Land/Actor/ActorUnkEFSB.cpp +++ b/src/031_Land/Actor/ActorUnkEFSB.cpp @@ -1,8 +1,14 @@ -//! TODO: This file was generated automatically and might contain errors - #include "Actor/ActorUnkEFSB.hpp" #include "System/SysNew.hpp" +extern "C" unk32 func_01ffb428(unk32, unk32); +extern "C" void func_01ffc634(ModelRender *, VecFx32 *, UnkAngleStruct, VecFx32 *); + +static ActorUnkZLSL_AnimationTag data_ov031_02114ed0[0x2] = { + {.index = 0x0, .name = "statue_beam"}, + {.index = 0x1, .name = "statue_beam"}, +}; + DECL_PROFILE(ActorProfileUnkEFSB); Actor *ActorProfileUnkEFSB::Create() { @@ -12,13 +18,48 @@ Actor *ActorProfileUnkEFSB::Create() { ActorProfileUnkEFSB::ActorProfileUnkEFSB() : ActorProfile_Derived1(ActorId_EFSB) {} -ActorUnkEFSB::ActorUnkEFSB() {} +ActorUnkEFSB::ActorUnkEFSB() : + mUnk_098(G3d_GetModelPtr(GET_PROFILE(ActorProfileUnkEFSB)->mUnk_3C.mUnk_50)), + mUnk_0F8(&this->mUnk_0F8.mUnk_1C, &this->mUnk_098, GET_PROFILE(ActorProfileUnkEFSB)->vfunc_04()), + mUnk_154(&this->mUnk_154.mUnk_1C, &this->mUnk_098, GET_PROFILE(ActorProfileUnkEFSB)->vfunc_04()) {} -void ActorUnkEFSB::func_ov031_020fb614(void) {} -void ActorUnkEFSB::func_ov031_020fb6cc(void) {} -void ActorUnkEFSB::func_ov031_020fb704(void) {} -void ActorUnkEFSB::func_ov031_020fb718(void) {} -void ActorUnkEFSB::func_ov031_020fb720(void) {} +bool ActorUnkEFSB::vfunc_18(unk32 param1) { + this->mUnk_0F8.vfunc_1C(data_ov031_02114ed0[0], 0x1000, 0x11F, 0x0); + this->mUnk_154.func_ov000_02099f8(data_ov031_02114ed0[0], 0x1000); -ActorUnkEFSB::~ActorUnkEFSB() {} -ActorProfileUnkEFSB::~ActorProfileUnkEFSB() {} + this->mUnk_1B0 = this->mUnk_5C.mParams[0] << 0xC; + if (this->mUnk_1B0 == 0) { + this->mUnk_1B0 = 0x1000; + } + + this->vfunc_54(0x0); + return true; +} + +void ActorUnkEFSB::vfunc_20() { + if (this->mUnk_094 != 0x0) { + return; + } + this->mUnk_0F8.vfunc_34(); + this->mUnk_154.vfunc_34(); +} + +void ActorUnkEFSB::vfunc_24() { + this->vfunc_20(); +} + +void ActorUnkEFSB::vfunc_54(unk32 param1) { + this->mUnk_094 = param1; +} + +void ActorUnkEFSB::vfunc_2C(unk32 param1) { + VecFx32 vec; + + VecFx32_Init(FLOAT_TO_FX32(1.0f), FLOAT_TO_FX32(1.0f), FLOAT_TO_FX32(1.0f), &vec); + vec.z = func_01ffb428(this->mUnk_1B0, 0x8000); + + VecFx32 sp0 = this->mPos; + sp0.y += FLOAT_TO_FX32(0.85f); + + func_01ffc634(&this->mUnk_098, &vec, this->mAngleStruct, &sp0); +} diff --git a/src/031_Land/Actor/ActorUnkZLSL_ZSRS.cpp b/src/031_Land/Actor/ActorUnkZLSL_ZSRS.cpp index 1dedf746..7651668b 100644 --- a/src/031_Land/Actor/ActorUnkZLSL_ZSRS.cpp +++ b/src/031_Land/Actor/ActorUnkZLSL_ZSRS.cpp @@ -150,7 +150,9 @@ ActorProfileUnkZLSL::ActorProfileUnkZLSL() : ActorUnkZLSL::ActorUnkZLSL() : Actor_Derived1(NULL, 0x0), mUnk_1620(NULL), - mUnk_276C(NULL) {} + mUnk_2700(0, 0, 0), + mUnk_276C(NULL), + mUnk_27CC(0, 0, 0) {} void func_ov031_020ea100() {} @@ -496,7 +498,7 @@ void ActorUnkZLSL::func_ov031_020eb218() { // non-matching bool ActorUnkZLSL::func_ov031_020eb2b0(VecFx32 *param1, unk32 param2) { - func_01ff916c(&this->mUnk_2800, param1->y, 0xCD); + func_01ff916c(&this->mUnk_27CC.mUnk_1C, param1->y, 0xCD); unk16 res = func_02016958(&this->mPos, param1); func_01ff930c(&this->mAngle, res, 0x71C); @@ -504,7 +506,7 @@ bool ActorUnkZLSL::func_ov031_020eb2b0(VecFx32 *param1, unk32 param2) { vec.y += 0x800; if (!this->mUnk_2874) { if (this->mUnk_094.mUnk_0C->vfunc_10()->mUnk_0C < 0xA000) { - func_01ff916c(&this->mUnk_2800, 0xCD - 0x400, 0xCD + 0xCD); + func_01ff916c(&this->mUnk_27CC.mUnk_1C, 0xCD - 0x400, 0xCD + 0xCD); } } }