diff --git a/include/Actor/ActorUnkRMSF.hpp b/include/Actor/ActorUnkRMSF.hpp index 0e7c0b9a2..3ac9a6813 100644 --- a/include/Actor/ActorUnkRMSF.hpp +++ b/include/Actor/ActorUnkRMSF.hpp @@ -20,19 +20,23 @@ class ActorUnkRMSF_c4 : public Actor_c4 { class ActorUnkRMSF : public Actor { public: /* 00 (base) */ - /* 94 */ + /* 94 */ unk32 mUnk_94; + /* 98 */ STRUCT_PAD(0x98, 0xF4); + /* F4 */ unk32 mUnk_F4; ActorUnkRMSF(); /* 4C */ virtual ~ActorUnkRMSF() override; - void func_ov063_0215c250(void); - void func_ov063_0215c290(void); + unk32 func_ov063_0215c250(void); + unk32 func_ov063_0215c290(void); }; class ActorProfileUnkRMSF : public ActorProfile_Derived1 { public: /* 00 (base) */ + /* 3A */ STRUCT_PAD(0x3A, 0x8C); + /* 8C */ unk32 mUnk_8C; ActorProfileUnkRMSF(); ~ActorProfileUnkRMSF(); diff --git a/src/063_Shrine/Actor/ActorUnkRMSF.cpp b/src/063_Shrine/Actor/ActorUnkRMSF.cpp index 671c16da1..10cd683c3 100644 --- a/src/063_Shrine/Actor/ActorUnkRMSF.cpp +++ b/src/063_Shrine/Actor/ActorUnkRMSF.cpp @@ -2,6 +2,14 @@ #include "Actor/ActorUnkRMSF.hpp" #include "System/SysNew.hpp" +#include "profile.hpp" +#include "types.h" + +extern "C" unk32 *func_0200f05c(unk32, char *); +extern "C" void func_0x02057b8c(unk32 *); + +char data_ov063_021625b8[0x10] = "RMSF_wall"; +char data_ov063_021625c8[0x10] = "RMSF"; ARM DECL_PROFILE(ActorProfileUnkRMSF); @@ -14,8 +22,27 @@ ARM ActorProfileUnkRMSF::ActorProfileUnkRMSF() : ARM ActorUnkRMSF::ActorUnkRMSF() {} -ARM void ActorUnkRMSF::func_ov063_0215c250(void) {} -ARM void ActorUnkRMSF::func_ov063_0215c290(void) {} +ARM unk32 ActorUnkRMSF::func_ov063_0215c250(void) { + unk32 var1 = GET_PROFILE(ActorProfileUnkRMSF)->mUnk_8C; + unk32 *var2; + if (var1 != 0 && (var2 = func_0200f05c(var1 + 8, data_ov063_021625c8), var2 != 0)) { + return var1 + *var2; + } + return 0; +} + +ARM unk32 ActorUnkRMSF::func_ov063_0215c290(void) { + unk32 var1 = GET_PROFILE(ActorProfileUnkRMSF)->mUnk_8C; + unk32 *var2; + if (var1 != 0 && (var2 = func_0200f05c(var1 + 8, data_ov063_021625b8), var2 != 0)) { + return var1 + *var2; + } + return 0; +} + +ARM ActorUnkRMSF::~ActorUnkRMSF() { + func_0x02057b8c(&this->mUnk_F4); + func_0x02057b8c(&this->mUnk_94); +} -ARM ActorUnkRMSF::~ActorUnkRMSF() {} ARM ActorProfileUnkRMSF::~ActorProfileUnkRMSF() {}