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
+18 -9
View File
@@ -2,17 +2,22 @@
#include "Actor/ActorUnkRMSD.hpp"
#include "Actor/ActorUnkRMSW.hpp"
#include "Render/ModelRender.hpp"
#include "nns/g3d/g3d.h"
#include "profile.hpp"
extern "C" void func_ov073_0215bb34(ActorUnkRMSD *);
DECL_PROFILE(ActorProfileUnkRMSD);
#include "types.h"
char data_ov063_021625d8[0x10]; // = "RMSD_wall";
char data_ov063_021625e8[0x10]; // = "RMSD";
extern struct UnkStruct_data_ov063_02163388 data_ov063_021634b0; // = {0, 0x44534D52, 0, 0, 0, 0};
extern "C" void func_ov000_02099ff8(unk32 *param1, struct UnkStruct_data_ov063_02163388 param2, unk32 param8);
extern "C" unk32 func_ov063_0215bb34(ActorUnkRMSD *);
DECL_PROFILE(ActorProfileUnkRMSD);
Actor *ActorProfileUnkRMSD::Create() {
return new(HeapIndex_2) ActorUnkRMSD();
}
@@ -29,20 +34,24 @@ ActorUnkRMSD::ActorUnkRMSD() {
r0->vfunc_04();
}
void ActorUnkRMSD::func_ov063_0215c408(void) {}
unk32 ActorUnkRMSD::vfunc_18(void) {
unk32 res = func_ov063_0215bb34(this);
func_ov000_02099ff8(&this->mUnk_158, data_ov063_021634b0, 0x1000);
return res;
}
void ActorUnkRMSD::func_ov063_0215c45c(void) {
void ActorUnkRMSD::vfunc_20(void) {
(*(Actor *) &this->mUnk_158).vfunc_34(); // Not an Actor
}
void ActorUnkRMSD::func_ov063_0215c474(void) {
void ActorUnkRMSD::vfunc_24(void) {
this->vfunc_20();
}
G3d_Model *ActorUnkRMSD::func_ov063_0215c488(void) {
G3d_Model *ActorUnkRMSD::vfunc_54(void) {
return GetModelFromProfile3(&GET_PROFILE(ActorProfileUnkRMSD)->mUnk_3C, data_ov063_021625e8);
}
G3d_Model *ActorUnkRMSD::func_ov063_0215c4c8(void) {
G3d_Model *ActorUnkRMSD::vfunc_58(void) {
return GetModelFromProfile3(&GET_PROFILE(ActorProfileUnkRMSD)->mUnk_3C, data_ov063_021625d8);
}
+12 -3
View File
@@ -1,7 +1,11 @@
//! TODO: This file was generated automatically and might contain errors
#include "Actor/ActorUnkRMSS.hpp"
#include "System/SysNew.hpp"
#include "nns/g3d/g3d.h"
#include "profile.hpp"
extern char data_ov063_021625f8[0x10]; // = "RMSS_wall";
extern char data_ov063_02162608[0x10]; // = "RMSS";
DECL_PROFILE(ActorProfileUnkRMSS);
@@ -14,8 +18,13 @@ ActorProfileUnkRMSS::ActorProfileUnkRMSS() :
ActorUnkRMSS::ActorUnkRMSS() {}
void ActorUnkRMSS::func_ov063_0215c5fc(void) {}
void ActorUnkRMSS::func_ov063_0215c63c(void) {}
G3d_Model *ActorUnkRMSS::vfunc_54(void) {
return GetModelFromProfile3(&GET_PROFILE(ActorProfileUnkRMSS)->mUnk_3C, data_ov063_02162608);
}
G3d_Model *ActorUnkRMSS::vfunc_58(void) {
return GetModelFromProfile3(&GET_PROFILE(ActorProfileUnkRMSS)->mUnk_3C, data_ov063_021625f8);
}
ActorUnkRMSS::~ActorUnkRMSS() {}
ActorProfileUnkRMSS::~ActorProfileUnkRMSS() {}
+41 -7
View File
@@ -1,7 +1,20 @@
//! TODO: This file was generated automatically and might contain errors
#include "Actor/ActorUnkRMSV.hpp"
#include "System/SysNew.hpp"
#include "Actor/Actor.hpp"
#include "Actor/ActorUnkRMSW.hpp"
#include "MapObject/MapObjectTreasureSpawned.hpp"
#include "nns/g3d/g3d.h"
char data_ov063_02162578[0x10]; // = "RMSV";
char data_ov063_02162588[0x10]; // = "RMSV_wall";
extern struct UnkStruct_data_ov063_02163388 data_ov063_021632ac; // = {0, 0x56534D52, 0, 0, 0, 0};
extern struct UnkStruct_data_ov063_02163388 data_ov063_021632c4; // = {0x1, 0x56534D52, 0, 0, 0, 0};
extern "C" void func_ov000_02099ff8(unk32 *param1, struct UnkStruct_data_ov063_02163388 param2, unk32 param8);
extern "C" void func_ov000_02099e58(unk32 *param1, struct UnkStruct_data_ov063_02163388 param2, unk32 param8);
extern "C" unk32 func_ov063_0215bb34(ActorUnkRMSV *);
DECL_PROFILE(ActorProfileUnkRMSV);
@@ -14,16 +27,37 @@ ActorProfileUnkRMSV::ActorProfileUnkRMSV() :
ActorUnkRMSV::ActorUnkRMSV() {}
unk32 ActorUnkRMSV::vfunc_18(void) {
unk32 res = func_ov063_0215bb34(this);
func_ov000_02099ff8(&this->mUnk_158, data_ov063_021632ac, 0x1000);
func_ov000_02099e58(&this->mUnk_1D4, data_ov063_021632c4, 0x1000);
((MapObjectTreasureSpawned *) &this->mUnk_1D4)->vfunc_3C(); //! WARN: NOT a MapObjectTreasureSpawned
return res;
}
void ActorUnkRMSV::vfunc_20(void) {
(*(Actor *) &this->mUnk_158).vfunc_34(); // Not an Actor
(*(Actor *) &this->mUnk_1D4).vfunc_34(); // Not an Actor
}
void ActorUnkRMSV::vfunc_24(void) {
this->vfunc_20();
}
void ActorUnkRMSV::vfunc_50(void) {}
G3d_Model *ActorUnkRMSV::vfunc_54(void) {
return GetModelFromProfile3(&GET_PROFILE(ActorProfileUnkRMSV)->mUnk_3C, data_ov063_02162578);
}
G3d_Model *ActorUnkRMSV::vfunc_58(void) {
return GetModelFromProfile3(&GET_PROFILE(ActorProfileUnkRMSV)->mUnk_3C, data_ov063_02162588);
}
void ActorUnkRMSV::func_ov063_0215bd44(void) {}
void ActorUnkRMSV::func_ov063_0215bd58(void) {}
void ActorUnkRMSV::func_ov063_0215bdec(void) {}
void ActorUnkRMSV::func_ov063_0215be10(void) {}
void ActorUnkRMSV::func_ov063_0215be3c(void) {}
void ActorUnkRMSV::func_ov063_0215be50(void) {}
void ActorUnkRMSV::func_ov063_0215be90(void) {}
void ActorUnkRMSV::func_ov063_0215bed0(void) {}
void ActorUnkRMSV::func_ov063_0215bee0(void) {}
void ActorUnkRMSV::func_ov063_0215bf3c(void) {}
ActorUnkRMSV::~ActorUnkRMSV() {}
ActorProfileUnkRMSV::~ActorProfileUnkRMSV() {}
+31 -6
View File
@@ -1,7 +1,16 @@
//! TODO: This file was generated automatically and might contain errors
#include "Actor/ActorUnkRMSW.hpp"
#include "System/SysNew.hpp"
#include "nns/g3d/g3d.h"
#include "types.h"
char data_ov063_02162598[0x10]; // = "RMSW_wall";
char data_ov063_021625a8[0x10]; // = "RMSW";
extern struct UnkStruct_data_ov063_02163388 data_ov063_02163388; // = {0, 0x57534D52, 0, 0, 0, 0};
extern "C" void func_ov000_02099ff8(unk32 *param1, struct UnkStruct_data_ov063_02163388 param2, unk32 param8);
extern "C" unk32 func_ov063_0215bb34(ActorUnkRMSW *);
DECL_PROFILE(ActorProfileUnkRMSW);
@@ -14,11 +23,27 @@ ActorProfileUnkRMSW::ActorProfileUnkRMSW() :
ActorUnkRMSW::ActorUnkRMSW() {}
void ActorUnkRMSW::func_ov063_0215c05c(void) {}
void ActorUnkRMSW::func_ov063_0215c0b0(void) {}
void ActorUnkRMSW::func_ov063_0215c0c8(void) {}
void ActorUnkRMSW::func_ov063_0215c0dc(void) {}
void ActorUnkRMSW::func_ov063_0215c11c(void) {}
unk32 ActorUnkRMSW::vfunc_18(void) {
unk32 res = func_ov063_0215bb34(this);
func_ov000_02099ff8(&this->mUnk_158, data_ov063_02163388, 0x1000);
return res;
}
void ActorUnkRMSW::vfunc_20(void) {
(*(Actor *) &this->mUnk_158).vfunc_34(); // Not an Actor
}
void ActorUnkRMSW::vfunc_24(void) {
this->vfunc_20();
}
G3d_Model *ActorUnkRMSW::vfunc_54(void) {
return GetModelFromProfile3(&GET_PROFILE(ActorProfileUnkRMSW)->mUnk_3C, data_ov063_021625a8);
}
G3d_Model *ActorUnkRMSW::vfunc_58(void) {
return GetModelFromProfile3(&GET_PROFILE(ActorProfileUnkRMSW)->mUnk_3C, data_ov063_02162598);
}
ActorUnkRMSW::~ActorUnkRMSW() {}
ActorProfileUnkRMSW::~ActorProfileUnkRMSW() {}