mirror of
https://github.com/zeldaret/st
synced 2026-08-05 09:34:10 -04:00
Decompiling part of ActorUnkITTD (#111)
* feat: update * feat: update * feat: cleanup * feat: rc * refactor: rename UnkITTD to ItemTornado
This commit is contained in:
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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() {}
|
||||
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user