Decompiling part of ActorUnkITTD (#111)

* feat: update

* feat: update

* feat: cleanup

* feat: rc

* refactor: rename UnkITTD to ItemTornado
This commit is contained in:
Alessevan
2026-07-17 18:49:02 +02:00
committed by GitHub
parent 2bc13d2ec2
commit 0fe5959c6d
24 changed files with 526 additions and 198 deletions
+75
View File
@@ -0,0 +1,75 @@
#pragma once
#include "Actor/Actor.hpp"
#include "Actor/ActorProfile.hpp"
#include "Player/PlayerGet.hpp"
#include "global.h"
#include "types.h"
class UnkStruct_ov031_02112ff4 : public UnkStruct_ov031_Items_00 {
public:
// data_ov031_02112ff4
/* 08 */ virtual bool vfunc_08(const UnkStruct_ov031_020f3310 *param1);
/* 0C */ virtual bool vfunc_0C(const UnkStruct_ov031_020e54d4 *param1, unk32 param2);
};
enum ActorItemTornadoState_ {
ActorItemTornadoState_0 = 0,
ActorItemTornadoState_1 = 1,
ActorItemTornadoState_2 = 2,
ActorItemTornadoState_MAX,
};
class ActorItemTornado : public Actor {
public:
/* 000 (base) */
/* 094 */ ModelRender mUnk_94;
/* 0F4 */ UnkSystem5 mUnk_F4;
/* 114 */ unk32 mUnk_114;
/* 118 */ STRUCT_PAD(0x118, 0x134);
/* 134 */ UnkSystem5 mUnk_134;
/* 154 */ unk32 mUnk_154;
/* 158 */ STRUCT_PAD(0x158, 0x174);
/* 174 */ UnkStruct_ov031_02112ff4 mUnk_174;
/* 178 */ STRUCT_PAD(0x178, 0x17C);
/* 17C */ UnkStruct_PlayerGet_74 mUnk_17C;
/* 194 */ UnkStruct_ov031_Items_01 mUnk_194;
/* 1C0 */ VecFx32 mUnk_1C0;
/* 1CC */ u16 mUnk_1CC;
/* 1CE */ bool mUnk_1CE;
/* 1CF */ bool mUnk_1CF;
/* 1D0 */ u8 mUnk_1D0;
/* 1D1 */ u8 mUnk_1D1;
/* 1D2 */ u16 mUnk_1D2;
/* 1D4 */ u16 mUnk_1D4;
/* 1D6 */ u16 mUnk_1D6;
/* 1D8 */ unk32 mUnk_1D8;
/* 1DC */ fx32 mUnk_1DC;
/* 1E0 */ UnkStruct_PlayerGet_ec mUnk_1E0[0x3];
/* 1EC */
ActorItemTornado();
/* 18 */ virtual bool vfunc_18(unk32 param1) override;
/* 20 */ virtual void vfunc_20() override;
/* 24 */ virtual void vfunc_24() override;
/* 2C */ virtual void vfunc_2C(unk32 param1) override;
void SetState(ActorState state);
void func_ov031_020e5d18(unk32 param1);
bool func_ov031_020e62c0();
bool func_ov031_020e6314(u16 param1);
bool func_ov031_020e6340(VecFx32 *param1, unk16 param2, unk16 param3);
bool func_ov031_020e6398();
};
class ActorProfileItemTornado : public ActorProfile {
public:
/* 00 (base) */
ActorProfileItemTornado();
/* 0C */ virtual Actor *Create();
static ActorProfileItemTornado *GetProfile();
};
-53
View File
@@ -1,53 +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 ActorUnkITTD_C4 : public Actor_C4 {
public:
ActorUnkITTD_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 ActorUnkITTD : public Actor {
public:
/* 00 (base) */
/* 94 */
ActorUnkITTD();
/* 4C */ virtual ~ActorUnkITTD() override;
void func_ov031_020e5b20(void);
void func_ov031_020e5b34(void);
void func_ov031_020e5c00(void);
void func_ov031_020e5d18(void);
void func_ov031_020e6148(void);
void func_ov031_020e6158(void);
void func_ov031_020e619c(void);
void func_ov031_020e62c0(void);
void func_ov031_020e6314(void);
void func_ov031_020e6340(void);
void func_ov031_020e6398(void);
void func_ov031_020e6474(void);
};
class ActorProfileUnkITTD : public ActorProfile {
public:
/* 00 (base) */
ActorProfileUnkITTD();
~ActorProfileUnkITTD();
/* 0C */ virtual Actor *Create();
static ActorProfileUnkITTD *GetProfile();
};
+8
View File
@@ -22,6 +22,14 @@ struct Cylinder {
this->size = size;
}
void Init(fx32 x, fx32 y, fx32 z, fx32 size) {
this->pos.x = x;
this->pos.y = y;
this->pos.z = z;
this->size = size;
}
void MakeEmpty() {
pos = gVecFx32_ZERO;
size = -1;
+2
View File
@@ -6,6 +6,7 @@
#include <nns/g3d/g3d.h>
class UnkSystem5;
extern "C" void *func_ov000_02057750(size_t allocSize);
typedef void (*UnkSystem4_UnkCallback)(void);
@@ -74,6 +75,7 @@ public:
void func_ov000_02057d20(u8 numBones);
void func_ov000_02057d3c(G3d_BoneMtxStruct *pCacheJntAnm);
void func_ov000_0209a7b8(void *param1, UnkSystem4_UnkCallback param2);
void func_ov000_02057c98(UnkSystem5 *param1);
};
class UnkSystem6_Derived1 : public ModelRenderBase {
+6 -1
View File
@@ -914,11 +914,16 @@ struct UnkStackStruct1 {
};
extern "C" void func_ov000_02072fd0(UnkStackStruct1 *);
struct UnkSystem7_UnkStruct_00_20 {
struct UnkSystem7_UnkStruct_00_20_00 {
/* 00 */ STRUCT_PAD(0x00, 0x04);
/* 04 */ VecFx32 mUnk_04;
};
struct UnkSystem7_UnkStruct_00_20 {
/* 00 */ UnkSystem7_UnkStruct_00_20_00 *mUnk_00;
/* 04 */ VecFx32 *mUnk_04;
};
struct UnkSystem7_UnkStruct_00 {
/* 00 */ STRUCT_PAD(0x00, 0x20);
/* 20 */ UnkSystem7_UnkStruct_00_20 *mUnk_20;
+3 -1
View File
@@ -1,6 +1,6 @@
#pragma once
#include "global.h"
#include "Player/PlayerGet.hpp"
#include "types.h"
class UnkStruct_027e0958 : public AutoInstance<UnkStruct_027e0958> {
@@ -13,6 +13,8 @@ public:
// overlay 0
static UnkStruct_027e0958 *Create();
static void Destroy();
void func_ov000_02058fc4(UnkStruct_PlayerGet_74 *param1, VecFx32 *param2);
};
extern UnkStruct_027e0958 *data_027e0958;
+1
View File
@@ -10,6 +10,7 @@ public:
UnkStruct_027e0d38();
~UnkStruct_027e0d38();
bool func_ov031_020d9bec();
bool func_ov031_020d9c04(unk32 param1, unk32 param2, unk32 param3);
void func_ov031_020d9c44(unk32 param1);
};
@@ -14,6 +14,8 @@ public:
UnkStruct_ov000_020b4ec4();
~UnkStruct_ov000_020b4ec4();
unk32 func_01ffc768(unk32 param1);
};
extern UnkStruct_ov000_020b4ec4 data_ov000_020b4ec4;
+2 -4
View File
@@ -19,8 +19,7 @@ public:
/* 04 */ ActorRef mUnk_04;
/* 08 */ unk16 mUnk_08;
/* 08 */ unk16 mUnk_0A;
/* 0C */ VecFx32 mUnk_0C;
/* 18 */ fx32 mUnk_18;
/* 0C */ Cylinder mUnk_0C;
/* 1C */ unk32 mUnk_1C;
/* 20 */ unk32 mUnk_20;
/* 24 */ unk32 mUnk_24;
@@ -30,8 +29,7 @@ public:
UnkStruct_ov031_Items_01() {
this->mUnk_04 = 0;
this->mUnk_08 = 0;
VecFx32_Init(0, 0, 0, &this->mUnk_0C);
this->mUnk_18 = 0;
this->mUnk_0C.Init(FLOAT_TO_FX32(0.0f));
this->mUnk_1C = 0;
this->mUnk_20 = 0;
this->mUnk_24 = 0;