mirror of
https://github.com/zeldaret/st
synced 2026-06-19 07:37:10 -04:00
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:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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() {}
|
||||
|
||||
Reference in New Issue
Block a user