Advance decompilation of ActorUnkRMSD.cpp (#85)

* decomp: advanced on ActorUnkRMSD.cpp

* review + fix jp symbols

---------

Co-authored-by: Yanis002 <35189056+Yanis002@users.noreply.github.com>
This commit is contained in:
Tom BUTIN
2026-06-18 03:05:42 +02:00
committed by GitHub
parent 5e50a81e5e
commit b88aed88eb
10 changed files with 80 additions and 21 deletions
+2 -2
View File
@@ -2273,9 +2273,9 @@ _ZN12ActorProfile8vfunc_10Ev kind:function(arm,size=0x4) addr:0x02097810
_ZN12ActorProfile8vfunc_14Ev kind:function(arm,size=0x4) addr:0x02097814
_ZN12ActorProfile8vfunc_18Ev kind:function(arm,size=0x4) addr:0x02097818
func_ov000_0209781c kind:function(arm,size=0x7c) addr:0x0209781c
_ZN21ActorProfile_Derived1C2E7ActorId kind:function(arm,size=0x30) addr:0x02097898
_ZN21ActorProfile_Derived1C2Ej kind:function(arm,size=0x30) addr:0x02097898
func_ov000_020978c8 kind:function(arm,size=0x14) addr:0x020978c8
_ZN21ActorProfile_Derived1C2E7ActorIdS0_ kind:function(arm,size=0x30) addr:0x020978dc
_ZN21ActorProfile_Derived1C2EjS0_ kind:function(arm,size=0x30) addr:0x020978dc
_ZN21ActorProfile_Derived1D2Ev kind:function(arm,size=0x38) addr:0x0209790c
func_ov000_02097944 kind:function(arm,size=0x8) addr:0x02097944
func_ov000_0209794c kind:function(arm,size=0x20) addr:0x0209794c
+1 -1
View File
@@ -551,7 +551,7 @@ func_0200ef5c kind:function(arm,size=0x40) addr:0x0200ef5c
func_0200ef9c kind:function(arm,size=0x40) addr:0x0200ef9c
func_0200efdc kind:function(arm,size=0x40) addr:0x0200efdc
func_0200f01c kind:function(arm,size=0x40) addr:0x0200f01c
func_0200f05c kind:function(arm,size=0x1bc) addr:0x0200f05c
G3d_0200f05c kind:function(arm,size=0x1bc) addr:0x0200f05c
func_0200f218 kind:function(arm,size=0x164) addr:0x0200f218
func_0200f37c kind:function(arm,size=0x10) addr:0x0200f37c
func_0200f38c kind:function(arm,size=0x40) addr:0x0200f38c
+2 -2
View File
@@ -2270,9 +2270,9 @@ _ZN12ActorProfile8vfunc_10Ev kind:function(arm,size=0x4) addr:0x02098fb8
_ZN12ActorProfile8vfunc_14Ev kind:function(arm,size=0x4) addr:0x02098fbc
_ZN12ActorProfile8vfunc_18Ev kind:function(arm,size=0x4) addr:0x02098fc0
func_ov000_02098fc4 kind:function(arm,size=0x7c) addr:0x02098fc4
_ZN21ActorProfile_Derived1C2E7ActorId kind:function(arm,size=0x30) addr:0x02099040
_ZN21ActorProfile_Derived1C2Ej kind:function(arm,size=0x30) addr:0x02099040
func_ov000_02099070 kind:function(arm,size=0x14) addr:0x02099070
_ZN21ActorProfile_Derived1C2E7ActorIdS0_ kind:function(arm,size=0x30) addr:0x02099084
_ZN21ActorProfile_Derived1C2EjS0_ kind:function(arm,size=0x30) addr:0x02099084
_ZN21ActorProfile_Derived1D2Ev kind:function(arm,size=0x38) addr:0x020990b4
func_ov000_020990ec kind:function(arm,size=0x8) addr:0x020990ec
func_ov000_020990f4 kind:function(arm,size=0x20) addr:0x020990f4
+7 -7
View File
@@ -155,11 +155,11 @@ _ZN19ActorProfileUnkRMSD10GetProfileEv kind:function(arm,size=0xc) addr:0x0215e0
_ZN19ActorProfileUnkRMSD6CreateEv kind:function(arm,size=0x24) addr:0x0215e0dc
_ZN19ActorProfileUnkRMSDC1Ev kind:function(arm,size=0x28) addr:0x0215e100
_ZN12ActorUnkRMSDC1Ev kind:function(arm,size=0x74) addr:0x0215e128
_ZN12ActorUnkRMSD19func_ov063_0215e19cEv kind:function(arm,size=0x54) addr:0x0215e19c
_ZN12ActorUnkRMSD19func_ov063_0215e1f0Ev kind:function(arm,size=0x18) addr:0x0215e1f0
_ZN12ActorUnkRMSD19func_ov063_0215e208Ev kind:function(arm,size=0x14) addr:0x0215e208
_ZN12ActorUnkRMSD19func_ov063_0215e21cEv kind:function(arm,size=0x40) addr:0x0215e21c
_ZN12ActorUnkRMSD19func_ov063_0215e25cEv kind:function(arm,size=0x40) addr:0x0215e25c
_ZN12ActorUnkRMSD19func_ov063_0215c408Ev kind:function(arm,size=0x54) addr:0x0215e19c
_ZN12ActorUnkRMSD19func_ov063_0215c45cEv kind:function(arm,size=0x18) addr:0x0215e1f0
_ZN12ActorUnkRMSD19func_ov063_0215c474Ev kind:function(arm,size=0x14) addr:0x0215e208
_ZN12ActorUnkRMSD19func_ov063_0215c488Ev kind:function(arm,size=0x40) addr:0x0215e21c
_ZN12ActorUnkRMSD19func_ov063_0215c4c8Ev kind:function(arm,size=0x40) addr:0x0215e25c
_ZN12ActorUnkRMSDD1Ev kind:function(arm,size=0x30) addr:0x0215e29c
_ZN12ActorUnkRMSDD0Ev kind:function(arm,size=0x38) addr:0x0215e2cc
_ZN19ActorProfileUnkRMSDD1Ev kind:function(arm,size=0x14) addr:0x0215e304
@@ -372,8 +372,8 @@ data_ov063_021643b0 kind:data(any) addr:0x021643b0
data_ov063_021643c0 kind:data(any) addr:0x021643c0
data_ov063_021643d0 kind:data(any) addr:0x021643d0
data_ov063_021643e0 kind:data(any) addr:0x021643e0
data_ov063_021643f0 kind:data(any) addr:0x021643f0
data_ov063_02164400 kind:data(any) addr:0x02164400
data_ov063_021625d8 kind:data(any) addr:0x021643f0
data_ov063_021625e8 kind:data(any) addr:0x02164400
data_ov063_02164410 kind:data(any) addr:0x02164410
data_ov063_02164420 kind:data(any) addr:0x02164420
data_ov063_0216443c kind:data(any) addr:0x0216443c
+1 -1
View File
@@ -551,7 +551,7 @@ func_0200ef5c kind:function(arm,size=0x40) addr:0x0200ef5c
func_0200ef9c kind:function(arm,size=0x40) addr:0x0200ef9c
func_0200efdc kind:function(arm,size=0x40) addr:0x0200efdc
func_0200f01c kind:function(arm,size=0x40) addr:0x0200f01c
func_0200f05c kind:function(arm,size=0x1bc) addr:0x0200f05c
G3d_0200f05c kind:function(arm,size=0x1bc) addr:0x0200f05c
func_0200f218 kind:function(arm,size=0x164) addr:0x0200f218
func_0200f37c kind:function(arm,size=0x10) addr:0x0200f37c
func_0200f38c kind:function(arm,size=0x40) addr:0x0200f38c
+4
View File
@@ -3,6 +3,7 @@
#include "Actor/ActorId.hpp"
#include "Physics/Cylinder.hpp"
#include "System/SysNew.hpp"
#include "Unknown/Common.hpp"
#include "profile.hpp"
#include "types.h"
@@ -47,6 +48,9 @@ public:
class ActorProfile_Derived1 : public ActorProfile {
public:
/* 00 (base) */
/* 3C */ UnkActorFileSystem2 mUnk_3C;
/* D4 */ unk32 mUnk_D4;
/* D8 */
ActorProfile_Derived1(ActorId actorId);
ActorProfile_Derived1(ActorId actorId1, ActorId actorId2);
+9 -3
View File
@@ -4,6 +4,9 @@
#include "Actor/Actor.hpp"
#include "Actor/ActorProfile.hpp"
#include "MainGame/AdventureMode.hpp"
#include "Render/ModelRender.hpp"
#include "Unknown/Common.hpp"
#include "global.h"
#include "types.h"
@@ -20,7 +23,9 @@ public:
class ActorUnkRMSD : public Actor {
public:
/* 00 (base) */
/* 94 */
/* 94 */ unk8 mUnk_94;
/* 95 */ STRUCT_PAD(0x95, 0x158);
/* 158 */ Actor mUnk_158;
ActorUnkRMSD();
@@ -29,13 +34,14 @@ public:
void func_ov063_0215c408(void);
void func_ov063_0215c45c(void);
void func_ov063_0215c474(void);
void func_ov063_0215c488(void);
void func_ov063_0215c4c8(void);
void *func_ov063_0215c488(void); //! TODO: G3d_Model?
void *func_ov063_0215c4c8(void); //! TODO: G3d_Model?
};
class ActorProfileUnkRMSD : public ActorProfile_Derived1 {
public:
/* 00 (base) */
/* D8 */
ActorProfileUnkRMSD();
~ActorProfileUnkRMSD();
+13
View File
@@ -1230,6 +1230,19 @@ public:
/* 08 */
};
class UnkActorFileSystem2 : public MapObjectProfile_Derived2_20_Base {
public:
/* 00 (base) */
/* 94 */ unk16 mUnk_94;
/* 96 */ unk16 mUnk_96;
/* 98 */
UnkActorFileSystem2(u32 actorId2); // func_ov000_02097af8
// data_ov000_020b3084
/* 00 */ virtual ~UnkActorFileSystem2() override;
};
//! TODO: move to a better place
enum TrainPresetType_ {
TrainPresetType_Default = 0, // normal overworld settings
+15
View File
@@ -192,6 +192,8 @@ typedef struct BMDSectionModel {
/* 08 */ G3d_NameList modelList;
} BMDSectionModel;
u32 *G3d_0200f05c(const G3d_NameList *pNameList, const char *pName);
static inline u32 *G3d_GetModelOffsetPtr(const BMDSectionModel *pSection, u8 modelIndex) {
const G3d_NameList *pList = &pSection->modelList;
@@ -219,6 +221,19 @@ static inline G3d_Model *G3d_GetModelPtr(const BMDSectionModel *pSection) {
return G3d_GetModelVariantPtr(pSection, 0);
}
//! TODO: returns `G3d_Model*`?
static inline void *G3d_GetUnkPtr(const BMDSectionModel *pSection, const char *name) {
if (pSection != NULL) {
u32 *pOffset = G3d_0200f05c(&pSection->modelList, name);
if (pOffset != NULL) {
return (void *) ((u8 *) pSection + *pOffset);
}
}
return NULL;
}
#ifdef __cplusplus
} // extern "C"
#endif
+26 -5
View File
@@ -1,10 +1,17 @@
//! TODO: This file was generated automatically and might contain errors
#include "Actor/ActorUnkRMSD.hpp"
#include "Render/ModelRender.hpp"
#include "System/SysNew.hpp"
extern "C" void func_ov073_0215bb34(ActorUnkRMSD *);
ARM DECL_PROFILE(ActorProfileUnkRMSD);
char data_ov063_021625d8[0x10] = "RMSD_wall";
char data_ov063_021625e8[0x10] = "RMSD";
ARM Actor *ActorProfileUnkRMSD::Create() {
return new(HeapIndex_2) ActorUnkRMSD();
}
@@ -12,13 +19,27 @@ ARM Actor *ActorProfileUnkRMSD::Create() {
ARM ActorProfileUnkRMSD::ActorProfileUnkRMSD() :
ActorProfile_Derived1(ActorId_RMSD) {}
ARM ActorUnkRMSD::ActorUnkRMSD() {}
ARM ActorUnkRMSD::ActorUnkRMSD() {
ActorProfileUnkRMSD *r0 = GET_PROFILE(ActorProfileUnkRMSD);
r0->vfunc_04();
}
ARM void ActorUnkRMSD::func_ov063_0215c408(void) {}
ARM void ActorUnkRMSD::func_ov063_0215c45c(void) {}
ARM void ActorUnkRMSD::func_ov063_0215c474(void) {}
ARM void ActorUnkRMSD::func_ov063_0215c488(void) {}
ARM void ActorUnkRMSD::func_ov063_0215c4c8(void) {}
ARM void ActorUnkRMSD::func_ov063_0215c45c(void) {
this->mUnk_158.vfunc_34();
}
ARM void ActorUnkRMSD::func_ov063_0215c474(void) {
this->vfunc_20();
}
ARM void *ActorUnkRMSD::func_ov063_0215c488(void) {
return G3d_GetUnkPtr(GET_PROFILE(ActorProfileUnkRMSD)->mUnk_3C.mUnk_50, data_ov063_021625e8);
}
ARM void *ActorUnkRMSD::func_ov063_0215c4c8(void) {
return G3d_GetUnkPtr(GET_PROFILE(ActorProfileUnkRMSD)->mUnk_3C.mUnk_50, data_ov063_021625d8);
}
ARM ActorUnkRMSD::~ActorUnkRMSD() {}
ARM ActorProfileUnkRMSD::~ActorProfileUnkRMSD() {}