mirror of
https://github.com/zeldaret/st
synced 2026-09-06 10:55:19 -04:00
Decompiling rolling stones actor (#104)
* feat: rename UnkRLST to RollingStone * feat: prepare for decompiling * feat: match .data * refactor: remove explicit deconstructor from parameters class * feat: improvements * feat: matching * feat: fix build issues * feat: continue matching * style: weird style * feat: improvements * feat: remove explicit destructors * feat: improvements * feat: improvements * feat: improvements * feat: progress * feat: some progress * refactor: cleanup * refactor: more cleanup * refactor: apply rc * refactor: includes black magic * refactor: MORE MAGIC
This commit is contained in:
+12
-27
@@ -5,6 +5,7 @@
|
||||
#include "Actor/ActorRef.hpp"
|
||||
#include "Physics/Cylinder.hpp"
|
||||
#include "System/SysNew.hpp"
|
||||
#include "Unknown/UnkStruct_ov031_Items.hpp"
|
||||
#include "flags.h"
|
||||
#include "global.h"
|
||||
#include "math.hpp"
|
||||
@@ -89,30 +90,6 @@ enum ActorFlag_ {
|
||||
ActorFlag_31 = FLAG(0, 31),
|
||||
};
|
||||
|
||||
class Actor_C4;
|
||||
|
||||
struct ActorGrabParams;
|
||||
extern "C" void func_ov000_0205d500(ActorGrabParams *, unk32, unk32);
|
||||
bool PlayerCharacter_IsNotLink(s32 character);
|
||||
|
||||
struct ActorGrabParams {
|
||||
/* 00 */ u16 unk_00;
|
||||
/* 02 */ u16 unk_02;
|
||||
/* 04 */
|
||||
|
||||
ActorGrabParams() {}
|
||||
|
||||
ActorGrabParams(unk32 param2, unk32 param3) {
|
||||
ActorGrabParams local_1c;
|
||||
func_ov000_0205d500(&local_1c, param3, param2);
|
||||
*this = local_1c;
|
||||
}
|
||||
|
||||
void operator=(ActorGrabParams &from) {
|
||||
*(u32 *) this = *(u32 *) &from;
|
||||
}
|
||||
};
|
||||
|
||||
class Actor_9C {
|
||||
public:
|
||||
/* 00 (vtable) */
|
||||
@@ -134,6 +111,13 @@ public:
|
||||
void func_ov000_02097bec();
|
||||
};
|
||||
|
||||
class Actor_38 {
|
||||
public:
|
||||
/* 00 (base) */ STRUCT_PAD(0x00, 0x08);
|
||||
/* 08 */ unk16 mUnk_08;
|
||||
/* 0A */
|
||||
};
|
||||
|
||||
typedef s16 ActorState;
|
||||
#define ActorState_None -1
|
||||
|
||||
@@ -148,7 +132,7 @@ public:
|
||||
/* 2C */ unk32 mUnk_2C; // gravity?
|
||||
/* 30 */ Cylinder *mUnk_30;
|
||||
/* 34 */ Cylinder *mUnk_34;
|
||||
/* 38 */ unk32 *mUnk_38;
|
||||
/* 38 */ Actor_38 *mUnk_38;
|
||||
/* 3C */ Actor_9C *mUnk_3C;
|
||||
/* 40 */ Actor_C4 *mUnk_40;
|
||||
/* 44 */ u16 mUnk_44;
|
||||
@@ -231,7 +215,7 @@ public:
|
||||
void func_ov000_020984f0();
|
||||
u32 func_ov000_02098800(bool param1);
|
||||
bool func_ov000_02098838();
|
||||
unk32 func_ov000_02098910(unk32 param1, unk32 param2);
|
||||
unk32 func_ov000_02098910(UnkStruct_ov031_Items_00 *param1, unk32 param2);
|
||||
void func_ov000_02098b8c(unk32 param1, unk32 param2);
|
||||
s32 func_ov000_02098518(unk32 *param1);
|
||||
VecFx32 *func_ov000_0209853c(unk32 param1);
|
||||
@@ -244,7 +228,7 @@ public:
|
||||
void func_ov000_020989e0();
|
||||
bool func_ov000_02098a60(unk32 param1);
|
||||
void func_ov000_02098a88(unk32 param1, unk32 param2);
|
||||
u32 func_ov000_02098ab4(bool param1, unk32 param2, unk32 param3, VecFx32 *param4);
|
||||
u32 func_ov000_02098ab4(u8 param1, unk32 param2, unk32 param3, VecFx32 *param4);
|
||||
|
||||
static void func_ov000_020973f4(ActorRef *pOutRef, UnkStruct_ov000_020b539c *param2, ActorId actorId, ActorParams *pParams,
|
||||
int param5);
|
||||
@@ -253,6 +237,7 @@ public:
|
||||
bool func_ov017_020beeec(unk32 param1);
|
||||
void func_ov017_020bf5c4(VecFx32 *param1, unk32 param2, unk32 param3, unk32 param4, unk32 param5);
|
||||
void func_ov017_020bf9c8(Actor *param1);
|
||||
void func_ov017_020bfb18(Actor_9C *param1);
|
||||
};
|
||||
|
||||
class Actor_C4_Base {
|
||||
|
||||
@@ -0,0 +1,150 @@
|
||||
#pragma once
|
||||
|
||||
#include "Actor/Actor.hpp"
|
||||
#include "Actor/ActorProfile.hpp"
|
||||
#include "ActorItemBoomerang.hpp"
|
||||
#include "ActorShotArrow.hpp"
|
||||
#include "Actor_Derived1.hpp"
|
||||
#include "Render/ModelRender.hpp"
|
||||
#include "Unknown/UnkStruct_ov031_Items.hpp"
|
||||
#include "global.h"
|
||||
#include "types.h"
|
||||
|
||||
enum ActorRollingStoneState_ {
|
||||
ActorRollingStoneState_0 = 0,
|
||||
ActorRollingStoneState_1 = 1,
|
||||
ActorRollingStoneState_2 = 2,
|
||||
ActorRollingStoneState_3 = 3,
|
||||
ActorRollingStoneState_4 = 4,
|
||||
ActorRollingStoneState_5 = 5,
|
||||
ActorRollingStoneState_6 = 6,
|
||||
ActorRollingStoneState_7 = 7,
|
||||
ActorRollingStoneState_8 = 8,
|
||||
ActorRollingStoneState_9 = 9,
|
||||
ActorRollingStoneState_10 = 10,
|
||||
ActorRollingStoneState_MAX
|
||||
};
|
||||
|
||||
class ActorRollingStone;
|
||||
|
||||
class ActorRollingStone_104 : public UnkStruct_ov031_Items_00 {
|
||||
public:
|
||||
/* 00 (vtable) */
|
||||
/* 04 */
|
||||
|
||||
// data_ov031_02114a5c
|
||||
/* 0C */ virtual bool vfunc_0C(const UnkStruct_ov031_020e54d4 *param1, unk32 param2) override; // func_ov031_020f8354
|
||||
/* 10 */ virtual void vfunc_10() override; // func_ov031_020f83e4
|
||||
/* 14 */
|
||||
};
|
||||
|
||||
class ActorRollingStone_D4 : public UnkStruct_ov031_Items_01 {
|
||||
public:
|
||||
/* 00 (vtable) */
|
||||
/* 2C */ ActorRollingStone *mUnk_2C;
|
||||
/* 30 */
|
||||
|
||||
ActorRollingStone_D4(ActorRollingStone *param1) {
|
||||
this->mUnk_2C = param1;
|
||||
}
|
||||
|
||||
// data_ov031_02114a40
|
||||
/* 10 */ virtual void vfunc_10(Actor *param1) override; // func_ov031_020f849c
|
||||
};
|
||||
|
||||
class ActorRollingStone : public Actor {
|
||||
public:
|
||||
/* 000 (base) */
|
||||
/* 094 */ UnkSystem6_Derived2 mUnk_94;
|
||||
/* 09C */ unk8 mUnk_9C;
|
||||
/* 09D */ STRUCT_PAD(0x9D, 0xA0);
|
||||
/* 0A0 */ Actor_Derived1_94 mUnk_A0;
|
||||
/* 0AC */ ActorShotArrow_140 mUnk_AC;
|
||||
/* 0D4 */ ActorRollingStone_D4 mUnk_D4;
|
||||
/* 104 */ ActorRollingStone_104 mUnk_104;
|
||||
/* 108 */ u16 mUnk_108;
|
||||
/* 10A */ STRUCT_PAD(0x10A, 0x10C);
|
||||
/* 10C */ Mat3p mUnk_10C;
|
||||
/* 130 */ UnkStruct_PlayerGet_ec mUnk_130[0x2];
|
||||
/* 138 */ unk16 mUnk_138;
|
||||
/* 13C */ Cylinder mUnk_13C;
|
||||
/* 14C */ unk32 mUnk_14C;
|
||||
/* 150 */ volatile u16 mUnk_150;
|
||||
/* 152 */ volatile u16 mUnk_152;
|
||||
/* 154 */ volatile u16 mUnk_154;
|
||||
/* 156 */ volatile u16 mUnk_156;
|
||||
/* 158 */ bool mUnk_158;
|
||||
/* 159 */ bool mUnk_159;
|
||||
/* 15A */ s8 mUnk_15A;
|
||||
/* 15B */ s8 mUnk_15B;
|
||||
/* 15C */ Actor_Derived1_EC mUnk_15C;
|
||||
/* 17C */
|
||||
|
||||
ActorRollingStone();
|
||||
|
||||
/* 18 */ virtual bool vfunc_18(unk32 param1) override; // func_ov031_020f869c
|
||||
/* 20 */ virtual void vfunc_20() override; // func_ov031_020f878c
|
||||
/* 2C */ virtual void vfunc_2C(unk32 param1) override; // func_ov031_020f8948
|
||||
/* 54 */
|
||||
|
||||
bool IsInternalTimerOut1() {
|
||||
if (this->mUnk_150 < this->mUnk_152) {
|
||||
this->mUnk_150++;
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool IsInternalTimerOut2() {
|
||||
if (this->mUnk_154 < this->mUnk_156) {
|
||||
this->mUnk_154++;
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void SetState(ActorState state);
|
||||
void func_ov031_020f8880();
|
||||
void func_ov031_020f89f4();
|
||||
void func_ov031_020f8a04();
|
||||
void func_ov031_020f8a2c();
|
||||
void func_ov031_020f8a38();
|
||||
void func_ov031_020f8a3c();
|
||||
void func_ov031_020f8a58();
|
||||
void func_ov031_020f8b58();
|
||||
void func_ov031_020f8bc4();
|
||||
void func_ov031_020f8de8();
|
||||
void func_ov031_020f8ed4();
|
||||
void func_ov031_020f8f0c();
|
||||
void func_ov031_020f8f10();
|
||||
void func_ov031_020f8f30();
|
||||
void func_ov031_020f9018();
|
||||
void func_ov031_020f9050();
|
||||
void func_ov031_020f916c();
|
||||
void func_ov031_020f91ac();
|
||||
void func_ov031_020f9250();
|
||||
void func_ov031_020f92cc();
|
||||
void func_ov031_020f9340();
|
||||
void func_ov031_020f93bc();
|
||||
void func_ov031_020f9494();
|
||||
void func_ov031_020f9554();
|
||||
void func_ov031_020f97cc();
|
||||
void func_ov031_020f98e4();
|
||||
void func_ov031_020f9af4();
|
||||
void func_ov031_020f9af8();
|
||||
bool func_ov031_020f9ba4();
|
||||
void func_ov031_020f9cc0();
|
||||
};
|
||||
|
||||
class ActorProfileRollingStone : public ActorProfile_Derived1 {
|
||||
public:
|
||||
/* 00 (base) */
|
||||
|
||||
ActorProfileRollingStone();
|
||||
|
||||
/* 0C */ virtual Actor *Create();
|
||||
|
||||
static ActorProfileRollingStone *GetProfile();
|
||||
};
|
||||
@@ -1,82 +0,0 @@
|
||||
//! TODO: This file was generated automatically and might contain errors
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "Actor/Actor.hpp"
|
||||
#include "Actor/ActorProfile.hpp"
|
||||
#include "global.h"
|
||||
#include "types.h"
|
||||
|
||||
class ActorUnkRLST_C4 : public Actor_C4 {
|
||||
public:
|
||||
ActorUnkRLST_C4(Actor *param1);
|
||||
|
||||
/* 00 */ virtual bool vfunc_00(ActorRef ref, unk32 param2) override;
|
||||
/* 04 */ virtual void vfunc_04() override;
|
||||
/* 08 */ virtual void vfunc_08() override;
|
||||
/* 0C */ virtual void vfunc_0C(unk32 param1) override;
|
||||
};
|
||||
|
||||
class ActorUnkRLST : public Actor {
|
||||
public:
|
||||
/* 00 (base) */
|
||||
/* 94 */
|
||||
|
||||
ActorUnkRLST();
|
||||
|
||||
/* 4C */ virtual ~ActorUnkRLST() override;
|
||||
|
||||
void func_ov031_020f8354(void);
|
||||
void func_ov031_020f83e4(void);
|
||||
void func_ov031_020f849c(void);
|
||||
void func_ov031_020f8674(void);
|
||||
void func_ov031_020f8688(void);
|
||||
void func_ov031_020f869c(void);
|
||||
void func_ov031_020f878c(void);
|
||||
void func_ov031_020f8824(void);
|
||||
void func_ov031_020f8880(void);
|
||||
void func_ov031_020f8948(void);
|
||||
void func_ov031_020f89f4(void);
|
||||
void func_ov031_020f8a04(void);
|
||||
void func_ov031_020f8a2c(void);
|
||||
void func_ov031_020f8a38(void);
|
||||
void func_ov031_020f8a3c(void);
|
||||
void func_ov031_020f8a58(void);
|
||||
void func_ov031_020f8b58(void);
|
||||
void func_ov031_020f8bc4(void);
|
||||
void func_ov031_020f8de8(void);
|
||||
void func_ov031_020f8ed4(void);
|
||||
void func_ov031_020f8f0c(void);
|
||||
void func_ov031_020f8f10(void);
|
||||
void func_ov031_020f8f30(void);
|
||||
void func_ov031_020f9018(void);
|
||||
void func_ov031_020f9050(void);
|
||||
void func_ov031_020f916c(void);
|
||||
void func_ov031_020f91ac(void);
|
||||
void func_ov031_020f9250(void);
|
||||
void func_ov031_020f92cc(void);
|
||||
void func_ov031_020f9340(void);
|
||||
void func_ov031_020f93bc(void);
|
||||
void func_ov031_020f9494(void);
|
||||
void func_ov031_020f9554(void);
|
||||
void func_ov031_020f97cc(void);
|
||||
void func_ov031_020f98e4(void);
|
||||
void func_ov031_020f9af4(void);
|
||||
void func_ov031_020f9af8(void);
|
||||
void func_ov031_020f9ba4(void);
|
||||
void func_ov031_020f9cc0(void);
|
||||
void func_ov031_020f9cf4(void);
|
||||
void func_ov031_020f9d60(void);
|
||||
};
|
||||
|
||||
class ActorProfileUnkRLST : public ActorProfile_Derived1 {
|
||||
public:
|
||||
/* 00 (base) */
|
||||
|
||||
ActorProfileUnkRLST();
|
||||
~ActorProfileUnkRLST();
|
||||
|
||||
/* 0C */ virtual Actor *Create();
|
||||
|
||||
static ActorProfileUnkRLST *GetProfile();
|
||||
};
|
||||
@@ -35,11 +35,9 @@ public:
|
||||
|
||||
class Actor_Derived1_94 {
|
||||
public:
|
||||
/* 00 */ unk32 mUnk_00;
|
||||
/* 04 */ unk32 mUnk_04;
|
||||
/* 08 */ unk16 mUnk_08;
|
||||
/* 00 */ Actor_38 mUnk_00;
|
||||
/* 0A */ unk16 mUnk_0A;
|
||||
/* 0C */ unk32 mUnk_0C;
|
||||
/* 0C */
|
||||
|
||||
Actor_Derived1_94();
|
||||
~Actor_Derived1_94();
|
||||
@@ -48,6 +46,8 @@ public:
|
||||
class Actor_Derived1_94_Derived1 : public Actor_Derived1_94 {
|
||||
public:
|
||||
/* 00 (base) */
|
||||
/* 0C */ unk32 mUnk_0C;
|
||||
/* 10 */
|
||||
|
||||
Actor_Derived1_94_Derived1(unk32 param1) {
|
||||
this->mUnk_0C = param1;
|
||||
|
||||
@@ -1,15 +1,38 @@
|
||||
#pragma once
|
||||
|
||||
#include "Actor/Actor.hpp"
|
||||
#include "LinkList.hpp"
|
||||
#include "Actor/ActorRef.hpp"
|
||||
#include "Render/ModelRender.hpp"
|
||||
#include "Unknown/Common.hpp"
|
||||
#include "Unknown/UnkStruct_027e09a4.hpp"
|
||||
#include "math.hpp"
|
||||
|
||||
#include "types.h"
|
||||
|
||||
#include <nns/g3d/g3d.h>
|
||||
|
||||
class Actor_C4;
|
||||
|
||||
struct ActorGrabParams;
|
||||
extern "C" void func_ov000_0205d500(ActorGrabParams *, unk32, unk32);
|
||||
bool PlayerCharacter_IsNotLink(s32 character);
|
||||
|
||||
struct ActorGrabParams {
|
||||
/* 00 */ u16 unk_00;
|
||||
/* 02 */ u16 unk_02;
|
||||
/* 04 */
|
||||
|
||||
ActorGrabParams() {}
|
||||
|
||||
ActorGrabParams(unk32 param2, unk32 param3) {
|
||||
ActorGrabParams local_1c;
|
||||
func_ov000_0205d500(&local_1c, param3, param2);
|
||||
*this = local_1c;
|
||||
}
|
||||
|
||||
void operator=(ActorGrabParams &from) {
|
||||
*(u32 *) this = *(u32 *) &from;
|
||||
}
|
||||
};
|
||||
|
||||
class UnkStruct_027e0ce0_40;
|
||||
class PlayerActorBase_70;
|
||||
|
||||
|
||||
@@ -6,7 +6,6 @@
|
||||
|
||||
#include "Render/ModelRender.hpp"
|
||||
#include "Unknown/Common.hpp"
|
||||
#include "Unknown/UnkStruct_027e0ce0.hpp"
|
||||
#include "Unknown/UnkStruct_ov000_0208f820.hpp"
|
||||
#include "math.hpp"
|
||||
|
||||
|
||||
@@ -914,8 +914,14 @@ struct UnkStackStruct1 {
|
||||
};
|
||||
extern "C" void func_ov000_02072fd0(UnkStackStruct1 *);
|
||||
|
||||
struct UnkSystem7_UnkStruct_00_20 {
|
||||
/* 00 */ STRUCT_PAD(0x00, 0x04);
|
||||
/* 04 */ VecFx32 mUnk_04;
|
||||
};
|
||||
|
||||
struct UnkSystem7_UnkStruct_00 {
|
||||
/* 00 */ STRUCT_PAD(0x00, 0x24);
|
||||
/* 00 */ STRUCT_PAD(0x00, 0x20);
|
||||
/* 20 */ UnkSystem7_UnkStruct_00_20 *mUnk_20;
|
||||
/* 24 */ unk32 mUnk_24;
|
||||
/* 28 */ unk32 mUnk_28;
|
||||
/* 2C */ unk32 mUnk_2C;
|
||||
|
||||
@@ -8,6 +8,12 @@
|
||||
|
||||
class UnkStruct_027e0cd8_0C_Base;
|
||||
|
||||
struct UnkStruct_ov000_0207de98 {
|
||||
VecFx32 vec;
|
||||
unk32 param1;
|
||||
unk32 param2;
|
||||
};
|
||||
|
||||
class UnkStruct_027e09c0_60 {
|
||||
public:
|
||||
/* 00 */ unk32 mUnk_00;
|
||||
@@ -61,7 +67,9 @@ public:
|
||||
|
||||
// overlay 0
|
||||
void func_ov000_0207da40();
|
||||
void func_ov000_0207de98(ActorRef param1, UnkStruct_ov000_0207de98 *param2, Actor_38 *param3);
|
||||
void func_ov000_0207e58c(ActorRef param1, unk32 param2, u8 param3, UnkStruct_ov031_Items_01 *param4);
|
||||
bool func_ov000_0207e458(unk32 param1, unk32 param2, VecFx32 *param3, unk32 param4, VecFx32 *param5, ActorRef param6);
|
||||
|
||||
// overlay 1
|
||||
void func_ov001_020be394();
|
||||
|
||||
@@ -9,7 +9,6 @@
|
||||
#include "Player/PlayerLink.hpp"
|
||||
#include "Player/TouchControl.hpp"
|
||||
#include "Save/SaveManager.hpp"
|
||||
#include "System/SysNew.hpp"
|
||||
#include "input.hpp"
|
||||
|
||||
#include <nitro/math.h>
|
||||
@@ -731,6 +730,7 @@ public:
|
||||
bool func_ov000_0208bc1c(unk32 param1, unk32 param2, unk32 param3, unk32 param4, unk32 param5, unk32 param6);
|
||||
void func_ov000_0208bc9c(unk32 param1, unk32 param2);
|
||||
void func_ov000_0208bd30(bool param1, unk32 param2, unk32 param3, unk32 param4);
|
||||
bool func_ov000_0208be70(VecFx32 param1);
|
||||
G3d_Model *func_ov000_0208ed30(unk32 param1, unk32 param2, char *param3);
|
||||
|
||||
static UnkStruct_027e0ce0_34 *func_ov000_0205c904();
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
#pragma once
|
||||
|
||||
#include "Player/PlayerGet.hpp"
|
||||
#include "math.hpp"
|
||||
#include "types.h"
|
||||
|
||||
|
||||
@@ -10,8 +10,10 @@ public:
|
||||
UnkStruct_027e0d8c();
|
||||
~UnkStruct_027e0d8c();
|
||||
|
||||
// overlay 93
|
||||
void func_ov093_02166058();
|
||||
void func_ov093_02166068();
|
||||
void func_ov093_02166220();
|
||||
};
|
||||
|
||||
extern UnkStruct_027e0d8c *data_027e0d8c;
|
||||
|
||||
@@ -5,10 +5,11 @@
|
||||
|
||||
#include "Actor/ActorRef.hpp"
|
||||
#include "Item/ItemManager.hpp"
|
||||
#include "Player/PlayerLink.hpp"
|
||||
#include "System/SysNew.hpp"
|
||||
#include "Player/PlayerActorBase.hpp"
|
||||
#include "math.hpp"
|
||||
|
||||
class PlayerLinkActor_A0;
|
||||
|
||||
class UnkStruct_ov000_0208f820_14 {
|
||||
public:
|
||||
/* 00 */ unk8 mUnk_00[0x6C];
|
||||
@@ -134,7 +135,7 @@ public:
|
||||
this->mItemId = itemId;
|
||||
}
|
||||
|
||||
UnkStruct_ov000_0208f820_04() {}
|
||||
UnkStruct_ov000_0208f820_04() {};
|
||||
};
|
||||
|
||||
class UnkStruct_ov000_0208f820_44 {
|
||||
|
||||
@@ -10,7 +10,7 @@ public:
|
||||
|
||||
// data_ov000_020b30d0
|
||||
/* 00 */ virtual ~UnkStruct_ov031_Items_00();
|
||||
/* 08 */ virtual bool vfunc_08(const UnkStruct_ov031_020f3310 *param1) override;
|
||||
/* 08 */ virtual bool vfunc_08(const UnkStruct_ov031_020f3310 *param1) override; // func_ov000_020982d8
|
||||
};
|
||||
|
||||
class UnkStruct_ov031_Items_01 {
|
||||
|
||||
@@ -1,8 +1,5 @@
|
||||
#pragma once
|
||||
|
||||
#include "Actor/ActorId.hpp"
|
||||
#include "Actor/ActorRef.hpp"
|
||||
#include "Map/MapObjectId.hpp"
|
||||
#include "types.h"
|
||||
|
||||
#include <nitro/math.h>
|
||||
|
||||
Reference in New Issue
Block a user