Decompiling RFCO actor (#168)

* feat: begin decompiling

* feat: update

* feat: update

* feat: progress decompiling

* feat: increase matching

* refactor: change unk32 -> fx32

* feat: increase matching

* refactor: use appropriate function

* fix: use new name for CANS

* feat: use Copy macro for UnkStackStruct2 and match function

* refactor: replace strange bitshifts by division
This commit is contained in:
Alessevan
2026-10-25 05:03:57 -04:00
committed by GitHub
parent 55e41ee9a6
commit f6a7b43b15
37 changed files with 613 additions and 257 deletions
+1 -1
View File
@@ -126,7 +126,7 @@ public:
/* 268 */ ActorLobarrierShield *shield;
/* 26C */ fx16 mUnk_26C; // Some kind of angle, probably
/* 26E */ PAD(0x26E, 0x270);
/* 270 */ unk32 mUnk_270;
/* 270 */ fx32 mUnk_270;
/* 274 */ u16 mUnk_274;
/* 276 */ s8 mUnk_276;
/* 277 */ s8 mUnk_277;
+1 -1
View File
@@ -101,7 +101,7 @@ public:
/* 1FC */ PAD(0x1FC, 0x218);
/* 218 */ unk16 mUnk_218;
/* 21C */ unk32 mUnk_21C;
/* 220 */ unk32 mUnk_220;
/* 220 */ fx32 mUnk_220;
/* 224 */ unk16 mUnk_224;
/* 228 */ Actor_9C mUnk_228;
/* 248 */ UnkStruct_ActorLobarrier_224 mUnk_248;
+1 -1
View File
@@ -13,7 +13,7 @@ public:
/* 098 */ ModelRender mUnk_098;
/* 0F8 */ ActorUnkZLSL_27CC mUnk_0F8;
/* 154 */ ActorUnkZLSL_27CC mUnk_154;
/* 1B0 */ unk32 mUnk_1B0;
/* 1B0 */ fx32 mUnk_1B0;
/* 1B4 */
ActorUnkEFSB();
+71 -21
View File
@@ -1,42 +1,92 @@
//! TODO: This file was generated automatically and might contain errors
#pragma once
#include "Actor/Actor.hpp"
#include "Actor/ActorProfile.hpp"
#include "MapObject/MapObjectUnkRCFL.hpp"
#include "global.h"
#include "types.h"
class ActorUnkRCFO_C4 : public Actor_C4 {
class ActorUnkRCFO_094 {
public:
ActorUnkRCFO_C4(Actor *param1);
/* 00 */ unk32 mUnk_00;
/* 04 */
/* 00 */ virtual bool vfunc_00(RefStruct ref, unk32 param2) override;
/* 04 */ virtual bool vfunc_04() override;
/* 08 */ virtual void vfunc_08() override;
/* 0C */ virtual void vfunc_0C(unk32 param1) override;
ActorUnkRCFO_094();
~ActorUnkRCFO_094();
void func_ov033_02119048(unk32 *param1);
void func_ov033_021190dc();
void func_ov033_021190f4();
};
class ActorUnkRCFO_910 {
public:
/* 00 */ unk32 mUnk_00;
/* 04 */ unk32 mUnk_04;
/* 08 */
ActorUnkRCFO_910(Vec2s *param1, unk32 param2); // func_ov000_0205b1cc
void func_ov000_0205b1d8(Vec2s *param1);
void func_ov000_0205b224(unk32 param1, unk32 param2);
};
class ActorUnkRCFO_DFC_Base : public LinkList<ActorUnkRCFO_DFC_Base> {
public:
/* 00 */
/* 0C */ unk32 mUnk_0C;
/* 10 */
ActorUnkRCFO_DFC_Base() :
mUnk_0C() {}
};
class ActorUnkRCFO_DFC : public ActorUnkRCFO_DFC_Base {
public:
/* 00 (base) */
/* 10 */ ActorUnkRCFO_910 *mUnk_10;
/* 14 */ bool mUnk_14;
/* 15 */ bool mUnk_15;
/* 16 */
ActorUnkRCFO_DFC(ActorUnkRCFO_910 *param1);
virtual void vfunc_00();
};
class ActorUnkRCFO : public Actor {
public:
/* 00 (base) */
/* 94 */
/* 000 (base) */
/* 094 */ ActorUnkRCFO_094 mUnk_094;
/* 098 */ PAD(0x098, 0x910);
/* 910 */ ActorUnkRCFO_910 mUnk_910;
/* 914 */ PAD(0x918, 0x91C);
/* 91C */ Vec2s mUnk_91C[0xC8];
/* C3C */ MapObjectUnkRCFL *mUnk_C3C[0x64];
/* DDC */ MapObjectUnkRCFL **mUnk_DCC;
/* DD0 */ MapObjectUnkRCFL *mUnk_DD0;
/* DD4 */ unk32 mUnk_DD4;
/* DD8 */ Timer mUnk_DD8;
/* DDC */ VecFx32Cpp mUnk_DDC;
/* DE8 */ VecFx32Cpp mUnk_DE8;
/* DF4 */ unk32 mUnk_DF4;
/* DF8 */ unk32 mUnk_DF8;
/* DFC */ ActorUnkRCFO_DFC mUnk_DFC;
/* E14 */
ActorUnkRCFO();
/* 18 */ virtual bool Init(unk32 param1) override;
/* 1C */ virtual void Setup() override;
/* 20 */ virtual void Update() override;
/* 24 */ virtual void vfunc_24() override;
/* 2C */ virtual void vfunc_2C(unk32 param1) override;
/* 4C */ virtual ~ActorUnkRCFO() override;
void func_ov033_02119504(void);
void func_ov033_02119540(void);
void func_ov033_0211961c(void);
void func_ov033_02119828(void);
void func_ov033_0211983c(void);
void func_ov033_02119840(void);
void func_ov033_021199f4(void);
void func_ov033_02119a58(void);
void func_ov033_02119bc4(void);
void func_ov033_02119d00(void);
void func_ov033_02119d40(void);
void func_ov033_02119840(unk32 param1, unk32 param2);
void func_ov033_021199f4();
void func_ov033_02119a58();
bool func_ov033_02119bc4();
};
class ActorProfileUnkRCFO : public ActorProfile {
+2 -2
View File
@@ -88,7 +88,7 @@ void func_01ffa7a0(VecFx32 *, MtxFx33 *, VecFx32 *);
void func_01ffa9e8(MtxFx43 *, MtxFx43 *);
void func_01ffad5c(MtxFx43 *, MtxFx43 *, MtxFx43 *);
void func_01ffaf74(VecFx32 *, MtxFx43 *, VecFx32 *);
fx32 func_01ffb428(unk32, unk32);
fx32 func_01ffb428(fx32, fx32);
fx32 func_01ffb464(fx32);
fx32 func_01ffb66c(unk32, unk32);
unk32 func_01ffb6a8(unk32, unk32);
@@ -208,7 +208,7 @@ unk32 func_02032784(unk32 param1);
unk32 func_020328c8(void *, void *, size_t);
u16 func_02032920(void *param1, size_t param2);
unk32 func_02039d60(f32, unk32);
f32 func_02039f04(unk32);
f32 func_02039f04(fx32);
f32 func_0203ab58(unk32, f32);
f32 func_0203ad88(f32, unk32);
void func_02097bb8(void);
+1 -1
View File
@@ -21,7 +21,7 @@ public:
/* 00 (base MapObject) */
/* 40 (base MapObject_UnkStruct1_Derived2) */
/* 68 */ UnkStruct_PlayerGet_ec mUnk_68;
/* 6C */ unk32 mUnk_6C;
/* 6C */ fx32 mUnk_6C;
/* 70 */ unk32 mUnk_70;
/* 74 */ unk32 mUnk_74;
/* 78 */ u16 mUnk_78;
+6 -2
View File
@@ -10,7 +10,11 @@
class MapObjectUnkRCFL : public MapObject {
public:
/* 00 (base) */
/* 40 */
/* 40 */ unk32 mUnk_40;
/* 44 */ PAD(0x44, 0x60);
/* 60 */ unk32 mUnk_60;
/* 64 */ PAD(0x64, 0x68);
/* 68 */
MapObjectUnkRCFL();
@@ -23,7 +27,7 @@ public:
void func_ov033_0211bcac(void);
void func_ov033_0211bcc4(void);
void func_ov033_0211bcdc(void);
void func_ov033_0211bcf4(void);
fx32 func_ov033_0211bcf4();
void func_ov033_0211bcfc(void);
void func_ov033_0211bdac(void);
};
+1 -1
View File
@@ -149,7 +149,7 @@ public:
/* 04 */ fx32 mUnk_04;
/* 08 */ fx32 mUnk_08;
/* 0C */ unk32 mUnk_0C;
/* 10 */ unk32 mUnk_10;
/* 10 */ fx32 mUnk_10;
/* 14 */ unk32 mUnk_14;
/* 18 */
+1 -1
View File
@@ -154,7 +154,7 @@ public:
/* 04 */ virtual void vfunc_04();
/* 08 */ virtual void vfunc_08();
unk32 func_0201ec30();
fx32 func_0201ec30();
void func_0201ebf8(unk32 param1, unk32 param2, unk32 param3, unk32 param4);
void Subprocess1_UnkValueSets() {