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
+16 -22
View File
@@ -46,10 +46,7 @@ ActorItemBoomerang::ActorItemBoomerang() :
bool ActorItemBoomerang::vfunc_18(unk32 param1) {
this->mUnk_CC.mUnk_30.func_ov031_020e45fc();
this->mUnk_A0.mUnk_0C.x = FLOAT_TO_FX32(0.0f);
this->mUnk_A0.mUnk_0C.y = FLOAT_TO_FX32(-0.1003f);
this->mUnk_A0.mUnk_0C.z = FLOAT_TO_FX32(0.0f);
this->mUnk_A0.mUnk_18 = FLOAT_TO_FX32(0.4f);
this->mUnk_A0.mUnk_0C.Init(FLOAT_TO_FX32(0.0f), FLOAT_TO_FX32(-0.1003f), FLOAT_TO_FX32(0.0f), FLOAT_TO_FX32(0.4f));
this->mUnk_10C.x = FLOAT_TO_FX32(0.0f);
this->mUnk_10C.y = FLOAT_TO_FX32(-0.1003f);
@@ -108,10 +105,7 @@ void ActorItemBoomerang::vfunc_20() {
bool var2 = false;
switch (this->mState) {
case ActorItemBoomerangState_0:
this->mUnk_A0.mUnk_0C.z = this->mPos.z;
this->mUnk_A0.mUnk_0C.y = this->mPos.y + FLOAT_TO_FX32(-0.1003f);
this->mUnk_A0.mUnk_0C.x = this->mPos.x;
this->mUnk_A0.mUnk_18 = FLOAT_TO_FX32(0.3f);
this->mUnk_A0.mUnk_0C.Init(this->mPos.x, this->mPos.y, this->mPos.z, FLOAT_TO_FX32(0.3f));
data_027e09c0->func_ov000_0207e58c(this->mRef, 0xC, 0x8, &this->mUnk_A0);
@@ -147,10 +141,10 @@ void ActorItemBoomerang::vfunc_20() {
}
if (sp14.type != 0) {
this->mUnk_CC.mUnk_0C.z = this->mPos.z;
this->mUnk_CC.mUnk_0C.y = this->mPos.y + FLOAT_TO_FX32(-0.1003f);
this->mUnk_CC.mUnk_18 = 0xA000;
this->mUnk_CC.mUnk_0C.x = this->mPos.x;
this->mUnk_CC.mUnk_0C.pos.z = this->mPos.z;
this->mUnk_CC.mUnk_0C.pos.y = this->mPos.y + FLOAT_TO_FX32(-0.1003f);
this->mUnk_CC.mUnk_0C.size = 0xA000;
this->mUnk_CC.mUnk_0C.pos.x = this->mPos.x;
data_027e09c0->func_ov000_0207e58c(this->mRef, 0xC, 0x8, &this->mUnk_CC);
return;
}
@@ -183,10 +177,7 @@ void ActorItemBoomerang::vfunc_20() {
this->func_ov031_020e49b0(0x8D70);
break;
case ActorItemBoomerangState_1:
this->mUnk_A0.mUnk_0C.z = this->mPos.z;
this->mUnk_A0.mUnk_0C.y = this->mPos.y + FLOAT_TO_FX32(-0.1003f);
this->mUnk_A0.mUnk_0C.x = this->mPos.x;
this->mUnk_A0.mUnk_18 = FLOAT_TO_FX32(0.3f);
this->mUnk_A0.mUnk_0C.Init(this->mPos.x, this->mPos.y, this->mPos.z, FLOAT_TO_FX32(0.3f));
data_027e09c0->func_ov000_0207e58c(this->mRef, 0xC, 0x8, &this->mUnk_A0);
Actor *sp24; /* actor* ? */
@@ -307,15 +298,18 @@ void ActorItemBoomerang::func_ov031_020e5220() {
// non-matching
void ActorItemBoomerang::func_ov031_020e52a0() {
if (this->mUnk_128 == 0x1 || this->mUnk_128 == 0x2) {
for (UnkStruct_PlayerGet_ec *ptr = this->mUnk_12C; ptr != (void *) &this->mUnk_138; ++ptr) {
// non sense
ptr->mUnk_00->mUnk_28 = this->mPos.x + ptr->mUnk_00->mUnk_24;
ptr->mUnk_00->mUnk_2C = this->mPos.y + ptr->mUnk_00->mUnk_28;
ptr->mUnk_00->mUnk_30 = this->mPos.z + ptr->mUnk_00->mUnk_2C;
for (UnkStruct_PlayerGet_ec *ptr = this->mUnk_12C; ptr != this->mUnk_12C + 0x3; ++ptr) {
UnkSystem7_UnkStruct_00 *data = ptr->mUnk_00;
if (data == NULL) {
continue;
}
data->mUnk_28 = this->mPos.x + data->mUnk_20->mUnk_00->mUnk_04.x;
data->mUnk_2C = this->mPos.y + data->mUnk_20->mUnk_00->mUnk_04.y;
data->mUnk_30 = this->mPos.z + data->mUnk_20->mUnk_00->mUnk_04.z;
}
return;
}
for (UnkStruct_PlayerGet_ec *ptr = this->mUnk_12C; ptr != (void *) &this->mUnk_138; ++ptr) {
for (UnkStruct_PlayerGet_ec *ptr = this->mUnk_12C; ptr != this->mUnk_12C + 0x3; ++ptr) {
ptr->func_ov000_020a0334();
}
}
+325
View File
@@ -0,0 +1,325 @@
#include "Actor/ActorItemTornado.hpp"
#include "System/SysNew.hpp"
#include "Unknown/UnkStruct_027e0958.hpp"
#include "Unknown/UnkStruct_027e09a8.hpp"
#include "Unknown/UnkStruct_027e09c0.hpp"
#include "Unknown/UnkStruct_027e0cec.hpp"
#include "Unknown/UnkStruct_027e0d38.hpp"
#include "Unknown/UnkStruct_ov000_020b4ec4.hpp"
struct UnkStruct_ov031_020e5d18_00 {
Actor *mUnk_00;
u8 mUnk_04[0x14];
};
extern "C" char *data_ov031_02110a88;
extern "C" Cylinder data_ov031_02112fdc;
extern "C" void func_01ff916c(void *, unk32, unk32);
extern "C" void func_01ff93c0(VecFx32 *, unk32);
extern "C" void func_01ff993c(VecFx32 *, VecFx32 *, unk32);
extern "C" fx32 func_01ffb66c(unk32, u16);
extern "C" void func_01ffe6c4(UnkStruct_ov031_020e5d18_00 *, ActorRef, VecFx32 *, VecFx32 *, s32, VecFx32 *,
UnkStruct_ov031_Items_00 *);
extern "C" void func_0200ea38(G3d_Model *, unk32, unk32);
extern "C" void func_0200ef9c(G3d_Model *);
extern "C" bool func_ov000_02080998(VecFx32 *);
DECL_PROFILE(ActorProfileItemTornado);
Actor *ActorProfileItemTornado::Create() {
return new(HeapIndex_2) ActorItemTornado();
}
ActorProfileItemTornado::ActorProfileItemTornado() :
ActorProfile(ActorId_ITTD) {
this->mUnk_04.Init(FLOAT_TO_FX32(0.0f), FLOAT_TO_FX32(0.25f), FLOAT_TO_FX32(0.0f), FLOAT_TO_FX32(0.20f));
}
// non-matching
ActorItemTornado::ActorItemTornado() :
mUnk_94(data_027e0ce0->func_ov000_0208ed30(0x0, 0x1, data_ov031_02110a88)),
mUnk_F4(&this->mUnk_114, this->mUnk_94.mpModel),
mUnk_134(&this->mUnk_154, this->mUnk_94.mpModel),
mUnk_17C(NULL),
mUnk_1CC(0x0),
mUnk_1D1(this->mUnk_94.func_ov000_02057ee0()->numMat),
mUnk_1D2(0x4),
mUnk_1D4(0x2),
mUnk_1D6(0x4),
mUnk_1D8(0x0),
mUnk_1DC(0x0) {
this->mUnk_94.func_ov000_02057c98(&this->mUnk_F4);
this->mUnk_94.func_ov000_02057c98(&this->mUnk_134);
this->mUnk_52 = 0xFFFF;
this->mState = ActorItemTornadoState_0;
this->mUnk_50 = 0x0;
}
bool ActorItemTornado::vfunc_18(unk32 param1) {
u16 tmp = (u16) this->mAngle;
this->mUnk_44 = 0x1F;
this->mUnk_34 = &data_ov031_02112fdc;
this->mUnk_194.mUnk_04 = this->mRef;
this->mUnk_194.mUnk_0C.Init(this->mPos.x, this->mPos.y + FLOAT_TO_FX32(0.85f), this->mPos.z, FLOAT_TO_FX32(0.8f));
this->mVel.x = MUL_FX32(SIN(tmp), 0x385);
this->mVel.z = MUL_FX32(COS(tmp), 0x385);
this->mVel.y = FLOAT_TO_FX32(0.0f);
return true;
}
void ActorItemTornado::SetState(ActorState state) {
switch (state) {
case ActorItemTornadoState_1:
this->mUnk_1DC = 0x1000;
data_027e0cec->func_ov000_020a00d4(this->mUnk_1E0, 0x8FD, 0x8FB, 0x8FC, &this->mPos, 0x2);
break;
case ActorItemTornadoState_2:
data_027e09a8->func_ov000_02071b30(0x8D6D, &this->mPos, 0x0);
for (UnkStruct_PlayerGet_ec *ptr = this->mUnk_1E0; ptr != this->mUnk_1E0 + 0x3; ++ptr) {
ptr->func_ov000_020a0334();
}
data_027e0cec->func_ov000_0209feac(0x8F9, &this->mPos, 0x2, 0x0, 0x0);
data_027e0cec->func_ov000_0209feac(0x8FA, &this->mPos, 0x2, 0x0, 0x0);
break;
default:
break;
}
this->mState = state;
this->mUnk_52 = 0xFFFF;
this->mUnk_50 = 0x0;
}
// non-matching
void ActorItemTornado::func_ov031_020e5d18(unk32 param1) {
VecFx32_Copy(&this->mPos, &this->mPrevPos);
VecFx32_Add(&this->mPos, &this->mVel, &this->mPos);
if (this->mUnk_1D2 != 0x0) {
--this->mUnk_1D2;
}
if (this->mUnk_1D4 != 0x0) {
--this->mUnk_1D4;
}
if (param1 == 0x0) {
++this->mUnk_1D8;
}
this->IsTimerOut();
switch (this->mState) {
case ActorItemTornadoState_0:
data_027e09a8->func_ov000_02071d34(&this->mRef, 0x8D6C, &this->mPos, 0x0);
if (this->mUnk_50 < (s16) 0xA) {
this->mUnk_1DC += 0x199;
break;
}
this->SetState(ActorItemTornadoState_1);
break;
case ActorItemTornadoState_1:
data_027e09a8->func_ov000_02071d34(&this->mRef, 0x8D6C, &this->mPos, 0x0);
for (UnkStruct_PlayerGet_ec *ptr = this->mUnk_1E0; ptr != this->mUnk_1E0 + 0x3; ++ptr) {
UnkSystem7_UnkStruct_00 *data = ptr->mUnk_00;
if (data == NULL) {
continue;
}
data->mUnk_28 = this->mPos.x + data->mUnk_20->mUnk_00->mUnk_04.x;
data->mUnk_2C = this->mPos.y + data->mUnk_20->mUnk_00->mUnk_04.y;
data->mUnk_30 = this->mPos.z + data->mUnk_20->mUnk_00->mUnk_04.z;
}
;
if (!data_027e0d38->func_ov031_020d9bec() &&
(((u16) this->mUnk_1CC == 0x0 && (u32) this->mUnk_1D8 >= 0x28U) || !this->func_ov017_020beeec(0))) {
this->func_ov031_020e6314(0x4);
break;
}
if (func_ov000_02080998(&this->mPos)) {
this->func_ov031_020e6314(0x4);
break;
}
if (this->mUnk_1CC != 0) {
if (this->mUnk_1CE != 0) {
func_01ff993c(&this->mPos, &this->mUnk_1C0, 0x266);
func_01ff916c(&this->mUnk_1DC, 0x1000, 0x19A);
}
--this->mUnk_1CC;
if (this->mUnk_1CC == 0) {
this->func_ov031_020e6314(this->mUnk_1D6);
}
}
break;
case ActorItemTornadoState_2:
if ((u32) this->mUnk_50 >= (u32) this->mUnk_1D6) {
UNSET_FLAG(this->mFlags, ActorFlag_Alive);
} else if (this->mUnk_1D6 != 0) {
if (this->mUnk_1CE != 0) {
func_01ff993c(&this->mPos, &this->mUnk_1C0, 0x266);
}
this->mUnk_1DC -= func_01ffb66c(0x1000, this->mUnk_1D6);
if (this->mUnk_1DC <= 0) {
UNSET_FLAG(this->mFlags, ActorFlag_Alive);
}
}
break;
default:
break;
}
this->mUnk_F4.func_01ffc3b4();
this->mUnk_134.func_01ffc3b4();
if (this->mState != ActorItemTornadoState_0 && this->mState != ActorItemTornadoState_1) {
return;
}
if (this->mUnk_1CC != 0x0) {
return;
}
if ((this->mUnk_1CF == 0) && (this->mUnk_1D2 == 0)) {
unk32 var_r3 = 2;
if (this->mUnk_1D0 & 1) {
var_r3 |= 1;
}
if (this->func_ov000_02098ab4(0x0, 0xA, var_r3, &this->mVel) == 0x0) {
VecFx32_Init(this->mPos.x, this->mPos.y + 0xD9A, this->mPos.z, &this->mUnk_194.mUnk_0C.pos);
data_027e09c0->func_ov000_0207e58c(this->mRef, 0x4, 0x0, &this->mUnk_194);
}
}
unk32 var_r0;
if (this->mUnk_1D4 != 0) {
var_r0 = 0x0;
} else {
UnkStruct_ov031_020e5d18_00 var_sp0C;
var_sp0C.mUnk_00 = NULL;
func_01ffe6c4(&var_sp0C, this->mRef, &this->mPos, &this->mPrevPos, (s32) (s16) this->mUnk_44, &this->mPos,
&this->mUnk_174);
Actor *actor = var_sp0C.mUnk_00;
unk32 temp_r5 = actor->func_ov000_0207df88(this->mUnk_30, 4);
var_r0 = temp_r5 | actor->func_ov000_0207e294(this->mUnk_30);
this->mUnk_46 = var_r0;
}
if (var_r0 == 0x0) {
return;
}
if (this->mUnk_1CC == 0x0) {
this->mVel.x = FLOAT_TO_FX32(0.0f);
this->mVel.y = FLOAT_TO_FX32(0.0f);
this->mVel.z = FLOAT_TO_FX32(0.0f);
this->mUnk_1CC = 0x1;
}
}
void ActorItemTornado::vfunc_20() {
this->func_ov031_020e5d18(0x0);
}
void ActorItemTornado::vfunc_24() {
if (!this->mUnk_1CE && this->mState != ActorItemTornadoState_2 &&
(this->mVel.x != FLOAT_TO_FX32(0.0f) || this->mVel.y != FLOAT_TO_FX32(0.0f) || this->mVel.z != FLOAT_TO_FX32(0.0f))) {
return;
}
this->func_ov031_020e5d18(0x1);
}
// non-matching
void ActorItemTornado::vfunc_2C(unk32 param1) {
if (this->mUnk_1DC <= 0x0) {
return;
}
if (this->mState != ActorItemTornadoState_0 && !this->func_01fff5d0(param1, 0x0)) {
return;
}
unk32 var_r0 = this->mUnk_1DC;
unk32 var_r1;
if (var_r0 == FLOAT_TO_FX32(1.0f)) {
var_r1 = 0x1F;
} else {
var_r0 = var_r0 * 0x1F + FLOAT_TO_FX32(0.5f);
var_r1 = var_r0 >> 0xC;
if (var_r1 > 0x1F) {
var_r1 = 0x1F;
} else if (var_r1 < 0) {
var_r1 = 0;
}
}
if (var_r1 <= 0) {
return;
}
G3d_Model *model = this->mUnk_94.mpModel;
func_0200ef9c(model);
if (this->mUnk_1D1 >= 0x0) {
for (unk32 index = 0x0; index < (u32) this->mUnk_1D1; ++index) {
func_0200ea38(model, index, data_ov000_020b4ec4.func_01ffc768(0x4));
}
}
VecFx32 vec = this->mPos;
if (this->mState == ActorItemTornadoState_0) {
vec.y += (((FLOAT_TO_FX32(1.0f) - this->mUnk_1DC) << 0xC) + FLOAT_TO_FX32(0.5f)) >> 0xC;
}
data_027e0958->func_ov000_02058fc4(&this->mUnk_17C, &vec);
}
bool ActorItemTornado::func_ov031_020e62c0() {
if (this->mState != ActorItemTornadoState_2 && !this->mUnk_1CF) {
this->mUnk_1CF = true;
if (VecFx32_TryNormalize(&this->mVel)) {
func_01ff93c0(&this->mVel, 0x400);
}
return true;
}
return false;
}
bool ActorItemTornado::func_ov031_020e6314(u16 param1) {
if (this->mState == ActorItemTornadoState_2) {
return false;
}
this->mUnk_1D6 = param1;
this->SetState(ActorItemTornadoState_2);
return true;
}
// non-matching
bool ActorItemTornado::func_ov031_020e6340(VecFx32 *param1, unk16 param2, unk16 param3) {
if (this->mState == ActorItemTornadoState_2) {
return false;
}
VecFx32_Init(param1->x, param1->y, param1->z, &this->mUnk_1C0);
this->mUnk_1CC = param2;
this->mUnk_1D6 = param3;
this->mUnk_1CE = true;
VecFx32_Init(FLOAT_TO_FX32(0.0f), FLOAT_TO_FX32(0.0f), FLOAT_TO_FX32(0.0f), &this->mVel);
return true;
}
bool ActorItemTornado::func_ov031_020e6398() {
if (this->mState == ActorItemTornadoState_1) {
if (VecFx32_TryNormalize(&this->mVel)) {
func_01ff93c0(&this->mVel, -0x266);
}
if (this->mUnk_1D0 < 0xFF) {
++this->mUnk_1D0;
}
this->mUnk_1D8 = 0x0;
data_027e09a8->func_ov000_02071b30(0x8D6F, &this->mPos, 0x0);
return true;
}
return false;
}
+12 -11
View File
@@ -298,7 +298,7 @@ void ActorRollingStone::func_ov031_020f8bc4() {
}
this->func_ov000_02098ab4(0x2, 0x5, 0x1, &this->mVel);
this->vfunc_10(&this->mUnk_D4.mUnk_0C);
this->vfunc_10(&this->mUnk_D4.mUnk_0C.pos);
VecFx32 sp14;
VecFx32_Copy(&this->mPos, &sp14);
@@ -352,7 +352,7 @@ void ActorRollingStone::func_ov031_020f8de8() {
}
void ActorRollingStone::func_ov031_020f8ed4() {
for (UnkStruct_PlayerGet_ec *ptr = this->mUnk_130; ptr != (void *) &this->mUnk_138; ++ptr) {
for (UnkStruct_PlayerGet_ec *ptr = this->mUnk_130; ptr != this->mUnk_130 + 0x2; ++ptr) {
ptr->func_ov000_020a0334();
}
this->func_ov031_020f8880();
@@ -483,7 +483,7 @@ void ActorRollingStone::func_ov031_020f9250() {
this->vfunc_40();
this->mUnk_2C = 0x0;
for (UnkStruct_PlayerGet_ec *ptr = this->mUnk_130; ptr != (void *) &this->mUnk_138; ++ptr) {
for (UnkStruct_PlayerGet_ec *ptr = this->mUnk_130; ptr != this->mUnk_130 + 0x2; ++ptr) {
ptr->func_ov000_020a0334();
}
@@ -635,7 +635,7 @@ void ActorRollingStone::func_ov031_020f9554() {
}
this->func_ov000_02098ab4(0x2, 0x5, 0x1, 0x0);
this->vfunc_10(&this->mUnk_D4.mUnk_0C);
this->vfunc_10(&this->mUnk_D4.mUnk_0C.pos);
data_027e09c0->func_ov000_0207e58c(this->mRef, 0xB, 0x4, &this->mUnk_D4);
@@ -739,14 +739,15 @@ void ActorRollingStone::func_ov031_020f9af4() {}
void ActorRollingStone::func_ov031_020f9af8() {
const fx32 y = this->mPos.y + FLOAT_TO_FX32(0.4f);
const fx32 x = this->mPos.x;
const fx32 z = this->mVel.z;
for (UnkStruct_PlayerGet_ec *ptr = this->mUnk_130; ptr != (void *) &this->mUnk_138; ++ptr) {
UnkSystem7_UnkStruct_00 *temp = ptr->mUnk_00;
if (temp != NULL) {
temp->mUnk_28 = x + ptr->mUnk_00->mUnk_20->mUnk_04.x;
temp->mUnk_2C = y + ptr->mUnk_00->mUnk_20->mUnk_04.y;
temp->mUnk_30 = z + ptr->mUnk_00->mUnk_20->mUnk_04.z;
const fx32 z = this->mPos.z;
for (UnkStruct_PlayerGet_ec *ptr = this->mUnk_130; ptr != this->mUnk_130 + 0x2; ++ptr) {
UnkSystem7_UnkStruct_00 *data = ptr->mUnk_00;
if (data == NULL) {
continue;
}
data->mUnk_28 = x + data->mUnk_20->mUnk_00->mUnk_04.x;
data->mUnk_2C = y + data->mUnk_20->mUnk_00->mUnk_04.y;
data->mUnk_30 = z + data->mUnk_20->mUnk_00->mUnk_04.z;
}
data_027e09a8->func_ov000_02071d34(&this->mRef, 0x989F, &this->mPos, 0x0);
}
+9 -10
View File
@@ -95,11 +95,10 @@ extern "C" void func_01ffa9e8(Mat4x3p *, Mat4x3p *);
extern "C" void func_01ffad5c(Mat4x3p *, Mat4x3p *, Mat4x3p *);
extern "C" void func_01ffb714(VecFx32 *, VecFx32 *, VecFx32 *);
extern "C" fx16 func_01ffbbe0(fx32, fx32);
extern "C" bool func_01ffccf4(VecFx32 *, VecFx32 *, VecFx32 *, unk32 *);
extern "C" bool func_01ffccf4(Cylinder *, VecFx32 *, VecFx32 *, unk32 *);
extern "C" void func_01ffe6c4(Actor **, ActorRef, VecFx32 *, VecFx32 *, s32, VecFx32 *, unk32);
extern "C" void func_0200eab0(G3d_Model *, unk16, u8);
extern "C" UnkResourceStruct2 *func_0200f05c(G3d_NameList *, char *);
extern "C" void func_ov000_02057c98(ModelRender *param1, UnkSystem5 *param2);
extern "C" bool func_ov000_0205aeac();
extern "C" void func_ov000_0207b6c0();
extern "C" unk32 func_ov000_0207df88(unk32 *, Cylinder *, unk32);
@@ -192,9 +191,9 @@ bool ActorShotArrow::vfunc_18(unk32 param1) {
this->SetState(ActorShotArrowState_0);
this->mUnk_194.mUnk_04 = this->mRef.Get32();
VecFx32_Copy(&this->mPos, &this->mUnk_194.mUnk_0C);
this->mUnk_194.mUnk_18 = FLOAT_TO_FX32(0.20f);
this->mUnk_44 = 0x1F;
VecFx32_Copy(&this->mPos, &this->mUnk_194.mUnk_0C.pos);
this->mUnk_194.mUnk_0C.size = FLOAT_TO_FX32(0.20f);
this->mUnk_44 = 0x1F;
return true;
}
@@ -642,7 +641,7 @@ void ActorShotArrow::func_ov031_020f2794(unk16 param1) {
case 0x2:
this->mUnk_94.vfunc_08(GetModelFromProfile3(func_ov031_020f1404(), data_ov031_02110b4c));
this->mUnk_25A = true;
func_ov000_02057c98(&this->mUnk_A0, &this->mUnk_100);
this->mUnk_A0.func_ov000_02057c98(&this->mUnk_100);
break;
default:
break;
@@ -862,8 +861,8 @@ void ActorShotArrow::func_ov031_020f2f5c(VecFx32 *param1) {
}
bool ActorShotArrow::func_ov031_020f2f9c() {
VecFx32_Copy(&this->mPos, &this->mUnk_194.mUnk_0C);
this->mUnk_194.mUnk_18 = FLOAT_TO_FX32(0.2f);
VecFx32_Copy(&this->mPos, &this->mUnk_194.mUnk_0C.pos);
this->mUnk_194.mUnk_0C.size = FLOAT_TO_FX32(0.2f);
data_027e09c0->func_ov000_0207e58c(this->mRef, 0x3, data_ov031_02110b01[this->mUnk_5C.mParams[1]], &this->mUnk_194);
return true;
}
@@ -1001,7 +1000,7 @@ void ActorShotArrow_194::func_ov031_020f374c(Actor *actor) {
stack.mUnk_28 = this->mUnk_2C->mVel;
func_01ff93c0(&stack.mUnk_28, this->mUnk_30);
stack.mUnk_1C = this->mUnk_0C;
stack.mUnk_1C = this->mUnk_0C.pos;
VecFx32_Add(&stack.mUnk_1C, &stack.mUnk_28, &stack.mUnk_1C);
func_01ffb714(&stack.mUnk_1C, &actor->mVel, &stack.mUnk_1C);
@@ -1015,7 +1014,7 @@ void ActorShotArrow_194::func_ov031_020f374c(Actor *actor) {
//! @bug: stack.mUnk_18 is used uninitialized?
if (temp > stack.mUnk_18 && stack.mUnk_18 > FLOAT_TO_FX32(0.15f)) {
fx32 temp_r5 = (temp - stack.mUnk_18) + FLOAT_TO_FX32(0.15f);
u16 value = (u32) (s16) func_01ffbbe0(stack.mUnk_00.x, stack.mUnk_00.z);
u16 value = (u32) (s16) (s32) func_01ffbbe0(stack.mUnk_00.x, stack.mUnk_00.z);
fx16 sin = SIN(value);
fx16 cos = COS(value);
-31
View File
@@ -1,31 +0,0 @@
//! TODO: This file was generated automatically and might contain errors
#include "Actor/ActorUnkITTD.hpp"
#include "System/SysNew.hpp"
DECL_PROFILE(ActorProfileUnkITTD);
Actor *ActorProfileUnkITTD::Create() {
return new(HeapIndex_2) ActorUnkITTD();
}
ActorProfileUnkITTD::ActorProfileUnkITTD() :
ActorProfile(ActorId_ITTD) {}
ActorUnkITTD::ActorUnkITTD() {}
void ActorUnkITTD::func_ov031_020e5b20(void) {}
void ActorUnkITTD::func_ov031_020e5b34(void) {}
void ActorUnkITTD::func_ov031_020e5c00(void) {}
void ActorUnkITTD::func_ov031_020e5d18(void) {}
void ActorUnkITTD::func_ov031_020e6148(void) {}
void ActorUnkITTD::func_ov031_020e6158(void) {}
void ActorUnkITTD::func_ov031_020e619c(void) {}
void ActorUnkITTD::func_ov031_020e62c0(void) {}
void ActorUnkITTD::func_ov031_020e6314(void) {}
void ActorUnkITTD::func_ov031_020e6340(void) {}
void ActorUnkITTD::func_ov031_020e6398(void) {}
void ActorUnkITTD::func_ov031_020e6474(void) {}
ActorUnkITTD::~ActorUnkITTD() {}
ActorProfileUnkITTD::~ActorProfileUnkITTD() {}
+2 -3
View File
@@ -23,6 +23,7 @@
#include "Unknown/UnkStruct_ov000_020b51c0.hpp"
#include "versions.h"
#include "Unknown/UnkStruct_027e0958.hpp"
#include "math.hpp"
struct UnkStruct_02186240 {
@@ -38,8 +39,6 @@ extern "C" void func_ov000_0205ca74(unk32);
extern "C" void func_01ffb6e4(unk32, const void *, void *);
extern "C" void func_01ffc5a0(ModelRender *, unk32, u16, void *, unk32);
extern "C" void func_ov000_0208f820();
extern "C" void func_ov000_02058fc4(unk32 *, UnkStruct_PlayerGet_74 *, VecFx32 *);
extern unk32 *data_027e0958;
extern "C" void func_ov000_0208ba10(void *, void *, unk32);
extern "C" void func_02015ea8(unk32, void *);
extern "C" void func_02015628(char *, char *, unk32, void *, size_t);
@@ -1002,7 +1001,7 @@ void PlayerGet::vfunc_18(unk32 param1, unk32 param2, unk32 param3) {
case 0x3B:
if (param3 != 0 && this->mUnk_54.mItemId != ItemId_Nothing && this->mUnk_8C.mpModel != NULL) {
VecFx32_Add(this->mUnk_34, (VecFx32 *) &data_ov110_021861ec.mUnk_00, &auStack_18);
func_ov000_02058fc4(data_027e0958, &this->mUnk_74, &auStack_18);
data_027e0958->func_ov000_02058fc4(&this->mUnk_74, &auStack_18);
}
break;
default: