Files
st/src/031_Land/Actor/ActorUnkEFSB.cpp
T
Alessevan f6a7b43b15 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
2026-10-25 10:03:57 +01:00

66 lines
1.7 KiB
C++

#include "Actor/ActorUnkEFSB.hpp"
#include "CommonFuncs.hpp"
#include "System/SysNew.hpp"
static ActorUnkZLSL_AnimationTag data_ov031_02114ed0[0x2] = {
{.index = 0x0, .name = "statue_beam"},
{.index = 0x1, .name = "statue_beam"},
};
DECL_PROFILE(ActorProfileUnkEFSB);
Actor *ActorProfileUnkEFSB::Create() {
return new(HeapIndex_2) ActorUnkEFSB();
}
ActorProfileUnkEFSB::ActorProfileUnkEFSB() :
ActorProfile_Derived1(ActorId_EFSB) {}
ActorUnkEFSB::ActorUnkEFSB() :
mUnk_098(G3d_GetModelPtr(GET_PROFILE(ActorProfileUnkEFSB)->mUnk_3C.mUnk_50)),
mUnk_0F8(&this->mUnk_098, GET_PROFILE(ActorProfileUnkEFSB)->vfunc_04()),
mUnk_154(&this->mUnk_098, GET_PROFILE(ActorProfileUnkEFSB)->vfunc_04()) {}
bool ActorUnkEFSB::Init(unk32 param1) {
#pragma unused(param1)
this->mUnk_0F8.vfunc_1C(data_ov031_02114ed0[0], 0x1000, 0x11F, 0x0);
this->mUnk_154.func_ov000_02099ff8(data_ov031_02114ed0[0], 0x1000);
this->mUnk_1B0 = this->mUnk_5C.mParams[0] << 0xC;
if (this->mUnk_1B0 == FX_F32_TO_FX32(0.0f)) {
this->mUnk_1B0 = FX_F32_TO_FX32(1.0f);
}
this->vfunc_54(0x0);
return true;
}
void ActorUnkEFSB::Update() {
if (this->mUnk_094 != 0x0) {
return;
}
this->mUnk_0F8.vfunc_34();
this->mUnk_154.vfunc_34();
}
void ActorUnkEFSB::vfunc_24() {
this->Update();
}
void ActorUnkEFSB::vfunc_54(unk32 param1) {
this->mUnk_094 = param1;
}
void ActorUnkEFSB::vfunc_2C(unk32 param1) {
#pragma unused(param1)
VecFx32 vec;
VecFx32_Init(FX_F32_TO_FX32(1.0f), FX_F32_TO_FX32(1.0f), FX_F32_TO_FX32(1.0f), &vec);
vec.z = func_01ffb428(this->mUnk_1B0, FX_F32_TO_FX32(8.0f));
VecFx32 sp0 = this->mPos;
sp0.y += FX_F32_TO_FX32(0.85f);
this->mUnk_098.func_01ffc634(&vec, this->mAngle, &sp0);
}