diff --git a/include/Actor/Actor.hpp b/include/Actor/Actor.hpp index 31d3e3ba1..cd4123180 100644 --- a/include/Actor/Actor.hpp +++ b/include/Actor/Actor.hpp @@ -204,6 +204,9 @@ class Actor : public SysObject { void func_ov000_02098a88(unk32 param1, unk32 param2); void func_ov017_020bf5c4(Vec3p *param1, unk32 param2, unk32 param3, unk32 param4, unk32 param5); + + void func_ov031_020f7574(); + void func_ov000_02099afc(); }; struct Actor_c4_stack { diff --git a/include/Actor/ActorUnkRBWT.hpp b/include/Actor/ActorUnkRBWT.hpp index 595aea331..b3b6b55fc 100644 --- a/include/Actor/ActorUnkRBWT.hpp +++ b/include/Actor/ActorUnkRBWT.hpp @@ -4,11 +4,14 @@ #include "Actor/Actor.hpp" #include "Actor/ActorProfile.hpp" +#include "Unknown/Common.hpp" #include "global.h" #include "types.h" class ActorUnkRBWT_c4 : public Actor_c4 { public: + ActorUnkRBWT_c4(); + ActorUnkRBWT_c4(Actor *param1); /* 00 */ virtual unk32 vfunc_00(Actor_c4_stack param1, unk32 param2) override; @@ -21,12 +24,17 @@ class ActorUnkRBWT : public Actor { public: /* 00 (base) */ /* 94 */ + /* 98 */ + /* f4 */ UnkSystem4 mUnk_F4; + /* 154 */ unk32 mUnk_154; + /* 174 */ unk32 mUnk_174; + /* 1a8 */ UnkSystem5 mUnk_1a8; ActorUnkRBWT(); /* 4C */ virtual ~ActorUnkRBWT() override; - void func_ov083_0215b8c0(void); + ActorUnkRBWT *func_ov083_0215b8c0(void); void func_ov083_0215b9ac(void); void func_ov083_0215bcb8(void); void func_ov083_0215bcf0(void); @@ -37,12 +45,12 @@ class ActorUnkRBWT : public Actor { void func_ov083_0215bdfc(void); void func_ov083_0215bec4(void); void func_ov083_0215bed8(void); - void func_ov083_0215bfc4(void); + void func_ov083_0215bfc4(unk32 param1); void func_ov083_0215c0f4(void); void func_ov083_0215c114(void); void func_ov083_0215c120(void); void func_ov083_0215c144(void); - void func_ov083_0215c154(void); + int func_ov083_0215c154(void); void func_ov083_0215c15c(void); }; diff --git a/include/Unknown/Common.hpp b/include/Unknown/Common.hpp index 0d22e03c3..5cecb9b08 100644 --- a/include/Unknown/Common.hpp +++ b/include/Unknown/Common.hpp @@ -918,6 +918,7 @@ class UnkSystem4 { /* 5C */ unk32 mUnk_5C; /* 60 */ + UnkSystem4() {} UnkSystem4(unk32 param1); // func_ov000_02057b54 // data_ov000_020b1a6c @@ -926,7 +927,7 @@ class UnkSystem4 { /* 0C */ virtual void vfunc_0C(); /* 10 */ virtual void vfunc_10(); /* 14 */ virtual void vfunc_14(Mat3p *param1, Vec3p *param2); - /* 18 */ virtual void vfunc_18(); + /* 18 */ virtual void vfunc_18(Vec3p *param1); /* 1C */ virtual void vfunc_1C(UnkSystem4_vfunc_1C *param1); /* 20 */ virtual void vfunc_20(); @@ -993,6 +994,7 @@ class UnkSystem5 { /* 1C */ unk32 mUnk_1C; /* 20 */ + UnkSystem5() {} UnkSystem5(void *param1, unk32 param2); // func_ov000_0205778c void func_01ffc3b4(); diff --git a/src/083_BossWater/Actor/ActorUnkRBWT.cpp b/src/083_BossWater/Actor/ActorUnkRBWT.cpp index 6cdb12e50..0aa897fc7 100644 --- a/src/083_BossWater/Actor/ActorUnkRBWT.cpp +++ b/src/083_BossWater/Actor/ActorUnkRBWT.cpp @@ -2,11 +2,12 @@ #include "Actor/ActorUnkRBWT.hpp" #include "System/SysNew.hpp" +#include "Unknown/UnkStruct_027e0cdc.hpp" ARM DECL_PROFILE(ActorProfileUnkRBWT); ARM Actor *ActorProfileUnkRBWT::Create() { - return new(HeapIndex_2) ActorUnkRBWT(); + // return new(HeapIndex_2) ActorUnkRBWT(); } ARM ActorProfileUnkRBWT::ActorProfileUnkRBWT() : @@ -14,23 +15,43 @@ ARM ActorProfileUnkRBWT::ActorProfileUnkRBWT() : ARM ActorUnkRBWT::ActorUnkRBWT() {} -ARM void ActorUnkRBWT::func_ov083_0215b8c0(void) {} +ARM ActorUnkRBWT *ActorUnkRBWT::func_ov083_0215b8c0() { + func_ov000_02099afc(); + return this; +} ARM void ActorUnkRBWT::func_ov083_0215b9ac(void) {} -ARM void ActorUnkRBWT::func_ov083_0215bcb8(void) {} +ARM void ActorUnkRBWT::func_ov083_0215bcb8(void) { + if (this->mUnk_154 == 3) { + this->func_ov083_0215bdfc(); + } + data_027e0cdc->func_ov000_02082a28(7); + data_027e0cdc->func_ov000_02082a28(0xe); +} ARM void ActorUnkRBWT::func_ov083_0215bcf0(void) {} -ARM void ActorUnkRBWT::func_ov083_0215bd64(void) {} -ARM void ActorUnkRBWT::func_ov083_0215bd78(void) {} +ARM void ActorUnkRBWT::func_ov083_0215bd64(void) { + this->vfunc_20(); +} +ARM void ActorUnkRBWT::func_ov083_0215bd78(void) { + func_ov031_020f7574(); + if (mUnk_154 != 2 && mUnk_154 != 3) { + mUnk_F4.vfunc_18(&mPos); + } +} ARM void ActorUnkRBWT::func_ov083_0215bdac(void) {} -ARM void ActorUnkRBWT::func_ov083_0215bdec(void) {} +ARM void ActorUnkRBWT::func_ov083_0215bdec(void) { + this->func_ov083_0215bfc4(1); +} ARM void ActorUnkRBWT::func_ov083_0215bdfc(void) {} -ARM void ActorUnkRBWT::func_ov083_0215bec4(void) {} +ARM void ActorUnkRBWT::func_ov083_0215bec4(void) { + func_ov000_02098a88(1, 1); +} ARM void ActorUnkRBWT::func_ov083_0215bed8(void) {} -ARM void ActorUnkRBWT::func_ov083_0215bfc4(void) {} +ARM void ActorUnkRBWT::func_ov083_0215bfc4(unk32 param1) {} ARM void ActorUnkRBWT::func_ov083_0215c0f4(void) {} ARM void ActorUnkRBWT::func_ov083_0215c114(void) {} ARM void ActorUnkRBWT::func_ov083_0215c120(void) {} ARM void ActorUnkRBWT::func_ov083_0215c144(void) {} -ARM void ActorUnkRBWT::func_ov083_0215c154(void) {} +ARM int ActorUnkRBWT::func_ov083_0215c154(void) {} ARM void ActorUnkRBWT::func_ov083_0215c15c(void) {} ARM ActorUnkRBWT::~ActorUnkRBWT() {}