Start decompiling Actors RMSX (#96)

* feat: Decompile ActorUnkRMSS

* feat: Rename symbols for ActorUnkRMSD and finish ActorUnkRMSS

* feat: Start decompiling ActorUnkRMSV (port changes from ActorUnkRMSX)

* feat: Start decompiling ActorUnkRMSW (port changes from ActorUnkRMSX)

* feat: Start to decompile RMSW::vfunc_18

* feat: Match ActorUnkRMSW::vfunc_18

* feat: Match ActorUnkRMSD::vfunc_18

* feat: Match ActorUnkRMSV::vfunc_18 and vfunc_20

* fix: Style reviews
This commit is contained in:
Mityno
2026-07-02 17:39:05 +00:00
committed by GitHub
parent 4074a603d2
commit 58235d4f98
10 changed files with 202 additions and 106 deletions
+5 -8
View File
@@ -4,9 +4,7 @@
#include "Actor/Actor.hpp"
#include "Actor/ActorProfile.hpp"
#include "MainGame/AdventureMode.hpp"
#include "Render/ModelRender.hpp"
#include "Unknown/Common.hpp"
#include "global.h"
#include "nns/g3d/g3d.h"
#include "types.h"
@@ -41,13 +39,12 @@ public:
ActorUnkRMSD();
/* 18 */ virtual unk32 vfunc_18(void) override;
/* 20 */ virtual void vfunc_20(void) override;
/* 24 */ virtual void vfunc_24(void) override;
/* 4C */ virtual ~ActorUnkRMSD() override;
void func_ov063_0215c408(void);
void func_ov063_0215c45c(void);
void func_ov063_0215c474(void);
G3d_Model *func_ov063_0215c488(void); //! INFO: G3d_Model deduced from RMSF
G3d_Model *func_ov063_0215c4c8(void); //! INFO: same as above
/* 54 */ virtual G3d_Model *vfunc_54(void);
/* 58 */ virtual G3d_Model *vfunc_58(void);
};
class ActorProfileUnkRMSD : public ActorProfile_Derived1 {
+6 -4
View File
@@ -4,7 +4,9 @@
#include "Actor/Actor.hpp"
#include "Actor/ActorProfile.hpp"
#include "Actor/ActorUnkRMSD.hpp"
#include "global.h"
#include "nns/g3d/g3d.h"
#include "types.h"
class ActorUnkRMSS_C4 : public Actor_C4 {
@@ -17,17 +19,17 @@ public:
/* 0C */ virtual void vfunc_0C(unk32 param1) override;
};
class ActorUnkRMSS : public Actor {
class ActorUnkRMSS : public ActorUnkRMSBase {
public:
/* 00 (base) */
/* 94 */
/* 158 */
ActorUnkRMSS();
/* 4C */ virtual ~ActorUnkRMSS() override;
void func_ov063_0215c5fc(void);
void func_ov063_0215c63c(void);
/* 54 */ virtual G3d_Model *vfunc_54(void);
/* 58 */ virtual G3d_Model *vfunc_58(void);
};
class ActorProfileUnkRMSS : public ActorProfile_Derived1 {
+14 -8
View File
@@ -5,6 +5,7 @@
#include "Actor/Actor.hpp"
#include "Actor/ActorProfile.hpp"
#include "global.h"
#include "nns/g3d/g3d.h"
#include "types.h"
class ActorUnkRMSV_C4 : public Actor_C4 {
@@ -17,25 +18,30 @@ public:
/* 0C */ virtual void vfunc_0C(unk32 param1) override;
};
class ActorUnkRMSV : public Actor {
class ActorUnkRMSV : public Actor { //! INFO: ActorUnkRMSBase ? -> weirdly doesn't match first dtor
public:
/* 00 (base) */
/* 94 */
/* 94 */ STRUCT_PAD(0x94, 0x158);
/* 158 */ unk32 mUnk_158; //! INFO: Some class with a vfunc_34
/* 15C */ STRUCT_PAD(0x15C, 0x1D4); //! INFO: Force alignment to match ::Create
/* 1D4 */ unk32 mUnk_1D4; //! INFO: Some class with a vfunc_34
/* 1D8 */ STRUCT_PAD(0x1D8, 0x250); //! INFO: Force alignment to match ::Create
/* 250 */
ActorUnkRMSV();
/* 18 */ virtual unk32 vfunc_18(void);
/* 20 */ virtual void vfunc_20(void);
/* 24 */ virtual void vfunc_24(void);
/* 4C */ virtual ~ActorUnkRMSV() override;
/* 50 */ virtual void vfunc_50(void); // dtor, override?
/* 54 */ virtual G3d_Model *vfunc_54(void);
/* 58 */ virtual G3d_Model *vfunc_58(void);
void func_ov063_0215bd44(void);
void func_ov063_0215bd58(void);
void func_ov063_0215bdec(void);
void func_ov063_0215be10(void);
void func_ov063_0215be3c(void);
void func_ov063_0215be50(void);
void func_ov063_0215be90(void);
void func_ov063_0215bed0(void);
void func_ov063_0215bee0(void);
void func_ov063_0215bf3c(void);
};
class ActorProfileUnkRMSV : public ActorProfile_Derived1 {
+21 -7
View File
@@ -4,9 +4,20 @@
#include "Actor/Actor.hpp"
#include "Actor/ActorProfile.hpp"
#include "Actor/ActorUnkRMSD.hpp"
#include "global.h"
#include "nns/g3d/g3d.h"
#include "types.h"
struct UnkStruct_data_ov063_02163388 {
/* 00 */ unk32 mUnk_00;
/* 04 */ unk32 mUnk_04;
/* 08 */ unk32 mUnk_08;
/* 0C */ unk32 mUnk_0C;
/* 10 */ unk32 mUnk_10;
/* 14 */ unk32 mUnk_14;
};
class ActorUnkRMSW_C4 : public Actor_C4 {
public:
ActorUnkRMSW_C4(Actor *param1);
@@ -17,20 +28,23 @@ public:
/* 0C */ virtual void vfunc_0C(unk32 param1) override;
};
class ActorUnkRMSW : public Actor {
class ActorUnkRMSW : public ActorUnkRMSBase {
public:
/* 00 (base) */
/* 94 */
/* 158 */ unk32 mUnk_158; //! INFO: Some class with a vfunc_34
/* 15C */ STRUCT_PAD(0x15C, 0x1D4); //! INFO: Force alignment to match ::Create
/* 1D4 */
ActorUnkRMSW();
/* 18 */ virtual unk32 vfunc_18(void);
/* 20 */ virtual void vfunc_20(void);
/* 24 */ virtual void vfunc_24(void);
/* 4C */ virtual ~ActorUnkRMSW() override;
void func_ov063_0215c05c(void);
void func_ov063_0215c0b0(void);
void func_ov063_0215c0c8(void);
void func_ov063_0215c0dc(void);
void func_ov063_0215c11c(void);
/* 54 */ virtual G3d_Model *vfunc_54(void);
/* 58 */ virtual G3d_Model *vfunc_58(void);
};
class ActorProfileUnkRMSW : public ActorProfile_Derived1 {