Delink and match sections of overlay 063 actors (#137)

* feat: Add .data to RMSX actors

* fix: Fix bad regressions

* feat: Add struct and improve RMSD matching

* feat: Move RMSX base class to the right file

* feat: Delink vtable and update symbols

* feat: Match .data and improve ActorUnkRMSBase

* feat: Update ActorUnkRSMBase ctor and match ActorUnkRMSW

* fix: Fix outdated initialization

* feat: Match RMSV ctor

* feat: Match more vfunc

* feat: Match more vfunc and some cleanup

* chore: Clean headers

* feat: Reorder funcs, add unk structs

* feat: Move RMSBase to a separate file and flag as complete

* feat: Complete some actors

* feat: Add data to RBLS, almost match the actor

* feat: Add eur data for CANS

* feat: Reorder CANS functions, sync data for jp

* feat: Reorder CASE functions

* feat: Update global func call to member func call
This commit is contained in:
Mityno
2026-08-21 14:20:59 +00:00
committed by GitHub
parent 347ac5860d
commit 2d4deebb84
33 changed files with 671 additions and 670 deletions
+8 -11
View File
@@ -40,8 +40,8 @@ public:
UnkStruct_ov063_02162ea8();
/* 00 (base) */ virtual ~UnkStruct_ov063_02162ea8();
/* 08 */ virtual bool vfunc_08(UnkStruct_ov031_020f3310 *param1) override;
/* 00 */ virtual ~UnkStruct_ov063_02162ea8();
/* 08 */ virtual bool vfunc_08(const UnkStruct_ov031_020f3310 *param1) override;
/* 0C */ virtual bool vfunc_0C(const UnkStruct_ov031_020e54d4 *param1, unk32 *param2, unk32 param3) override;
};
@@ -132,15 +132,13 @@ public:
ActorUnkCANS();
/* 10 */ virtual void vfunc_10(Cylinder *param1);
/* 18 */ virtual unk32 vfunc_18(void);
/* 1C */ virtual void vfunc_1C(void);
/* 20 */ virtual void vfunc_20(void);
/* 24 */ virtual void vfunc_24(void);
/* 2C */ virtual void vfunc_2C(unk32 param1);
/* 4C */ virtual ~ActorUnkCANS() override;
/* 10 */ virtual void vfunc_10(Cylinder *param1) override;
/* 18 */ virtual bool vfunc_18(unk32 param1) override;
/* 1C */ virtual void vfunc_1C(void) override;
/* 20 */ virtual void vfunc_20(void) override;
/* 24 */ virtual void vfunc_24(void) override;
/* 2C */ virtual void vfunc_2C(unk32 param1) override;
unk32 func_ov063_02157fa4(ActorRef param1, unk32 param2, unk32 param3, unk32 *param4);
void func_ov063_02158424(void);
void func_ov063_02158448(unk32 param1);
void func_ov063_02158490(void);
@@ -185,7 +183,6 @@ public:
/* 00 (base) */
ActorProfileUnkCANS();
~ActorProfileUnkCANS();
/* 0C */ virtual Actor *Create();
-5
View File
@@ -22,8 +22,6 @@ public:
/* 70 */
UnkStruct_ov063_021631a0(G3d_Model *pModel);
/* 00 */ virtual ~UnkStruct_ov063_021631a0() override {};
};
class UnkStruct_func_ov063_0215a678 {
@@ -59,7 +57,6 @@ public:
ActorUnkCASE_174(Actor *param1);
/* 00 */ virtual ~ActorUnkCASE_174() override {};
/* 10 */ virtual void vfunc_10(Actor *actor) override;
};
@@ -93,7 +90,6 @@ public:
/* 20 */ virtual void vfunc_20() override;
/* 24 */ virtual void vfunc_24() override;
/* 2C */ virtual void vfunc_2C(unk32 param1) override;
/* 4C */ virtual ~ActorUnkCASE() override;
void func_ov063_0215ab70(void);
void func_ov063_0215aba4(void);
@@ -132,7 +128,6 @@ public:
/* 00 (base) */
ActorProfileUnkCASE();
~ActorProfileUnkCASE();
/* 0C */ virtual Actor *Create();
+11 -28
View File
@@ -1,51 +1,35 @@
//! TODO: This file was generated automatically and might contain errors
#pragma once
#include "Actor/Actor.hpp"
#include "Actor/ActorProfile.hpp"
#include "Actor/ActorUnkRMSV.hpp"
#include "Render/ModelRender.hpp"
#include "global.h"
#include "types.h"
struct UnkStruct_data_ov063_02163740 {
/* 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 ActorUnkRBLS_C4 : public Actor_C4 {
class UnkStruct_ov063_02163784 : public UnkStruct_ov063_021632e4 {
public:
ActorUnkRBLS_C4(Actor *param1);
/* 00 (base) */
/* 40 */
/* 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;
UnkStruct_ov063_02163784(ModelRender *param1, unk32 param2) :
UnkStruct_ov063_021632e4(param1, param2) {};
};
class ActorUnkRBLS : public Actor {
public:
/* 00 (base) */
/* 94 */ ModelRender mUnk_94;
/* F4 */ unk32 mUnk_F4;
/* F8 */ STRUCT_PAD(0xF8, 0x110);
/* 110 */ UnkSystem5 mUnk_110;
/* 130 */ void *mUnk_130;
/* F4 */ UnkStruct_ov063_02163784 mUnk_F4;
/* 134 */ STRUCT_PAD(0x134, 0x160);
/* 160 */
ActorUnkRBLS();
/* 18 */ virtual unk32 vfunc_18(void);
/* 20 */ virtual void vfunc_20(void);
/* 24 */ virtual void vfunc_24(void);
/* 2C */ virtual void vfunc_2C(void);
/* 4C */ virtual ~ActorUnkRBLS() override;
/* 18 */ virtual bool vfunc_18(unk32 param1) override;
/* 20 */ virtual void vfunc_20(void) override;
/* 24 */ virtual void vfunc_24(void) override;
/* 2C */ virtual void vfunc_2C(unk32 param1) override;
void func_ov063_0215f3d4(void);
void func_ov063_0215f500(void);
@@ -56,7 +40,6 @@ public:
/* 00 (base) */
ActorProfileUnkRBLS();
~ActorProfileUnkRBLS();
/* 0C */ virtual Actor *Create();
+25
View File
@@ -0,0 +1,25 @@
#pragma once
#include "Render/ModelRender.hpp"
#include "Unknown/UnkStruct_ov031_02114870.hpp"
#include "nitro/types.h"
#include "nns/g3d/g3d.h"
class ActorUnkRMSBase : public UnkStruct_ov031_02114870 {
public:
/* 00 (base) */
/* F4 */ ModelRender mUnk_F4;
/* 154 */ u8 mUnk_154;
/* 155 */ unk8 mUnk_155;
/* 156 */ STRUCT_PAD(0x156, 0x158);
/* 158 */
ActorUnkRMSBase();
/* 18 */ virtual bool vfunc_18(unk32 param1) override;
/* 1C */ virtual void vfunc_1C() override;
/* 20 */ virtual void vfunc_20() override;
/* 24 */ virtual void vfunc_24() override;
/* 2C */ virtual void vfunc_2C(unk32 param1) override;
/* 58 */ virtual G3d_Model *vfunc_58() = 0;
};
+5 -29
View File
@@ -1,48 +1,25 @@
//! TODO: This file was generated automatically and might contain errors
#pragma once
#include "Actor/Actor.hpp"
#include "Actor/ActorProfile.hpp"
#include "Render/ModelRender.hpp"
#include "Actor/ActorUnkRMSBase.hpp"
#include "Actor/ActorUnkRMSV.hpp"
#include "global.h"
#include "nns/g3d/g3d.h"
#include "types.h"
class ActorUnkRMSD_C4 : public Actor_C4 {
public:
ActorUnkRMSD_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 ActorUnkRMSBase : public Actor {
public:
/* 00 (base) */
/* 94 */ ModelRender mUnk_94;
/* F4 */ ModelRender mUnk_F4;
/* 154 */ unk32 mUnk_154;
/* 158 */
ActorUnkRMSBase();
};
class ActorUnkRMSD : public ActorUnkRMSBase {
public:
/* 00 (base) */
/* 158 */ unk32 mUnk_158; //! INFO: Some class with a vfunc_34
/* 15C */ STRUCT_PAD(0x15C, 0x1D4); //! INFO: Force alignment to match ::Create
/* 158 */ UnkStruct_ov063_021632e4 mUnk_158;
/* 198 */ STRUCT_PAD(0x198, 0x1D4); //! INFO: Force alignment to match ::Create
/* 1D4 */
ActorUnkRMSD();
/* 18 */ virtual unk32 vfunc_18(void) override;
/* 18 */ virtual bool vfunc_18(unk32 param1) override;
/* 20 */ virtual void vfunc_20(void) override;
/* 24 */ virtual void vfunc_24(void) override;
/* 4C */ virtual ~ActorUnkRMSD() override;
/* 54 */ virtual G3d_Model *vfunc_54(void);
/* 58 */ virtual G3d_Model *vfunc_58(void);
};
@@ -53,7 +30,6 @@ public:
/* D8 */
ActorProfileUnkRMSD();
~ActorProfileUnkRMSD();
/* 0C */ virtual Actor *Create();
+1 -24
View File
@@ -2,32 +2,9 @@
#include "Actor/Actor.hpp"
#include "Actor/ActorProfile.hpp"
#include "Actor/ActorUnkRMSD.hpp"
#include "Render/ModelRender.hpp"
#include "Actor/ActorUnkRMSBase.hpp"
#include "global.h"
#include "nns/g3d/g3d.h"
#include "types.h"
class ActorUnkRMSF_C4 : public Actor_C4 {
public:
ActorUnkRMSF_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 ActorUnkRMSF_Base : public Actor {
public:
/* 00 (base) */
/* 94 */ ModelRender mUnk_94;
/* F4 */ ModelRender mUnk_F4;
/* 154 */ unk32 mUnk_154;
/* 158 */
ActorUnkRMSF_Base();
};
class ActorUnkRMSF : public ActorUnkRMSBase {
public:
+1 -14
View File
@@ -1,23 +1,10 @@
//! TODO: This file was generated automatically and might contain errors
#pragma once
#include "Actor/Actor.hpp"
#include "Actor/ActorProfile.hpp"
#include "Actor/ActorUnkRMSD.hpp"
#include "Actor/ActorUnkRMSBase.hpp"
#include "global.h"
#include "nns/g3d/g3d.h"
#include "types.h"
class ActorUnkRMSS_C4 : public Actor_C4 {
public:
ActorUnkRMSS_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 ActorUnkRMSS : public ActorUnkRMSBase {
public:
+33 -26
View File
@@ -1,42 +1,50 @@
//! TODO: This file was generated automatically and might contain errors
#pragma once
#include "Actor/Actor.hpp"
#include "Actor/ActorProfile.hpp"
#include "Actor/ActorUnkRMSBase.hpp"
#include "Actor/ActorUnkZLSL_ZSRS.hpp"
#include "Render/ModelRender.hpp"
#include "global.h"
#include "nns/g3d/g3d.h"
#include "types.h"
class ActorUnkRMSV_C4 : public Actor_C4 {
public:
ActorUnkRMSV_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 ActorUnkRMSV : public Actor { //! INFO: ActorUnkRMSBase ? -> weirdly doesn't match first dtor
class UnkStruct_ov063_021632e4 : public UnkStruct_ov000_020b31a8 {
public:
/* 00 (base) */
/* 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
/* 1C */ UnkSystem5 mUnk_1C;
/* 3C */ void *mUnk_3C;
/* 40 */
UnkStruct_ov063_021632e4(ModelRender *param1, unk32 param2) :
UnkStruct_ov000_020b31a8(&mUnk_1C, param1, param2),
mUnk_1C(&mUnk_3C, NULL) {
if (param2 != 0) {
mUnk_1C.mpModel = mUnk_10;
}
};
/* 30 */ virtual s8 vfunc_30() override;
/* 38 */ virtual void vfunc_38(unk32 param1, unk32 param2) override;
/* 3C */ virtual void vfunc_3C() override;
};
class ActorUnkRMSV : public ActorUnkRMSBase {
public:
/* 00 (base) */
/* 158 */ UnkStruct_ov063_021632e4 mUnk_158;
/* 198 */ STRUCT_PAD(0x198, 0x1D4); //! INFO: Force alignment to match ::Create
/* 1D4 */ UnkStruct_ov063_021632e4 mUnk_1D4;
/* 214 */ STRUCT_PAD(0x214, 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);
/* 18 */ virtual bool vfunc_18(unk32 param1) override;
/* 20 */ virtual void vfunc_20(void) override;
/* 24 */ virtual void vfunc_24(void) override;
/* 54 */ virtual G3d_Model *vfunc_54(void) override;
/* 58 */ virtual G3d_Model *vfunc_58(void) override;
void func_ov063_0215bd44(void);
void func_ov063_0215bdec(void);
@@ -49,7 +57,6 @@ public:
/* 00 (base) */
ActorProfileUnkRMSV();
~ActorProfileUnkRMSV();
/* 0C */ virtual Actor *Create();
+11 -25
View File
@@ -1,50 +1,37 @@
//! TODO: This file was generated automatically and might contain errors
#pragma once
#include "Actor/Actor.hpp"
#include "Actor/ActorId.hpp"
#include "Actor/ActorProfile.hpp"
#include "Actor/ActorUnkRMSD.hpp"
#include "Actor/ActorUnkRMSBase.hpp"
#include "Actor/ActorUnkRMSV.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;
/* 04 */ ActorId 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);
/* 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 ActorUnkRMSW : public ActorUnkRMSBase {
public:
/* 00 (base) */
/* 158 */ unk32 mUnk_158; //! INFO: Some class with a vfunc_34
/* 15C */ STRUCT_PAD(0x15C, 0x1D4); //! INFO: Force alignment to match ::Create
/* 158 */ UnkStruct_ov063_021632e4 mUnk_158;
/* 198 */ STRUCT_PAD(0x198, 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;
/* 54 */ virtual G3d_Model *vfunc_54(void);
/* 58 */ virtual G3d_Model *vfunc_58(void);
/* 18 */ virtual bool vfunc_18(unk32 param1) override;
/* 20 */ virtual void vfunc_20(void) override;
/* 24 */ virtual void vfunc_24(void) override;
/* 54 */ virtual G3d_Model *vfunc_54(void) override;
/* 58 */ virtual G3d_Model *vfunc_58(void) override;
};
class ActorProfileUnkRMSW : public ActorProfile_Derived1 {
@@ -52,7 +39,6 @@ public:
/* 00 (base) */
ActorProfileUnkRMSW();
~ActorProfileUnkRMSW();
/* 0C */ virtual Actor *Create();
+2 -2
View File
@@ -50,7 +50,7 @@ public:
/* 0C */ unk32 mUnk_0C;
/* 10 */ G3d_Model *mUnk_10;
/* 14 */ unk32 mUnk_14;
/* 18 */ unk8 mUnk_18; // deduced from strb [..., 0x18]
/* 18 */ unk8 mUnk_18;
/* 19 */ STRUCT_PAD(0x19, 0x1C);
/* 1C */
@@ -73,7 +73,7 @@ public:
/* 38 */ virtual void vfunc_38(unk32 param1, unk32 param2);
/* 3C */ virtual void vfunc_3C();
void func_ov000_02099f8(ActorUnkZLSL_AnimationTag param1, unk32 param2);
void func_ov000_02099ff8(ActorUnkZLSL_AnimationTag param1, unk32 param2);
};
class ActorUnkZLSL_27CC : public UnkStruct_ov000_020b31a8 {
@@ -0,0 +1,14 @@
#pragma once
#include "Actor/Actor.hpp"
class UnkStruct_ov031_02114664 : public Actor {
public:
/* 94 */
UnkStruct_ov031_02114664();
/* 18 */ virtual bool vfunc_18(unk32 param1) override;
/* 1C */ virtual void vfunc_1C() override;
/* 2C */ virtual void vfunc_2C(unk32 param1) override;
};
@@ -0,0 +1,16 @@
#pragma once
#include "Unknown/UnkStruct_ov031_02114664.hpp"
#include "nns/g3d/g3d.h"
class UnkStruct_ov031_02114870 : public UnkStruct_ov031_02114664 {
public:
/* 94 */ ModelRender mUnk_94;
/* F4 */
UnkStruct_ov031_02114870();
/* 18 */ virtual bool vfunc_18(unk32 param1) override;
/* 2C */ virtual void vfunc_2C(unk32 param1) override;
/* 54 */ virtual G3d_Model *vfunc_54();
};