mirror of
https://github.com/zeldaret/st
synced 2026-10-09 13:56:17 -04:00
Create Timer struct, improve angle usage and name known virtual functions (#154)
* name some actor vfuncs * name some map object vfuncs * remove angle union * fix lots of clangd errors * create Timer struct * fix regressions
This commit is contained in:
@@ -4,18 +4,17 @@
|
||||
#include <nitro/mi.h>
|
||||
|
||||
Actor::Actor() {
|
||||
this->mVel.x = 0;
|
||||
this->mVel.y = 0;
|
||||
this->mVel.z = 0;
|
||||
this->mUnk_2C = 0xCD;
|
||||
this->mUnk_38 = 0;
|
||||
this->mUnk_3C = NULL;
|
||||
this->mUnk_40 = 0;
|
||||
this->mUnk_48 = 4;
|
||||
this->mState = ActorState_None;
|
||||
this->mTimer = 0;
|
||||
this->mTimerMax = 0;
|
||||
this->mUnk_54 = 0;
|
||||
this->mVel.x = 0;
|
||||
this->mVel.y = 0;
|
||||
this->mVel.z = 0;
|
||||
this->mUnk_2C = 0xCD;
|
||||
this->mUnk_38 = 0;
|
||||
this->mUnk_3C = NULL;
|
||||
this->mUnk_40 = 0;
|
||||
this->mUnk_48 = 4;
|
||||
this->mState = ActorState_None;
|
||||
this->mTimer.SetAlt(0, 0);
|
||||
this->mUnk_54 = 0;
|
||||
this->ResetFlags();
|
||||
this->mUnk_5C.mUnk_28 = 0;
|
||||
this->mUnk_5C.func_ov000_020975f8();
|
||||
@@ -24,7 +23,7 @@ Actor::Actor() {
|
||||
MI_CpuCopyFast(&data_ov000_020b539c_eur.mUnk_00, &this->mUnk_5C, sizeof(ActorParams));
|
||||
VecFx32_Copy(&this->mUnk_5C.mInitialPos, &this->mPos);
|
||||
VecFx32_Copy(&this->mUnk_5C.mInitialPos, &this->mPrevPos);
|
||||
this->mAngle = this->mUnk_5C.mInitialAngle;
|
||||
this->mAngle.angle_s = this->mUnk_5C.mInitialAngle;
|
||||
INIT_FLAGS(this->mFlags, ActorFlag_Alive, ActorFlag_Visible, ActorFlag_Active, ActorFlag_14);
|
||||
this->mUnk_44 = 0xFF;
|
||||
this->mUnk_46 = 0;
|
||||
@@ -46,13 +45,13 @@ void Actor::func_ov000_0209848c(ActorProfile *param1) {
|
||||
this->mYOffset = unk_1c;
|
||||
}
|
||||
|
||||
bool Actor::vfunc_18(unk32 param1) {
|
||||
bool Actor::Init(unk32 param1) {
|
||||
return true;
|
||||
}
|
||||
|
||||
void Actor::vfunc_1C() {}
|
||||
void Actor::Setup() {}
|
||||
|
||||
void Actor::vfunc_20() {}
|
||||
void Actor::Update() {}
|
||||
|
||||
void Actor::vfunc_24() {}
|
||||
|
||||
@@ -67,7 +66,7 @@ unk32 Actor::vfunc_34() {
|
||||
}
|
||||
|
||||
void Actor::func_ov000_020984d0() {
|
||||
UNSET_FLAG(this->mFlags, ActorFlag_Alive);
|
||||
this->Kill();
|
||||
|
||||
if (GET_FLAG(this->mFlags, ActorFlag_16)) {
|
||||
this->func_ov000_020984f0();
|
||||
|
||||
@@ -14,7 +14,7 @@ ActorEventIcon::ActorEventIcon() {
|
||||
this->mUnk_10C = 0;
|
||||
}
|
||||
|
||||
bool ActorEventIcon::vfunc_18(unk32 param1) {
|
||||
bool ActorEventIcon::Init(unk32 param1) {
|
||||
this->mUnk_094.func_ov000_0206082c(0x5D, this->mUnk_5C.mParams[0]);
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -23,7 +23,7 @@ ActorUnkEFIK::ActorUnkEFIK() :
|
||||
this->mUnk_A0 = 0;
|
||||
}
|
||||
|
||||
bool ActorUnkEFIK::vfunc_18(unk32 param1) {
|
||||
bool ActorUnkEFIK::Init(unk32 param1) {
|
||||
this->mUnk_9C = 0x86F;
|
||||
this->mUnk_A0 = 4;
|
||||
this->mUnk_98.func_ov000_020a0334();
|
||||
@@ -31,7 +31,7 @@ bool ActorUnkEFIK::vfunc_18(unk32 param1) {
|
||||
return true;
|
||||
}
|
||||
|
||||
void ActorUnkEFIK::vfunc_20() {
|
||||
void ActorUnkEFIK::Update() {
|
||||
if (this->mUnk_94 != 0) {
|
||||
return;
|
||||
}
|
||||
@@ -81,7 +81,7 @@ void ActorUnkEFIK::vfunc_20() {
|
||||
}
|
||||
|
||||
void ActorUnkEFIK::vfunc_24() {
|
||||
this->vfunc_20();
|
||||
this->Update();
|
||||
}
|
||||
|
||||
void ActorUnkEFIK::vfunc_54(unk32 param1) {
|
||||
|
||||
@@ -20,7 +20,7 @@ ActorProfileUnkSWOB::ActorProfileUnkSWOB() :
|
||||
|
||||
ActorUnkSWOB::ActorUnkSWOB() {}
|
||||
|
||||
bool ActorUnkSWOB::vfunc_18(unk32 param1) {
|
||||
bool ActorUnkSWOB::Init(unk32 param1) {
|
||||
this->mUnk_9E = this->mUnk_5C.mUnk_1A[1];
|
||||
this->mUnk_94 = this->mUnk_5C.mParams[1];
|
||||
this->mUnk_98 = this->mUnk_5C.mParams[2];
|
||||
@@ -49,13 +49,12 @@ void ActorUnkSWOB::SetState(ActorState state) {
|
||||
this->func_ov000_02098a88(0, 1);
|
||||
|
||||
if (this->mUnk_94 == 0) {
|
||||
UNSET_FLAG(this->mFlags, ActorFlag_Alive);
|
||||
this->Kill();
|
||||
}
|
||||
break;
|
||||
case ActorUnkSWOBState_2:
|
||||
this->func_ov000_0209aa30();
|
||||
this->mTimerMax = -1;
|
||||
this->mTimer = 0;
|
||||
this->mTimer.Reset();
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
||||
@@ -29,7 +29,7 @@ ActorUnkSWTM::~ActorUnkSWTM() {
|
||||
}
|
||||
|
||||
// https://decomp.me/scratch/qkP8m
|
||||
bool ActorUnkSWTM::vfunc_18(unk32 param1) {
|
||||
bool ActorUnkSWTM::Init(unk32 param1) {
|
||||
this->mUnk_9E = this->mUnk_5C.mUnk_1A[1];
|
||||
this->mUnk_98 = this->mUnk_5C.mParams[2];
|
||||
this->mUnk_A4 = this->mUnk_5C.mParams[1] * 30;
|
||||
@@ -46,7 +46,7 @@ bool ActorUnkSWTM::vfunc_18(unk32 param1) {
|
||||
return true;
|
||||
}
|
||||
|
||||
void ActorUnkSWTM::vfunc_20(void) {
|
||||
void ActorUnkSWTM::Update(void) {
|
||||
switch (this->mState) {
|
||||
case ActorUnkSWTMState_0:
|
||||
if (!this->func_ov000_0209afe4()) {
|
||||
@@ -77,9 +77,9 @@ void ActorUnkSWTM::vfunc_20(void) {
|
||||
case ActorUnkSWTMState_2:
|
||||
break;
|
||||
case ActorUnkSWTMState_3:
|
||||
this->IsTimerOut();
|
||||
this->mTimer.Update();
|
||||
|
||||
if ((s32) this->mTimer >= 15) {
|
||||
if (this->mTimer.GetValue() >= 15) {
|
||||
this->func_ov000_0209b184();
|
||||
this->SetState(ActorUnkSWTMState_0);
|
||||
}
|
||||
@@ -107,13 +107,12 @@ void ActorUnkSWTM::SetState(ActorState state) {
|
||||
this->func_ov000_02098a88(0, 1);
|
||||
|
||||
if (this->mUnk_94 == 0) {
|
||||
UNSET_FLAG(this->mFlags, ActorFlag_Alive);
|
||||
this->Kill();
|
||||
}
|
||||
break;
|
||||
case ActorUnkSWTMState_3:
|
||||
this->func_ov000_0209b160();
|
||||
this->mTimer = 0;
|
||||
this->mTimerMax = -1;
|
||||
this->mTimer.Reset();
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
||||
@@ -32,8 +32,7 @@ Actor_Derived1::Actor_Derived1(ModelRender *param1, Actor_Derived1_94_0C *param2
|
||||
mUnk_0DE(0xEAAB),
|
||||
mUnk_0E0(0x1555),
|
||||
mUnk_0E4(NULL),
|
||||
mUnk_0E8(0),
|
||||
mUnk_0EA(0),
|
||||
mUnk_0E8(0, 0),
|
||||
mUnk_104(this->mUnk_34->size),
|
||||
mUnk_114(-1),
|
||||
mUnk_118(0x1000),
|
||||
@@ -48,9 +47,9 @@ Actor_Derived1::Actor_Derived1(ModelRender *param1, Actor_Derived1_94_0C *param2
|
||||
|
||||
Actor_Derived1::~Actor_Derived1() {}
|
||||
|
||||
bool Actor_Derived1::vfunc_18(unk32 param1) {
|
||||
bool Actor_Derived1::Init(unk32 param1) {
|
||||
if (this->mUnk_5C.mParams[2] == 0 && this->func_ov000_020a8dd0()) {
|
||||
UNSET_FLAG(this->mFlags, ActorFlag_Alive);
|
||||
this->Kill();
|
||||
}
|
||||
|
||||
if (this->mUnk_0B0 & 8) {
|
||||
@@ -64,7 +63,7 @@ bool Actor_Derived1::vfunc_18(unk32 param1) {
|
||||
|
||||
void Actor_Derived1::vfunc_54(unk32 param1) {}
|
||||
|
||||
void Actor_Derived1::vfunc_1C() {
|
||||
void Actor_Derived1::Setup() {
|
||||
this->func_ov031_020e3ca4();
|
||||
}
|
||||
|
||||
@@ -223,12 +222,12 @@ unk32 Actor_Derived1::vfunc_A8() {
|
||||
}
|
||||
|
||||
void Actor_Derived1::func_ov000_020a9804(void *param1, unk32 param2) {}
|
||||
void Actor_Derived1::vfunc_20() {}
|
||||
void Actor_Derived1::Update() {}
|
||||
|
||||
// non-matching
|
||||
void Actor_Derived1::vfunc_24() {
|
||||
if (!data_027e09b8->func_ov000_020732dc(3) || !(this->mUnk_0B0 & 4)) {
|
||||
this->vfunc_20();
|
||||
this->Update();
|
||||
}
|
||||
|
||||
if (!(this->mUnk_0B0 & 0x200)) {
|
||||
|
||||
@@ -36,7 +36,7 @@ MapObject::MapObject() {
|
||||
this->mPos.y = ptr->y;
|
||||
this->mPos.z = ptr->z;
|
||||
|
||||
this->mAngle = *ptr2->mUnk_0C;
|
||||
this->mAngle.angle_s = *ptr2->mUnk_0C;
|
||||
MI_CpuCopyFast(ptr2->mUnk_04, &this->mUnk_20, sizeof(MapObject_20));
|
||||
|
||||
for (int i = 0; i < ARRAY_LEN(this->mUnk_18); i++) {
|
||||
@@ -48,11 +48,11 @@ MapObject::MapObject() {
|
||||
|
||||
MapObject::~MapObject() {}
|
||||
|
||||
bool MapObject::vfunc_00() {
|
||||
bool MapObject::Init() {
|
||||
return true;
|
||||
}
|
||||
|
||||
void MapObject::vfunc_04() {}
|
||||
void MapObject::Setup() {}
|
||||
|
||||
void MapObject::func_ov000_0209d0bc(Vec2bCpp *param1, MapObject *thisx) {
|
||||
VecFx32 pos;
|
||||
|
||||
@@ -36,7 +36,7 @@ MapObject *MapObjectManager::AllocateMapObject(MapObjectId mapObjId, Vec2b param
|
||||
MapObject *pMapObj = data_ov000_020b5d34.CreateMapObject(mapObjId);
|
||||
*ppTable = pMapObj;
|
||||
|
||||
if (pMapObj->vfunc_00()) {
|
||||
if (pMapObj->Init()) {
|
||||
// init was successful, proceed and return the pointer
|
||||
|
||||
// this seems to set map object table index in an array that uses tile pos to figure out which map obj it is
|
||||
|
||||
@@ -33,7 +33,7 @@ MapObjectMiniBlocks::MapObjectMiniBlocks() {
|
||||
this->mUnk_40.mUnk_08 = 1;
|
||||
}
|
||||
|
||||
bool MapObjectMiniBlocks::vfunc_00(void) {
|
||||
bool MapObjectMiniBlocks::Init(void) {
|
||||
GET_PROFILE(MapObjectProfileMiniBlocks)
|
||||
->func_ov000_0209ccd8(this->mUnk_20.mParams[1], data_ov000_020af574[this->mUnk_20.mParams[1]]);
|
||||
UnkStruct_027e0cd8_0C_Base *pUnkStruct_027e0cd8_0C = data_027e0cd8->mUnk_0C;
|
||||
@@ -102,14 +102,14 @@ bool MapObjectMiniBlocks::vfunc_00(void) {
|
||||
break;
|
||||
}
|
||||
|
||||
func_01ff9638(&vec, -this->mAngle);
|
||||
func_01ff9638(&vec, -this->mAngle.angle_s);
|
||||
VecFx32_Add(&this->mPos, &vec, &this->mPos);
|
||||
return true;
|
||||
}
|
||||
|
||||
void MapObjectMiniBlocks::vfunc_14(unk32 param1) {
|
||||
Mat3p m;
|
||||
u16 unk_14 = this->mAngle;
|
||||
u16 unk_14 = this->mAngle.angle_s;
|
||||
Mat3p_InitYRotation(&m, SIN(unk_14), COS(unk_14));
|
||||
this->mUnk_40.vfunc_14(&m, &this->mPos);
|
||||
}
|
||||
|
||||
@@ -12,7 +12,7 @@ MapObjectPot_Base::MapObjectPot_Base() {
|
||||
|
||||
MapObjectPot_Base::~MapObjectPot_Base() {}
|
||||
|
||||
bool MapObjectPot_Base::vfunc_00() {
|
||||
bool MapObjectPot_Base::Init() {
|
||||
this->SetState(MapObjPot_BaseState_0, 0x1);
|
||||
return true;
|
||||
}
|
||||
@@ -20,7 +20,7 @@ bool MapObjectPot_Base::vfunc_00() {
|
||||
// non-matching
|
||||
bool MapObjectPot_Base::SetState(MapObjState state, unk32 param2) {
|
||||
if (param2 == 0x0 && this->mState == MapObjPot_BaseState_1) {
|
||||
return;
|
||||
return true;
|
||||
}
|
||||
this->mState = state;
|
||||
switch (this->mState) {
|
||||
|
||||
@@ -81,9 +81,8 @@ void MapObjectSwitchStep_40::vfunc_1C(UnkSystem4_vfunc_1C *param1) {
|
||||
}
|
||||
|
||||
MapObjectSwitchStep::MapObjectSwitchStep() :
|
||||
mUnk_A4(&mUnk_C4, NULL) {
|
||||
this->mUnk_E4 = 0;
|
||||
this->mUnk_E6 = 0;
|
||||
mUnk_A4(&mUnk_C4, NULL),
|
||||
mUnk_E4(0, 0) {
|
||||
this->mUnk_E8 = 0;
|
||||
this->mUnk_EA = 0;
|
||||
this->mUnk_EB = 0;
|
||||
@@ -105,7 +104,7 @@ MapObjectSwitchStep::~MapObjectSwitchStep() {
|
||||
}
|
||||
}
|
||||
|
||||
bool MapObjectSwitchStep::vfunc_00(void) {
|
||||
bool MapObjectSwitchStep::Init(void) {
|
||||
SET_FLAG(this->mFlags, MapObjFlag_9);
|
||||
this->mUnk_18[0] = 1;
|
||||
|
||||
@@ -127,9 +126,8 @@ bool MapObjectSwitchStep::vfunc_00(void) {
|
||||
}
|
||||
|
||||
void MapObjectSwitchStep::func_ov000_0209e11c(MapObjState state, unk32 param2) {
|
||||
this->mState = state;
|
||||
this->mUnk_E6 = -1;
|
||||
this->mUnk_E4 = 0;
|
||||
this->mState = state;
|
||||
this->mUnk_E4.Reset();
|
||||
this->mUnk_A4.func_01ffc3b4();
|
||||
|
||||
switch (this->mState) {
|
||||
@@ -161,8 +159,7 @@ void MapObjectSwitchStep::func_ov000_0209e11c(MapObjState state, unk32 param2) {
|
||||
}
|
||||
|
||||
if (this->mUnk_20.mParams[0] == 2) {
|
||||
this->mUnk_E6 = this->mUnk_20.mParams[1];
|
||||
this->mUnk_E4 = 0;
|
||||
this->mUnk_E4.Set(0, this->mUnk_20.mParams[1]);
|
||||
}
|
||||
|
||||
this->mUnk_A4.func_ov000_020577f8(0x1000);
|
||||
@@ -222,7 +219,7 @@ void MapObjectSwitchStep::vfunc_18(s8 *param1) {
|
||||
}
|
||||
|
||||
void MapObjectSwitchStep::func_ov000_0209e38c(void) {
|
||||
if (this->mUnk_E6 - this->mUnk_E4 < 0x3C) {
|
||||
if (this->mUnk_E4.GetRemainingTime() < 60) {
|
||||
data_ov000_020b5214.func_ov000_0206e7e8(0x92);
|
||||
} else {
|
||||
data_ov000_020b5214.func_ov000_0206e7e8(0x91);
|
||||
|
||||
@@ -71,7 +71,7 @@ void ActorManager::func_ov001_020bafdc() {
|
||||
if (pActor != NULL) {
|
||||
// alive and uninitialized?
|
||||
if (GET_FLAG(pActor->mFlags, ActorFlag_Alive) && !GET_FLAG(pActor->mFlags, ActorFlag_4)) {
|
||||
pActor->vfunc_1C();
|
||||
pActor->Setup();
|
||||
SET_FLAG(pActor->mFlags, ActorFlag_4);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -43,7 +43,7 @@ void MapObjectManager::func_ov001_020bac9c() {
|
||||
if (pMapObj != NULL) {
|
||||
// alive and uninitialized?
|
||||
if (GET_FLAG(pMapObj->mFlags, MapObjFlag_Alive) && !GET_FLAG(pMapObj->mFlags, MapObjFlag_4)) {
|
||||
pMapObj->vfunc_04();
|
||||
pMapObj->Setup();
|
||||
SET_FLAG(pMapObj->mFlags, MapObjFlag_4);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -77,8 +77,7 @@ void PlayerLinkActor::func_ov001_020bcbd0(VecFx32 *pVec) {
|
||||
this->mUnk_90->mUnk_034.func_ov000_0208efd0(pVec);
|
||||
|
||||
PlayerActorBase_70 *unk_70 = this->mUnk_70;
|
||||
unk_70->func_ov001_020bbe18(0, this->mAngleStruct, this->mUnk_0A0->func_ov000_02093718(),
|
||||
this->mUnk_0A0->func_ov000_0209378c());
|
||||
unk_70->func_ov001_020bbe18(0, this->mAngle, this->mUnk_0A0->func_ov000_02093718(), this->mUnk_0A0->func_ov000_0209378c());
|
||||
|
||||
bool uVar1 = false;
|
||||
if (this->mUnk_094 != NULL) {
|
||||
|
||||
@@ -63,9 +63,9 @@ void func_ov001_020bfd54() {
|
||||
void GameModeBattle::func_ov001_020bfd84(unk32 param1) {
|
||||
switch (param1) {
|
||||
case 0:
|
||||
DSProt_DetectEmulator(func_ov001_020bfcc0);
|
||||
DSProt_DetectFlashcart(func_ov001_020bfcf0);
|
||||
DSProt_DetectNotDummy(func_ov001_020bfd20);
|
||||
DSProt_DetectEmulator((void *) func_ov001_020bfcc0);
|
||||
DSProt_DetectFlashcart((void *) func_ov001_020bfcf0);
|
||||
DSProt_DetectNotDummy((void *) func_ov001_020bfd20);
|
||||
func_ov001_020bfd54();
|
||||
break;
|
||||
case 1:
|
||||
|
||||
@@ -22,7 +22,7 @@ void func_ov001_020bff1c(void) {
|
||||
}
|
||||
|
||||
void Actor_Derived1::func_ov001_020bff2c(void) {
|
||||
this->Actor_Derived1::vfunc_1C();
|
||||
this->Actor_Derived1::Setup();
|
||||
}
|
||||
|
||||
void ActorUnkLBCK::func_ov001_020bff34() {
|
||||
|
||||
@@ -309,7 +309,7 @@ void Actor::func_ov017_020bf4b0(unk32 param1) {
|
||||
}
|
||||
|
||||
void Actor::func_ov017_020bf574(unk32 param1, unk32 param2) {
|
||||
func_ov000_020a1330(param1, this->mRef, this->mPos, this->mAngleStruct, 8, param2);
|
||||
func_ov000_020a1330(param1, this->mRef, this->mPos, this->mAngle, 8, param2);
|
||||
}
|
||||
|
||||
void Actor::func_ov017_020bf5c4(VecFx32 *param1, unk32 param2, unk32 param3, unk32 param4, s16 param5) {
|
||||
@@ -323,8 +323,7 @@ void Actor::func_ov017_020bf5c4(VecFx32 *param1, unk32 param2, unk32 param3, unk
|
||||
void Actor::func_ov017_020bf634(const VecFx32 *param1, u16 param2, unk32 param3) {
|
||||
UNSET_FLAG(this->mFlags, ActorFlag_5);
|
||||
|
||||
this->mTimerMax = param2;
|
||||
this->mTimer = 0;
|
||||
this->mTimer.Set(0, param2);
|
||||
|
||||
this->mVel.x = param1->x;
|
||||
this->mVel.z = param1->z;
|
||||
@@ -347,7 +346,7 @@ void Actor::func_ov017_020bf688() {
|
||||
|
||||
this->mUnk_3C = NULL;
|
||||
|
||||
if (this->IsTimerOut()) {
|
||||
if (this->mTimer.HasExpired()) {
|
||||
SET_FLAG(this->mFlags, ActorFlag_5);
|
||||
}
|
||||
}
|
||||
@@ -358,8 +357,7 @@ void Actor::func_ov017_020bf710(UnkStruct_ActorUnkCANS_224 *param1, const VecFx3
|
||||
this->mUnk_54 = param1;
|
||||
func_ov000_02099870(param1, &this->mPos, param3);
|
||||
|
||||
this->mTimerMax = param1->mUnk_0A - param1->mUnk_08;
|
||||
this->mTimer = 0;
|
||||
this->mTimer.Set(0, param1->mUnk_08.GetRemainingTime());
|
||||
|
||||
this->mVel.x = param2->x;
|
||||
this->mVel.z = param2->z;
|
||||
@@ -378,7 +376,7 @@ void Actor::func_ov017_020bf7a8() {
|
||||
this->func_ov000_02098838();
|
||||
|
||||
UnkStruct_ActorUnkCANS_224 *temp_r4 = this->mUnk_54;
|
||||
temp_r4->UpdateTimer();
|
||||
temp_r4->mUnk_08.Update();
|
||||
|
||||
func_01ff93c0(&this->mVel, 0xC7B);
|
||||
|
||||
@@ -387,11 +385,11 @@ void Actor::func_ov017_020bf7a8() {
|
||||
this->mVel.z /= 2;
|
||||
}
|
||||
|
||||
if (this->mTimer < temp_r4->mUnk_0E) {
|
||||
if (this->mTimer.value < temp_r4->mUnk_0E) {
|
||||
this->mUnk_3C = NULL;
|
||||
}
|
||||
|
||||
if (this->IsTimerOut()) {
|
||||
if (this->mTimer.HasExpired()) {
|
||||
temp_r4->Destroy();
|
||||
SET_FLAG(this->mFlags, ActorFlag_5);
|
||||
}
|
||||
@@ -428,8 +426,7 @@ void Actor::vfunc_44() {
|
||||
void Actor::func_ov017_020bf99c() {
|
||||
UNSET_FLAG(this->mFlags, ActorFlag_5);
|
||||
VecFx32_Reset(&this->mVel);
|
||||
this->mTimerMax = 1;
|
||||
this->mTimer = 0;
|
||||
this->mTimer.Set(0, 1);
|
||||
}
|
||||
|
||||
void Actor::func_ov017_020bf9c8(Actor *param1) {
|
||||
@@ -439,16 +436,16 @@ void Actor::func_ov017_020bf9c8(Actor *param1) {
|
||||
return;
|
||||
}
|
||||
|
||||
u16 timerMax = this->mTimerMax;
|
||||
u16 timer = this->mTimer;
|
||||
u16 timerMax = this->mTimer.max;
|
||||
u16 time = this->mTimer.value;
|
||||
|
||||
if (timer >= timerMax) {
|
||||
if (time >= timerMax) {
|
||||
SET_FLAG(this->mFlags, ActorFlag_5);
|
||||
return;
|
||||
}
|
||||
|
||||
if (timer < timerMax) {
|
||||
this->mTimer++;
|
||||
if (time < timerMax) {
|
||||
this->mTimer.value++;
|
||||
}
|
||||
|
||||
func_01ffb714(data_027e0ce0->func_01fff148(0), &this->mPos, &this->mVel);
|
||||
@@ -458,8 +455,7 @@ void Actor::func_ov017_020bf9c8(Actor *param1) {
|
||||
void Actor::func_ov017_020bfa50(VecFx32 *param1, unk32 param2) {
|
||||
UNSET_FLAG(this->mFlags, ActorFlag_5);
|
||||
|
||||
this->mTimerMax = param2;
|
||||
this->mTimer = 0;
|
||||
this->mTimer.Set(0, param2);
|
||||
|
||||
VecFx32 sp0;
|
||||
func_01ffb714(param1, &this->mPos, &sp0);
|
||||
@@ -476,7 +472,7 @@ void Actor::func_ov017_020bfa50(VecFx32 *param1, unk32 param2) {
|
||||
void Actor::func_ov017_020bfad4() {
|
||||
this->mVel.y -= this->mUnk_2C;
|
||||
|
||||
if (this->IsTimerOut()) {
|
||||
if (this->mTimer.HasExpired()) {
|
||||
SET_FLAG(this->mFlags, ActorFlag_5);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,11 +26,11 @@ void MapObjectSwitchStep::vfunc_08() {
|
||||
if (this->mUnk_20.mParams[0] != 0) {
|
||||
if (this->mUnk_20.mParams[0] == 2) {
|
||||
if (!this->func_ov000_0209d29c(1)) {
|
||||
if (this->mUnk_EA == 0 && (this->mUnk_E4 >= this->mUnk_E6 || !this->func_ov000_0209d29c(0))) {
|
||||
if (this->mUnk_EA == 0 && (this->mUnk_E4.HasReachedMaxU() || !this->func_ov000_0209d29c(0))) {
|
||||
this->func_ov000_0209e11c(0, 0);
|
||||
sp0 = this->mUnk_40.mUnk_60;
|
||||
} else {
|
||||
if (this->mUnk_EA != 0 && (this->mUnk_E4 >= this->mUnk_E6 || !this->func_ov000_0209d29c(0))) {
|
||||
if (this->mUnk_EA != 0 && (this->mUnk_E4.HasReachedMaxU() || !this->func_ov000_0209d29c(0))) {
|
||||
this->func_ov000_0209e11c(3, 0);
|
||||
} else {
|
||||
this->func_ov000_0209e38c();
|
||||
@@ -55,10 +55,7 @@ void MapObjectSwitchStep::vfunc_08() {
|
||||
|
||||
this->mUnk_40.mUnk_60 = sp0;
|
||||
this->mUnk_EA = 0;
|
||||
|
||||
if (this->mUnk_E4 < this->mUnk_E6) {
|
||||
this->mUnk_E4++;
|
||||
}
|
||||
this->mUnk_E4.Update();
|
||||
}
|
||||
|
||||
void MapObjectSwitchStep::vfunc_14(unk32 param1) {
|
||||
|
||||
@@ -145,7 +145,7 @@ void PlayerLinkActor::func_ov017_020bd788(bool param1) {
|
||||
this->func_ov017_020bd758();
|
||||
|
||||
PlayerActorBase_70 *temp_r5_3 = this->mUnk_70;
|
||||
temp_r5_3->func_ov000_020830d4(this->mAngleStruct, this->mUnk_0A0->func_ov000_02093718(),
|
||||
temp_r5_3->func_ov000_020830d4(this->mAngle, this->mUnk_0A0->func_ov000_02093718(),
|
||||
this->mUnk_0A0->func_ov000_0209378c(), this->mUnk_0A0->mUnk_28);
|
||||
|
||||
this->mUnk_0B0 = data_0204a088->mUnk_04;
|
||||
@@ -212,8 +212,8 @@ void PlayerLinkActor::func_ov017_020bd788(bool param1) {
|
||||
this->func_ov017_020bd758();
|
||||
|
||||
PlayerActorBase_70 *temp_r5_4 = this->mUnk_70;
|
||||
temp_r5_4->func_ov000_020830d4(this->mAngleStruct, this->mUnk_0A0->func_ov000_02093718(),
|
||||
this->mUnk_0A0->func_ov000_0209378c(), this->mUnk_0A0->mUnk_28);
|
||||
temp_r5_4->func_ov000_020830d4(this->mAngle, this->mUnk_0A0->func_ov000_02093718(), this->mUnk_0A0->func_ov000_0209378c(),
|
||||
this->mUnk_0A0->mUnk_28);
|
||||
|
||||
this->mUnk_0A0->func_ov000_02092e38();
|
||||
this->mUnk_0B0 = data_0204a088->mUnk_04;
|
||||
@@ -254,10 +254,10 @@ void PlayerLinkActor::func_ov017_020bdd84(void *param1, unk32 param2) {
|
||||
if (var_r5) {
|
||||
if (param2 != 0) {
|
||||
if (this->mUnk_74 != 0) {
|
||||
this->mUnk_70->func_ov017_020bbef4(&this->mPos, this->mAngleStruct);
|
||||
this->mUnk_70->func_ov017_020bbef4(&this->mPos, this->mAngle);
|
||||
}
|
||||
} else {
|
||||
this->mUnk_70->func_ov017_020bbcd8(&this->mPos, this->mAngleStruct);
|
||||
this->mUnk_70->func_ov017_020bbcd8(&this->mPos, this->mAngle);
|
||||
}
|
||||
|
||||
if (param1 == NULL && data_0204a110.func_02019514() == 0) {
|
||||
@@ -283,7 +283,7 @@ void PlayerLinkActor::func_ov017_020bdd84(void *param1, unk32 param2) {
|
||||
spC = 0;
|
||||
|
||||
temp_r1_2 = func_ov000_020864f8(&this->mUnk_09C->mUnk_0DC, this->mUnk_09C->mUnk_5A, &sp8, &spC);
|
||||
this->mUnk_74->func_ov102_02182c84(temp_r1_2, spC, this->mAngleStruct, &temp_r4[0], &temp_r4[1]);
|
||||
this->mUnk_74->func_ov102_02182c84(temp_r1_2, spC, this->mAngle, &temp_r4[0], &temp_r4[1]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -59,7 +59,7 @@ bool SaveManager::func_ov019_020d0964() {
|
||||
data_02049b80.func_02013ee8(0, 1);
|
||||
|
||||
if (this->mUnk_20A == 0) {
|
||||
this->func_ov019_020d08fc(1, SaveFile::func_ov019_020d17e0);
|
||||
this->func_ov019_020d08fc(1, &SaveFile::func_ov019_020d17e0);
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -68,12 +68,12 @@ bool SaveManager::func_ov019_020d0964() {
|
||||
|
||||
void SaveManager::func_ov019_020d09dc(u16 saveSlotIndex) {
|
||||
this->mpSaveFile->mSaveSlotIndex = saveSlotIndex;
|
||||
this->func_ov019_020d08fc(2, SaveFile::func_ov019_020d1434);
|
||||
this->func_ov019_020d08fc(2, &SaveFile::func_ov019_020d1434);
|
||||
}
|
||||
|
||||
void SaveManager::func_ov019_020d0a04(u16 saveSlotIndex) {
|
||||
this->mpSaveFile->mSaveSlotIndex = saveSlotIndex;
|
||||
this->func_ov019_020d08fc(2, SaveFile::func_ov019_020d1538);
|
||||
this->func_ov019_020d08fc(2, &SaveFile::func_ov019_020d1538);
|
||||
}
|
||||
|
||||
void SaveManager::func_ov019_020d0a2c(u16 saveSlotIndex) {
|
||||
|
||||
@@ -26,17 +26,17 @@ unk32 UnkSystem1_ov019_Derived1::vfunc_1C(u32 param1, unk32 param2, unk32 param3
|
||||
case 0x1E:
|
||||
switch (param1) {
|
||||
case 0:
|
||||
gSaveManager.func_ov019_020d08fc(2, SaveFile::func_ov019_020d0d50);
|
||||
gSaveManager.func_ov019_020d08fc(2, &SaveFile::func_ov019_020d0d50);
|
||||
gSaveManager.mUnk_20A = 0;
|
||||
break;
|
||||
case 1:
|
||||
gSaveManager.func_ov019_020d08fc(2, SaveFile::func_ov019_020d0ea8);
|
||||
gSaveManager.func_ov019_020d08fc(2, &SaveFile::func_ov019_020d0ea8);
|
||||
break;
|
||||
case 2:
|
||||
gSaveManager.func_ov019_020d08fc(2, SaveFile::func_ov019_020d1108);
|
||||
gSaveManager.func_ov019_020d08fc(2, &SaveFile::func_ov019_020d1108);
|
||||
break;
|
||||
case 3:
|
||||
gSaveManager.func_ov019_020d08fc(2, SaveFile::func_ov019_020d127c);
|
||||
gSaveManager.func_ov019_020d08fc(2, &SaveFile::func_ov019_020d127c);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
||||
@@ -41,81 +41,81 @@ UnkStruct_ov019_020d1e4c UnkStruct_ov019_020d1e70::data_ov019_020d1e4c = {
|
||||
};
|
||||
|
||||
static PTMF<FileSelectMain> data_ov019_020d1f94[FileSelectState_Max] = {
|
||||
FileSelectMain::func_ov019_020c8290, // FileSelectState_Unk_00
|
||||
FileSelectMain::func_ov019_020c82c4, // FileSelectState_Init
|
||||
FileSelectMain::func_ov019_020c8454, // FileSelectState_SlotSelectIdle
|
||||
FileSelectMain::func_ov019_020c8aac, // FileSelectState_SlotSelectToFileManager
|
||||
FileSelectMain::func_ov019_020c8ad8, // FileSelectState_FileManagerFromSlotSelect
|
||||
FileSelectMain::func_ov019_020c8b10, // FileSelectState_FileManagerToSlotSelect
|
||||
FileSelectMain::func_ov019_020c8b48, // FileSelectState_SlotSelectFromFileManager
|
||||
FileSelectMain::func_ov019_020c8b74, // FileSelectState_FileManagerIdle
|
||||
FileSelectMain::func_ov019_020c9b28, // FileSelectState_FileManagerToChooseMode
|
||||
FileSelectMain::func_ov019_020c9b70, // FileSelectState_ChooseModeFromFileManager
|
||||
FileSelectMain::func_ov019_020c9bcc, // FileSelectState_ChooseModeToFileManager
|
||||
FileSelectMain::func_ov019_020c9c18, // FileSelectState_FileManagerFromChooseMode
|
||||
FileSelectMain::func_ov019_020c9c70, // FileSelectState_ChooseModeIdle
|
||||
FileSelectMain::func_ov019_020c9d88, // FileSelectState_ChooseModeToEnterGameMode
|
||||
FileSelectMain::func_ov019_020c9e08, // FileSelectState_EnterGameMode
|
||||
FileSelectMain::func_ov019_020ca80c, // FileSelectState_SlotSelectToNewFile
|
||||
FileSelectMain::func_ov019_020ca844, // FileSelectState_NewFileToSlotSelect
|
||||
FileSelectMain::func_ov019_020ca87c, // FileSelectState_FileManagerToCopyErase
|
||||
FileSelectMain::func_ov019_020ca8b4, // FileSelectState_CopyEraseFromFileManager
|
||||
FileSelectMain::func_ov019_020cb180, // FileSelectState_ChooseModeToContactMode
|
||||
FileSelectMain::func_ov019_020cb1dc, // FileSelectState_OptionsToChooseMode
|
||||
FileSelectMain::func_ov019_020c80f4, // FileSelectState_NewFileFromSlotSelect
|
||||
FileSelectMain::func_ov019_020c80f4, // FileSelectState_OptionsFromChooseMode
|
||||
&FileSelectMain::func_ov019_020c8290, // FileSelectState_Unk_00
|
||||
&FileSelectMain::func_ov019_020c82c4, // FileSelectState_Init
|
||||
&FileSelectMain::func_ov019_020c8454, // FileSelectState_SlotSelectIdle
|
||||
&FileSelectMain::func_ov019_020c8aac, // FileSelectState_SlotSelectToFileManager
|
||||
&FileSelectMain::func_ov019_020c8ad8, // FileSelectState_FileManagerFromSlotSelect
|
||||
&FileSelectMain::func_ov019_020c8b10, // FileSelectState_FileManagerToSlotSelect
|
||||
&FileSelectMain::func_ov019_020c8b48, // FileSelectState_SlotSelectFromFileManager
|
||||
&FileSelectMain::func_ov019_020c8b74, // FileSelectState_FileManagerIdle
|
||||
&FileSelectMain::func_ov019_020c9b28, // FileSelectState_FileManagerToChooseMode
|
||||
&FileSelectMain::func_ov019_020c9b70, // FileSelectState_ChooseModeFromFileManager
|
||||
&FileSelectMain::func_ov019_020c9bcc, // FileSelectState_ChooseModeToFileManager
|
||||
&FileSelectMain::func_ov019_020c9c18, // FileSelectState_FileManagerFromChooseMode
|
||||
&FileSelectMain::func_ov019_020c9c70, // FileSelectState_ChooseModeIdle
|
||||
&FileSelectMain::func_ov019_020c9d88, // FileSelectState_ChooseModeToEnterGameMode
|
||||
&FileSelectMain::func_ov019_020c9e08, // FileSelectState_EnterGameMode
|
||||
&FileSelectMain::func_ov019_020ca80c, // FileSelectState_SlotSelectToNewFile
|
||||
&FileSelectMain::func_ov019_020ca844, // FileSelectState_NewFileToSlotSelect
|
||||
&FileSelectMain::func_ov019_020ca87c, // FileSelectState_FileManagerToCopyErase
|
||||
&FileSelectMain::func_ov019_020ca8b4, // FileSelectState_CopyEraseFromFileManager
|
||||
&FileSelectMain::func_ov019_020cb180, // FileSelectState_ChooseModeToContactMode
|
||||
&FileSelectMain::func_ov019_020cb1dc, // FileSelectState_OptionsToChooseMode
|
||||
&FileSelectMain::func_ov019_020c80f4, // FileSelectState_NewFileFromSlotSelect
|
||||
&FileSelectMain::func_ov019_020c80f4, // FileSelectState_OptionsFromChooseMode
|
||||
};
|
||||
|
||||
static PTMF<FileSelectMain> data_ov019_020d204c[FileSelectState_Max] = {
|
||||
FileSelectMain::func_ov019_020cb26c, // FileSelectState_Unk_00
|
||||
FileSelectMain::func_ov019_020cb4bc, // FileSelectState_Init
|
||||
FileSelectMain::func_ov019_020cb4c8, // FileSelectState_SlotSelectIdle
|
||||
FileSelectMain::func_ov019_020cb4d4, // FileSelectState_SlotSelectToFileManager
|
||||
FileSelectMain::func_ov019_020cb4e0, // FileSelectState_FileManagerFromSlotSelect
|
||||
FileSelectMain::func_ov019_020cb4ec, // FileSelectState_FileManagerToSlotSelect
|
||||
FileSelectMain::func_ov019_020cb4f8, // FileSelectState_SlotSelectFromFileManager
|
||||
FileSelectMain::func_ov019_020cb504, // FileSelectState_FileManagerIdle
|
||||
FileSelectMain::func_ov019_020cb510, // FileSelectState_FileManagerToChooseMode
|
||||
FileSelectMain::func_ov019_020cb51c, // FileSelectState_ChooseModeFromFileManager
|
||||
FileSelectMain::func_ov019_020cb528, // FileSelectState_ChooseModeToFileManager
|
||||
FileSelectMain::func_ov019_020cb534, // FileSelectState_FileManagerFromChooseMode
|
||||
FileSelectMain::func_ov019_020cb540, // FileSelectState_ChooseModeIdle
|
||||
FileSelectMain::func_ov019_020cb54c, // FileSelectState_ChooseModeToEnterGameMode
|
||||
FileSelectMain::func_ov019_020cb558, // FileSelectState_EnterGameMode
|
||||
FileSelectMain::func_ov019_020cb564, // FileSelectState_SlotSelectToNewFile
|
||||
FileSelectMain::func_ov019_020cb570, // FileSelectState_NewFileToSlotSelect
|
||||
FileSelectMain::func_ov019_020cb57c, // FileSelectState_FileManagerToCopyErase
|
||||
FileSelectMain::func_ov019_020cb588, // FileSelectState_CopyEraseFromFileManager
|
||||
FileSelectMain::func_ov019_020cb5b0, // FileSelectState_ChooseModeToContactMode
|
||||
FileSelectMain::func_ov019_020cb5bc, // FileSelectState_OptionsToChooseMode
|
||||
FileSelectMain::func_ov019_020cb268, // FileSelectState_NewFileFromSlotSelect
|
||||
FileSelectMain::func_ov019_020cb268, // FileSelectState_OptionsFromChooseMode
|
||||
&FileSelectMain::func_ov019_020cb26c, // FileSelectState_Unk_00
|
||||
&FileSelectMain::func_ov019_020cb4bc, // FileSelectState_Init
|
||||
&FileSelectMain::func_ov019_020cb4c8, // FileSelectState_SlotSelectIdle
|
||||
&FileSelectMain::func_ov019_020cb4d4, // FileSelectState_SlotSelectToFileManager
|
||||
&FileSelectMain::func_ov019_020cb4e0, // FileSelectState_FileManagerFromSlotSelect
|
||||
&FileSelectMain::func_ov019_020cb4ec, // FileSelectState_FileManagerToSlotSelect
|
||||
&FileSelectMain::func_ov019_020cb4f8, // FileSelectState_SlotSelectFromFileManager
|
||||
&FileSelectMain::func_ov019_020cb504, // FileSelectState_FileManagerIdle
|
||||
&FileSelectMain::func_ov019_020cb510, // FileSelectState_FileManagerToChooseMode
|
||||
&FileSelectMain::func_ov019_020cb51c, // FileSelectState_ChooseModeFromFileManager
|
||||
&FileSelectMain::func_ov019_020cb528, // FileSelectState_ChooseModeToFileManager
|
||||
&FileSelectMain::func_ov019_020cb534, // FileSelectState_FileManagerFromChooseMode
|
||||
&FileSelectMain::func_ov019_020cb540, // FileSelectState_ChooseModeIdle
|
||||
&FileSelectMain::func_ov019_020cb54c, // FileSelectState_ChooseModeToEnterGameMode
|
||||
&FileSelectMain::func_ov019_020cb558, // FileSelectState_EnterGameMode
|
||||
&FileSelectMain::func_ov019_020cb564, // FileSelectState_SlotSelectToNewFile
|
||||
&FileSelectMain::func_ov019_020cb570, // FileSelectState_NewFileToSlotSelect
|
||||
&FileSelectMain::func_ov019_020cb57c, // FileSelectState_FileManagerToCopyErase
|
||||
&FileSelectMain::func_ov019_020cb588, // FileSelectState_CopyEraseFromFileManager
|
||||
&FileSelectMain::func_ov019_020cb5b0, // FileSelectState_ChooseModeToContactMode
|
||||
&FileSelectMain::func_ov019_020cb5bc, // FileSelectState_OptionsToChooseMode
|
||||
&FileSelectMain::func_ov019_020cb268, // FileSelectState_NewFileFromSlotSelect
|
||||
&FileSelectMain::func_ov019_020cb268, // FileSelectState_OptionsFromChooseMode
|
||||
};
|
||||
|
||||
static PTMF<FileSelectMain> data_ov019_020d1edc[FileSelectState_Max] = {
|
||||
FileSelectMain::func_ov019_020c6d0c, // FileSelectState_Unk_00
|
||||
FileSelectMain::func_ov019_020c6d48, // FileSelectState_Init
|
||||
FileSelectMain::func_ov019_020c6e14, // FileSelectState_SlotSelectIdle
|
||||
FileSelectMain::func_ov019_020c717c, // FileSelectState_SlotSelectToFileManager
|
||||
FileSelectMain::func_ov019_020c71f0, // FileSelectState_FileManagerFromSlotSelect
|
||||
FileSelectMain::func_ov019_020c7210, // FileSelectState_FileManagerToSlotSelect
|
||||
FileSelectMain::func_ov019_020c71d0, // FileSelectState_SlotSelectFromFileManager
|
||||
FileSelectMain::func_ov019_020c7274, // FileSelectState_FileManagerIdle
|
||||
FileSelectMain::func_ov019_020c7768, // FileSelectState_FileManagerToChooseMode
|
||||
FileSelectMain::func_ov019_020c77b8, // FileSelectState_ChooseModeFromFileManager
|
||||
FileSelectMain::func_ov019_020c7804, // FileSelectState_ChooseModeToFileManager
|
||||
FileSelectMain::func_ov019_020c7858, // FileSelectState_FileManagerFromChooseMode
|
||||
FileSelectMain::func_ov019_020c7878, // FileSelectState_ChooseModeIdle
|
||||
FileSelectMain::func_ov019_020c78ac, // FileSelectState_ChooseModeToEnterGameMode
|
||||
FileSelectMain::func_ov019_020c7910, // FileSelectState_EnterGameMode
|
||||
FileSelectMain::func_ov019_020c7c3c, // FileSelectState_SlotSelectToNewFile
|
||||
FileSelectMain::func_ov019_020c7c48, // FileSelectState_NewFileToSlotSelect
|
||||
FileSelectMain::func_ov019_020c7c70, // FileSelectState_FileManagerToCopyErase
|
||||
FileSelectMain::func_ov019_020c7d3c, // FileSelectState_CopyEraseFromFileManager
|
||||
FileSelectMain::func_ov019_020c80dc, // FileSelectState_ChooseModeToContactMode
|
||||
FileSelectMain::func_ov019_020c80e8, // FileSelectState_OptionsToChooseMode
|
||||
FileSelectMain::func_ov019_020c6d08, // FileSelectState_NewFileFromSlotSelect
|
||||
FileSelectMain::func_ov019_020c6d08, // FileSelectState_OptionsFromChooseMode
|
||||
&FileSelectMain::func_ov019_020c6d0c, // FileSelectState_Unk_00
|
||||
&FileSelectMain::func_ov019_020c6d48, // FileSelectState_Init
|
||||
&FileSelectMain::func_ov019_020c6e14, // FileSelectState_SlotSelectIdle
|
||||
&FileSelectMain::func_ov019_020c717c, // FileSelectState_SlotSelectToFileManager
|
||||
&FileSelectMain::func_ov019_020c71f0, // FileSelectState_FileManagerFromSlotSelect
|
||||
&FileSelectMain::func_ov019_020c7210, // FileSelectState_FileManagerToSlotSelect
|
||||
&FileSelectMain::func_ov019_020c71d0, // FileSelectState_SlotSelectFromFileManager
|
||||
&FileSelectMain::func_ov019_020c7274, // FileSelectState_FileManagerIdle
|
||||
&FileSelectMain::func_ov019_020c7768, // FileSelectState_FileManagerToChooseMode
|
||||
&FileSelectMain::func_ov019_020c77b8, // FileSelectState_ChooseModeFromFileManager
|
||||
&FileSelectMain::func_ov019_020c7804, // FileSelectState_ChooseModeToFileManager
|
||||
&FileSelectMain::func_ov019_020c7858, // FileSelectState_FileManagerFromChooseMode
|
||||
&FileSelectMain::func_ov019_020c7878, // FileSelectState_ChooseModeIdle
|
||||
&FileSelectMain::func_ov019_020c78ac, // FileSelectState_ChooseModeToEnterGameMode
|
||||
&FileSelectMain::func_ov019_020c7910, // FileSelectState_EnterGameMode
|
||||
&FileSelectMain::func_ov019_020c7c3c, // FileSelectState_SlotSelectToNewFile
|
||||
&FileSelectMain::func_ov019_020c7c48, // FileSelectState_NewFileToSlotSelect
|
||||
&FileSelectMain::func_ov019_020c7c70, // FileSelectState_FileManagerToCopyErase
|
||||
&FileSelectMain::func_ov019_020c7d3c, // FileSelectState_CopyEraseFromFileManager
|
||||
&FileSelectMain::func_ov019_020c80dc, // FileSelectState_ChooseModeToContactMode
|
||||
&FileSelectMain::func_ov019_020c80e8, // FileSelectState_OptionsToChooseMode
|
||||
&FileSelectMain::func_ov019_020c6d08, // FileSelectState_NewFileFromSlotSelect
|
||||
&FileSelectMain::func_ov019_020c6d08, // FileSelectState_OptionsFromChooseMode
|
||||
};
|
||||
|
||||
const unk32 data_ov019_020d1bbc[] = {0x00000000, 0x00000000, 0x00000000, 0x00000001};
|
||||
|
||||
@@ -74,7 +74,7 @@ void FileSelectManager::func_ov019_020c503c() {
|
||||
data_ov003_020ba740->func_ov003_020b69d8(2);
|
||||
data_ov000_020b5214.func_ov000_0206db44(0x13);
|
||||
break;
|
||||
case BTN_ID_FILE_SELECT_NEW_FILE_CONFIRM:
|
||||
case BTN_ID_FILE_SELECT_NEW_FILE_CONFIRM: {
|
||||
data_ov003_020ba740->func_ov003_020b69d8(3);
|
||||
|
||||
UnkStruct_ov019_020d1d80 *uVar2 = (UnkStruct_ov019_020d1d80 *) &data_ov019_020d1db4;
|
||||
@@ -84,6 +84,7 @@ void FileSelectManager::func_ov019_020c503c() {
|
||||
((UnkStruct *) data_ov000_020b504c.func_ov000_02067bb4(0))->mUnk_3AC = 1;
|
||||
data_ov000_020b5214.func_ov000_0206db44(0x12);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -34,10 +34,10 @@ public:
|
||||
static const UnkStruct_ov019_020d2248 data_ov019_020d2248(0, 0x32, 0x100, 0);
|
||||
|
||||
static PTMF<FileSelectMicTest> data_ov019_020d225c[FSMicTestState_Max] = {
|
||||
FileSelectMicTest::func_ov019_020cea70,
|
||||
FileSelectMicTest::func_ov019_020ceaac,
|
||||
FileSelectMicTest::func_ov019_020cebcc,
|
||||
FileSelectMicTest::func_ov019_020cea6c,
|
||||
&FileSelectMicTest::func_ov019_020cea70,
|
||||
&FileSelectMicTest::func_ov019_020ceaac,
|
||||
&FileSelectMicTest::func_ov019_020cebcc,
|
||||
&FileSelectMicTest::func_ov019_020cea6c,
|
||||
};
|
||||
|
||||
OptionsManagerAssessor::OptionsManagerAssessor() {
|
||||
|
||||
@@ -74,23 +74,23 @@ UnkStruct_ov019_020d215c UnkStruct_ov019_020d2170::data_ov019_020d215c = {
|
||||
static const UnkStruct_ov019_020d2170 data_ov019_020d2170;
|
||||
|
||||
static PTMF<FileSelectOptions> data_ov019_020d21c0[FSOptionsState_Max] = {
|
||||
FileSelectOptions::func_ov019_020cce04, // FSOptionsState_Idle
|
||||
FileSelectOptions::func_ov019_020cce30, // FSOptionsState_OptionsFromChooseMode
|
||||
FileSelectOptions::func_ov019_020cd16c, // FSOptionsState_OptionsToChooseMode
|
||||
FileSelectOptions::func_ov019_020cd41c, // FSOptionsState_OptionsToMicTest
|
||||
FileSelectOptions::func_ov019_020cd5f8, // FSOptionsState_MicTestIdle
|
||||
FileSelectOptions::func_ov019_020cd614, // FSOptionsState_OptionsFromMicTest
|
||||
FileSelectOptions::func_ov019_020cd788, // FSOptionsState_SaveSettings
|
||||
&FileSelectOptions::func_ov019_020cce04, // FSOptionsState_Idle
|
||||
&FileSelectOptions::func_ov019_020cce30, // FSOptionsState_OptionsFromChooseMode
|
||||
&FileSelectOptions::func_ov019_020cd16c, // FSOptionsState_OptionsToChooseMode
|
||||
&FileSelectOptions::func_ov019_020cd41c, // FSOptionsState_OptionsToMicTest
|
||||
&FileSelectOptions::func_ov019_020cd5f8, // FSOptionsState_MicTestIdle
|
||||
&FileSelectOptions::func_ov019_020cd614, // FSOptionsState_OptionsFromMicTest
|
||||
&FileSelectOptions::func_ov019_020cd788, // FSOptionsState_SaveSettings
|
||||
};
|
||||
|
||||
static PTMF<FileSelectOptions> data_ov019_020d2188[FSOptionsState_Max] = {
|
||||
FileSelectOptions::func_ov019_020cd7f8, // FSOptionsState_Idle
|
||||
FileSelectOptions::func_ov019_020cdc0c, // FSOptionsState_OptionsFromChooseMode
|
||||
FileSelectOptions::func_ov019_020cdc38, // FSOptionsState_OptionsToChooseMode
|
||||
FileSelectOptions::func_ov019_020cdc60, // FSOptionsState_OptionsToMicTest
|
||||
FileSelectOptions::func_ov019_020cdc5c, // FSOptionsState_MicTestIdle
|
||||
FileSelectOptions::func_ov019_020cdc8c, // FSOptionsState_OptionsFromMicTest
|
||||
FileSelectOptions::func_ov019_020cdcb8, // FSOptionsState_SaveSettings
|
||||
&FileSelectOptions::func_ov019_020cd7f8, // FSOptionsState_Idle
|
||||
&FileSelectOptions::func_ov019_020cdc0c, // FSOptionsState_OptionsFromChooseMode
|
||||
&FileSelectOptions::func_ov019_020cdc38, // FSOptionsState_OptionsToChooseMode
|
||||
&FileSelectOptions::func_ov019_020cdc60, // FSOptionsState_OptionsToMicTest
|
||||
&FileSelectOptions::func_ov019_020cdc5c, // FSOptionsState_MicTestIdle
|
||||
&FileSelectOptions::func_ov019_020cdc8c, // FSOptionsState_OptionsFromMicTest
|
||||
&FileSelectOptions::func_ov019_020cdcb8, // FSOptionsState_SaveSettings
|
||||
};
|
||||
|
||||
GameModeManagerBase_104 *FileSelectOptionsManager::Create(void *param1, s32 saveSlotIndex) {
|
||||
@@ -123,20 +123,22 @@ void FileSelectOptionsManager::vfunc_08(Input *pButtons, TouchControl *pTouchCon
|
||||
this->mUnk_20 = 0;
|
||||
|
||||
switch (this->mUnk_1C) {
|
||||
case 0:
|
||||
case 0: {
|
||||
FileSelectOptions *pFVar4 = this->mpOptions;
|
||||
this->mUnk_24->Append(pFVar4);
|
||||
pFVar4->vfunc_18();
|
||||
this->mpOptions->func_ov019_020cde9c();
|
||||
this->mpMicTest->Detach();
|
||||
break;
|
||||
case 1:
|
||||
}
|
||||
case 1: {
|
||||
FileSelectMicTest *pFVar5 = this->mpMicTest;
|
||||
this->mUnk_24->Append(pFVar5);
|
||||
pFVar5->vfunc_18();
|
||||
this->mpMicTest->func_ov019_020cefe4();
|
||||
this->mpOptions->Detach();
|
||||
break;
|
||||
}
|
||||
case 2:
|
||||
this->mpOptions->func_ov019_020ccdf4();
|
||||
break;
|
||||
|
||||
@@ -21,7 +21,7 @@ ActorUnkOBPC::ActorUnkOBPC() :
|
||||
mUnk_98(0),
|
||||
mUnk_9C(0) {}
|
||||
|
||||
bool ActorUnkOBPC::vfunc_18(unk32 param1) {
|
||||
bool ActorUnkOBPC::Init(unk32 param1) {
|
||||
this->mUnk_94 = this->mUnk_5C.mParams[1];
|
||||
this->mUnk_98 = this->mUnk_5C.mParams[3];
|
||||
|
||||
@@ -42,7 +42,7 @@ bool ActorUnkOBPC::func_ov024_020d6f74(void) {
|
||||
return false;
|
||||
}
|
||||
|
||||
void ActorUnkOBPC::vfunc_20(void) {
|
||||
void ActorUnkOBPC::Update(void) {
|
||||
switch (this->mState) {
|
||||
case 0:
|
||||
if (this->func_ov024_020d7154()) {
|
||||
@@ -68,7 +68,7 @@ void ActorUnkOBPC::vfunc_20(void) {
|
||||
}
|
||||
|
||||
void ActorUnkOBPC::vfunc_24(void) {
|
||||
this->vfunc_20();
|
||||
this->Update();
|
||||
}
|
||||
|
||||
void ActorUnkOBPC::SetState(ActorState state, int param2) {
|
||||
|
||||
@@ -321,7 +321,7 @@ void AdventureModeManager::vfunc_24() {
|
||||
if (CHECK_BUTTON_COMBO(press, PAD_KEY_DOWN) || CHECK_BUTTON_COMBO(press, PAD_BUTTON_B)) {
|
||||
if (this->func_ov024_020c5f70() != 0) {
|
||||
switch (data_0204a088->mUnk_00) {
|
||||
case 1:
|
||||
case 1: {
|
||||
stack_ov000_02073578 spC;
|
||||
spC.unk_08 = 0x02;
|
||||
spC.unk_00 = 0x0B;
|
||||
@@ -329,6 +329,7 @@ void AdventureModeManager::vfunc_24() {
|
||||
|
||||
data_ov000_020b5214.func_ov000_0206db44(0x37);
|
||||
break;
|
||||
}
|
||||
#if IS_EUR || IS_USA
|
||||
case 7:
|
||||
if (data_ov031_02118fa4 == 0) {
|
||||
|
||||
@@ -84,7 +84,7 @@ void UnkStruct_027e0d08::func_ov024_020d5e20() {
|
||||
|
||||
this->ResetBuffers();
|
||||
|
||||
if (func_0200169c(this->mUnk_00, 0x800, 0, 0x3FEC, 0x04, UnkStruct_027e0d08::func_ov024_020d5fb8, 0)) {
|
||||
if (func_0200169c(this->mUnk_00, 0x800, 0, 0x3FEC, 0x04, (void *) UnkStruct_027e0d08::func_ov024_020d5fb8, 0)) {
|
||||
SND_func_0013(0, 0, 0, 0);
|
||||
MI_CpuClearFast(this->mUnk_04, 0x2000);
|
||||
MI_CpuClearFast(this->mUnk_08, 0x2000);
|
||||
|
||||
@@ -17,12 +17,12 @@ void func_ov000_0205bedc(void *param1, void *param2, void *param3, void *param4,
|
||||
}
|
||||
|
||||
static TitleScreenPTMF<TitleScreen> data_ov025_020c5aec[TitleScreenState_Max] = {
|
||||
TitleScreen::func_ov025_020c5200, // TitleScreenState_None
|
||||
TitleScreen::func_ov025_020c5204, // TitleScreenState_IdleBeforeUI
|
||||
TitleScreen::func_ov025_020c5240, // TitleScreenState_DrawUIOnInput
|
||||
TitleScreen::func_ov025_020c53d0, // TitleScreenState_DrawUIOnCsCmd
|
||||
TitleScreen::func_ov025_020c55a4, // TitleScreenState_IdleBeforeFileSelect
|
||||
TitleScreen::func_ov025_020c55e4, // TitleScreenState_ToFileSelect
|
||||
&TitleScreen::func_ov025_020c5200, // TitleScreenState_None
|
||||
&TitleScreen::func_ov025_020c5204, // TitleScreenState_IdleBeforeUI
|
||||
&TitleScreen::func_ov025_020c5240, // TitleScreenState_DrawUIOnInput
|
||||
&TitleScreen::func_ov025_020c53d0, // TitleScreenState_DrawUIOnCsCmd
|
||||
&TitleScreen::func_ov025_020c55a4, // TitleScreenState_IdleBeforeFileSelect
|
||||
&TitleScreen::func_ov025_020c55e4, // TitleScreenState_ToFileSelect
|
||||
};
|
||||
|
||||
#if IS_JP
|
||||
|
||||
@@ -27,7 +27,7 @@ bool ActorUnkRB1T::func_ov026_0211e3e0(int param1) {
|
||||
return true;
|
||||
}
|
||||
|
||||
this->Actor_Derived1::vfunc_18(param1);
|
||||
this->Actor_Derived1::Init(param1);
|
||||
this->mUnk_0E4 = ActorUnkRB1T::func_ov026_021208a0;
|
||||
|
||||
int result = this->func_ov026_0211e6cc();
|
||||
|
||||
@@ -35,11 +35,10 @@ bool ActorBlast_E8::vfunc_0C(const UnkStruct_ov031_020e54d4 *param1, unk32 *para
|
||||
|
||||
ActorBlast::ActorBlast() :
|
||||
mUnk_94(FLOAT_TO_FX32(0.625f)),
|
||||
mUnk_98(0x0),
|
||||
mUnk_9A(0x18),
|
||||
mUnk_98(0, 24),
|
||||
mUnk_E8(this) {}
|
||||
|
||||
bool ActorBlast::vfunc_18(unk32 param1) {
|
||||
bool ActorBlast::Init(unk32 param1) {
|
||||
this->mPos.y += FLOAT_TO_FX32(0.5f);
|
||||
|
||||
this->mUnk_C8 = *this->mUnk_34;
|
||||
@@ -90,7 +89,7 @@ bool ActorBlast::vfunc_18(unk32 param1) {
|
||||
}
|
||||
|
||||
// non-matching
|
||||
void ActorBlast::vfunc_20() {
|
||||
void ActorBlast::Update() {
|
||||
fx32 f0 = this->mUnk_F0;
|
||||
fx32 newVal = this->mUnk_94 + this->mUnk_F4;
|
||||
this->mUnk_94 = newVal;
|
||||
@@ -101,7 +100,7 @@ void ActorBlast::vfunc_20() {
|
||||
this->mUnk_94 = f0;
|
||||
this->mUnk_C8.size = ~FLOAT_TO_FX32(0.0f);
|
||||
}
|
||||
if (this->IsInternalTimerOut()) {
|
||||
if (this->mUnk_98.HasExpired()) {
|
||||
this->func_ov000_020984d0();
|
||||
return;
|
||||
}
|
||||
@@ -136,7 +135,7 @@ void ActorBlast::vfunc_24() {
|
||||
newVal = f0;
|
||||
}
|
||||
this->mUnk_94 = newVal;
|
||||
if (!this->IsInternalTimerOut()) {
|
||||
if (!this->mUnk_98.HasExpired()) {
|
||||
return;
|
||||
}
|
||||
this->func_ov000_020984d0();
|
||||
|
||||
@@ -48,23 +48,23 @@ extern "C" void func_ov017_020c26f8(unk32, VecFx32 *, unk32, unk32);
|
||||
|
||||
static ActorUnkZLSL_AnimationTag data_ov031_02112be8 = {.index = 0, .name = "bomb_clanim", .unknown = 0};
|
||||
static PTMF<ActorBomb> data_ov031_02112c00[ActorBombState_Max] = {
|
||||
ActorBomb::func_ov031_020e1da0, // ActorUnkBOMBState_0
|
||||
ActorBomb::func_ov031_020e1ed8, // ActorUnkBOMBState_1
|
||||
ActorBomb::func_ov031_020e1f88, // ActorUnkBOMBState_2
|
||||
ActorBomb::func_ov031_020e1fe4, // ActorUnkBOMBState_3
|
||||
ActorBomb::func_ov031_020e2064, // ActorUnkBOMBState_4
|
||||
ActorBomb::func_ov031_020e20fc, // ActorUnkBOMBState_5
|
||||
ActorBomb::func_ov031_020e2134, // ActorUnkBOMBState_6
|
||||
&ActorBomb::func_ov031_020e1da0, // ActorUnkBOMBState_0
|
||||
&ActorBomb::func_ov031_020e1ed8, // ActorUnkBOMBState_1
|
||||
&ActorBomb::func_ov031_020e1f88, // ActorUnkBOMBState_2
|
||||
&ActorBomb::func_ov031_020e1fe4, // ActorUnkBOMBState_3
|
||||
&ActorBomb::func_ov031_020e2064, // ActorUnkBOMBState_4
|
||||
&ActorBomb::func_ov031_020e20fc, // ActorUnkBOMBState_5
|
||||
&ActorBomb::func_ov031_020e2134, // ActorUnkBOMBState_6
|
||||
};
|
||||
|
||||
static PTMF<ActorBomb> data_ov031_02112c38[ActorBombState_Max] = {
|
||||
ActorBomb::func_ov031_020e1d48, // ActorUnkBOMBState_0
|
||||
ActorBomb::func_ov031_020e1ebc, // ActorUnkBOMBState_1
|
||||
ActorBomb::func_ov031_020e1f18, // ActorUnkBOMBState_2
|
||||
ActorBomb::func_ov031_020e1fe0, // ActorUnkBOMBState_3
|
||||
ActorBomb::func_ov031_020e2034, // ActorUnkBOMBState_4
|
||||
ActorBomb::func_ov031_020e20d8, // ActorUnkBOMBState_5
|
||||
ActorBomb::func_ov031_020e2100, // ActorUnkBOMBState_6
|
||||
&ActorBomb::func_ov031_020e1d48, // ActorUnkBOMBState_0
|
||||
&ActorBomb::func_ov031_020e1ebc, // ActorUnkBOMBState_1
|
||||
&ActorBomb::func_ov031_020e1f18, // ActorUnkBOMBState_2
|
||||
&ActorBomb::func_ov031_020e1fe0, // ActorUnkBOMBState_3
|
||||
&ActorBomb::func_ov031_020e2034, // ActorUnkBOMBState_4
|
||||
&ActorBomb::func_ov031_020e20d8, // ActorUnkBOMBState_5
|
||||
&ActorBomb::func_ov031_020e2100, // ActorUnkBOMBState_6
|
||||
};
|
||||
|
||||
DECL_PROFILE(ActorProfileBomb);
|
||||
@@ -115,8 +115,7 @@ ActorBomb::ActorBomb() :
|
||||
mUnk_1E0(0x0),
|
||||
mUnk_1E4(0x0),
|
||||
mUnk_1E8(0x0),
|
||||
mUnk_1EA(0x0),
|
||||
mUnk_1EC(0x0),
|
||||
mUnk_1EA(0, 0),
|
||||
mUnk_1EE(false),
|
||||
#if IS_JP
|
||||
mUnk_1F0(false),
|
||||
@@ -145,7 +144,7 @@ ActorBomb::ActorBomb() :
|
||||
|
||||
void ActorBomb::func_ov031_020e17f4() {}
|
||||
|
||||
bool ActorBomb::vfunc_18(unk32 param1) {
|
||||
bool ActorBomb::Init(unk32 param1) {
|
||||
Cylinder *profileCylinder = &this->mpProfile->mUnk_04;
|
||||
|
||||
this->mUnk_154.pos = profileCylinder->pos;
|
||||
@@ -158,8 +157,7 @@ bool ActorBomb::vfunc_18(unk32 param1) {
|
||||
VecFx32_Copy(&this->mPos, &this->mUnk_19C.mUnk_0C.pos);
|
||||
this->mUnk_19C.mUnk_0C.size = 0x666;
|
||||
|
||||
this->mUnk_1EC = 0x78;
|
||||
this->mUnk_1EA = 0x0;
|
||||
this->mUnk_1EA.Set(0, 120);
|
||||
this->Actor::func_ov000_0209862c(0x2);
|
||||
return true;
|
||||
}
|
||||
@@ -215,7 +213,7 @@ void ActorBomb::func_ov031_020e193c() {
|
||||
}
|
||||
}
|
||||
|
||||
void ActorBomb::vfunc_20() {
|
||||
void ActorBomb::Update() {
|
||||
this->mUnk_3C = &this->mUnk_134;
|
||||
|
||||
CALL_PTMF(PTMF<ActorBomb>, data_ov031_02112c00[this->mState]);
|
||||
@@ -278,24 +276,23 @@ void ActorBomb::func_ov031_020e1b7c() {
|
||||
data_027e09a8->func_ov000_02071d34(&this->mRef, 0xF4, &this->mPos, 0x0);
|
||||
|
||||
if (!this->mUnk_1EE) {
|
||||
if (!this->IsInternalTimerOut()) {
|
||||
if (!this->mUnk_1EA.HasExpired()) {
|
||||
return;
|
||||
}
|
||||
|
||||
this->mUnk_1EE = true;
|
||||
this->mUnk_1EC = 0x3C;
|
||||
this->mUnk_1EA = 0x00;
|
||||
this->mUnk_1EA.Set(0, 60);
|
||||
this->func_ov031_020e1b1c();
|
||||
return;
|
||||
}
|
||||
fx32 delta = this->mUnk_1EC - this->mUnk_1EA;
|
||||
fx32 delta = this->mUnk_1EA.GetRemainingTime();
|
||||
this->mUnk_0F4.mUnk_04.mUnk_04 = FLOAT_TO_FX32(1.5f) - delta * FLOAT_TO_FX32(0.01985f);
|
||||
this->mUnk_0F4.func_01ffc3b4();
|
||||
|
||||
if (delta > 0x0) {
|
||||
func_01ff9218(&this->mUnk_1D8, FLOAT_TO_FX32(1.3f), func_01ffb464((u32) delta << 0xC));
|
||||
}
|
||||
if (!this->IsInternalTimerOut()) {
|
||||
if (!this->mUnk_1EA.HasExpired()) {
|
||||
return;
|
||||
}
|
||||
ActorBlast::func_ov031_020e3b9c(this, 0x0, 0x0);
|
||||
@@ -528,7 +525,7 @@ void ActorBomb::vfunc_2C(Actor_vfunc_30 *param1) {
|
||||
}
|
||||
}
|
||||
|
||||
func_01ffc5a0(&this->mUnk_094, this->mUnk_1D8, this->mAngleStruct, &this->mPos);
|
||||
func_01ffc5a0(&this->mUnk_094, this->mUnk_1D8, this->mAngle, &this->mPos);
|
||||
|
||||
VecFx32 sp0C;
|
||||
VecFx32_Init(this->mPos.x, this->mPos.y + FLOAT_TO_FX32(0.4f), this->mPos.z, &sp0C);
|
||||
|
||||
@@ -71,7 +71,7 @@ ActorHeart::ActorHeart() :
|
||||
mUnk_B8(0),
|
||||
mUnk_BA(gRandom.Next32(0) & 0x80000000 ? 0x666 : ~0x665),
|
||||
mUnk_BC(0),
|
||||
mUnk_BE(0),
|
||||
mUnk_BE(false),
|
||||
mUnk_C0(0),
|
||||
mUnk_C4(0),
|
||||
mUnk_C8(this) {
|
||||
@@ -90,22 +90,22 @@ ActorHeart::ActorHeart() :
|
||||
}
|
||||
}
|
||||
|
||||
bool ActorHeart::vfunc_18(unk32 param1) {
|
||||
bool ActorHeart::Init(unk32 param1) {
|
||||
this->func_ov031_020ef4a8();
|
||||
return true;
|
||||
}
|
||||
|
||||
static PTMF<ActorHeart> data_ov031_02113d74[ActorHeartState_Max] = {
|
||||
ActorHeart::func_ov031_020ef2f8, // ActorHeartState_0
|
||||
ActorHeart::func_ov031_020ef334, // ActorHeartState_1
|
||||
ActorHeart::func_ov031_020ef3a0, // ActorHeartState_2
|
||||
ActorHeart::func_ov031_020ef3d0, // ActorHeartState_3
|
||||
ActorHeart::func_ov031_020ef444, // ActorHeartState_4
|
||||
ActorHeart::func_ov031_020ef458, // ActorHeartState_5
|
||||
&ActorHeart::func_ov031_020ef2f8, // ActorHeartState_0
|
||||
&ActorHeart::func_ov031_020ef334, // ActorHeartState_1
|
||||
&ActorHeart::func_ov031_020ef3a0, // ActorHeartState_2
|
||||
&ActorHeart::func_ov031_020ef3d0, // ActorHeartState_3
|
||||
&ActorHeart::func_ov031_020ef444, // ActorHeartState_4
|
||||
&ActorHeart::func_ov031_020ef458, // ActorHeartState_5
|
||||
};
|
||||
|
||||
// non-matching
|
||||
void ActorHeart::vfunc_20() {
|
||||
void ActorHeart::Update() {
|
||||
UnkStruct_ov031_020eeee8 stack;
|
||||
|
||||
stack.mUnk_02 = 0;
|
||||
@@ -203,12 +203,12 @@ void ActorHeart::vfunc_20() {
|
||||
extern unk32 data_ov000_020aecf8;
|
||||
|
||||
static PTMF<ActorHeart> data_ov031_02113da4[ActorHeartState_Max] = {
|
||||
ActorHeart::func_ov031_020ef2ec, // ActorHeartState_0
|
||||
ActorHeart::func_ov031_020ef320, // ActorHeartState_1
|
||||
ActorHeart::func_ov031_020ef35c, // ActorHeartState_2
|
||||
ActorHeart::func_ov031_020ef3b8, // ActorHeartState_3
|
||||
ActorHeart::func_ov031_020ef430, // ActorHeartState_4
|
||||
ActorHeart::func_ov031_020ef448, // ActorHeartState_5
|
||||
&ActorHeart::func_ov031_020ef2ec, // ActorHeartState_0
|
||||
&ActorHeart::func_ov031_020ef320, // ActorHeartState_1
|
||||
&ActorHeart::func_ov031_020ef35c, // ActorHeartState_2
|
||||
&ActorHeart::func_ov031_020ef3b8, // ActorHeartState_3
|
||||
&ActorHeart::func_ov031_020ef430, // ActorHeartState_4
|
||||
&ActorHeart::func_ov031_020ef448, // ActorHeartState_5
|
||||
};
|
||||
|
||||
void ActorHeart::SetState(ActorState state) {
|
||||
@@ -234,23 +234,22 @@ void ActorHeart::func_ov031_020ef208() {
|
||||
SET_FLAG(this->mFlags, ActorFlag_Visible);
|
||||
return;
|
||||
}
|
||||
if ((u8) this->mUnk_BE == 0) {
|
||||
if (!this->IsTimerOut()) {
|
||||
if (!this->mUnk_BE) {
|
||||
if (!this->mTimer.HasExpired()) {
|
||||
return;
|
||||
}
|
||||
this->mUnk_BE = 0x01;
|
||||
this->mTimerMax = 60;
|
||||
this->mTimer = 0;
|
||||
this->mUnk_BE = true;
|
||||
this->mTimer.Set(0, 60);
|
||||
return;
|
||||
}
|
||||
|
||||
if ((this->mTimer % 8) < 4) {
|
||||
if ((this->mTimer.value % 8) < 4) {
|
||||
UNSET_FLAG(this->mFlags, ActorFlag_Visible);
|
||||
} else {
|
||||
SET_FLAG(this->mFlags, ActorFlag_Visible);
|
||||
}
|
||||
|
||||
if (!this->IsTimerOut()) {
|
||||
if (!this->mTimer.HasExpired()) {
|
||||
return;
|
||||
}
|
||||
this->func_ov000_020984d0();
|
||||
@@ -285,9 +284,8 @@ void ActorHeart::func_ov031_020ef35c() {
|
||||
this->mVel.x = FLOAT_TO_FX32(0.0);
|
||||
this->mVel.y = FLOAT_TO_FX32(0.0);
|
||||
this->mVel.z = FLOAT_TO_FX32(0.0);
|
||||
if ((u8) this->mUnk_BE == 0 && (this->mTimerMax - this->mTimer) > 0xB4) {
|
||||
this->mTimerMax = 0xB4;
|
||||
this->mTimer = 0x00;
|
||||
if (!this->mUnk_BE && this->mTimer.GetRemainingTime() > 180) {
|
||||
this->mTimer.Set(0, 180);
|
||||
}
|
||||
this->mUnk_44 = 0x9F;
|
||||
}
|
||||
@@ -353,20 +351,17 @@ void ActorHeart::func_ov031_020ef4a8() {
|
||||
|
||||
switch (this->mUnk_5C.mUnk_2C) {
|
||||
case 0:
|
||||
this->mTimerMax = 0xB4;
|
||||
this->mTimer = 0x00;
|
||||
this->mTimer.Set(0, 180);
|
||||
this->SetState(ActorHeartState_2);
|
||||
break;
|
||||
|
||||
case 1:
|
||||
this->mTimerMax = 0x1E0;
|
||||
this->mTimer = 0x00;
|
||||
this->mTimer.Set(0, 480);
|
||||
this->SetState(ActorHeartState_0);
|
||||
return;
|
||||
|
||||
default:
|
||||
this->mTimerMax = 0x1E0;
|
||||
this->mTimer = 0x00;
|
||||
this->mTimer.Set(0, 480);
|
||||
this->SetState(ActorHeartState_0);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -37,12 +37,11 @@ ActorItemBoomerang::ActorItemBoomerang() :
|
||||
mUnk_13A(0x0),
|
||||
mUnk_13C((u16) 0x8D71),
|
||||
mUnk_140(0x1000, 0x0) {
|
||||
this->mState = ActorItemBoomerangState_0;
|
||||
this->mTimerMax = 0xFFFF;
|
||||
this->mTimer = 0x0;
|
||||
this->mState = ActorItemBoomerangState_0;
|
||||
this->mTimer.Reset();
|
||||
}
|
||||
|
||||
bool ActorItemBoomerang::vfunc_18(unk32 param1) {
|
||||
bool ActorItemBoomerang::Init(unk32 param1) {
|
||||
this->mUnk_CC.mUnk_30.func_ov031_020e45fc();
|
||||
|
||||
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));
|
||||
@@ -54,8 +53,8 @@ bool ActorItemBoomerang::vfunc_18(unk32 param1) {
|
||||
|
||||
this->func_ov031_020e5034(0x0);
|
||||
|
||||
unk16 sin = SIN((u16) this->mAngle);
|
||||
unk16 cos = COS((u16) this->mAngle);
|
||||
unk16 sin = SIN((u16) this->mAngle.angle_s);
|
||||
unk16 cos = COS((u16) this->mAngle.angle_s);
|
||||
|
||||
this->mVel.x = MUL_FX32(sin, FLOAT_TO_FX32(0.5f));
|
||||
this->mVel.z = MUL_FX32(cos, FLOAT_TO_FX32(0.5f));
|
||||
@@ -66,9 +65,9 @@ bool ActorItemBoomerang::vfunc_18(unk32 param1) {
|
||||
|
||||
// non-matching
|
||||
void ActorItemBoomerang::SetState(ActorState state) {
|
||||
this->mState = state;
|
||||
this->mTimerMax = 0xFFFF;
|
||||
this->mTimer = 0;
|
||||
this->mState = state;
|
||||
this->mTimer.Reset();
|
||||
;
|
||||
}
|
||||
|
||||
void ActorItemBoomerang::func_ov031_020e49b0(unk32 param1) {
|
||||
@@ -88,7 +87,7 @@ void ActorItemBoomerang::func_ov031_020e49b0(unk32 param1) {
|
||||
}
|
||||
|
||||
// non-matching
|
||||
void ActorItemBoomerang::vfunc_20() {
|
||||
void ActorItemBoomerang::Update() {
|
||||
VecFx32_Copy(&this->mPos, &this->mPrevPos);
|
||||
VecFx32_Add(&this->mPos, &this->mVel, &this->mPos);
|
||||
|
||||
@@ -96,7 +95,7 @@ void ActorItemBoomerang::vfunc_20() {
|
||||
VecFx32_Copy(&this->mPos, &this->mUnk_140.mUnk_00);
|
||||
}
|
||||
|
||||
this->IsTimerOut();
|
||||
this->mTimer.Update();
|
||||
this->mAngle += DEG_TO_ANG(45);
|
||||
this->func_ov031_020e52a0();
|
||||
data_027e09a8->func_ov000_02071d34(&this->mRef, this->mUnk_13C, &this->mPos, 0x0);
|
||||
@@ -320,7 +319,7 @@ void ActorItemBoomerang::func_ov031_020e52a0() {
|
||||
// non-matching
|
||||
void ActorItemBoomerang::vfunc_2C(Actor_vfunc_30 *param1) {
|
||||
if (Actor::func_01fff5d0(param1, 0x0)) {
|
||||
this->mUnk_94.func_01ffc6d4(this->mAngleStruct, &this->mPos);
|
||||
this->mUnk_94.func_01ffc6d4(this->mAngle, &this->mPos);
|
||||
data_027e09b4->func_ov017_020c08c4(&this->mPos, 0x400, 0x400, 0x1F, 0x0, 0x1);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -91,8 +91,7 @@ void ActorItemDrop::func_ov031_020f9f8c(ActorRef *pOutRef, const VecFx32 *pPos,
|
||||
}
|
||||
|
||||
ActorItemDrop::ActorItemDrop() :
|
||||
mUnk_AE(0x0),
|
||||
mUnk_B0(0x6),
|
||||
mUnk_AE(0, 6),
|
||||
mUnk_D8(FLOAT_TO_FX32(0.5f)),
|
||||
mUnk_DC(0),
|
||||
mUnk_E0(0),
|
||||
@@ -174,18 +173,17 @@ ActorItemDrop::ActorItemDrop() :
|
||||
}
|
||||
}
|
||||
|
||||
bool ActorItemDrop::vfunc_18(unk32 param1) {
|
||||
bool ActorItemDrop::Init(unk32 param1) {
|
||||
if (this->mItemTypeId >= ItemDropType_Unknown) {
|
||||
return false;
|
||||
}
|
||||
|
||||
this->mTimerMax = FLOAT_TO_FX32(0.1173f);
|
||||
this->mTimer = FLOAT_TO_FX32(0.0f);
|
||||
this->mTimer.Set(0, 480);
|
||||
this->SetState(ActorItemDropState_0);
|
||||
return true;
|
||||
}
|
||||
|
||||
void ActorItemDrop::vfunc_20() {
|
||||
void ActorItemDrop::Update() {
|
||||
this->func_ov031_020fa260();
|
||||
}
|
||||
|
||||
@@ -196,13 +194,13 @@ void ActorItemDrop::vfunc_24() {
|
||||
}
|
||||
|
||||
static PTMF<ActorItemDrop> data_ov031_02114bb0[ActorItemDropState_Max] = {
|
||||
ActorItemDrop::func_ov031_020fa46c, // ActorItemDropState_0
|
||||
ActorItemDrop::func_ov031_020fa4a0, // ActorItemDropState_1
|
||||
ActorItemDrop::func_ov031_020fa568, // ActorItemDropState_2
|
||||
ActorItemDrop::func_ov031_020fa5f0, // ActorItemDropState_3
|
||||
ActorItemDrop::func_ov031_020fa664, // ActorItemDropState_4
|
||||
ActorItemDrop::func_ov031_020fa678, // ActorItemDropState_5
|
||||
ActorItemDrop::func_ov031_020fa72c, // ActorItemDropState_6
|
||||
&ActorItemDrop::func_ov031_020fa46c, // ActorItemDropState_0
|
||||
&ActorItemDrop::func_ov031_020fa4a0, // ActorItemDropState_1
|
||||
&ActorItemDrop::func_ov031_020fa568, // ActorItemDropState_2
|
||||
&ActorItemDrop::func_ov031_020fa5f0, // ActorItemDropState_3
|
||||
&ActorItemDrop::func_ov031_020fa664, // ActorItemDropState_4
|
||||
&ActorItemDrop::func_ov031_020fa678, // ActorItemDropState_5
|
||||
&ActorItemDrop::func_ov031_020fa72c, // ActorItemDropState_6
|
||||
};
|
||||
|
||||
void ActorItemDrop::func_ov031_020fa260() {
|
||||
@@ -210,7 +208,7 @@ void ActorItemDrop::func_ov031_020fa260() {
|
||||
|
||||
CALL_PTMF(PTMF<ActorItemDrop>, data_ov031_02114bb0[this->mState]);
|
||||
|
||||
if (this->IsTimerOut()) {
|
||||
if (this->mUnk_AE.HasExpired()) {
|
||||
this->func_ov000_020989e0();
|
||||
|
||||
if (this->mUnk_B4.mUnk_08 & 0x3FFFF) {
|
||||
@@ -265,13 +263,13 @@ void ActorItemDrop::func_ov031_020fa260() {
|
||||
}
|
||||
|
||||
static PTMF<ActorItemDrop> data_ov031_02114be8[ActorItemDropState_Max] = {
|
||||
ActorItemDrop::func_ov031_020fa468, // ActorItemDropState_0
|
||||
ActorItemDrop::func_ov031_020fa494, // ActorItemDropState_1
|
||||
ActorItemDrop::func_ov031_020fa524, // ActorItemDropState_2
|
||||
ActorItemDrop::func_ov031_020fa5d8, // ActorItemDropState_3
|
||||
ActorItemDrop::func_ov031_020fa650, // ActorItemDropState_4
|
||||
ActorItemDrop::func_ov031_020fa668, // ActorItemDropState_5
|
||||
ActorItemDrop::func_ov031_020fa6c8, // ActorItemDropState_6
|
||||
&ActorItemDrop::func_ov031_020fa468, // ActorItemDropState_0
|
||||
&ActorItemDrop::func_ov031_020fa494, // ActorItemDropState_1
|
||||
&ActorItemDrop::func_ov031_020fa524, // ActorItemDropState_2
|
||||
&ActorItemDrop::func_ov031_020fa5d8, // ActorItemDropState_3
|
||||
&ActorItemDrop::func_ov031_020fa650, // ActorItemDropState_4
|
||||
&ActorItemDrop::func_ov031_020fa668, // ActorItemDropState_5
|
||||
&ActorItemDrop::func_ov031_020fa6c8, // ActorItemDropState_6
|
||||
};
|
||||
|
||||
void ActorItemDrop::SetState(ActorState state) {
|
||||
@@ -326,9 +324,8 @@ void ActorItemDrop::func_ov031_020fa524() {
|
||||
this->mVel.y = FLOAT_TO_FX32(0.0f);
|
||||
this->mVel.z = FLOAT_TO_FX32(0.0f);
|
||||
|
||||
if (!this->mUnk_118 && this->mTimerMax - this->mTimer > FLOAT_TO_FX32(0.044f)) {
|
||||
this->mTimerMax = FLOAT_TO_FX32(0.044f);
|
||||
this->mTimer = FLOAT_TO_FX32(0.0f);
|
||||
if (!this->mUnk_118 && this->mTimer.GetRemainingTime() > 180) {
|
||||
this->mTimer.Set(0, 180);
|
||||
}
|
||||
|
||||
this->mUnk_44 = 0x9F;
|
||||
@@ -411,8 +408,7 @@ void ActorItemDrop::func_ov031_020fa678() {
|
||||
}
|
||||
|
||||
void ActorItemDrop::func_ov031_020fa6c8() {
|
||||
this->mTimerMax = FLOAT_TO_FX32(15.9998f);
|
||||
this->mTimer = FLOAT_TO_FX32(0.0f);
|
||||
this->mTimer.Reset();
|
||||
this->mVel.x = FLOAT_TO_FX32(0.0f);
|
||||
this->mVel.y = FLOAT_TO_FX32(0.0f);
|
||||
this->mVel.z = FLOAT_TO_FX32(0.0f);
|
||||
@@ -509,19 +505,18 @@ void ActorItemDrop::func_ov031_020fa900() {
|
||||
if (var_r2) {
|
||||
SET_FLAG(this->mFlags, ActorFlag_Visible);
|
||||
} else if (!this->mUnk_118) {
|
||||
if (this->Actor::IsTimerOut()) {
|
||||
this->mUnk_118 = true;
|
||||
this->mTimerMax = 60;
|
||||
this->mTimer = 0;
|
||||
if (this->mTimer.HasExpired()) {
|
||||
this->mUnk_118 = true;
|
||||
this->mTimer.Set(0, 60);
|
||||
}
|
||||
} else {
|
||||
if ((this->mTimer % 8) < 4) {
|
||||
if ((this->mTimer.value % 8) < 4) {
|
||||
UNSET_FLAG(this->mFlags, ActorFlag_Visible);
|
||||
} else {
|
||||
SET_FLAG(this->mFlags, ActorFlag_Visible);
|
||||
}
|
||||
|
||||
if (this->Actor::IsTimerOut()) {
|
||||
if (this->mTimer.HasExpired()) {
|
||||
this->func_ov000_020984d0();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,25 +8,25 @@
|
||||
#include "Unknown/UnkStruct_ov000_020b5d34.hpp"
|
||||
|
||||
static PTMF<ActorItemFlower> data_ov031_021141b4[ActorItemFlowerState_Max] = {
|
||||
ActorItemFlower::func_ov031_020f11b4, // ActorItemFlowerState_0
|
||||
ActorItemFlower::func_ov031_020f11cc, // ActorItemFlowerState_1
|
||||
ActorItemFlower::func_ov031_020f11e4, // ActorItemFlowerState_2
|
||||
ActorItemFlower::func_ov031_020f11fc, // ActorItemFlowerState_3
|
||||
ActorItemFlower::func_ov031_020f121c, // ActorItemFlowerState_4
|
||||
ActorItemFlower::func_ov031_020f1308, // ActorItemFlowerState_5
|
||||
ActorItemFlower::func_ov031_020f0244, // ActorItemFlowerState_6
|
||||
ActorItemFlower::func_ov031_020f0514, // ActorItemFlowerState_7
|
||||
&ActorItemFlower::func_ov031_020f11b4, // ActorItemFlowerState_0
|
||||
&ActorItemFlower::func_ov031_020f11cc, // ActorItemFlowerState_1
|
||||
&ActorItemFlower::func_ov031_020f11e4, // ActorItemFlowerState_2
|
||||
&ActorItemFlower::func_ov031_020f11fc, // ActorItemFlowerState_3
|
||||
&ActorItemFlower::func_ov031_020f121c, // ActorItemFlowerState_4
|
||||
&ActorItemFlower::func_ov031_020f1308, // ActorItemFlowerState_5
|
||||
&ActorItemFlower::func_ov031_020f0244, // ActorItemFlowerState_6
|
||||
&ActorItemFlower::func_ov031_020f0514, // ActorItemFlowerState_7
|
||||
};
|
||||
|
||||
static PTMF<ActorItemFlower> data_ov031_02114174[ActorItemFlowerState_Max] = {
|
||||
ActorItemFlower::func_ov031_020f11a8, // ActorItemFlowerState_0
|
||||
ActorItemFlower::func_ov031_020f11c0, // ActorItemFlowerState_1
|
||||
ActorItemFlower::func_ov031_020f11d8, // ActorItemFlowerState_2
|
||||
ActorItemFlower::func_ov031_020f11f0, // ActorItemFlowerState_3
|
||||
ActorItemFlower::func_ov031_020f1208, // ActorItemFlowerState_4
|
||||
ActorItemFlower::func_ov031_020f1230, // ActorItemFlowerState_5
|
||||
ActorItemFlower::func_ov031_020f0220, // ActorItemFlowerState_6
|
||||
ActorItemFlower::func_ov031_020f04dc, // ActorItemFlowerState_7
|
||||
&ActorItemFlower::func_ov031_020f11a8, // ActorItemFlowerState_0
|
||||
&ActorItemFlower::func_ov031_020f11c0, // ActorItemFlowerState_1
|
||||
&ActorItemFlower::func_ov031_020f11d8, // ActorItemFlowerState_2
|
||||
&ActorItemFlower::func_ov031_020f11f0, // ActorItemFlowerState_3
|
||||
&ActorItemFlower::func_ov031_020f1208, // ActorItemFlowerState_4
|
||||
&ActorItemFlower::func_ov031_020f1230, // ActorItemFlowerState_5
|
||||
&ActorItemFlower::func_ov031_020f0220, // ActorItemFlowerState_6
|
||||
&ActorItemFlower::func_ov031_020f04dc, // ActorItemFlowerState_7
|
||||
};
|
||||
|
||||
DECL_PROFILE(ActorProfileItemFlower);
|
||||
@@ -43,8 +43,8 @@ ActorProfileItemFlower::ActorProfileItemFlower() :
|
||||
ActorItemFlower::ActorItemFlower() :
|
||||
mUnk_110(G3d_GetModelPtr(data_ov000_020b5d34.GetProfileFromId(MapObjectId_ITFL)->vfunc_04()->mUnk_50), 0x1, 0x1) {}
|
||||
|
||||
bool ActorItemFlower::vfunc_18(unk32 param1) {
|
||||
this->Actor_ov031_02113fd4::vfunc_18(param1);
|
||||
bool ActorItemFlower::Init(unk32 param1) {
|
||||
this->Actor_ov031_02113fd4::Init(param1);
|
||||
this->vfunc_5C(ActorItemFlowerState_0);
|
||||
return true;
|
||||
}
|
||||
@@ -56,7 +56,7 @@ void ActorItemFlower::vfunc_5C(ActorState state) {
|
||||
CALL_PTMF(PTMF<ActorItemFlower>, data_ov031_02114174[this->mState]);
|
||||
}
|
||||
|
||||
void ActorItemFlower::vfunc_20() {
|
||||
void ActorItemFlower::Update() {
|
||||
CALL_PTMF(PTMF<ActorItemFlower>, data_ov031_021141b4[this->mState]);
|
||||
}
|
||||
|
||||
|
||||
@@ -53,13 +53,12 @@ ActorItemTornado::ActorItemTornado() :
|
||||
this->mUnk_94.func_ov000_02057c98(&this->mUnk_F4);
|
||||
this->mUnk_94.func_ov000_02057c98(&this->mUnk_134);
|
||||
|
||||
this->mTimerMax = 0xFFFF;
|
||||
this->mState = ActorItemTornadoState_0;
|
||||
this->mTimer = 0x0;
|
||||
this->mState = ActorItemTornadoState_0;
|
||||
this->mTimer.Reset();
|
||||
}
|
||||
|
||||
bool ActorItemTornado::vfunc_18(unk32 param1) {
|
||||
u16 tmp = (u16) this->mAngle;
|
||||
bool ActorItemTornado::Init(unk32 param1) {
|
||||
u16 tmp = (u16) this->mAngle.angle_s;
|
||||
|
||||
this->mUnk_44 = 0x1F;
|
||||
|
||||
@@ -95,9 +94,8 @@ void ActorItemTornado::SetState(ActorState state) {
|
||||
break;
|
||||
}
|
||||
|
||||
this->mState = state;
|
||||
this->mTimerMax = 0xFFFF;
|
||||
this->mTimer = 0x0;
|
||||
this->mState = state;
|
||||
this->mTimer.Reset();
|
||||
}
|
||||
|
||||
// non-matching
|
||||
@@ -115,12 +113,12 @@ void ActorItemTornado::func_ov031_020e5d18(unk32 param1) {
|
||||
if (param1 == 0x0) {
|
||||
++this->mUnk_1D8;
|
||||
}
|
||||
this->IsTimerOut();
|
||||
this->mTimer.Update();
|
||||
|
||||
switch (this->mState) {
|
||||
case ActorItemTornadoState_0:
|
||||
data_027e09a8->func_ov000_02071d34(&this->mRef, 0x8D6C, &this->mPos, 0x0);
|
||||
if (this->mTimer < (s16) 0xA) {
|
||||
if (this->mTimer.GetValue() < 10) {
|
||||
this->mUnk_1DC += 0x199;
|
||||
break;
|
||||
}
|
||||
@@ -139,7 +137,6 @@ void ActorItemTornado::func_ov031_020e5d18(unk32 param1) {
|
||||
}
|
||||
}
|
||||
|
||||
;
|
||||
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);
|
||||
@@ -161,15 +158,15 @@ void ActorItemTornado::func_ov031_020e5d18(unk32 param1) {
|
||||
}
|
||||
break;
|
||||
case ActorItemTornadoState_2:
|
||||
if ((u32) this->mTimer >= (u32) this->mUnk_1D6) {
|
||||
UNSET_FLAG(this->mFlags, ActorFlag_Alive);
|
||||
if (this->mTimer.value >= this->mUnk_1D6) {
|
||||
this->Kill();
|
||||
} 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);
|
||||
this->Kill();
|
||||
}
|
||||
}
|
||||
break;
|
||||
@@ -219,7 +216,7 @@ void ActorItemTornado::func_ov031_020e5d18(unk32 param1) {
|
||||
this->mUnk_1CC = 0x1;
|
||||
}
|
||||
}
|
||||
void ActorItemTornado::vfunc_20() {
|
||||
void ActorItemTornado::Update() {
|
||||
this->func_ov031_020e5d18(0x0);
|
||||
}
|
||||
|
||||
|
||||
@@ -7,25 +7,25 @@
|
||||
#include "Unknown/UnkStruct_ov000_020b5d34.hpp"
|
||||
|
||||
static PTMF<ActorPot> data_ov031_021140a0[ActorPotState_Max] = {
|
||||
ActorPot::func_ov031_020f0df4, // ActorPotState_0
|
||||
ActorPot::func_ov031_020f0e0c, // ActorPotState_1
|
||||
ActorPot::func_ov031_020f0e24, // ActorPotState_2
|
||||
ActorPot::func_ov031_020f0e3c, // ActorPotState_3
|
||||
ActorPot::func_ov031_020f0e5c, // ActorPotState_4
|
||||
ActorPot::func_ov031_020f0f44, // ActorPotState_5
|
||||
ActorPot::func_ov031_020f0244, // ActorPotState_6
|
||||
ActorPot::func_ov031_020f0514 // ActorPotState_7
|
||||
&ActorPot::func_ov031_020f0df4, // ActorPotState_0
|
||||
&ActorPot::func_ov031_020f0e0c, // ActorPotState_1
|
||||
&ActorPot::func_ov031_020f0e24, // ActorPotState_2
|
||||
&ActorPot::func_ov031_020f0e3c, // ActorPotState_3
|
||||
&ActorPot::func_ov031_020f0e5c, // ActorPotState_4
|
||||
&ActorPot::func_ov031_020f0f44, // ActorPotState_5
|
||||
&ActorPot::func_ov031_020f0244, // ActorPotState_6
|
||||
&ActorPot::func_ov031_020f0514 // ActorPotState_7
|
||||
};
|
||||
|
||||
static PTMF<ActorPot> data_ov031_02114060[ActorPotState_Max] = {
|
||||
ActorPot::func_ov031_020f0de8, // ActorPotState_0
|
||||
ActorPot::func_ov031_020f0e00, // ActorPotState_1
|
||||
ActorPot::func_ov031_020f0e18, // ActorPotState_2
|
||||
ActorPot::func_ov031_020f0e30, // ActorPotState_3
|
||||
ActorPot::func_ov031_020f0e48, // ActorPotState_4
|
||||
ActorPot::func_ov031_020f0e70, // ActorPotState_5
|
||||
ActorPot::func_ov031_020f0220, // ActorPotState_6
|
||||
ActorPot::func_ov031_020f04dc // ActorPotState_7
|
||||
&ActorPot::func_ov031_020f0de8, // ActorPotState_0
|
||||
&ActorPot::func_ov031_020f0e00, // ActorPotState_1
|
||||
&ActorPot::func_ov031_020f0e18, // ActorPotState_2
|
||||
&ActorPot::func_ov031_020f0e30, // ActorPotState_3
|
||||
&ActorPot::func_ov031_020f0e48, // ActorPotState_4
|
||||
&ActorPot::func_ov031_020f0e70, // ActorPotState_5
|
||||
&ActorPot::func_ov031_020f0220, // ActorPotState_6
|
||||
&ActorPot::func_ov031_020f04dc // ActorPotState_7
|
||||
};
|
||||
|
||||
DECL_PROFILE(ActorProfilePot);
|
||||
@@ -42,8 +42,8 @@ ActorProfilePot::ActorProfilePot() :
|
||||
ActorPot::ActorPot() :
|
||||
mUnk_110(G3d_GetModelPtr(data_ov000_020b5d34.GetProfileFromId(MapObjectId_Pot)->vfunc_04()->mUnk_50), 0x01) {}
|
||||
|
||||
bool ActorPot::vfunc_18(unk32 param1) {
|
||||
Actor_ov031_02113fd4::vfunc_18(param1);
|
||||
bool ActorPot::Init(unk32 param1) {
|
||||
Actor_ov031_02113fd4::Init(param1);
|
||||
|
||||
this->vfunc_5C(ActorPotState_0);
|
||||
|
||||
@@ -59,7 +59,7 @@ void ActorPot::vfunc_5C(ActorState state) {
|
||||
CALL_PTMF(PTMF<ActorPot>, data_ov031_02114060[this->mState]);
|
||||
}
|
||||
|
||||
void ActorPot::vfunc_20() {
|
||||
void ActorPot::Update() {
|
||||
CALL_PTMF(PTMF<ActorPot>, data_ov031_021140a0[this->mState]);
|
||||
}
|
||||
|
||||
|
||||
@@ -24,31 +24,31 @@ extern "C" unk32 func_01ffb9cc(VecFx32 *, VecFx32 *);
|
||||
extern "C" unk8 func_02017e8c(unk16 *);
|
||||
|
||||
static PTMF<ActorRollingStone> data_ov031_02114aec[0xB] = {
|
||||
ActorRollingStone::func_ov031_020f89f4, // ActorRollingStoneState_0
|
||||
ActorRollingStone::func_ov031_020f8a2c, // ActorRollingStoneState_1
|
||||
ActorRollingStone::func_ov031_020f8a3c, // ActorRollingStoneState_2
|
||||
ActorRollingStone::func_ov031_020f8b58, // ActorRollingStoneState_3
|
||||
ActorRollingStone::func_ov031_020f9250, // ActorRollingStoneState_4
|
||||
ActorRollingStone::func_ov031_020f9340, // ActorRollingStoneState_5
|
||||
ActorRollingStone::func_ov031_020f8ed4, // ActorRollingStoneState_6
|
||||
ActorRollingStone::func_ov031_020f8f10, // ActorRollingStoneState_7
|
||||
ActorRollingStone::func_ov031_020f9018, // ActorRollingStoneState_8
|
||||
ActorRollingStone::func_ov031_020f916c, // ActorRollingStoneState_9
|
||||
ActorRollingStone::func_ov031_020f9494, // ActorRollingStoneState_10
|
||||
&ActorRollingStone::func_ov031_020f89f4, // ActorRollingStoneState_0
|
||||
&ActorRollingStone::func_ov031_020f8a2c, // ActorRollingStoneState_1
|
||||
&ActorRollingStone::func_ov031_020f8a3c, // ActorRollingStoneState_2
|
||||
&ActorRollingStone::func_ov031_020f8b58, // ActorRollingStoneState_3
|
||||
&ActorRollingStone::func_ov031_020f9250, // ActorRollingStoneState_4
|
||||
&ActorRollingStone::func_ov031_020f9340, // ActorRollingStoneState_5
|
||||
&ActorRollingStone::func_ov031_020f8ed4, // ActorRollingStoneState_6
|
||||
&ActorRollingStone::func_ov031_020f8f10, // ActorRollingStoneState_7
|
||||
&ActorRollingStone::func_ov031_020f9018, // ActorRollingStoneState_8
|
||||
&ActorRollingStone::func_ov031_020f916c, // ActorRollingStoneState_9
|
||||
&ActorRollingStone::func_ov031_020f9494, // ActorRollingStoneState_10
|
||||
};
|
||||
|
||||
static PTMF<ActorRollingStone> data_ov031_02114a94[0xB] = {
|
||||
ActorRollingStone::func_ov031_020f8a04, // ActorRollingStoneState_0
|
||||
ActorRollingStone::func_ov031_020f8a38, // ActorRollingStoneState_1
|
||||
ActorRollingStone::func_ov031_020f8a58, // ActorRollingStoneState_2
|
||||
ActorRollingStone::func_ov031_020f8bc4, // ActorRollingStoneState_3
|
||||
ActorRollingStone::func_ov031_020f92cc, // ActorRollingStoneState_4
|
||||
ActorRollingStone::func_ov031_020f93bc, // ActorRollingStoneState_5
|
||||
ActorRollingStone::func_ov031_020f8f0c, // ActorRollingStoneState_6
|
||||
ActorRollingStone::func_ov031_020f8f30, // ActorRollingStoneState_7
|
||||
ActorRollingStone::func_ov031_020f9050, // ActorRollingStoneState_8
|
||||
ActorRollingStone::func_ov031_020f91ac, // ActorRollingStoneState_9
|
||||
ActorRollingStone::func_ov031_020f9554, // ActorRollingStoneState_10
|
||||
&ActorRollingStone::func_ov031_020f8a04, // ActorRollingStoneState_0
|
||||
&ActorRollingStone::func_ov031_020f8a38, // ActorRollingStoneState_1
|
||||
&ActorRollingStone::func_ov031_020f8a58, // ActorRollingStoneState_2
|
||||
&ActorRollingStone::func_ov031_020f8bc4, // ActorRollingStoneState_3
|
||||
&ActorRollingStone::func_ov031_020f92cc, // ActorRollingStoneState_4
|
||||
&ActorRollingStone::func_ov031_020f93bc, // ActorRollingStoneState_5
|
||||
&ActorRollingStone::func_ov031_020f8f0c, // ActorRollingStoneState_6
|
||||
&ActorRollingStone::func_ov031_020f8f30, // ActorRollingStoneState_7
|
||||
&ActorRollingStone::func_ov031_020f9050, // ActorRollingStoneState_8
|
||||
&ActorRollingStone::func_ov031_020f91ac, // ActorRollingStoneState_9
|
||||
&ActorRollingStone::func_ov031_020f9554, // ActorRollingStoneState_10
|
||||
};
|
||||
|
||||
DECL_PROFILE(ActorProfileRollingStone);
|
||||
@@ -99,10 +99,8 @@ ActorRollingStone::ActorRollingStone() :
|
||||
mUnk_10C(data_027e0130),
|
||||
mUnk_138(0x0),
|
||||
mUnk_14C(0x0),
|
||||
mUnk_150(0x0),
|
||||
mUnk_152(0x0),
|
||||
mUnk_154(0x0),
|
||||
mUnk_156(0x0),
|
||||
mUnk_150(0, 0),
|
||||
mUnk_154(0, 0),
|
||||
mUnk_158(true),
|
||||
mUnk_159(false),
|
||||
mUnk_15A(-0x1),
|
||||
@@ -116,7 +114,7 @@ ActorRollingStone::ActorRollingStone() :
|
||||
this->mUnk_38->mUnk_08 = 0x3;
|
||||
}
|
||||
|
||||
bool ActorRollingStone::vfunc_18(unk32 param1) {
|
||||
bool ActorRollingStone::Init(unk32 param1) {
|
||||
this->mUnk_13C.Init(FLOAT_TO_FX32(0.8f));
|
||||
|
||||
if (data_027e09a4->mUnk_00.sceneIndex == SceneIndex_f_flame) {
|
||||
@@ -152,8 +150,8 @@ bool ActorRollingStone::vfunc_18(unk32 param1) {
|
||||
return true;
|
||||
}
|
||||
|
||||
void ActorRollingStone::vfunc_20() {
|
||||
this->IsTimerOut();
|
||||
void ActorRollingStone::Update() {
|
||||
this->mTimer.Update();
|
||||
|
||||
CALL_PTMF(PTMF<ActorRollingStone>, data_ov031_02114a94[this->mState]);
|
||||
|
||||
@@ -169,9 +167,8 @@ void ActorRollingStone::vfunc_20() {
|
||||
}
|
||||
|
||||
void ActorRollingStone::SetState(ActorState state) {
|
||||
this->mState = state;
|
||||
this->mTimerMax = 0xFFFF;
|
||||
this->mTimer = 0x0;
|
||||
this->mState = state;
|
||||
this->mTimer.Reset();
|
||||
this->mUnk_38->mUnk_08 = 0x3;
|
||||
CALL_PTMF(PTMF<ActorRollingStone>, data_ov031_02114aec[this->mState]);
|
||||
}
|
||||
@@ -297,8 +294,8 @@ void ActorRollingStone::func_ov031_020f8bc4() {
|
||||
|
||||
this->func_ov031_020f8de8();
|
||||
VecFx32 sp38;
|
||||
unk16 sinValue = SIN((u16) this->mAngle);
|
||||
unk16 cosValue = COS((u16) this->mAngle);
|
||||
unk16 sinValue = SIN((u16) this->mAngle.angle_s);
|
||||
unk16 cosValue = COS((u16) this->mAngle.angle_s);
|
||||
|
||||
sp38.x = MUL_FX32(sinValue, FLOAT_TO_FX32(1.0f));
|
||||
sp38.z = MUL_FX32(cosValue, FLOAT_TO_FX32(1.0f));
|
||||
@@ -328,7 +325,7 @@ void ActorRollingStone::func_ov031_020f8bc4() {
|
||||
}
|
||||
|
||||
void ActorRollingStone::func_ov031_020f8de8() {
|
||||
this->IsInternalTimerOut2();
|
||||
this->mUnk_154.Update();
|
||||
this->func_ov000_020989e0();
|
||||
|
||||
if ((this->mUnk_AC.mUnk_08 & 0x3FFFF) == 0) {
|
||||
@@ -338,20 +335,20 @@ void ActorRollingStone::func_ov031_020f8de8() {
|
||||
switch (this->mUnk_AC.mUnk_1C) {
|
||||
case 0x4:
|
||||
data_027e0d38->func_ov031_020d9c44(0x4);
|
||||
return;
|
||||
break;
|
||||
case 0xC:
|
||||
if ((u32) this->mUnk_154 < (u32) this->mUnk_156) {
|
||||
if (!this->mUnk_154.HasReachedMaxU()) {
|
||||
return;
|
||||
}
|
||||
this->mUnk_156 = 0x14;
|
||||
this->mUnk_154 = 0x0;
|
||||
|
||||
this->mUnk_154.Set(0, 20);
|
||||
case 0x8:
|
||||
case 0xD:
|
||||
this->func_ov017_020bfb18(&this->mUnk_AC);
|
||||
return;
|
||||
break;
|
||||
case 0x1:
|
||||
this->SetState(ActorRollingStoneState_6);
|
||||
return;
|
||||
break;
|
||||
case 0x0:
|
||||
case 0x2:
|
||||
case 0x3:
|
||||
@@ -363,7 +360,7 @@ void ActorRollingStone::func_ov031_020f8de8() {
|
||||
case 0xB:
|
||||
case 0xE:
|
||||
case 0xF:
|
||||
return;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -380,8 +377,7 @@ void ActorRollingStone::func_ov031_020f8f0c() {}
|
||||
void ActorRollingStone::func_ov031_020f8f10() {
|
||||
this->mUnk_2C = 0x0;
|
||||
this->mUnk_158 = false;
|
||||
this->mUnk_152 = this->mUnk_5C.mParams[1];
|
||||
this->mUnk_150 = 0x0;
|
||||
this->mUnk_150.Set(0, this->mUnk_5C.mParams[1]);
|
||||
}
|
||||
|
||||
void ActorRollingStone::func_ov031_020f8f30() {
|
||||
@@ -389,7 +385,7 @@ void ActorRollingStone::func_ov031_020f8f30() {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!this->IsInternalTimerOut1()) {
|
||||
if (!this->mUnk_150.HasExpired()) {
|
||||
return;
|
||||
}
|
||||
ActorParams sp14;
|
||||
@@ -400,19 +396,18 @@ void ActorRollingStone::func_ov031_020f8f30() {
|
||||
VecFx32 vec = this->mPos;
|
||||
VecFx32_Copy(&vec, &sp14.mInitialPos);
|
||||
|
||||
sp14.mInitialAngle = this->mAngle;
|
||||
sp14.mInitialAngle = this->mAngle.angle_s;
|
||||
sp14.mParams[0] = 0x1;
|
||||
|
||||
ActorRef ref;
|
||||
this->func_ov000_020973f4(&ref, &data_ov000_020b539c_eur, ActorId_RollingStone, &sp14, 0x0);
|
||||
this->mUnk_150 = 0;
|
||||
this->mUnk_152 = this->mUnk_5C.mParams[1];
|
||||
this->mUnk_150.Set(0, this->mUnk_5C.mParams[1]);
|
||||
}
|
||||
|
||||
void ActorRollingStone::func_ov031_020f9018() {
|
||||
this->mUnk_2C = 0x0;
|
||||
|
||||
fx32 angle = ((u32) (this->mAngle + DEG_TO_ANG(45)) << 0x10) >> 0x1E;
|
||||
fx32 angle = ((u32) (this->mAngle.angle_s + DEG_TO_ANG(45)) << 0x10) >> 0x1E;
|
||||
if (angle == 0x1 || angle == 0x3) {
|
||||
this->mVel.y = FLOAT_TO_FX32(0.0f);
|
||||
this->mVel.z = FLOAT_TO_FX32(0.0f);
|
||||
@@ -426,7 +421,7 @@ void ActorRollingStone::func_ov031_020f9050() {
|
||||
this->mUnk_3C = &this->mUnk_AC;
|
||||
this->func_ov031_020f8de8();
|
||||
|
||||
fx32 angle = ((u32) (this->mAngle + DEG_TO_ANG(45)) << 0x10) >> 0x1E;
|
||||
fx32 angle = ((u32) (this->mAngle.angle_s + DEG_TO_ANG(45)) << 0x10) >> 0x1E;
|
||||
if (angle == 0x1 || angle == 0x3) {
|
||||
this->mVel.y = FLOAT_TO_FX32(0.0f);
|
||||
this->mVel.z = FLOAT_TO_FX32(0.0f);
|
||||
@@ -446,7 +441,7 @@ void ActorRollingStone::func_ov031_020f9050() {
|
||||
|
||||
data_027e09c0->func_ov000_0207de98(this->mRef, &unk, this->mUnk_38);
|
||||
|
||||
angle = ((u32) (this->mAngle + DEG_TO_ANG(45)) << 0x10) >> 0x1E;
|
||||
angle = ((u32) (this->mAngle.angle_s + DEG_TO_ANG(45)) << 0x10) >> 0x1E;
|
||||
if (angle == 0x1 || angle == 0x3) {
|
||||
if (this->mVel.x != FLOAT_TO_FX32(0.0f)) {
|
||||
return;
|
||||
@@ -634,8 +629,8 @@ void ActorRollingStone::func_ov031_020f9554() {
|
||||
this->func_ov031_020f8de8();
|
||||
|
||||
VecFx32 sp38;
|
||||
unk16 sinValue = SIN((u16) this->mAngle);
|
||||
unk16 cosValue = COS((u16) this->mAngle);
|
||||
unk16 sinValue = SIN((u16) this->mAngle.angle_s);
|
||||
unk16 cosValue = COS((u16) this->mAngle.angle_s);
|
||||
|
||||
sp38.x = MUL_FX32(sinValue, FLOAT_TO_FX32(0.25f));
|
||||
sp38.y = FLOAT_TO_FX32(0.0f);
|
||||
@@ -663,7 +658,7 @@ void ActorRollingStone::func_ov031_020f9554() {
|
||||
|
||||
VecFx32_Copy(&this->mPos, &this->mPrevPos);
|
||||
|
||||
this->mUnk_15C.func_ov024_020d69d8(&this->mPos, &this->mAngle, &this->mVel, 0x1AE, 0xE39, 0x1AE);
|
||||
this->mUnk_15C.func_ov024_020d69d8(&this->mPos, &this->mAngle.angle_s, &this->mVel, 0x1AE, 0xE39, 0x1AE);
|
||||
VecFx32_Add(&this->mPos, &this->mVel, &this->mPos);
|
||||
|
||||
this->func_ov031_020f98e4();
|
||||
@@ -694,23 +689,25 @@ void ActorRollingStone::func_ov031_020f97cc() {
|
||||
}
|
||||
|
||||
void ActorRollingStone::func_ov031_020f98e4() {
|
||||
unk16 sp00 = this->mAngle;
|
||||
unk16 sp00 = this->mAngle.angle_s;
|
||||
|
||||
Mat3p sp34;
|
||||
switch (func_02017e8c(&sp00)) {
|
||||
case 0x2:
|
||||
case 0x6:
|
||||
case 0x6: {
|
||||
fx32 diffX = this->mPos.x - this->mPrevPos.x;
|
||||
fx32 angleX = -MUL_FX32(diffX, FLOAT_TO_FX32(2.6668f));
|
||||
Mat3p_InitZRotation(&sp34, SIN((u16) angleX), COS((u16) angleX));
|
||||
break;
|
||||
}
|
||||
case 0x0:
|
||||
case 0x4:
|
||||
case 0x4: {
|
||||
fx32 diffZ = this->mPos.z - this->mPrevPos.z;
|
||||
fx32 angleZ = MUL_FX32(diffZ, FLOAT_TO_FX32(2.6668f));
|
||||
Mat3p_InitXRotation(&sp34, SIN((u16) angleZ), COS((u16) angleZ));
|
||||
break;
|
||||
case 0x5:
|
||||
}
|
||||
case 0x5: {
|
||||
VecFx32 sp28 = data_ov031_02110b98;
|
||||
|
||||
unk32 ret = func_01ffb9cc(&this->mPrevPos, &this->mPos);
|
||||
@@ -718,7 +715,8 @@ void ActorRollingStone::func_ov031_020f98e4() {
|
||||
|
||||
Mat3p_func_01ff8248(&sp34, &sp28, SIN((u16) angleRet1), COS((u16) angleRet1));
|
||||
break;
|
||||
case 0x1:
|
||||
}
|
||||
case 0x1: {
|
||||
VecFx32 sp1C = data_ov031_02110ba4;
|
||||
|
||||
unk32 ret2 = func_01ffb9cc(&this->mPrevPos, &this->mPos);
|
||||
@@ -726,7 +724,8 @@ void ActorRollingStone::func_ov031_020f98e4() {
|
||||
|
||||
Mat3p_func_01ff8248(&sp34, &sp1C, SIN((u16) angleRet2), COS((u16) angleRet2));
|
||||
break;
|
||||
case 0x7:
|
||||
}
|
||||
case 0x7: {
|
||||
VecFx32 sp10 = data_ov031_02110bb0;
|
||||
|
||||
unk32 ret3 = func_01ffb9cc(&this->mPrevPos, &this->mPos);
|
||||
@@ -734,7 +733,8 @@ void ActorRollingStone::func_ov031_020f98e4() {
|
||||
|
||||
Mat3p_func_01ff8248(&sp34, &sp10, SIN((u16) angleRet3), COS((u16) angleRet3));
|
||||
break;
|
||||
case 0x3:
|
||||
}
|
||||
case 0x3: {
|
||||
VecFx32 sp04 = data_ov031_02110bbc;
|
||||
|
||||
unk32 ret4 = func_01ffb9cc(&this->mPrevPos, &this->mPos);
|
||||
@@ -742,6 +742,7 @@ void ActorRollingStone::func_ov031_020f98e4() {
|
||||
|
||||
Mat3p_func_01ff8248(&sp34, &sp04, SIN((u16) angleRet4), COS((u16) angleRet4));
|
||||
break;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -9,35 +9,35 @@
|
||||
#include "nitro/fx.h"
|
||||
|
||||
static PTMF<ActorRupee> data_ov031_02113588[0xD] = {
|
||||
ActorRupee::func_ov031_020e91a8, // ActorRupeeState_0
|
||||
ActorRupee::func_ov031_020e9254, // ActorRupeeState_1
|
||||
ActorRupee::func_ov031_020e9310, // ActorRupeeState_2
|
||||
ActorRupee::func_ov031_020e942c, // ActorRupeeState_3
|
||||
ActorRupee::func_ov031_020e9434, // ActorRupeeState_4
|
||||
ActorRupee::func_ov031_020e951c, // ActorRupeeState_5
|
||||
ActorRupee::func_ov031_020e9450, // ActorRupeeState_6
|
||||
ActorRupee::func_ov031_020e95ac, // ActorRupeeState_7
|
||||
ActorRupee::func_ov031_020e95c0, // ActorRupeeState_8
|
||||
ActorRupee::func_ov031_020e9624, // ActorRupeeState_9
|
||||
ActorRupee::func_ov031_020e96bc, // ActorRupeeState_10
|
||||
ActorRupee::func_ov031_020e9740, // ActorRupeeState_11
|
||||
ActorRupee::func_ov031_020e98c4, // ActorRupeeState_12
|
||||
&ActorRupee::func_ov031_020e91a8, // ActorRupeeState_0
|
||||
&ActorRupee::func_ov031_020e9254, // ActorRupeeState_1
|
||||
&ActorRupee::func_ov031_020e9310, // ActorRupeeState_2
|
||||
&ActorRupee::func_ov031_020e942c, // ActorRupeeState_3
|
||||
&ActorRupee::func_ov031_020e9434, // ActorRupeeState_4
|
||||
&ActorRupee::func_ov031_020e951c, // ActorRupeeState_5
|
||||
&ActorRupee::func_ov031_020e9450, // ActorRupeeState_6
|
||||
&ActorRupee::func_ov031_020e95ac, // ActorRupeeState_7
|
||||
&ActorRupee::func_ov031_020e95c0, // ActorRupeeState_8
|
||||
&ActorRupee::func_ov031_020e9624, // ActorRupeeState_9
|
||||
&ActorRupee::func_ov031_020e96bc, // ActorRupeeState_10
|
||||
&ActorRupee::func_ov031_020e9740, // ActorRupeeState_11
|
||||
&ActorRupee::func_ov031_020e98c4, // ActorRupeeState_12
|
||||
};
|
||||
|
||||
static PTMF<ActorRupee> data_ov031_02113520[0xD] = {
|
||||
ActorRupee::func_ov031_020e9108, // ActorRupeeState_0
|
||||
ActorRupee::func_ov031_020e9234, // ActorRupeeState_1
|
||||
ActorRupee::func_ov031_020e92e0, // ActorRupeeState_2
|
||||
ActorRupee::func_ov031_020e9428, // ActorRupeeState_3
|
||||
ActorRupee::func_ov031_020e9430, // ActorRupeeState_4
|
||||
ActorRupee::func_ov031_020e94d4, // ActorRupeeState_5
|
||||
ActorRupee::func_ov031_020e9438, // ActorRupeeState_6
|
||||
ActorRupee::func_ov031_020e9598, // ActorRupeeState_7
|
||||
ActorRupee::func_ov031_020e95b0, // ActorRupeeState_8
|
||||
ActorRupee::func_ov031_020e9610, // ActorRupeeState_9
|
||||
ActorRupee::func_ov031_020e9638, // ActorRupeeState_10
|
||||
ActorRupee::func_ov031_020e970c, // ActorRupeeState_11
|
||||
ActorRupee::func_ov031_020e9838, // ActorRupeeState_12
|
||||
&ActorRupee::func_ov031_020e9108, // ActorRupeeState_0
|
||||
&ActorRupee::func_ov031_020e9234, // ActorRupeeState_1
|
||||
&ActorRupee::func_ov031_020e92e0, // ActorRupeeState_2
|
||||
&ActorRupee::func_ov031_020e9428, // ActorRupeeState_3
|
||||
&ActorRupee::func_ov031_020e9430, // ActorRupeeState_4
|
||||
&ActorRupee::func_ov031_020e94d4, // ActorRupeeState_5
|
||||
&ActorRupee::func_ov031_020e9438, // ActorRupeeState_6
|
||||
&ActorRupee::func_ov031_020e9598, // ActorRupeeState_7
|
||||
&ActorRupee::func_ov031_020e95b0, // ActorRupeeState_8
|
||||
&ActorRupee::func_ov031_020e9610, // ActorRupeeState_9
|
||||
&ActorRupee::func_ov031_020e9638, // ActorRupeeState_10
|
||||
&ActorRupee::func_ov031_020e970c, // ActorRupeeState_11
|
||||
&ActorRupee::func_ov031_020e9838, // ActorRupeeState_12
|
||||
};
|
||||
|
||||
extern "C" void func_01ffedac(u16 *, VecFx32 *);
|
||||
@@ -97,7 +97,7 @@ ActorRupee::ActorRupee() :
|
||||
}
|
||||
|
||||
// https://decomp.me/scratch/wunA4
|
||||
bool ActorRupee::vfunc_18(unk32 param1) {
|
||||
bool ActorRupee::Init(unk32 param1) {
|
||||
if (this->func_ov031_020e9d54()) {
|
||||
this->mUnk_30 = &data_ov031_02113478;
|
||||
this->mUnk_34 = &data_ov031_02113478;
|
||||
@@ -244,7 +244,7 @@ void ActorRupee::func_ov031_020e9108() {
|
||||
void ActorRupee::func_ov031_020e91a8() {
|
||||
u32 sp0;
|
||||
|
||||
this->IsTimerOut();
|
||||
this->mTimer.Update();
|
||||
|
||||
this->func_ov031_020e9b88();
|
||||
|
||||
@@ -272,7 +272,7 @@ void ActorRupee::func_ov031_020e9234() {
|
||||
void ActorRupee::func_ov031_020e9254() {
|
||||
u32 sp0;
|
||||
|
||||
this->IsTimerOut();
|
||||
this->mTimer.Update();
|
||||
|
||||
this->func_ov031_020e9be8();
|
||||
|
||||
@@ -305,7 +305,7 @@ void ActorRupee::func_ov031_020e92e0() {
|
||||
void ActorRupee::func_ov031_020e9310() {
|
||||
u32 sp0;
|
||||
|
||||
this->IsTimerOut();
|
||||
this->mTimer.Update();
|
||||
|
||||
switch (this->mUnk_EC) {
|
||||
case 0:
|
||||
@@ -373,8 +373,7 @@ void ActorRupee::func_ov031_020e9450() {
|
||||
}
|
||||
|
||||
void ActorRupee::func_ov031_020e94d4() {
|
||||
this->mTimerMax = -1;
|
||||
this->mTimer = 0;
|
||||
this->mTimer.Reset();
|
||||
this->mVel.x = 0;
|
||||
this->mVel.y = 0;
|
||||
this->mVel.z = 0;
|
||||
@@ -489,8 +488,7 @@ void ActorRupee::func_ov031_020e970c() {
|
||||
this->mVel.z = 0;
|
||||
SET_FLAG(this->mFlags, ActorFlag_Visible);
|
||||
this->mUnk_4A[0] = 1;
|
||||
this->mTimerMax = -1;
|
||||
this->mTimer = 0;
|
||||
this->mTimer.Reset();
|
||||
}
|
||||
|
||||
// non-matching
|
||||
@@ -509,10 +507,9 @@ void ActorRupee::func_ov031_020e9740() {
|
||||
temp_r2 = (sp4 - 0x800) + temp_r0->vfunc_28(&this->mPos, 0, 0);
|
||||
|
||||
if (this->mPos.y != temp_r2) {
|
||||
this->mPos.y = temp_r2;
|
||||
this->mTimerMax = -1;
|
||||
this->mTimer = 0;
|
||||
} else if (this->mTimer == 8) {
|
||||
this->mPos.y = temp_r2;
|
||||
this->mTimer.Reset();
|
||||
} else if (this->mTimer.GetValue() == 8) {
|
||||
this->SetState(ActorRupeeState_12);
|
||||
}
|
||||
} else {
|
||||
@@ -521,7 +518,7 @@ void ActorRupee::func_ov031_020e9740() {
|
||||
this->SetState(ActorRupeeState_12);
|
||||
}
|
||||
|
||||
this->IsTimerOut();
|
||||
this->mTimer.Update();
|
||||
}
|
||||
|
||||
// non-matching
|
||||
@@ -546,10 +543,9 @@ void ActorRupee::func_ov031_020e98c4() {
|
||||
}
|
||||
|
||||
void ActorRupee::SetState(ActorState state) {
|
||||
this->mState = state;
|
||||
this->mTimerMax = -1;
|
||||
this->mTimer = 0;
|
||||
this->mUnk_EC = 0;
|
||||
this->mState = state;
|
||||
this->mTimer.Reset();
|
||||
this->mUnk_EC = 0;
|
||||
CALL_PTMF(PTMF<ActorRupee>, data_ov031_02113520[this->mState]);
|
||||
}
|
||||
|
||||
@@ -557,7 +553,7 @@ extern "C" void func_01fff17c(unk16 *, UnkStruct_027e0ce0 *, unk32);
|
||||
extern "C" void func_02018114(unk16 *, unk32);
|
||||
|
||||
// non-matching
|
||||
void ActorRupee::vfunc_20() {
|
||||
void ActorRupee::Update() {
|
||||
short sVar1;
|
||||
unk16 uVar2;
|
||||
unk16 uVar3;
|
||||
|
||||
@@ -169,9 +169,9 @@ ActorShotArrow::~ActorShotArrow() {
|
||||
}
|
||||
}
|
||||
|
||||
bool ActorShotArrow::vfunc_18(unk32 param1) {
|
||||
fx32 sin_value = SIN((u16) this->mAngle);
|
||||
fx32 cos_value = COS((u16) this->mAngle);
|
||||
bool ActorShotArrow::Init(unk32 param1) {
|
||||
fx32 sin_value = SIN((u16) this->mAngle.angle_s);
|
||||
fx32 cos_value = COS((u16) this->mAngle.angle_s);
|
||||
|
||||
this->mUnk_2C = 0;
|
||||
this->mVel.x = MUL_FX32(sin_value, 1024);
|
||||
@@ -203,14 +203,14 @@ void ActorShotArrow::func_ov031_020f1868() {
|
||||
void ActorShotArrow::func_ov031_020f1874() {}
|
||||
|
||||
static PTMF<ActorShotArrow> data_ov031_021142c0[ActorShotArrowState_Max] = {
|
||||
ActorShotArrow::func_ov031_020f1a64, // ActorShotArrowState_0
|
||||
ActorShotArrow::func_ov031_020f1c24, // ActorShotArrowState_1
|
||||
ActorShotArrow::func_ov031_020f1dd4, // ActorShotArrowState_2
|
||||
ActorShotArrow::func_ov031_020f1f54, // ActorShotArrowState_3
|
||||
ActorShotArrow::func_ov031_020f206c, // ActorShotArrowState_4
|
||||
ActorShotArrow::func_ov031_020f2134, // ActorShotArrowState_5
|
||||
ActorShotArrow::func_ov031_020f21dc, // ActorShotArrowState_6
|
||||
ActorShotArrow::func_ov031_020f1874 // ActorShotArrowState_7
|
||||
&ActorShotArrow::func_ov031_020f1a64, // ActorShotArrowState_0
|
||||
&ActorShotArrow::func_ov031_020f1c24, // ActorShotArrowState_1
|
||||
&ActorShotArrow::func_ov031_020f1dd4, // ActorShotArrowState_2
|
||||
&ActorShotArrow::func_ov031_020f1f54, // ActorShotArrowState_3
|
||||
&ActorShotArrow::func_ov031_020f206c, // ActorShotArrowState_4
|
||||
&ActorShotArrow::func_ov031_020f2134, // ActorShotArrowState_5
|
||||
&ActorShotArrow::func_ov031_020f21dc, // ActorShotArrowState_6
|
||||
&ActorShotArrow::func_ov031_020f1874 // ActorShotArrowState_7
|
||||
};
|
||||
|
||||
void ActorShotArrow::SetState(ActorShotArrowState state) {
|
||||
@@ -246,17 +246,17 @@ void ActorShotArrow::vfunc_24() {
|
||||
void ActorShotArrow::func_ov031_020f1958() {}
|
||||
|
||||
static PTMF<ActorShotArrow> data_ov031_02114300[ActorShotArrowState_Max] = {
|
||||
ActorShotArrow::func_ov031_020f1b04, // ActorShotArrowState_0
|
||||
ActorShotArrow::func_ov031_020f1c7c, // ActorShotArrowState_1
|
||||
ActorShotArrow::func_ov031_020f1e3c, // ActorShotArrowState_2
|
||||
ActorShotArrow::func_ov031_020f2010, // ActorShotArrowState_3
|
||||
ActorShotArrow::func_ov031_020f20bc, // ActorShotArrowState_4
|
||||
ActorShotArrow::func_ov031_020f2160, // ActorShotArrowState_5
|
||||
ActorShotArrow::func_ov031_020f2214, // ActorShotArrowState_6
|
||||
ActorShotArrow::func_ov031_020f1958 // ActorShotArrowState_7
|
||||
&ActorShotArrow::func_ov031_020f1b04, // ActorShotArrowState_0
|
||||
&ActorShotArrow::func_ov031_020f1c7c, // ActorShotArrowState_1
|
||||
&ActorShotArrow::func_ov031_020f1e3c, // ActorShotArrowState_2
|
||||
&ActorShotArrow::func_ov031_020f2010, // ActorShotArrowState_3
|
||||
&ActorShotArrow::func_ov031_020f20bc, // ActorShotArrowState_4
|
||||
&ActorShotArrow::func_ov031_020f2160, // ActorShotArrowState_5
|
||||
&ActorShotArrow::func_ov031_020f2214, // ActorShotArrowState_6
|
||||
&ActorShotArrow::func_ov031_020f1958 // ActorShotArrowState_7
|
||||
};
|
||||
|
||||
void ActorShotArrow::vfunc_20() {
|
||||
void ActorShotArrow::Update() {
|
||||
this->mUnk_3C = &this->mUnk_140;
|
||||
CALL_PTMF(PTMF<ActorShotArrow>, data_ov031_02114300[this->mState]);
|
||||
|
||||
@@ -287,30 +287,28 @@ void ActorShotArrow::vfunc_20() {
|
||||
this->func_ov031_020f229c();
|
||||
}
|
||||
|
||||
// non-matching
|
||||
void ActorShotArrow::func_ov031_020f1a64() {
|
||||
if (this->mUnk_5C.mParams[1] == 0x1 || this->mUnk_5C.mParams[1] == 0x4) {
|
||||
this->mTimer = 0x0;
|
||||
this->mTimerMax = 0x78;
|
||||
this->mTimer.Set(0, 120);
|
||||
} else {
|
||||
this->mTimer = 0x0;
|
||||
this->mTimerMax = 0x3C;
|
||||
this->mTimer.max = 60;
|
||||
*(u16 *) &this->mTimer.value = 0; //! TODO: for some reasons volatile don't match here
|
||||
}
|
||||
|
||||
unk32 value_func_020f2270 = this->func_ov031_020f2270();
|
||||
unk16 sin_value = SIN((u16) this->mAngle);
|
||||
unk16 cos_value = COS((u16) this->mAngle);
|
||||
fx16 sin_value = SIN(this->mAngle.angle_u);
|
||||
fx16 cos_value = COS(this->mAngle.angle_u);
|
||||
|
||||
this->mVel.x = MUL_FX32(sin_value, value_func_020f2270);
|
||||
this->mVel.y = FLOAT_TO_FX32(0.0f);
|
||||
this->mVel.z = MUL_FX32(cos_value, value_func_020f2270);
|
||||
this->mVel.y = FLOAT_TO_FX32(0.0f);
|
||||
}
|
||||
|
||||
// non-matching
|
||||
void ActorShotArrow::func_ov031_020f1b04() {
|
||||
UnkStruct_020f1b04 stack;
|
||||
|
||||
if (this->IsTimerOut()) {
|
||||
if (this->mTimer.HasExpired()) {
|
||||
this->SetState(ActorShotArrowState_6);
|
||||
return;
|
||||
}
|
||||
@@ -365,12 +363,12 @@ void ActorShotArrow::func_ov031_020f1c7c() {
|
||||
|
||||
VecFx32_Copy(&this->mUnk_1C8.mUnk_00->mPos, &this->mPos);
|
||||
|
||||
s16 delta = this->mUnk_1C8.mUnk_00->mAngle - this->mUnk_1C8.mUnk_10;
|
||||
s16 delta = this->mUnk_1C8.mUnk_00->mAngle.angle_s - this->mUnk_1C8.mUnk_10;
|
||||
VecFx32 vec_fx32 = this->mUnk_1C8.mUnk_04;
|
||||
func_01ff9638(&vec_fx32, delta);
|
||||
|
||||
VecFx32_Add(&this->mPos, &vec_fx32, &this->mPos);
|
||||
this->mAngle = this->mUnk_1C8.mUnk_00->mAngle + (s16) (this->mUnk_1C8.mUnk_12 - this->mUnk_1C8.mUnk_10);
|
||||
this->mAngle = this->mUnk_1C8.mUnk_00->mAngle.angle_s + (s16) (this->mUnk_1C8.mUnk_12 - this->mUnk_1C8.mUnk_10);
|
||||
} else {
|
||||
this->func_ov031_020f2c08(0x400);
|
||||
}
|
||||
@@ -395,20 +393,18 @@ void ActorShotArrow::func_ov031_020f1dd4() {
|
||||
this->mUnk_174 = 0x1555;
|
||||
|
||||
data_027e09a8->func_ov000_02071b30(0x8D7A, &this->mPos, 0);
|
||||
this->mUnk_16C = 0;
|
||||
this->mTimer = 0;
|
||||
this->mTimerMax = this->mUnk_258;
|
||||
this->mUnk_16C = 0;
|
||||
this->mTimer.Set(0, this->mUnk_258);
|
||||
}
|
||||
|
||||
void ActorShotArrow::func_ov031_020f1e3c() {
|
||||
if (!this->mUnk_25B && this->IsTimerOut()) {
|
||||
if (!this->mUnk_25B && this->mTimer.HasExpired()) {
|
||||
if (this->func_ov031_020f3210(0x1)) {
|
||||
this->Kill();
|
||||
return;
|
||||
}
|
||||
|
||||
this->mTimerMax = this->mUnk_258;
|
||||
this->mTimer = 0;
|
||||
this->mTimer.Set(0, this->mUnk_258);
|
||||
}
|
||||
|
||||
Actor *targetActor = this->mUnk_1C8.mUnk_00;
|
||||
@@ -601,7 +597,7 @@ void ActorShotArrow::vfunc_2C(Actor_vfunc_30 *param1) {
|
||||
} else {
|
||||
VecFx32_Copy(&this->mPos, &stack.mUnk_30.zColumn);
|
||||
|
||||
Mat3p_InitYRotation(&stack.mUnk_30, SIN((u16) this->mAngle), COS((u16) this->mAngle));
|
||||
Mat3p_InitYRotation(&stack.mUnk_30, SIN((u16) this->mAngle.angle_s), COS((u16) this->mAngle.angle_s));
|
||||
Mat3p_InitXRotation(&stack.mUnk_30, SIN((u16) (s16) (this->mUnk_174 + this->mUnk_176)),
|
||||
COS((u16) (s16) (this->mUnk_174 + this->mUnk_176)));
|
||||
|
||||
@@ -621,7 +617,7 @@ void ActorShotArrow::vfunc_2C(Actor_vfunc_30 *param1) {
|
||||
}
|
||||
}
|
||||
|
||||
data_027e09b4->func_ov017_020c08c4(&this->mPos, 0x7B, 0x666, var4, this->mAngle, 0x1);
|
||||
data_027e09b4->func_ov017_020c08c4(&this->mPos, 0x7B, 0x666, var4, this->mAngle.angle_s, 0x1);
|
||||
}
|
||||
|
||||
// non-matching
|
||||
@@ -687,7 +683,7 @@ void ActorShotArrow::func_ov031_020f28ac() {
|
||||
|
||||
this->func_ov031_020f2cac(&vec1, true);
|
||||
break;
|
||||
case 0x4:
|
||||
case 0x4: {
|
||||
Actor *actor = gpActorManager->func_01fff3b4(this->mUnk_140.mUnk_0C);
|
||||
|
||||
if (actor != NULL) {
|
||||
@@ -696,6 +692,7 @@ void ActorShotArrow::func_ov031_020f28ac() {
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
case 0xE:
|
||||
if (this->mUnk_140.mUnk_0C.index == 0x102) {
|
||||
bool var = false;
|
||||
@@ -720,7 +717,7 @@ void ActorShotArrow::func_ov031_020f28ac() {
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 0xF:
|
||||
case 0xF: {
|
||||
if (this->mUnk_5C.mParams[1] == 0x0 || this->mUnk_5C.mParams[1] == 0x3) {
|
||||
data_027e0ce0->func_ov000_0208bc1c(1, 0, 0x18, 0, 0, 0);
|
||||
}
|
||||
@@ -729,6 +726,7 @@ void ActorShotArrow::func_ov031_020f28ac() {
|
||||
func_01ffb714(&this->mPos, result, &vec1);
|
||||
this->func_ov031_020f2cac(&vec1, true);
|
||||
break;
|
||||
}
|
||||
case 0x3:
|
||||
if (this->mUnk_140.mUnk_0C.type != ActorRefType_0) {
|
||||
Actor *actor = gpActorManager->func_01fff3b4(this->mUnk_140.mUnk_0C);
|
||||
@@ -783,8 +781,8 @@ void ActorShotArrow::func_ov031_020f2bec() {
|
||||
void ActorShotArrow::func_ov031_020f2c08(unk16 param1) {
|
||||
VecFx32 vel;
|
||||
|
||||
this->mVel.x = MUL_FX32(SIN((u16) this->mAngle), param1);
|
||||
this->mVel.z = MUL_FX32(COS((u16) this->mAngle), param1);
|
||||
this->mVel.x = MUL_FX32(SIN((u16) this->mAngle.angle_s), param1);
|
||||
this->mVel.z = MUL_FX32(COS((u16) this->mAngle.angle_s), param1);
|
||||
this->mVel.y = FLOAT_TO_FX32(0.0f);
|
||||
|
||||
vel = this->mVel;
|
||||
@@ -826,14 +824,14 @@ void ActorShotArrow::func_ov031_020f2cac(VecFx32 *param1, bool param2) {
|
||||
|
||||
if (param2) {
|
||||
pos = this->mPos;
|
||||
this->mPos.x -= FLOAT_TO_FX32(SIN((u16) this->mAngle));
|
||||
this->mPos.z -= FLOAT_TO_FX32(COS((u16) this->mAngle));
|
||||
this->mPos.x -= FLOAT_TO_FX32(SIN((u16) this->mAngle.angle_s));
|
||||
this->mPos.z -= FLOAT_TO_FX32(COS((u16) this->mAngle.angle_s));
|
||||
data_027e09a8->func_ov000_02071eac(&this->mPos);
|
||||
data_027e09a8->func_ov000_02071b30(0x8D7B, &pos, 0x0);
|
||||
|
||||
vec.x = (fx16) FLOAT_TO_FX32(SIN((u16) (this->mAngle - 0x8000)));
|
||||
vec.x = (fx16) FLOAT_TO_FX32(SIN((u16) (this->mAngle.angle_s - 0x8000)));
|
||||
vec.y = (fx16) FLOAT_TO_FX32(0.0f);
|
||||
vec.z = (fx16) FLOAT_TO_FX32(COS((u16) (this->mAngle - 0x8000)));
|
||||
vec.z = (fx16) FLOAT_TO_FX32(COS((u16) (this->mAngle.angle_s - 0x8000)));
|
||||
|
||||
data_027e0cec->func_ov000_0209feac(0x804, &pos, 0x2, 0x0, 0x0);
|
||||
data_027e0cec->func_ov000_0209ff24(0x805, &pos, &vec, 2);
|
||||
@@ -876,7 +874,7 @@ void ActorShotArrow::func_ov031_020f3000() {
|
||||
vec.y = FLOAT_TO_FX32(0.0f);
|
||||
vec.z = FLOAT_TO_FX32(0.4f);
|
||||
|
||||
Mat3p_InitYRotation(&m1, SIN((u16) this->mAngle), COS((u16) this->mAngle));
|
||||
Mat3p_InitYRotation(&m1, SIN((u16) this->mAngle.angle_s), COS((u16) this->mAngle.angle_s));
|
||||
Mat3p_InitXRotation(&m2, SIN((u16) (s16) (this->mUnk_174 + this->mUnk_176)),
|
||||
COS((u16) (s16) (this->mUnk_174 + this->mUnk_176)));
|
||||
|
||||
@@ -899,7 +897,7 @@ void ActorShotArrow::func_ov031_020f311c(Mat4x3p *param1) {
|
||||
|
||||
if (param1 != NULL) {
|
||||
Mat4x3p_InitXRotation(&m1, SIN((u16) this->mUnk_176), COS((u16) this->mUnk_176));
|
||||
Mat4x3p_InitYRotation(&m2, SIN((u16) this->mAngle), COS((u16) this->mAngle));
|
||||
Mat4x3p_InitYRotation(&m2, SIN((u16) this->mAngle.angle_s), COS((u16) this->mAngle.angle_s));
|
||||
|
||||
func_01ffad5c(&m1, &m2, &m1);
|
||||
|
||||
@@ -1052,7 +1050,7 @@ void ActorShotArrow_194::vfunc_10(Actor *actor) {
|
||||
if (actor != NULL) {
|
||||
func_01ffb714(&this->mUnk_2C->mPos, &actor->mPos, &stack.mUnk_1C);
|
||||
VecFx32_Copy(&stack.mUnk_1C, &this->mUnk_2C->mUnk_1C8.mUnk_04);
|
||||
this->mUnk_2C->mUnk_1C8.mUnk_10 = actor->mAngle;
|
||||
this->mUnk_2C->mUnk_1C8.mUnk_10 = actor->mAngle.angle_s;
|
||||
this->mUnk_2C->mUnk_1C8.mUnk_12 = result;
|
||||
}
|
||||
break;
|
||||
@@ -1106,7 +1104,7 @@ void ActorShotArrow_194::vfunc_10(Actor *actor) {
|
||||
if (actor) {
|
||||
func_01ffb714(&this->mUnk_2C->mPos, &actor->mPos, &stack.mUnk_10);
|
||||
VecFx32_Copy(&stack.mUnk_10, &this->mUnk_2C->mUnk_1C8.mUnk_04);
|
||||
this->mUnk_2C->mUnk_1C8.mUnk_10 = actor->mAngle;
|
||||
this->mUnk_2C->mUnk_1C8.mUnk_10 = actor->mAngle.angle_s;
|
||||
this->mUnk_2C->mUnk_1C8.mUnk_12 = result;
|
||||
}
|
||||
}
|
||||
@@ -1140,7 +1138,7 @@ bool ActorShotArrow_194::vfunc_0C(Actor *actor, VecFx32 *vector) {
|
||||
|
||||
void ActorShotArrow::func_ov031_020f3d04(unk16 param1) {
|
||||
this->mUnk_176 = param1;
|
||||
func_01ff9638(&this->mVel, -this->mAngle);
|
||||
func_01ff9638(&this->mVel, -this->mAngle.angle_s);
|
||||
func_01ff95a0(&this->mVel, param1);
|
||||
func_01ff9638(&this->mVel, this->mAngle);
|
||||
func_01ff9638(&this->mVel, this->mAngle.angle_s);
|
||||
}
|
||||
|
||||
@@ -18,7 +18,7 @@ ActorProfileUnkATTG::ActorProfileUnkATTG() :
|
||||
ActorUnkATTG::ActorUnkATTG() :
|
||||
mUnk_94(-0x1) {}
|
||||
|
||||
bool ActorUnkATTG::vfunc_18(unk32 param1) {
|
||||
bool ActorUnkATTG::Init(unk32 param1) {
|
||||
if (this->mUnk_5C.mUnk_1A[0] == 0x0 || !this->func_ov000_02098a60(0x0) || this->mUnk_5C.mParams[1] != 0x0) {
|
||||
this->func_ov031_020f3eec(0x0, 0x1);
|
||||
} else {
|
||||
@@ -27,7 +27,7 @@ bool ActorUnkATTG::vfunc_18(unk32 param1) {
|
||||
return true;
|
||||
}
|
||||
|
||||
void ActorUnkATTG::vfunc_20() {
|
||||
void ActorUnkATTG::Update() {
|
||||
switch (this->mState) {
|
||||
case ActorUnkATTGState_0:
|
||||
if (!this->func_ov031_020f4014()) {
|
||||
@@ -53,13 +53,13 @@ void ActorUnkATTG::vfunc_24() {
|
||||
if (!data_027e09b8->func_ov000_020732ec(this->mUnk_94)) {
|
||||
return;
|
||||
}
|
||||
this->vfunc_20();
|
||||
this->Update();
|
||||
}
|
||||
|
||||
void ActorUnkATTG::func_ov031_020f3eec(ActorState state, unk32 param2) {
|
||||
this->mState = state;
|
||||
switch (this->mState) {
|
||||
case ActorUnkATTGState_1:
|
||||
case ActorUnkATTGState_1: {
|
||||
UnkStackStruct1 stack;
|
||||
|
||||
func_ov000_02072fd0(&stack);
|
||||
@@ -88,6 +88,7 @@ void ActorUnkATTG::func_ov031_020f3eec(ActorState state, unk32 param2) {
|
||||
|
||||
this->mUnk_94 = data_027e09b8->func_ov000_02073388(&stack, 0x0);
|
||||
break;
|
||||
}
|
||||
case ActorUnkATTGState_2:
|
||||
if (param2 == 0x0) {
|
||||
data_ov000_020b5214.func_ov000_0206db44(0x2);
|
||||
|
||||
@@ -22,7 +22,7 @@ ActorUnkEFSB::ActorUnkEFSB() :
|
||||
mUnk_0F8(&this->mUnk_0F8.mUnk_1C, &this->mUnk_098, GET_PROFILE(ActorProfileUnkEFSB)->vfunc_04()),
|
||||
mUnk_154(&this->mUnk_154.mUnk_1C, &this->mUnk_098, GET_PROFILE(ActorProfileUnkEFSB)->vfunc_04()) {}
|
||||
|
||||
bool ActorUnkEFSB::vfunc_18(unk32 param1) {
|
||||
bool ActorUnkEFSB::Init(unk32 param1) {
|
||||
this->mUnk_0F8.vfunc_1C(data_ov031_02114ed0[0], 0x1000, 0x11F, 0x0);
|
||||
this->mUnk_154.func_ov000_02099ff8(data_ov031_02114ed0[0], 0x1000);
|
||||
|
||||
@@ -35,7 +35,7 @@ bool ActorUnkEFSB::vfunc_18(unk32 param1) {
|
||||
return true;
|
||||
}
|
||||
|
||||
void ActorUnkEFSB::vfunc_20() {
|
||||
void ActorUnkEFSB::Update() {
|
||||
if (this->mUnk_094 != 0x0) {
|
||||
return;
|
||||
}
|
||||
@@ -44,7 +44,7 @@ void ActorUnkEFSB::vfunc_20() {
|
||||
}
|
||||
|
||||
void ActorUnkEFSB::vfunc_24() {
|
||||
this->vfunc_20();
|
||||
this->Update();
|
||||
}
|
||||
|
||||
void ActorUnkEFSB::vfunc_54(unk32 param1) {
|
||||
@@ -60,5 +60,5 @@ void ActorUnkEFSB::vfunc_2C(Actor_vfunc_30 *param1) {
|
||||
VecFx32 sp0 = this->mPos;
|
||||
sp0.y += FLOAT_TO_FX32(0.85f);
|
||||
|
||||
this->mUnk_098.func_01ffc634(&vec, this->mAngleStruct, &sp0);
|
||||
this->mUnk_098.func_01ffc634(&vec, this->mAngle, &sp0);
|
||||
}
|
||||
|
||||
@@ -18,7 +18,7 @@ ActorProfileUnkFLEN::ActorProfileUnkFLEN() :
|
||||
ActorUnkFLEN::ActorUnkFLEN() :
|
||||
mUnk_94(0) {}
|
||||
|
||||
bool ActorUnkFLEN::vfunc_18(int param1) {
|
||||
bool ActorUnkFLEN::Init(int param1) {
|
||||
this->mUnk_94 = this->mUnk_5C.mParams[1];
|
||||
|
||||
if (this->mUnk_5C.mParams[1] >= (s16) 0x2) {
|
||||
@@ -33,8 +33,8 @@ bool ActorUnkFLEN::vfunc_18(int param1) {
|
||||
return true;
|
||||
}
|
||||
|
||||
void ActorUnkFLEN::vfunc_20() {
|
||||
this->IsTimerOut();
|
||||
void ActorUnkFLEN::Update() {
|
||||
this->mTimer.Update();
|
||||
|
||||
switch (this->mState) {
|
||||
case ActorUnkFLENState_0:
|
||||
@@ -83,7 +83,7 @@ bool ActorUnkFLEN::func_ov031_020f81f8() {
|
||||
actorParams.mUnk_28 = 0;
|
||||
actorParams.func_ov000_020975f8();
|
||||
actorParams.mUnk_28 = this->mRef;
|
||||
actorParams.mInitialAngle = this->mAngle;
|
||||
actorParams.mInitialAngle = this->mAngle.angle_s;
|
||||
|
||||
VecFx32_Copy(&this->mPos, &actorParams.mInitialPos);
|
||||
actorParams.mInitialPos.y += FLOAT_TO_FX32(5.0f);
|
||||
|
||||
@@ -39,8 +39,7 @@ ActorProfileUnkMLCK::ActorProfileUnkMLCK() :
|
||||
ActorUnkMLCK::ActorUnkMLCK() :
|
||||
mUnk_B4(mUnk_A0),
|
||||
mUnk_BC(0x4),
|
||||
mUnk_C0(0x0),
|
||||
mUnk_C2(0x0),
|
||||
mUnk_C0(0, 0),
|
||||
mUnk_D8(this),
|
||||
mUnk_E4(this),
|
||||
mUnk_F0(false),
|
||||
@@ -49,7 +48,7 @@ ActorUnkMLCK::ActorUnkMLCK() :
|
||||
mUnk_F3(true),
|
||||
mUnk_F4(-1) {}
|
||||
|
||||
bool ActorUnkMLCK::vfunc_18(unk32 param1) {
|
||||
bool ActorUnkMLCK::Init(unk32 param1) {
|
||||
this->mUnk_B8 = this->mUnk_5C.mParams[0];
|
||||
|
||||
UnkStruct_ov031_02112ad4 local_9c(ActorId_MLCK, this->mUnk_5C.mParams[0]);
|
||||
@@ -82,8 +81,7 @@ bool ActorUnkMLCK::vfunc_18(unk32 param1) {
|
||||
// non-matching
|
||||
void ActorUnkMLCK::vfunc_64(unk32 param1) {
|
||||
this->mUnk_BC = param1;
|
||||
this->mUnk_C2 = 0xFFFF;
|
||||
this->mUnk_C0 = 0x0;
|
||||
this->mUnk_C0.Reset();
|
||||
|
||||
if (param1 == 0x1) {
|
||||
this->mUnk_F1 = false;
|
||||
@@ -148,7 +146,7 @@ void ActorUnkMLCK::vfunc_70() {
|
||||
}
|
||||
|
||||
void ActorUnkMLCK::func_ov031_020faf24() {
|
||||
if (this->mUnk_C0 != 0xF) {
|
||||
if (this->mUnk_C0.value != 15) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -36,15 +36,14 @@ ActorProfileUnkNFSP::ActorProfileUnkNFSP() :
|
||||
|
||||
ActorUnkNFSP::ActorUnkNFSP() :
|
||||
mUnk_94(0x4),
|
||||
mUnk_98(0x0),
|
||||
mUnk_9A(0x0),
|
||||
mUnk_98(0, 0),
|
||||
mUnk_9C(NULL),
|
||||
mUnk_C0(this),
|
||||
mUnk_E4(0x0) {
|
||||
this->mUnk_40 = &this->mUnk_C0;
|
||||
}
|
||||
|
||||
bool ActorUnkNFSP::vfunc_18(unk32 param1) {
|
||||
bool ActorUnkNFSP::Init(unk32 param1) {
|
||||
this->mUnk_9C = (MapObjectUnkSWFS *) param1;
|
||||
|
||||
this->mUnk_C0.mUnk_08 = 0x0;
|
||||
@@ -61,7 +60,7 @@ bool ActorUnkNFSP::vfunc_18(unk32 param1) {
|
||||
return true;
|
||||
}
|
||||
|
||||
void ActorUnkNFSP::vfunc_20() {
|
||||
void ActorUnkNFSP::Update() {
|
||||
this->mUnk_C0.mUnk_1C = 0x1;
|
||||
|
||||
switch (this->mUnk_94) {
|
||||
@@ -80,9 +79,8 @@ void ActorUnkNFSP::vfunc_20() {
|
||||
default:
|
||||
break;
|
||||
}
|
||||
if (this->mUnk_98 < this->mUnk_9A) {
|
||||
++this->mUnk_98;
|
||||
}
|
||||
|
||||
this->mUnk_98.Update();
|
||||
}
|
||||
|
||||
void ActorUnkNFSP::func_ov031_020fb988() {
|
||||
@@ -142,8 +140,7 @@ void ActorUnkNFSP::func_ov031_020fba60() {
|
||||
|
||||
void ActorUnkNFSP::vfunc_54(unk32 param1) {
|
||||
this->mUnk_94 = param1;
|
||||
this->mUnk_9A = 0xFFFF;
|
||||
this->mUnk_98 = 0x0;
|
||||
this->mUnk_98.Reset();
|
||||
|
||||
switch (param1) {
|
||||
case 0x0:
|
||||
@@ -155,7 +152,7 @@ void ActorUnkNFSP::vfunc_54(unk32 param1) {
|
||||
case 0x2:
|
||||
this->mUnk_40 = &this->mUnk_C0;
|
||||
break;
|
||||
case 0x3:
|
||||
case 0x3: {
|
||||
ActorUnkNFSP_vfunc_54 *actor = (ActorUnkNFSP_vfunc_54 *) gpActorManager->func_01fff3b4(this->mUnk_E4);
|
||||
if (actor != NULL) {
|
||||
actor->mUnk_2B0 = 0x0;
|
||||
@@ -167,6 +164,7 @@ void ActorUnkNFSP::vfunc_54(unk32 param1) {
|
||||
}
|
||||
this->mUnk_9C->func_ov031_0210d750();
|
||||
break;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -16,7 +16,7 @@ ActorProfileUnkNORE::ActorProfileUnkNORE() :
|
||||
|
||||
ActorUnkNORE::ActorUnkNORE() {}
|
||||
|
||||
bool ActorUnkNORE::vfunc_18(unk32 param1) {
|
||||
bool ActorUnkNORE::Init(unk32 param1) {
|
||||
Vec2bCpp local_vec;
|
||||
|
||||
UnkStruct_027e0cd8_0C_Base *unk_obj = data_027e0cd8->mUnk_0C;
|
||||
@@ -25,7 +25,7 @@ bool ActorUnkNORE::vfunc_18(unk32 param1) {
|
||||
|
||||
unk_obj->func_ov000_020801b0(&local_vec, 7, 1);
|
||||
|
||||
UNSET_FLAG(this->mFlags, ActorFlag_Alive);
|
||||
this->Kill();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -21,11 +21,11 @@ ActorUnkNTTZ::ActorUnkNTTZ() :
|
||||
this->func_ov000_0209862c(0x0);
|
||||
}
|
||||
|
||||
bool ActorUnkNTTZ::vfunc_18(unk32 param1) {
|
||||
bool ActorUnkNTTZ::Init(unk32 param1) {
|
||||
return true;
|
||||
}
|
||||
|
||||
void ActorUnkNTTZ::vfunc_20() {}
|
||||
void ActorUnkNTTZ::Update() {}
|
||||
|
||||
void ActorUnkNTTZ::vfunc_2C(Actor_vfunc_30 *param1) {}
|
||||
|
||||
|
||||
@@ -19,7 +19,7 @@ ActorProfileUnkRMTG::ActorProfileUnkRMTG() :
|
||||
ActorUnkRMTG::ActorUnkRMTG() :
|
||||
mUnk_94(NULL) {}
|
||||
|
||||
bool ActorUnkRMTG::vfunc_18(unk32 param1) {
|
||||
bool ActorUnkRMTG::Init(unk32 param1) {
|
||||
this->mPos.x -= FLOAT_TO_FX32(0.5f);
|
||||
this->mPos.z -= FLOAT_TO_FX32(0.5f);
|
||||
|
||||
@@ -38,7 +38,7 @@ bool ActorUnkRMTG::vfunc_18(unk32 param1) {
|
||||
return true;
|
||||
}
|
||||
|
||||
void ActorUnkRMTG::vfunc_1C() {
|
||||
void ActorUnkRMTG::Setup() {
|
||||
UnkStruct_027e09bc_0C *data = data_027e09bc->mUnk_04[2];
|
||||
data->func_ov000_0207834c(&this->mPos, func_ov000_02077590(0x7), 0x0);
|
||||
}
|
||||
|
||||
@@ -31,7 +31,7 @@ ActorUnkROCK::ActorUnkROCK() :
|
||||
this->mUnk_4A[1] = 0x02;
|
||||
}
|
||||
|
||||
bool ActorUnkROCK::vfunc_18(unk32 param1) {
|
||||
bool ActorUnkROCK::Init(unk32 param1) {
|
||||
this->mUnk_A0.mUnk_04 = this->mRef;
|
||||
this->mUnk_A0.mUnk_08 = &this->mPos;
|
||||
this->mUnk_A0.mUnk_0C = &data_ov031_021166b8;
|
||||
@@ -41,7 +41,7 @@ bool ActorUnkROCK::vfunc_18(unk32 param1) {
|
||||
return true;
|
||||
}
|
||||
|
||||
void ActorUnkROCK::vfunc_20() {
|
||||
void ActorUnkROCK::Update() {
|
||||
VecFx32_Copy(&this->mPos, &this->mPrevPos);
|
||||
switch (this->mState) {
|
||||
case ActorUnkROCKState_1:
|
||||
@@ -64,8 +64,7 @@ void ActorUnkROCK::vfunc_20() {
|
||||
}
|
||||
|
||||
void ActorUnkROCK::func_ov031_020e8a48(ActorState state) {
|
||||
this->mTimerMax = 0xFFFF;
|
||||
this->mTimer = 0x0000;
|
||||
this->mTimer.Reset();
|
||||
|
||||
if (this->mState == ActorUnkROCKState_0) {
|
||||
data_027e09c0->func_ov000_0207e254(&this->mUnk_A0);
|
||||
|
||||
@@ -17,7 +17,7 @@ ActorProfileUnkSCCN::ActorProfileUnkSCCN() :
|
||||
ActorUnkSCCN::ActorUnkSCCN() {}
|
||||
|
||||
// non-matching
|
||||
bool ActorUnkSCCN::vfunc_18(unk32 param1) {
|
||||
bool ActorUnkSCCN::Init(unk32 param1) {
|
||||
if (this->mUnk_5C.mParams[1] == 0x0) {
|
||||
return false;
|
||||
}
|
||||
@@ -51,7 +51,7 @@ bool ActorUnkSCCN::vfunc_18(unk32 param1) {
|
||||
this->mUnk_94.mUnk_07 = 0x13;
|
||||
} else {
|
||||
unk32 var;
|
||||
switch (((u32) (this->mAngle + DEG_TO_ANG(45)) << 0x10) >> 0x1E) {
|
||||
switch (((u32) (this->mAngle.angle_s + DEG_TO_ANG(45)) << 0x10) >> 0x1E) {
|
||||
case 0:
|
||||
var = 9;
|
||||
break;
|
||||
|
||||
@@ -19,11 +19,11 @@ ActorProfileUnkSKDO::ActorProfileUnkSKDO() :
|
||||
ActorUnkSKDO::ActorUnkSKDO() :
|
||||
mUnk_98(NULL) {}
|
||||
|
||||
bool ActorUnkSKDO::vfunc_18(unk32 param1) {
|
||||
bool ActorUnkSKDO::Init(unk32 param1) {
|
||||
return true;
|
||||
}
|
||||
|
||||
void ActorUnkSKDO::vfunc_1C() {
|
||||
void ActorUnkSKDO::Setup() {
|
||||
ActorUnkSKDO_ov031_02115ce8 stack(MapObjectId_SKDI);
|
||||
stack.mUnk_08 = this->mPos;
|
||||
stack.mUnk_14 = FLOAT_TO_FX32(2.0f);
|
||||
@@ -35,7 +35,7 @@ void ActorUnkSKDO::vfunc_1C() {
|
||||
}
|
||||
}
|
||||
|
||||
void ActorUnkSKDO::vfunc_20() {
|
||||
void ActorUnkSKDO::Update() {
|
||||
unk32 var2 = 0x0;
|
||||
if (this->mUnk_98->vfunc_40() == 0x2) {
|
||||
var2 = 0x1;
|
||||
|
||||
@@ -36,7 +36,7 @@ bool ActorUnkSWBM_98::vfunc_0C(Actor *param1, VecFx32 *vector) {
|
||||
return retValue;
|
||||
}
|
||||
|
||||
u16 angle = this->mUnk_2C->mAngle;
|
||||
u16 angle = this->mUnk_2C->mAngle.angle_s;
|
||||
|
||||
vector->x = SIN(angle);
|
||||
vector->y = FLOAT_TO_FX32(0.0f);
|
||||
@@ -76,7 +76,7 @@ void ActorUnkSWBM_C8::vfunc_00(unk32 param1, unk32 param2) {
|
||||
|
||||
Mat3p mat;
|
||||
|
||||
u16 angle = actor->mAngle;
|
||||
u16 angle = actor->mAngle.angle_s;
|
||||
Mat3p_InitYRotation(&mat, SIN(angle), COS(angle));
|
||||
|
||||
s16 var_r8 = 0xB33;
|
||||
@@ -115,12 +115,11 @@ ActorUnkSWBM::ActorUnkSWBM() :
|
||||
mUnk_108(0x0),
|
||||
mUnk_10A(0x0) {
|
||||
MI_CpuFill32(0x0, this->mUnk_0E4, ARRAY_LEN(this->mUnk_0E4) * sizeof *this->mUnk_0E4);
|
||||
this->mState = ActorUnkSWBMState_0;
|
||||
this->mTimerMax = 0xFFFF;
|
||||
this->mTimer = 0x0000;
|
||||
this->mState = ActorUnkSWBMState_0;
|
||||
this->mTimer.Reset();
|
||||
}
|
||||
|
||||
bool ActorUnkSWBM::vfunc_18(unk32 param1) {
|
||||
bool ActorUnkSWBM::Init(unk32 param1) {
|
||||
this->mUnk_44 = 0x1F;
|
||||
this->mUnk_098.mUnk_04 = this->mRef;
|
||||
|
||||
@@ -128,8 +127,8 @@ bool ActorUnkSWBM::vfunc_18(unk32 param1) {
|
||||
VecFx32_Copy(&this->mPos, &this->mUnk_098.mUnk_0C.pos);
|
||||
this->mUnk_098.mUnk_0C.size = FLOAT_TO_FX32(0.35f);
|
||||
|
||||
this->mVel.x = MUL_FX32(SIN((u16) this->mAngle), 0xB33);
|
||||
this->mVel.z = MUL_FX32(COS((u16) this->mAngle), 0xB33);
|
||||
this->mVel.x = MUL_FX32(SIN((u16) this->mAngle.angle_s), 0xB33);
|
||||
this->mVel.z = MUL_FX32(COS((u16) this->mAngle.angle_s), 0xB33);
|
||||
this->mVel.y = FLOAT_TO_FX32(0.0f);
|
||||
return true;
|
||||
}
|
||||
@@ -163,7 +162,7 @@ void ActorUnkSWBM::func_ov031_020e6d80(unk32 param1) {
|
||||
|
||||
data_027e0cec->func_ov000_0209feac(0x8E0, &this->mPos, 0x1, 0x0, 0x0);
|
||||
|
||||
s16 angle = this->mAngle - DEG_TO_ANG(180);
|
||||
s16 angle = this->mAngle.angle_s - DEG_TO_ANG(180);
|
||||
|
||||
vecSp08.x = SIN((u16) angle);
|
||||
vecSp08.y = FLOAT_TO_FX32(0.0f);
|
||||
@@ -179,7 +178,7 @@ void ActorUnkSWBM::func_ov031_020e6d80(unk32 param1) {
|
||||
void ActorUnkSWBM::func_ov031_020e6e84(ActorState state) {
|
||||
switch (state) {
|
||||
case ActorUnkSWBMState_2:
|
||||
UNSET_FLAG(this->mFlags, ActorFlag_Alive);
|
||||
this->Kill();
|
||||
break;
|
||||
case ActorUnkSWBMState_1:
|
||||
if (this->mUnk_0E0 > 0x6) {
|
||||
@@ -190,13 +189,12 @@ void ActorUnkSWBM::func_ov031_020e6e84(ActorState state) {
|
||||
this->mVel.z /= 3;
|
||||
break;
|
||||
}
|
||||
this->mState = state;
|
||||
this->mTimerMax = 0xFFFF;
|
||||
this->mTimer = 0x0000;
|
||||
this->mState = state;
|
||||
this->mTimer.Reset();
|
||||
}
|
||||
|
||||
// non-matching
|
||||
void ActorUnkSWBM::vfunc_20() {
|
||||
void ActorUnkSWBM::Update() {
|
||||
VecFx32_Copy(&this->mPos, &this->mPrevPos);
|
||||
VecFx32_Add(&this->mPos, &this->mVel, &this->mPos);
|
||||
|
||||
@@ -220,7 +218,7 @@ void ActorUnkSWBM::vfunc_20() {
|
||||
}
|
||||
}
|
||||
|
||||
this->IsTimerOut();
|
||||
this->mTimer.Update();
|
||||
|
||||
if (this->mState != ActorUnkSWBMState_2) {
|
||||
if (!Actor::func_ov017_020beeec(0x0)) {
|
||||
@@ -234,8 +232,7 @@ void ActorUnkSWBM::vfunc_20() {
|
||||
}
|
||||
|
||||
switch (this->mState) {
|
||||
case ActorUnkSWBMState_0:
|
||||
|
||||
case ActorUnkSWBMState_0: {
|
||||
if (this->func_ov000_02098ab4(0x4, 0x19, 0x2, &this->mVel)) {
|
||||
this->func_ov031_020e6d80(-0x1);
|
||||
} else {
|
||||
@@ -258,8 +255,11 @@ void ActorUnkSWBM::vfunc_20() {
|
||||
|
||||
this->func_ov031_020e6d80(-0x1);
|
||||
break;
|
||||
}
|
||||
case ActorUnkSWBMState_1:
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -268,7 +268,7 @@ void ActorUnkSWBM::vfunc_24() {
|
||||
this->func_ov031_020e6e84(ActorUnkSWBMState_1);
|
||||
return;
|
||||
}
|
||||
this->vfunc_20();
|
||||
this->Update();
|
||||
}
|
||||
|
||||
// non-matching
|
||||
|
||||
@@ -17,13 +17,13 @@ ActorProfileUnkSWCH::ActorProfileUnkSWCH() :
|
||||
ActorUnkSWCH::ActorUnkSWCH() :
|
||||
mUnk_94(0x1) {}
|
||||
|
||||
bool ActorUnkSWCH::vfunc_18(unk32 param1) {
|
||||
bool ActorUnkSWCH::Init(unk32 param1) {
|
||||
this->mUnk_98.mUnk_04 = 0x0;
|
||||
this->mUnk_98.mUnk_04 |= 0x10000;
|
||||
return true;
|
||||
}
|
||||
|
||||
void ActorUnkSWCH::vfunc_20() {
|
||||
void ActorUnkSWCH::Update() {
|
||||
if (!this->func_ov000_02098a60(0x0) && this->mUnk_5C.mUnk_1A[0] != 0x0) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -12,7 +12,7 @@ ActorProfileUnkSWON::ActorProfileUnkSWON() :
|
||||
|
||||
ActorUnkSWON::ActorUnkSWON() {}
|
||||
|
||||
bool ActorUnkSWON::vfunc_18(unk32 param1) {
|
||||
bool ActorUnkSWON::Init(unk32 param1) {
|
||||
switch (this->mUnk_5C.mParams[0]) {
|
||||
case 0x0:
|
||||
if (!this->func_ov000_02098a60(0x1)) {
|
||||
|
||||
@@ -43,12 +43,10 @@ ActorUnkTGTZ::ActorUnkTGTZ() :
|
||||
mUnk_1B4(NULL),
|
||||
mUnk_1B8(0x0),
|
||||
mUnk_1BC(-0x1),
|
||||
mUnk_1C0(0x0),
|
||||
mUnk_1C2(0x0),
|
||||
mUnk_1C0(0, 0),
|
||||
mUnk_1C4(FLOAT_TO_FX32(0.0f)),
|
||||
mUnk_1CC(0x0),
|
||||
mUnk_1D0(0x0),
|
||||
mUnk_1D2(0x0),
|
||||
mUnk_1D0(0, 0),
|
||||
mUnk_1D4(0x0),
|
||||
mUnk_1D6(0x0),
|
||||
mUnk_1D8(false),
|
||||
@@ -61,16 +59,16 @@ ActorUnkTGTZ::ActorUnkTGTZ() :
|
||||
void ActorUnkTGTZ::func_ov031_020f6984() {}
|
||||
|
||||
// non-matching
|
||||
bool ActorUnkTGTZ::vfunc_18(unk32 param1) {
|
||||
bool ActorUnkTGTZ::Init(unk32 param1) {
|
||||
if (this->mUnk_5C.mUnk_1A[0] != 0x0) {
|
||||
this->mPos.y = MUL_FX32(this->mUnk_5C.mUnk_1A[0] << 0xC, 0x1333);
|
||||
}
|
||||
Mat3p_InitYRotation(&this->mUnk_190, SIN((u16) this->mAngle), COS((u16) this->mAngle));
|
||||
Mat3p_InitYRotation(&this->mUnk_190, SIN((u16) this->mAngle.angle_s), COS((u16) this->mAngle.angle_s));
|
||||
data_ov031_02116b58.func_ov000_0205fc20(0x5D, 0x32, NULL, NULL);
|
||||
((UnkStruct_ov019_020d24c8_28_258_00 *) GET_PROFILE(ActorProfileUnkNTTZ))->func_ov000_0205fc20(0x5D, 0x31, NULL, NULL);
|
||||
|
||||
unk32 temp_r3_2 = this->mUnk_5C.mParams[1];
|
||||
unk32 temp_r0 = (u16) (((s16) this->mAngle + 0x2000)) >> 0xE;
|
||||
unk32 temp_r0 = (u16) (((s16) this->mAngle.angle_s + 0x2000)) >> 0xE;
|
||||
if ((temp_r0 != 0) && (temp_r0 != 2)) {
|
||||
this->mUnk_1C8 = (UnkStruct_ov019_020d24c8_28_258_00 *) GET_PROFILE(ActorProfileUnkNTTZ);
|
||||
} else {
|
||||
@@ -97,9 +95,9 @@ bool ActorUnkTGTZ::vfunc_18(unk32 param1) {
|
||||
}
|
||||
|
||||
// non-matching
|
||||
void ActorUnkTGTZ::vfunc_20() {
|
||||
void ActorUnkTGTZ::Update() {
|
||||
switch (this->mUnk_1B8) {
|
||||
case 0x0:
|
||||
case 0x0: {
|
||||
if (!this->func_ov000_02098a60(0x0)) {
|
||||
break;
|
||||
}
|
||||
@@ -119,8 +117,8 @@ void ActorUnkTGTZ::vfunc_20() {
|
||||
|
||||
stack.mUnk_24 = r3->mUnk_0C;
|
||||
|
||||
u16 unk_18 = *(volatile u16 *) &r3->mUnk_18; //! TODO: Timer?
|
||||
u16 unk_1A = r3->mUnk_1A;
|
||||
u16 unk_18 = r3->mUnk_18;
|
||||
stack.mUnk_30 = unk_18;
|
||||
stack.mUnk_32 = unk_1A;
|
||||
|
||||
@@ -137,6 +135,7 @@ void ActorUnkTGTZ::vfunc_20() {
|
||||
this->mUnk_1BC = data_027e09b8->func_ov000_02073388(&stack, 0x0);
|
||||
this->func_ov031_020f6f20(0x1);
|
||||
break;
|
||||
}
|
||||
case 0x2:
|
||||
if (this->mUnk_5C.mUnk_1A[0] == 0x0) {
|
||||
break;
|
||||
@@ -150,13 +149,14 @@ void ActorUnkTGTZ::vfunc_20() {
|
||||
}
|
||||
this->func_ov031_020f6f20(0x0);
|
||||
break;
|
||||
case 0x1:
|
||||
case 0x1: {
|
||||
if (data_027e09b8->func_ov000_020732ec(this->mUnk_1BC) == 0x0) {
|
||||
return;
|
||||
}
|
||||
u16 var1 = this->mUnk_1C2;
|
||||
u16 var2 = this->mUnk_1C0;
|
||||
if (var2 >= var1) {
|
||||
|
||||
u16 max = this->mUnk_1C0.max;
|
||||
u16 time = this->mUnk_1C0.value;
|
||||
if (time >= max) {
|
||||
data_027e09a8->func_ov000_02071b30(0xF0, &this->mPos, 0x0);
|
||||
this->func_ov031_020f6f20(0x2);
|
||||
if (!this->mUnk_5C.mUnk_0F) {
|
||||
@@ -165,12 +165,13 @@ void ActorUnkTGTZ::vfunc_20() {
|
||||
data_027e09a8->func_ov000_020716dc(0x1E);
|
||||
return;
|
||||
}
|
||||
if (var2 >= var1) {
|
||||
if (time >= max) {
|
||||
func_01ff916c(&this->mUnk_1C4, 0x0, 0x333);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 0x3:
|
||||
if (!this->IsInternalTimerOut()) {
|
||||
if (!this->mUnk_1D0.HasExpired()) {
|
||||
break;
|
||||
}
|
||||
this->func_ov031_020f6f20(0x5);
|
||||
@@ -194,7 +195,7 @@ void ActorUnkTGTZ::vfunc_20() {
|
||||
this->func_ov031_020f6f20(0x3);
|
||||
break;
|
||||
case 0x6:
|
||||
if (!this->IsInternalTimerOut()) {
|
||||
if (!this->mUnk_1D0.HasExpired()) {
|
||||
break;
|
||||
}
|
||||
this->func_ov031_020f6f20(0x4);
|
||||
@@ -211,13 +212,12 @@ void ActorUnkTGTZ::vfunc_20() {
|
||||
VecFx32_Init(vecSp00.x, vecSp00.y, vecSp00.z, &actor->mPos);
|
||||
VecFx32_Init(vecSp00.x, vecSp00.y, vecSp00.z, &actor->mPrevPos);
|
||||
}
|
||||
if (this->mUnk_1C0 < this->mUnk_1C2) {
|
||||
++this->mUnk_1C0;
|
||||
}
|
||||
|
||||
this->mUnk_1C0.Update();
|
||||
}
|
||||
|
||||
void ActorUnkTGTZ::vfunc_24() {
|
||||
this->vfunc_20();
|
||||
this->Update();
|
||||
}
|
||||
|
||||
void ActorUnkTGTZ::func_ov031_020f6e5c(ActorRef param1) {
|
||||
@@ -249,8 +249,7 @@ void ActorUnkTGTZ::func_ov031_020f6ea8(ActorRef *param0, u16 param1, const VecFx
|
||||
|
||||
void ActorUnkTGTZ::func_ov031_020f6f20(unk32 param1) {
|
||||
this->mUnk_1B8 = param1;
|
||||
this->mUnk_1C2 = 0xFFFF;
|
||||
this->mUnk_1C0 = 0x0;
|
||||
this->mUnk_1C0.Reset();
|
||||
|
||||
switch (param1) {
|
||||
case 0x0:
|
||||
@@ -260,15 +259,15 @@ void ActorUnkTGTZ::func_ov031_020f6f20(unk32 param1) {
|
||||
this->func_ov031_020f6e5c(this->mUnk_1DC);
|
||||
this->mUnk_1DC = 0x0;
|
||||
break;
|
||||
case 0x1:
|
||||
this->mUnk_1C2 = 0x1E;
|
||||
this->mUnk_1C0 = 0x0;
|
||||
case 0x1: {
|
||||
this->mUnk_1C0.Set(0, 30);
|
||||
SET_FLAG(this->mFlags, ActorFlag_Visible);
|
||||
ActorRef ref;
|
||||
this->func_ov031_020f6ea8(&ref, 0x0, &this->mPos, 0x0, 0x1);
|
||||
this->mUnk_1DC = ref;
|
||||
break;
|
||||
case 0x2:
|
||||
}
|
||||
case 0x2: {
|
||||
this->mUnk_1BC = -0x1;
|
||||
this->mUnk_1C4 = FLOAT_TO_FX32(0.0f);
|
||||
SET_FLAG(this->mFlags, ActorFlag_Visible);
|
||||
@@ -303,11 +302,11 @@ void ActorUnkTGTZ::func_ov031_020f6f20(unk32 param1) {
|
||||
|
||||
this->func_ov031_020f6f20(0x3);
|
||||
break;
|
||||
}
|
||||
case 0x3:
|
||||
this->mUnk_1C4 = FLOAT_TO_FX32(-1.0002f);
|
||||
SET_FLAG(this->mFlags, ActorFlag_Visible);
|
||||
this->mUnk_1D2 = this->mUnk_1D4;
|
||||
this->mUnk_1D0 = 0x0;
|
||||
this->mUnk_1D0.Set(0, this->mUnk_1D4);
|
||||
break;
|
||||
case 0x5:
|
||||
data_027e09a8->func_ov000_02071b30(0x10E, &this->mPos, 0x0);
|
||||
@@ -318,8 +317,7 @@ void ActorUnkTGTZ::func_ov031_020f6f20(unk32 param1) {
|
||||
break;
|
||||
case 0x6:
|
||||
this->mUnk_1C4 = FLOAT_TO_FX32(1.0f);
|
||||
this->mUnk_1D2 = this->mUnk_1D6;
|
||||
this->mUnk_1D0 = 0x0;
|
||||
this->mUnk_1D0.Set(0, this->mUnk_1D6);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
@@ -349,7 +347,7 @@ void ActorUnkTGTZ::vfunc_30(Actor_vfunc_30 *param1) {
|
||||
|
||||
unk32 var_r5 = 0;
|
||||
unk32 var_r6 = 0;
|
||||
switch (((u16) (((s16) this->mAngle + 0x2000)) >> 0xE)) {
|
||||
switch (((u16) (((s16) this->mAngle.angle_s + 0x2000)) >> 0xE)) {
|
||||
case 0x3:
|
||||
var_r5 = 0x10000 >> 0x10;
|
||||
break;
|
||||
@@ -373,10 +371,10 @@ void ActorUnkTGTZ::vfunc_2C(Actor_vfunc_30 *param1) {
|
||||
|
||||
if (this->mUnk_1CC == 0x0) {
|
||||
VecFx32_Init(-this->mUnk_1C4, FLOAT_TO_FX32(0.0f), FLOAT_TO_FX32(0.0f), &vec1);
|
||||
func_01ff9638(&vec1, this->mAngle);
|
||||
func_01ff9638(&vec1, this->mAngle.angle_s);
|
||||
} else {
|
||||
VecFx32_Init(FLOAT_TO_FX32(0.0f), FLOAT_TO_FX32(0.0f), FLOAT_TO_FX32(0.0f), &vec1);
|
||||
func_01ff9638(&vec1, this->mAngle);
|
||||
func_01ff9638(&vec1, this->mAngle.angle_s);
|
||||
vec1.y = this->mUnk_1C4;
|
||||
}
|
||||
|
||||
@@ -394,7 +392,7 @@ void ActorUnkTGTZ::func_ov031_020f7358() {
|
||||
params.mUnk_28 = 0x0;
|
||||
params.func_ov000_020975f8();
|
||||
|
||||
params.mInitialAngle = this->mAngle;
|
||||
params.mInitialAngle = this->mAngle.angle_s;
|
||||
params.mUnk_28 = this->mRef;
|
||||
|
||||
Actor::func_ov000_020973f4(&ref, &data_ov000_020b539c_eur, ActorId_NTTZ, ¶ms, 0x0);
|
||||
|
||||
@@ -83,7 +83,7 @@ void ActorUnkTLKT::vfunc_68() {
|
||||
|
||||
void ActorUnkTLKT::vfunc_60(ActorState state) {
|
||||
switch (state) {
|
||||
case ActorUnkTLKTState_1:
|
||||
case ActorUnkTLKTState_1: {
|
||||
Actor *actor = this->func_ov031_020e3df8();
|
||||
if (this->mUnk_5C.mParams[0] == 0x0 && actor == NULL) {
|
||||
this->vfunc_60(ActorUnkTLKTState_5);
|
||||
@@ -133,6 +133,7 @@ void ActorUnkTLKT::vfunc_60(ActorState state) {
|
||||
actorUnkSp40.mUnk_30 = func_ov031_020e3dd0(this);
|
||||
this->mUnk_04 = data_027e09b8->func_ov000_02073470(&actorUnkSp40, 0x0);
|
||||
break;
|
||||
}
|
||||
case ActorUnkTLKTState_3:
|
||||
UnkStackStruct1 unkSp00;
|
||||
func_ov000_02072fd0(&unkSp00);
|
||||
|
||||
@@ -45,42 +45,42 @@ static char data_ov031_021135f4[0x4] = "3\x03";
|
||||
static char data_ov031_021135f8[0x4] = "\x00\x10";
|
||||
static ActorUnkZLSL_AnimationTag data_ov031_021135fc = {0, "wait"};
|
||||
static PTMF<ActorUnkZLSL> data_ov031_021137f8[0x11] = {
|
||||
ActorUnkZLSL::func_ov031_020eaa88, // ActorUnkZLSLState_0
|
||||
ActorUnkZLSL::func_ov031_020ea8c8, // ActorUnkZLSLState_1
|
||||
ActorUnkZLSL::func_ov031_020ea8c4, // ActorUnkZLSLState_2
|
||||
ActorUnkZLSL::func_ov031_020ea8c0, // ActorUnkZLSLState_3
|
||||
ActorUnkZLSL::func_ov031_020eace0, // ActorUnkZLSLState_4
|
||||
ActorUnkZLSL::func_ov031_020ead78, // ActorUnkZLSLState_5
|
||||
ActorUnkZLSL::func_ov031_020ec058, // ActorUnkZLSLState_6
|
||||
ActorUnkZLSL::func_ov031_020ec0a8, // ActorUnkZLSLState_7
|
||||
ActorUnkZLSL::func_ov031_020ec12c, // ActorUnkZLSLState_8
|
||||
ActorUnkZLSL::func_ov031_020eb61c, // ActorUnkZLSLState_9
|
||||
ActorUnkZLSL::func_ov031_020eafb0, // ActorUnkZLSLState_10
|
||||
ActorUnkZLSL::func_ov031_020eb218, // ActorUnkZLSLState_11
|
||||
ActorUnkZLSL::func_ov031_020ec028, // ActorUnkZLSLState_12
|
||||
ActorUnkZLSL::func_ov031_020eb158, // ActorUnkZLSLState_13
|
||||
ActorUnkZLSL::func_ov031_020eab0c, // ActorUnkZLSLState_14
|
||||
ActorUnkZLSL::func_ov031_020ec170, // ActorUnkZLSLState_15
|
||||
ActorUnkZLSL::func_ov031_020eba8c, // ActorUnkZLSLState_16
|
||||
&ActorUnkZLSL::func_ov031_020eaa88, // ActorUnkZLSLState_0
|
||||
&ActorUnkZLSL::func_ov031_020ea8c8, // ActorUnkZLSLState_1
|
||||
&ActorUnkZLSL::func_ov031_020ea8c4, // ActorUnkZLSLState_2
|
||||
&ActorUnkZLSL::func_ov031_020ea8c0, // ActorUnkZLSLState_3
|
||||
&ActorUnkZLSL::func_ov031_020eace0, // ActorUnkZLSLState_4
|
||||
&ActorUnkZLSL::func_ov031_020ead78, // ActorUnkZLSLState_5
|
||||
&ActorUnkZLSL::func_ov031_020ec058, // ActorUnkZLSLState_6
|
||||
&ActorUnkZLSL::func_ov031_020ec0a8, // ActorUnkZLSLState_7
|
||||
&ActorUnkZLSL::func_ov031_020ec12c, // ActorUnkZLSLState_8
|
||||
&ActorUnkZLSL::func_ov031_020eb61c, // ActorUnkZLSLState_9
|
||||
&ActorUnkZLSL::func_ov031_020eafb0, // ActorUnkZLSLState_10
|
||||
&ActorUnkZLSL::func_ov031_020eb218, // ActorUnkZLSLState_11
|
||||
&ActorUnkZLSL::func_ov031_020ec028, // ActorUnkZLSLState_12
|
||||
&ActorUnkZLSL::func_ov031_020eb158, // ActorUnkZLSLState_13
|
||||
&ActorUnkZLSL::func_ov031_020eab0c, // ActorUnkZLSLState_14
|
||||
&ActorUnkZLSL::func_ov031_020ec170, // ActorUnkZLSLState_15
|
||||
&ActorUnkZLSL::func_ov031_020eba8c, // ActorUnkZLSLState_16
|
||||
};
|
||||
static PTMF<ActorUnkZLSL> data_ov031_02113770[0x11] = {
|
||||
ActorUnkZLSL::func_ov031_020eaa68, // ActorUnkZLSLState_0
|
||||
ActorUnkZLSL::func_ov031_020ea86c, // ActorUnkZLSLState_1
|
||||
ActorUnkZLSL::func_ov031_020ea868, // ActorUnkZLSLState_2
|
||||
ActorUnkZLSL::func_ov031_020ea864, // ActorUnkZLSLState_3
|
||||
ActorUnkZLSL::func_ov031_020eac64, // ActorUnkZLSLState_4
|
||||
ActorUnkZLSL::func_ov031_020ead0c, // ActorUnkZLSLState_5
|
||||
ActorUnkZLSL::func_ov031_020ec034, // ActorUnkZLSLState_6
|
||||
ActorUnkZLSL::func_ov031_020ec05c, // ActorUnkZLSLState_7
|
||||
ActorUnkZLSL::func_ov031_020ec0d4, // ActorUnkZLSLState_8
|
||||
ActorUnkZLSL::func_ov031_020eb5f8, // ActorUnkZLSLState_9
|
||||
ActorUnkZLSL::func_ov031_020ead7c, // ActorUnkZLSLState_10
|
||||
ActorUnkZLSL::func_ov031_020eb188, // ActorUnkZLSLState_11
|
||||
ActorUnkZLSL::func_ov031_020ebfd8, // ActorUnkZLSLState_12
|
||||
ActorUnkZLSL::func_ov031_020eafe0, // ActorUnkZLSLState_13
|
||||
ActorUnkZLSL::func_ov031_020eaa8c, // ActorUnkZLSLState_14
|
||||
ActorUnkZLSL::func_ov031_020ec164, // ActorUnkZLSLState_15
|
||||
ActorUnkZLSL::func_ov031_020eba58, // ActorUnkZLSLState_16
|
||||
&ActorUnkZLSL::func_ov031_020eaa68, // ActorUnkZLSLState_0
|
||||
&ActorUnkZLSL::func_ov031_020ea86c, // ActorUnkZLSLState_1
|
||||
&ActorUnkZLSL::func_ov031_020ea868, // ActorUnkZLSLState_2
|
||||
&ActorUnkZLSL::func_ov031_020ea864, // ActorUnkZLSLState_3
|
||||
&ActorUnkZLSL::func_ov031_020eac64, // ActorUnkZLSLState_4
|
||||
&ActorUnkZLSL::func_ov031_020ead0c, // ActorUnkZLSLState_5
|
||||
&ActorUnkZLSL::func_ov031_020ec034, // ActorUnkZLSLState_6
|
||||
&ActorUnkZLSL::func_ov031_020ec05c, // ActorUnkZLSLState_7
|
||||
&ActorUnkZLSL::func_ov031_020ec0d4, // ActorUnkZLSLState_8
|
||||
&ActorUnkZLSL::func_ov031_020eb5f8, // ActorUnkZLSLState_9
|
||||
&ActorUnkZLSL::func_ov031_020ead7c, // ActorUnkZLSLState_10
|
||||
&ActorUnkZLSL::func_ov031_020eb188, // ActorUnkZLSLState_11
|
||||
&ActorUnkZLSL::func_ov031_020ebfd8, // ActorUnkZLSLState_12
|
||||
&ActorUnkZLSL::func_ov031_020eafe0, // ActorUnkZLSLState_13
|
||||
&ActorUnkZLSL::func_ov031_020eaa8c, // ActorUnkZLSLState_14
|
||||
&ActorUnkZLSL::func_ov031_020ec164, // ActorUnkZLSLState_15
|
||||
&ActorUnkZLSL::func_ov031_020eba58, // ActorUnkZLSLState_16
|
||||
};
|
||||
static ActorUnkZLSL_AnimationTag data_ov031_02113a08 = {0, "blink"};
|
||||
static ActorUnkZLSL_AnimationTag data_ov031_02113a20 = {0x01, "happy"};
|
||||
@@ -172,7 +172,7 @@ void ActorUnkZLSL::func_ov031_020ea674() {
|
||||
this->vfunc_58(ActorUnkZLSLState_8);
|
||||
}
|
||||
|
||||
bool ActorUnkZLSL::vfunc_18(unk32 param1) {
|
||||
bool ActorUnkZLSL::Init(unk32 param1) {
|
||||
this->mUnk_1620.func_ov000_02057c38(0x6, 0x2);
|
||||
this->mUnk_1620.func_ov000_0209a7b8(this, this->func_ov000_020a9804);
|
||||
|
||||
@@ -255,9 +255,9 @@ void ActorUnkZLSL::func_ov031_020ea8c4() {}
|
||||
// non-matching
|
||||
void ActorUnkZLSL::func_ov031_020ea8c8() {}
|
||||
|
||||
void ActorUnkZLSL::vfunc_20() {
|
||||
void ActorUnkZLSL::Update() {
|
||||
UnkAngleStruct angleTmp;
|
||||
angleTmp.angle = this->mAngle;
|
||||
angleTmp.angle_u = this->mAngle.angle_u;
|
||||
CALL_PTMF(PTMF<ActorUnkZLSL>, data_ov031_021137f8[this->mState]);
|
||||
|
||||
if (!GET_FLAG(this->mFlags, ActorFlag_Visible)) {
|
||||
@@ -365,7 +365,7 @@ void ActorUnkZLSL::func_ov031_020eab40(unk32 param1) {
|
||||
}
|
||||
VecFx32 *pVec2 = this->func_ov000_0209853c(0x0);
|
||||
|
||||
func_01ff930c(&this->mAngle, func_02016958(&this->mPos, pVec2), 0x71C);
|
||||
func_01ff930c(&this->mAngle.angle_s, func_02016958(&this->mPos, pVec2), 0x71C);
|
||||
}
|
||||
|
||||
void ActorUnkZLSL::func_ov031_020eac64() {
|
||||
@@ -435,10 +435,9 @@ void ActorUnkZLSL::func_ov031_020ead7c() {
|
||||
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->mTimerMax = 0xA;
|
||||
this->mTimer = 0x0;
|
||||
this->mUnk_2884 = 0x0;
|
||||
this->mUnk_2888 = 0x0;
|
||||
this->mTimer.Set(0, 10);
|
||||
this->mUnk_2884 = 0x0;
|
||||
this->mUnk_2888 = 0x0;
|
||||
}
|
||||
|
||||
void ActorUnkZLSL::func_ov031_020eafb0() {
|
||||
@@ -503,7 +502,7 @@ void ActorUnkZLSL::func_ov031_020eb218() {
|
||||
bool ActorUnkZLSL::func_ov031_020eb2b0(VecFx32 *param1, unk32 param2) {
|
||||
func_01ff916c(&this->mUnk_27CC.mUnk_1C, param1->y, 0xCD);
|
||||
unk16 res = func_02016958(&this->mPos, param1);
|
||||
func_01ff930c(&this->mAngle, res, 0x71C);
|
||||
func_01ff930c(&this->mAngle.angle_s, res, 0x71C);
|
||||
|
||||
VecFx32 vec = *param1;
|
||||
vec.y += 0x800;
|
||||
@@ -558,8 +557,7 @@ void ActorUnkZLSL::func_ov031_020eb61c() {
|
||||
}
|
||||
this->func_ov031_020ecc68(0x0);
|
||||
actor->func_ov071_021540ac(0x19);
|
||||
this->mTimerMax = 0x14;
|
||||
this->mTimer = 0x0;
|
||||
this->mTimer.Set(0, 20);
|
||||
++this->mUnk_286E;
|
||||
break;
|
||||
case 0x1:
|
||||
@@ -569,7 +567,7 @@ void ActorUnkZLSL::func_ov031_020eb61c() {
|
||||
if (data_027e09b8->func_ov000_020732ec(this->mUnk_28C8) == 0x0) {
|
||||
return;
|
||||
}
|
||||
if (this->IsTimerOut()) {
|
||||
if (this->mTimer.HasExpired()) {
|
||||
this->func_ov031_020eafe0();
|
||||
++this->mUnk_286E;
|
||||
}
|
||||
@@ -579,8 +577,7 @@ void ActorUnkZLSL::func_ov031_020eb61c() {
|
||||
this->func_ov031_020edd14(&vec);
|
||||
vec.y = this->mPos.y;
|
||||
if (this->func_ov031_020ed6cc(0xC00)) {
|
||||
this->mTimerMax = 0xF;
|
||||
this->mTimer = 0x0;
|
||||
this->mTimer.Set(0, 15);
|
||||
++this->mUnk_286E;
|
||||
}
|
||||
this->mAngle = func_02016958(&this->mPos, &vec);
|
||||
@@ -591,7 +588,7 @@ void ActorUnkZLSL::func_ov031_020eb61c() {
|
||||
this->func_ov031_020ed4e4(0x5, 0x93F);
|
||||
break;
|
||||
case 0x3:
|
||||
if (this->IsTimerOut()) {
|
||||
if (this->mTimer.HasExpired()) {
|
||||
++this->mUnk_286E;
|
||||
this->mUnk_2884 = 0x0;
|
||||
this->func_ov031_020eb188();
|
||||
@@ -623,13 +620,12 @@ void ActorUnkZLSL::func_ov031_020eb61c() {
|
||||
++this->mUnk_286E;
|
||||
data_027e0d8c->func_ov093_021660a8(this->mUnk_28DC);
|
||||
actor->func_ov071_021540ac(0x1A);
|
||||
this->mTimerMax = 0x1E;
|
||||
this->mTimer = 0x0;
|
||||
this->mTimer.Set(0, 30);
|
||||
}
|
||||
this->func_ov031_020ed4e4(0x5, 0x93F);
|
||||
break;
|
||||
case 0x6:
|
||||
if (this->IsTimerOut()) {
|
||||
if (this->mTimer.HasExpired()) {
|
||||
data_027e09b8->func_ov000_020732fc(this->mUnk_28C8);
|
||||
this->mUnk_28A4.x = FLOAT_TO_FX32(1.0f);
|
||||
this->mUnk_28A4.y = FLOAT_TO_FX32(1.0f);
|
||||
@@ -661,8 +657,7 @@ void ActorUnkZLSL::func_ov031_020eba8c() {
|
||||
}
|
||||
this->func_ov031_020ecc68(0x1);
|
||||
actor->func_ov071_021540ac(0x19);
|
||||
this->mTimerMax = 0x14;
|
||||
this->mTimer = 0x0;
|
||||
this->mTimer.Set(0, 20);
|
||||
++this->mUnk_286E;
|
||||
break;
|
||||
case 0x1:
|
||||
@@ -672,7 +667,7 @@ void ActorUnkZLSL::func_ov031_020eba8c() {
|
||||
if (data_027e09b8->func_ov000_020732ec(this->mUnk_28C8) == 0x0) {
|
||||
return;
|
||||
}
|
||||
if (this->IsTimerOut()) {
|
||||
if (this->mTimer.HasExpired()) {
|
||||
this->func_ov031_020ead7c();
|
||||
data_027e0d8c->func_ov090_021660e8();
|
||||
data_027e0d8c->func_ov093_021660f8();
|
||||
@@ -684,8 +679,7 @@ void ActorUnkZLSL::func_ov031_020eba8c() {
|
||||
this->func_ov031_020edd14(&vec);
|
||||
vec.y = this->mPos.y;
|
||||
if (this->func_ov031_020ed8ac(0x800)) {
|
||||
this->mTimerMax = 0xF;
|
||||
this->mTimer = 0x0;
|
||||
this->mTimer.Set(0, 15);
|
||||
++this->mUnk_286E;
|
||||
}
|
||||
this->mAngle = func_02016958(&this->mPos, &vec);
|
||||
@@ -695,12 +689,11 @@ void ActorUnkZLSL::func_ov031_020eba8c() {
|
||||
this->func_ov031_020ed4e4(0x5, 0x93F);
|
||||
break;
|
||||
case 0x3:
|
||||
if (this->IsTimerOut()) {
|
||||
if (this->mTimer.HasExpired()) {
|
||||
data_027e0d8c->func_ov093_02166108();
|
||||
++this->mUnk_286E;
|
||||
this->mUnk_2884 = 0x0;
|
||||
this->mTimerMax = 0x1E;
|
||||
this->mTimer = 0x0;
|
||||
this->mTimer.Set(0, 30);
|
||||
this->func_ov031_020eb188();
|
||||
}
|
||||
VecFx32_Copy(&this->mPos, &vec);
|
||||
@@ -708,7 +701,7 @@ void ActorUnkZLSL::func_ov031_020eba8c() {
|
||||
|
||||
this->func_ov031_020ed4e4(0x5, 0x93F);
|
||||
break;
|
||||
case 0x4:
|
||||
case 0x4: {
|
||||
VecFx32 *pVec = this->func_ov000_0209853c(0x0);
|
||||
if (func_01ff9258(this->mPos.x - pVec->x, this->mPos.z - pVec->z) > 0x3000) {
|
||||
this->func_ov031_020eb2b0(&actor->mPos, 0x666);
|
||||
@@ -720,7 +713,7 @@ void ActorUnkZLSL::func_ov031_020eba8c() {
|
||||
|
||||
this->func_ov031_020ed4e4(0xA, 0x93F);
|
||||
|
||||
if (!this->IsTimerOut()) {
|
||||
if (!this->mTimer.HasExpired()) {
|
||||
break;
|
||||
}
|
||||
++this->mUnk_286E;
|
||||
@@ -731,11 +724,11 @@ void ActorUnkZLSL::func_ov031_020eba8c() {
|
||||
}
|
||||
this->func_ov031_020ed3c0();
|
||||
|
||||
this->mTimerMax = 0xF;
|
||||
this->mTimer = 0x0;
|
||||
this->mTimer.Set(0, 15);
|
||||
break;
|
||||
}
|
||||
case 0x5:
|
||||
if (!this->IsTimerOut()) {
|
||||
if (!this->mTimer.HasExpired()) {
|
||||
break;
|
||||
}
|
||||
if (!this->func_ov031_020eb2b0(&actor->mPos, 0xA000)) {
|
||||
@@ -760,11 +753,10 @@ void ActorUnkZLSL::func_ov031_020eba8c() {
|
||||
++this->mUnk_286E;
|
||||
data_027e0d8c->func_ov093_021660a8(this->mUnk_28DC);
|
||||
actor->func_ov071_021540ac(0x1A);
|
||||
this->mTimerMax = 0x1E;
|
||||
this->mTimer = 0x0;
|
||||
this->mTimer.Set(0, 30);
|
||||
break;
|
||||
case 0x7:
|
||||
if (!this->IsTimerOut()) {
|
||||
if (!this->mTimer.HasExpired()) {
|
||||
return;
|
||||
}
|
||||
data_027e09b8->func_ov000_020732fc(this->mUnk_28C8);
|
||||
@@ -864,7 +856,7 @@ void ActorUnkZLSL::vfunc_2C(Actor_vfunc_30 *param1) {
|
||||
}
|
||||
switch (this->mUnk_2874) {
|
||||
case false:
|
||||
Mat3p_InitYRotation(&sp00, SIN((u16) this->mAngle), COS((u16) this->mAngle));
|
||||
Mat3p_InitYRotation(&sp00, SIN((u16) this->mAngle.angle_s), COS((u16) this->mAngle.angle_s));
|
||||
this->mUnk_1620.vfunc_10(&this->mUnk_28A4, &sp00, &this->mPos);
|
||||
break;
|
||||
case true:
|
||||
@@ -917,12 +909,11 @@ bool ActorUnkZLSL::func_ov031_020ec3d0() {
|
||||
switch (this->mUnk_2872) {
|
||||
case 0x0:
|
||||
data_ov000_020b51b8.func_ov000_0206d0bc(0x0);
|
||||
this->mTimerMax = 0x0;
|
||||
this->mTimer = 0x0;
|
||||
this->mTimer.Set(0, 0);
|
||||
++this->mUnk_2872;
|
||||
break;
|
||||
case 0x1:
|
||||
if (!this->IsTimerOut()) {
|
||||
if (!this->mTimer.HasExpired()) {
|
||||
break;
|
||||
}
|
||||
data_ov000_020b51b8.func_ov000_0206c9a8(0x4E, 0x0, 0x7F, 0x0);
|
||||
@@ -943,12 +934,11 @@ bool ActorUnkZLSL::func_ov031_020ec49c() {
|
||||
switch (this->mUnk_2872) {
|
||||
case 0x0:
|
||||
data_ov000_020b51b8.func_ov000_0206d0bc(0xA);
|
||||
this->mTimerMax = 0xA;
|
||||
this->mTimer = 0x0;
|
||||
this->mTimer.Set(0, 10);
|
||||
++this->mUnk_2872;
|
||||
break;
|
||||
case 0x1:
|
||||
if (!this->IsTimerOut()) {
|
||||
if (!this->mTimer.HasExpired()) {
|
||||
break;
|
||||
}
|
||||
data_ov000_020b5214.func_ov000_0206db44(0x988A);
|
||||
@@ -1091,21 +1081,21 @@ bool ActorUnkZLSL::func_ov031_020ec8c4() {
|
||||
VecFx32 vec;
|
||||
UnkAngleStruct angleStruct;
|
||||
if (!this->func_ov000_020a8ff4(&vec)) {
|
||||
angleStruct.angle = this->mAngle;
|
||||
angleStruct.angle_u = this->mAngle.angle_u;
|
||||
} else {
|
||||
angleStruct.angle = func_02016958(&this->mPos, &vec);
|
||||
angleStruct.angle_u = func_02016958(&this->mPos, &vec);
|
||||
}
|
||||
|
||||
if (this->mUnk_0B0 & 0x2) {
|
||||
func_01ff9364(&this->mAngle, angleStruct);
|
||||
func_01ff9364(&this->mAngle.angle_s, angleStruct);
|
||||
|
||||
s16 angle = angleStruct.angle - this->mAngle;
|
||||
s16 angle = angleStruct.angle_s - this->mAngle.angle_s;
|
||||
if (ABS(angle) < 0x2000) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return func_01ff930c(&this->mAngle, angleStruct.angle, 0x71C);
|
||||
return func_01ff930c(&this->mAngle.angle_s, angleStruct.angle_u, 0x71C);
|
||||
}
|
||||
|
||||
// non-matching
|
||||
@@ -1196,13 +1186,13 @@ void ActorUnkZLSL::func_ov031_020ecc68(unk32 param1) {
|
||||
if (func_01ff9258(actor->mPos.x - vec->x, actor->mPos.z - vec->z) > 0x3000) {
|
||||
this->func_ov031_020ed0b0();
|
||||
} else {
|
||||
UnkAngleStruct angleStruct = this->mAngleStruct;
|
||||
angleStruct.angle = 0x2000;
|
||||
UnkAngleStruct angleStruct = this->mAngle;
|
||||
angleStruct.angle_u = 0x2000;
|
||||
this->func_ov031_020ecea8(angleStruct, 0x6000, 0x4800, 0x0);
|
||||
}
|
||||
} else {
|
||||
UnkAngleStruct angleStruct = this->mAngleStruct;
|
||||
angleStruct.angle = 0x2000;
|
||||
UnkAngleStruct angleStruct = this->mAngle;
|
||||
angleStruct.angle_u = 0x2000;
|
||||
this->func_ov031_020ecea8(angleStruct, 0x6000, 0x4800, 0x0);
|
||||
}
|
||||
func_ov000_02072fd0(&stack.sp_34);
|
||||
@@ -1256,8 +1246,8 @@ void ActorUnkZLSL::func_ov031_020ed3c0() {
|
||||
VecFx32 sp08;
|
||||
UnkAngleStruct angleStruct;
|
||||
|
||||
sp14 = this->mUnk_28B0;
|
||||
angleStruct.angle = 0xE39;
|
||||
sp14 = this->mUnk_28B0;
|
||||
angleStruct.angle_u = 0xE39;
|
||||
|
||||
this->func_ov031_020ecea8(angleStruct, 0x7000, 0x4800, 0x1);
|
||||
|
||||
@@ -1322,61 +1312,53 @@ void ActorUnkZLSL::GetOffsetPos(VecFx32 *pPos) const {
|
||||
VecFx32_Init(this->mUnk_2878.x, this->mUnk_2878.y + this->mYOffset, this->mUnk_2878.z, pPos);
|
||||
}
|
||||
|
||||
// non-matching
|
||||
void ActorUnkZLSL::vfunc_A4() {
|
||||
VecFx32 sp0C;
|
||||
if ((this->mUnk_0B0 & 0x10) || !this->func_ov000_020a8ff4(&sp0C)) {
|
||||
func_01ff930c(&this->mUnk_0D8, 0x0, 0x71C);
|
||||
return;
|
||||
}
|
||||
|
||||
VecFx32 sp00 = this->mPos;
|
||||
sp00.y = sp00.y + this->mYOffset - FLOAT_TO_FX32(0.5f);
|
||||
func_01ffb714(&sp0C, &sp00, &sp0C);
|
||||
|
||||
s16 var_r4 = this->mAngle - func_01ffbbe0(sp0C.x, sp0C.z);
|
||||
if (this->mUnk_0E8 < this->mUnk_0EA) {
|
||||
++this->mUnk_0E8;
|
||||
}
|
||||
int angle = this->mAngle.angle_s;
|
||||
int temp = func_01ffbbe0(sp0C.x, sp0C.z);
|
||||
s16 var_r4 = (angle - (s16) temp);
|
||||
|
||||
this->mUnk_0E8.Update();
|
||||
|
||||
unk32 var_r0 = var_r4;
|
||||
if (var_r4 < 0) {
|
||||
var_r0 = -var_r4;
|
||||
}
|
||||
|
||||
if ((var_r0 <= 0x4000 && func_01ff9258(sp0C.x, sp0C.z) < 0x2000) || this->mUnk_0B0 & 1) {
|
||||
if (var_r4 >= 0x2AAB) {
|
||||
var_r4 = 0x2AAB;
|
||||
} else if (var_r4 <= -0x2AAB) {
|
||||
var_r4 = -0x2AAB;
|
||||
}
|
||||
u16 temp_r0_2 = (u16) func_01ffbbe0(sp0C.y, func_01ff9258(sp0C.x, sp0C.z));
|
||||
s16 var_r2 = temp_r0_2;
|
||||
if (temp_r0_2 <= 0x18E4) {
|
||||
var_r2 = 0x18E4;
|
||||
} else if (var_r2 <= -0x18E4) {
|
||||
var_r2 = -0x18E4;
|
||||
}
|
||||
this->mUnk_0CC = (s16) var_r4;
|
||||
this->mUnk_0CE = var_r2;
|
||||
this->mUnk_0EA = 0x32;
|
||||
this->mUnk_0E8 = 0x0;
|
||||
} else if ((u32) this->mUnk_0E8 >= (u32) this->mUnk_0EA) {
|
||||
int clamped1 = CLAMP3(var_r4, -0x2AAB, 0x2AAB);
|
||||
|
||||
int temp_r0_2 = func_01ffbbe0(sp0C.y, func_01ff9258(sp0C.x, sp0C.z));
|
||||
int clamped2 = CLAMP3((s16) temp_r0_2, -0x18E4, 0x18E4);
|
||||
|
||||
this->mUnk_0CC = clamped1;
|
||||
this->mUnk_0CE = clamped2;
|
||||
this->mUnk_0E8.Set(0, 50);
|
||||
} else if (this->mUnk_0E8.HasReachedMaxU()) {
|
||||
this->mUnk_0CE = 0x0;
|
||||
this->mUnk_0CC = 0x0;
|
||||
} else {
|
||||
if ((s32) var_r4 < 0x0) {
|
||||
var_r4 = 0 - var_r4;
|
||||
}
|
||||
if ((s32) var_r4 >= 0x71C7) {
|
||||
this->mUnk_0D0 = 0x0;
|
||||
}
|
||||
} else if (ABS(var_r4) >= 0x71C7) {
|
||||
this->mUnk_0D0 = 0x0;
|
||||
}
|
||||
|
||||
func_01ff916c(&this->mUnk_0D0, 0x1EC, 0x19);
|
||||
unk16 temp_r1 = this->mUnk_0CC;
|
||||
|
||||
if (this->mState != ActorUnkZLSLState_4) {
|
||||
func_01ff9318(&this->mUnk_0D8, temp_r1, this->mUnk_0D0);
|
||||
} else {
|
||||
func_01ff930c(&this->mUnk_0D8, temp_r1, 0x71C);
|
||||
}
|
||||
|
||||
func_01ff9318(&this->mUnk_0DA, this->mUnk_0CE, this->mUnk_0D0);
|
||||
}
|
||||
|
||||
|
||||
@@ -33,8 +33,7 @@ MapObjectProfileBombFlower::MapObjectProfileBombFlower() :
|
||||
MapObjectBombFlower::MapObjectBombFlower() :
|
||||
mUnk_48(G3d_GetModelPtr(GET_PROFILE_20_50(MapObjectProfileBombFlower)), 0x0, 0x0),
|
||||
mUnk_B4(0x1000),
|
||||
mUnk_B8(0x0),
|
||||
mUnk_BA(0x0),
|
||||
mUnk_B8(0, 0),
|
||||
mUnk_BC(true) {
|
||||
SET_FLAG(this->mFlags, MapObjFlag_8);
|
||||
|
||||
@@ -126,24 +125,25 @@ void MapObjectBombFlower::vfunc_08() {
|
||||
break;
|
||||
}
|
||||
|
||||
if (!this->IsInternalTimerOut()) {
|
||||
if (!this->mUnk_B8.HasExpired()) {
|
||||
break;
|
||||
}
|
||||
|
||||
this->SetState(MapObjBombFlowerState_5, 0x0);
|
||||
break;
|
||||
case MapObjBombFlowerState_5:
|
||||
if (this->IsInternalTimerOut()) {
|
||||
case MapObjBombFlowerState_5: {
|
||||
if (this->mUnk_B8.HasExpired()) {
|
||||
this->SetState(MapObjBombFlowerState_0, 0x0);
|
||||
break;
|
||||
}
|
||||
|
||||
fx32 delta = this->mUnk_BA - this->mUnk_B8;
|
||||
fx32 delta = this->mUnk_B8.GetRemainingTime();
|
||||
if (delta > 0x0) {
|
||||
func_01ff9218(&this->mUnk_B4, 0x1000, func_01ffb464((u32) delta << 0xC));
|
||||
}
|
||||
this->mUnk_B0 = this->mUnk_B4;
|
||||
break;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@@ -176,13 +176,11 @@ bool MapObjectBombFlower::SetState(MapObjState state, unk32 param2) {
|
||||
this->mUnk_C0.mUnk_08 |= 0xA800000;
|
||||
UNSET_FLAG(this->mFlags, MapObjFlag_9);
|
||||
this->mUnk_B4 = FLOAT_TO_FX32(0.0f);
|
||||
this->mUnk_BA = 0xB4;
|
||||
this->mUnk_B8 = 0x00;
|
||||
this->mUnk_B8.Set(0, 180);
|
||||
break;
|
||||
|
||||
case MapObjBombFlowerState_5:
|
||||
this->mUnk_BA = 0xA;
|
||||
this->mUnk_B8 = 0x0;
|
||||
this->mUnk_B8.Set(0, 10);
|
||||
data_027e09a8->func_ov000_02071b30(0x10C, &this->mPos, 0x0);
|
||||
break;
|
||||
|
||||
@@ -220,7 +218,7 @@ void MapObjectBombFlower::vfunc_38() {
|
||||
params.mUnk_28 = 0;
|
||||
params.func_ov000_020975f8();
|
||||
|
||||
params.mInitialAngle = this->mAngle;
|
||||
params.mInitialAngle = this->mAngle.angle_s;
|
||||
VecFx32_Copy(&this->mPos, ¶ms.mInitialPos);
|
||||
|
||||
params.mParams[0] = 0x1;
|
||||
@@ -249,7 +247,7 @@ void MapObjectBombFlower::vfunc_50(ActorRef *param1, MapObjectPot_Base *thisx) {
|
||||
|
||||
params.func_ov000_020975f8();
|
||||
|
||||
params.mInitialAngle = thisx->mAngle;
|
||||
params.mInitialAngle = thisx->mAngle.angle_s;
|
||||
VecFx32_Copy(&thisx->mPos, ¶ms.mInitialPos);
|
||||
|
||||
params.mParams[0] = 0x1;
|
||||
|
||||
@@ -69,7 +69,7 @@ MapObjectChestBase::MapObjectChestBase(unk32 param1) :
|
||||
|
||||
MapObjectChestBase::~MapObjectChestBase() {}
|
||||
|
||||
bool MapObjectChestBase::vfunc_00() {
|
||||
bool MapObjectChestBase::Init() {
|
||||
SET_FLAG(this->mFlags, MapObjFlag_9);
|
||||
this->mUnk_18[0] = 0x0D;
|
||||
|
||||
@@ -91,7 +91,7 @@ bool MapObjectChestBase::vfunc_00() {
|
||||
}
|
||||
|
||||
// non-matching
|
||||
void MapObjectChestBase::vfunc_04() {
|
||||
void MapObjectChestBase::Setup() {
|
||||
fx32 iVar2;
|
||||
UnkStruct_027e0cd8_0C_Base *pUVar5;
|
||||
VecFx32 sp48;
|
||||
|
||||
@@ -370,7 +370,7 @@ void MapObjectDoorBase::vfunc_5C(MapObjState state, unk32 param2) {
|
||||
auStack_5c.mUnk_36 = unk_1E;
|
||||
auStack_5c.mUnk_34 = unk_1C;
|
||||
|
||||
auStack_5c.mUnk_1E = this->mAngle;
|
||||
auStack_5c.mUnk_1E = this->mAngle.angle_s;
|
||||
this->mUnk_74 = data_027e09b8->func_ov000_02073388(&auStack_5c, 0);
|
||||
}
|
||||
|
||||
@@ -454,7 +454,7 @@ void MapObjectDoorBase::vfunc_5C(MapObjState state, unk32 param2) {
|
||||
auStack_9c.mUnk_36 = unk_1E;
|
||||
auStack_9c.mUnk_34 = unk_1C;
|
||||
|
||||
auStack_9c.mUnk_1E = this->mAngle;
|
||||
auStack_9c.mUnk_1E = this->mAngle.angle_s;
|
||||
this->mUnk_74 = data_027e09b8->func_ov000_02073388(&auStack_9c, 0);
|
||||
|
||||
this->mUnk_84 = 0x0D;
|
||||
@@ -636,15 +636,15 @@ void MapObjectDoorBase::vfunc_4C() {}
|
||||
|
||||
void MapObjectDoorBase::vfunc_84(unk32 param1, VecFx32 *param2, unk16 *param3) {
|
||||
VecFx32 local_20;
|
||||
*param3 = this->mAngle;
|
||||
*param3 = this->mAngle.angle_s;
|
||||
|
||||
if (param1 != 0) {
|
||||
local_20.x = MUL_FX32(SIN((u16) this->mAngle), 0x1000);
|
||||
local_20.z = MUL_FX32(COS((u16) this->mAngle), 0x1000);
|
||||
local_20.x = MUL_FX32(SIN((u16) this->mAngle.angle_s), 0x1000);
|
||||
local_20.z = MUL_FX32(COS((u16) this->mAngle.angle_s), 0x1000);
|
||||
local_20.y = 0;
|
||||
} else {
|
||||
local_20.x = MUL_FX32(SIN((u16) this->mAngle), 0xC00);
|
||||
local_20.z = MUL_FX32(COS((u16) this->mAngle), 0xC00);
|
||||
local_20.x = MUL_FX32(SIN((u16) this->mAngle.angle_s), 0xC00);
|
||||
local_20.z = MUL_FX32(COS((u16) this->mAngle.angle_s), 0xC00);
|
||||
local_20.y = 0;
|
||||
|
||||
*param3 += -DEG_TO_ANG(180);
|
||||
@@ -687,7 +687,8 @@ void MapObjectDoorBase::vfunc2_08() {
|
||||
u16 *temp_r3;
|
||||
u16 *temp_r3_2;
|
||||
|
||||
if (this->mState != MapObjDoorBaseState_1 || !this->mUnk_8C || (u16) (this->mAngle + 0x2000) / DEG_TO_ANG(90) != 2) {
|
||||
if (this->mState != MapObjDoorBaseState_1 || !this->mUnk_8C ||
|
||||
(u16) (this->mAngle.angle_s + 0x2000) / DEG_TO_ANG(90) != 2) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -48,7 +48,7 @@ u16 MapObjectDoorClick::vfunc2_1C(unk32 param1) {
|
||||
}
|
||||
|
||||
// https://decomp.me/scratch/zmw3b
|
||||
bool MapObjectDoorClick::vfunc_00(void) {
|
||||
bool MapObjectDoorClick::Init(void) {
|
||||
VecFx32 local_1c;
|
||||
VecFx32 local_28;
|
||||
VecFx32 local_40[2];
|
||||
|
||||
@@ -41,13 +41,12 @@ MapObjectDoorDangerSpawn::MapObjectDoorDangerSpawn() :
|
||||
mUnk_A2(false),
|
||||
mUnk_A3(0),
|
||||
mUnk_A4(-1),
|
||||
mUnk_A8(NULL) {
|
||||
this->mUnk_AC = 0;
|
||||
this->mUnk_AE = 0;
|
||||
mUnk_A8(NULL),
|
||||
mUnk_AC(0, 0) {
|
||||
this->mUnk_89 = true;
|
||||
}
|
||||
|
||||
bool MapObjectDoorDangerSpawn::vfunc_00(void) {
|
||||
bool MapObjectDoorDangerSpawn::Init(void) {
|
||||
this->func_ov031_020fbf10(true, false);
|
||||
this->mUnk_78 = 0x23;
|
||||
this->mUnk_7A = 0x0F;
|
||||
@@ -57,7 +56,7 @@ bool MapObjectDoorDangerSpawn::vfunc_00(void) {
|
||||
return true;
|
||||
}
|
||||
|
||||
void MapObjectDoorDangerSpawn::vfunc_04(void) {
|
||||
void MapObjectDoorDangerSpawn::Setup(void) {
|
||||
UnkStruct_027e0cd8_0C_Base *ptr;
|
||||
VecFx32 auStack_20;
|
||||
|
||||
@@ -152,25 +151,23 @@ void MapObjectDoorDangerSpawn::vfunc_08(void) {
|
||||
VecFx32 sp10;
|
||||
VecFx32 sp4;
|
||||
|
||||
if (this->mUnk_AC < this->mUnk_AE) {
|
||||
this->mUnk_AC++;
|
||||
}
|
||||
this->mUnk_AC.Update();
|
||||
|
||||
switch (this->mState) {
|
||||
case MapObjDoorDangerSpawnState_0:
|
||||
if (this->mUnk_A2) {
|
||||
u16 max = this->mUnk_AE;
|
||||
u16 timer = this->mUnk_AC;
|
||||
u16 max = this->mUnk_AC.max;
|
||||
u16 time = this->mUnk_AC.value;
|
||||
|
||||
if (timer < max) {
|
||||
if (max - timer == 1) {
|
||||
if (time < max) {
|
||||
if (max - time == 1) {
|
||||
this->mUnk_88 = 1;
|
||||
this->vfunc_74();
|
||||
|
||||
UnkStackStruct_ov000_02077590 *temp_r0_3 = func_ov000_02077590(3);
|
||||
|
||||
sp3C = *temp_r0_3;
|
||||
((unk16 *) sp3C.data)[3] = this->mAngle;
|
||||
((unk16 *) sp3C.data)[3] = this->mAngle.angle_s;
|
||||
|
||||
UnkStruct_027e09bc_0C *temp_r5 = data_027e09bc->mUnk_04[2];
|
||||
|
||||
@@ -270,12 +267,11 @@ void MapObjectDoorDangerSpawn::vfunc_5C(MapObjState state, unk32 param2) {
|
||||
s16 sp4;
|
||||
s16 *sp4Ptr;
|
||||
|
||||
this->mState = state;
|
||||
this->mUnk_AE = 0;
|
||||
this->mUnk_AC = 0;
|
||||
this->mState = state;
|
||||
this->mUnk_AC.Init();
|
||||
|
||||
switch (this->mState) {
|
||||
case MapObjDoorDangerSpawnState_3:
|
||||
case MapObjDoorDangerSpawnState_3: {
|
||||
this->vfunc_7C();
|
||||
|
||||
sp4Ptr = (s16 *) &sp4;
|
||||
@@ -321,6 +317,7 @@ void MapObjectDoorDangerSpawn::vfunc_5C(MapObjState state, unk32 param2) {
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
case MapObjDoorDangerSpawnState_4:
|
||||
this->MapObjectDoorBase::vfunc_5C(state, param2);
|
||||
break;
|
||||
@@ -335,8 +332,7 @@ void MapObjectDoorDangerSpawn::vfunc_5C(MapObjState state, unk32 param2) {
|
||||
data_027e0d38->func_ov031_020d9c44(4);
|
||||
|
||||
if (this->mUnk_A2 != 0) {
|
||||
this->mUnk_AE = this->vfunc_8C() * 2;
|
||||
this->mUnk_AC = 0;
|
||||
this->mUnk_AC.Set(0, this->vfunc_8C() * 2);
|
||||
this->mUnk_88 = 0;
|
||||
this->mUnk_90 = false;
|
||||
}
|
||||
@@ -558,7 +554,7 @@ void MapObjectDoorDangerSpawn::vfunc_18(s8 *param1) {
|
||||
|
||||
void MapObjectDoorDangerSpawn::vfunc_14(unk32 param1) {
|
||||
Mat3p m;
|
||||
Mat3p_InitYRotation(&m, SIN((u16) this->mAngle), COS((u16) this->mAngle));
|
||||
Mat3p_InitYRotation(&m, SIN((u16) this->mAngle.angle_s), COS((u16) this->mAngle.angle_s));
|
||||
|
||||
VecFx32 pos(this->mPos);
|
||||
pos.y += -(this->mUnk_6C * 2);
|
||||
@@ -616,9 +612,9 @@ void MapObjectDoorDangerSpawn::vfunc_74(void) {
|
||||
local_28.y = local_34.y;
|
||||
local_28.z = local_34.z;
|
||||
|
||||
u16 var_r5 = (u16) (this->mAngle + DEG_TO_ANG(45));
|
||||
u16 var_r5 = (u16) (this->mAngle.angle_s + DEG_TO_ANG(45));
|
||||
|
||||
if (((u16) this->mAngle / DEG_TO_ANG(90)) == 2 && this->mState == MapObjDoorDangerSpawnState_5) {
|
||||
if (((u16) this->mAngle.angle_s / DEG_TO_ANG(90)) == 2 && this->mState == MapObjDoorDangerSpawnState_5) {
|
||||
var_r5 = 0;
|
||||
}
|
||||
|
||||
@@ -693,8 +689,8 @@ void MapObjectDoorDangerSpawn::vfunc_84(unk32 param1, VecFx32 *param2, unk16 *pa
|
||||
}
|
||||
|
||||
VecFx32 local_24;
|
||||
*param3 = this->mAngle;
|
||||
iVar1 = this->mAngle + DEG_TO_ANG(30);
|
||||
*param3 = this->mAngle.angle_s;
|
||||
iVar1 = this->mAngle.angle_s + DEG_TO_ANG(30);
|
||||
if (param1 != 0) {
|
||||
local_24.x = MUL_FX32(SIN((u16) iVar1), 0x1666);
|
||||
local_24.z = MUL_FX32(COS((u16) iVar1), 0x1666);
|
||||
@@ -709,8 +705,8 @@ void MapObjectDoorDangerSpawn::vfunc_84(unk32 param1, VecFx32 *param2, unk16 *pa
|
||||
VecFx32_Add(&this->mPos, &local_24, param2);
|
||||
|
||||
VecFx32 local_30;
|
||||
this->mUnk_5A = this->mAngle;
|
||||
iVar1 = this->mAngle - DEG_TO_ANG(30);
|
||||
this->mUnk_5A = this->mAngle.angle_s;
|
||||
iVar1 = this->mAngle.angle_s - DEG_TO_ANG(30);
|
||||
if (param1 != 0) {
|
||||
local_30.x = MUL_FX32(SIN((u16) iVar1), 0x1666);
|
||||
local_30.z = MUL_FX32(COS((u16) iVar1), 0x1666);
|
||||
|
||||
@@ -32,7 +32,7 @@ MapObjectDoorKey::MapObjectDoorKey() :
|
||||
this->mUnk_18[0] = 0x0E;
|
||||
}
|
||||
|
||||
bool MapObjectDoorKey::vfunc_00(void) {
|
||||
bool MapObjectDoorKey::Init(void) {
|
||||
this->func_ov031_020fbf10(true, false);
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -37,7 +37,7 @@ MapObjectDoorSwitch::MapObjectDoorSwitch() :
|
||||
this->mUnk_89 = true;
|
||||
}
|
||||
|
||||
bool MapObjectDoorSwitch::vfunc_00(void) {
|
||||
bool MapObjectDoorSwitch::Init(void) {
|
||||
this->mUnk_094.vfunc_08(this->GetModel());
|
||||
this->func_ov031_020fbf10(true, true);
|
||||
|
||||
@@ -113,7 +113,7 @@ bool MapObjectDoorSwitch::vfunc_6C(void) {
|
||||
}
|
||||
|
||||
void MapObjectDoorSwitch::vfunc_14(unk32 param1) {
|
||||
u16 angle = this->mAngle;
|
||||
u16 angle = this->mAngle.angle_s;
|
||||
Mat3p m;
|
||||
|
||||
Mat3p_InitYRotation(&m, SIN(angle), COS(angle));
|
||||
@@ -133,7 +133,7 @@ void MapObjectDoorSwitch::vfunc_74(void) {
|
||||
VecFx32_Init(0, 0, 0x666, &local_2c);
|
||||
|
||||
Mat4x3p m;
|
||||
u16 angle = this->mAngle;
|
||||
u16 angle = this->mAngle.angle_s;
|
||||
|
||||
Mat4x3p_InitYRotation(&m, SIN(angle), COS(angle));
|
||||
func_01ffaf74(&local_2c, &m, &local_2c);
|
||||
@@ -142,7 +142,7 @@ void MapObjectDoorSwitch::vfunc_74(void) {
|
||||
data_027e0cec->func_ov000_0209ff8c(&this->mUnk_68, 0x8CF, &local_20, 4);
|
||||
|
||||
if (this->mUnk_68.mUnk_00 != NULL) {
|
||||
this->mUnk_68.mUnk_00->mUnk_A4 = this->mAngle;
|
||||
this->mUnk_68.mUnk_00->mUnk_A4 = this->mAngle.angle_s;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -21,8 +21,8 @@ MapObjectDoorTouch::MapObjectDoorTouch() {
|
||||
this->mUnk_18[0] = 0x0F;
|
||||
}
|
||||
|
||||
bool MapObjectDoorTouch::vfunc_00(void) {
|
||||
this->MapObjectDoorClick::vfunc_00();
|
||||
bool MapObjectDoorTouch::Init(void) {
|
||||
this->MapObjectDoorClick::Init();
|
||||
this->mUnk_88 = true;
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -33,7 +33,7 @@ MapObjectGrass::MapObjectGrass() :
|
||||
}
|
||||
|
||||
// non-matching
|
||||
bool MapObjectGrass::vfunc_00() {}
|
||||
bool MapObjectGrass::Init() {}
|
||||
|
||||
void MapObjectGrass::vfunc_08() {
|
||||
MapObjState state = this->mState;
|
||||
|
||||
@@ -21,6 +21,7 @@ MapObject *MapObjectProfilePot::Create() {
|
||||
return new(HeapIndex_ITCM) MapObjectPot();
|
||||
}
|
||||
|
||||
// non-matchhing
|
||||
MapObjectProfilePot::MapObjectProfilePot() :
|
||||
MapObjectProfilePot_Base(MapObjectId_Pot, MapObjectId_Pot) {
|
||||
this->mUnk_0E = 0x0;
|
||||
@@ -42,7 +43,6 @@ ModelRender_ov000_020b198c::ModelRender_ov000_020b198c(G3d_Model *pModel, unk8 p
|
||||
this->vfunc_08(pModel);
|
||||
}
|
||||
|
||||
// non-matching
|
||||
MapObjectPot::MapObjectPot() :
|
||||
mUnk_48(G3d_GetModelPtr(GET_PROFILE_20_50(MapObjectProfilePot)), 0x1) {
|
||||
this->mUnk_40 = ActorId_NTUB;
|
||||
@@ -50,7 +50,7 @@ MapObjectPot::MapObjectPot() :
|
||||
SET_FLAG(this->mFlags, MapObjFlag_8);
|
||||
}
|
||||
|
||||
void MapObjectPot::vfunc_04() {
|
||||
void MapObjectPot::Setup() {
|
||||
this->mPos.y = INT_MAX - FLOAT_TO_FX32(1.0f);
|
||||
this->mPos.y = func_01ffe868(&this->mPos, 0x1, 0x0);
|
||||
}
|
||||
@@ -79,7 +79,7 @@ bool MapObjectPot::vfunc_1C(ActorRef param1, unk32 param2, VecFx32 *param3) {
|
||||
if (data_027e0d38->func_ov031_020d9c04(0x1, 0x0, 0x0)) {
|
||||
Actor *actor = gpActorManager->func_01fff3b4(param1);
|
||||
if (actor != NULL) {
|
||||
this->mAngle = actor->mAngle;
|
||||
this->mAngle.angle_s = actor->mAngle.angle_s;
|
||||
this->SetState(0x3, 0x0);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -30,8 +30,7 @@ MapObjectUnkSKDI::MapObjectUnkSKDI() :
|
||||
mUnk_088(0x0),
|
||||
mUnk_089(0x0),
|
||||
mUnk_08C(0x3000, 0x1),
|
||||
mUnk_0F8(0x0),
|
||||
mUnk_0FA(0x0),
|
||||
mUnk_0F8(0, 0),
|
||||
mUnk_0FC(0x0) {
|
||||
SET_FLAG(this->mFlags, MapObjFlag_10);
|
||||
this->mUnk_18[1] = 0x12;
|
||||
@@ -71,7 +70,7 @@ void MapObjectUnkSKDI::func_ov031_021061dc() {
|
||||
}
|
||||
|
||||
// non-matching
|
||||
bool MapObjectUnkSKDI::vfunc_00() {
|
||||
bool MapObjectUnkSKDI::Init() {
|
||||
unk32 var1;
|
||||
if (this->mUnk_20.mParams[2] == 0x1) {
|
||||
var1 = 0x1;
|
||||
@@ -106,7 +105,7 @@ bool MapObjectUnkSKDI::vfunc_00() {
|
||||
return true;
|
||||
}
|
||||
|
||||
void MapObjectUnkSKDI::vfunc_04() {
|
||||
void MapObjectUnkSKDI::Setup() {
|
||||
data_027e0cd8->mUnk_0C->func_ov000_02080a5c(&this->mUnk_08C.mUnk_00);
|
||||
|
||||
if (this->mUnk_20.mParams[0] == 0x0) {
|
||||
@@ -183,7 +182,7 @@ void MapObjectUnkSKDI::func_ov031_0210643c(unk32 param1) {
|
||||
}
|
||||
this->func_ov031_02106678(MapObjUnkSKDIState_2, 0x0);
|
||||
break;
|
||||
case MapObjUnkSKDIState_2:
|
||||
case MapObjUnkSKDIState_2: {
|
||||
if (this->func_ov000_0209d29c(0x1) != 0x0) {
|
||||
if (this->mUnk_086 != 0) {
|
||||
this->func_ov031_02106678(MapObjUnkSKDIState_3, 0x0);
|
||||
@@ -191,19 +190,19 @@ void MapObjectUnkSKDI::func_ov031_0210643c(unk32 param1) {
|
||||
this->func_ov031_02106678(MapObjUnkSKDIState_0, 0x0);
|
||||
}
|
||||
}
|
||||
unk32 temp_r1 = this->mUnk_0FA;
|
||||
if (temp_r1 != 0 && ((u32) this->mUnk_0F8 >= (u32) temp_r1)) {
|
||||
|
||||
if (this->mUnk_0F8.max != 0 && this->mUnk_0F8.GetValueU() >= this->mUnk_0F8.max) {
|
||||
this->func_ov031_02106678(MapObjUnkSKDIState_0, 0x0);
|
||||
this->mUnk_0FA = 0x0;
|
||||
this->mUnk_0F8 = 0x0;
|
||||
this->mUnk_0F8.Init();
|
||||
}
|
||||
|
||||
if (data_027e09b8->func_01ffd420()) {
|
||||
return;
|
||||
}
|
||||
if (this->mUnk_0F8 < this->mUnk_0FA) {
|
||||
++this->mUnk_0F8;
|
||||
}
|
||||
|
||||
this->mUnk_0F8.Update();
|
||||
break;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@@ -254,7 +253,7 @@ void MapObjectUnkSKDI::func_ov031_02106678(MapObjState state, unk32 param2) {
|
||||
}
|
||||
this->func_ov031_02106678(MapObjUnkSKDIState_0, 0x0);
|
||||
break;
|
||||
case MapObjUnkSKDIState_1:
|
||||
case MapObjUnkSKDIState_1: {
|
||||
SET_FLAG(this->mFlags, MapObjFlag_7);
|
||||
SET_FLAG(this->mFlags, MapObjFlag_8);
|
||||
if (param2 == 0x0) {
|
||||
@@ -278,11 +277,12 @@ void MapObjectUnkSKDI::func_ov031_02106678(MapObjState state, unk32 param2) {
|
||||
this->mUnk_0BC = 0x3000;
|
||||
UNSET_FLAG(this->mFlags, MapObjFlag_10);
|
||||
break;
|
||||
}
|
||||
case MapObjUnkSKDIState_2:
|
||||
SET_FLAG(this->mFlags, MapObjFlag_7);
|
||||
this->mFlags[0] &= 0xFEFF;
|
||||
this->mUnk_0FA = 0x0;
|
||||
this->mUnk_0F8 = 0x0;
|
||||
this->mUnk_0F8.Init();
|
||||
|
||||
if (param2 == 0) {
|
||||
this->func_ov000_0209d2c4(0x0, false);
|
||||
UnkStruct_027e0cec *data = data_027e0cec;
|
||||
@@ -322,7 +322,6 @@ public:
|
||||
/* 12C */
|
||||
};
|
||||
|
||||
// non-matching
|
||||
bool MapObjectUnkSKDI::vfunc_1C(ActorRef param1, unk32 param2, VecFx32 *param3) {
|
||||
bool var_r1 = false;
|
||||
if (param1.type_index == 0x102) {
|
||||
@@ -342,19 +341,21 @@ bool MapObjectUnkSKDI::vfunc_1C(ActorRef param1, unk32 param2, VecFx32 *param3)
|
||||
case 0x4:
|
||||
if (this->mState != MapObjUnkSKDIState_2) {
|
||||
this->func_ov031_02106678(MapObjUnkSKDIState_2, 0x0);
|
||||
this->mUnk_0F8 = 0;
|
||||
unk32 var = 0x28;
|
||||
|
||||
u16 max = 40;
|
||||
|
||||
if (this->mUnk_20.mParams[3] != 0) {
|
||||
var = this->mUnk_20.mParams[3];
|
||||
max = this->mUnk_20.mParams[3];
|
||||
}
|
||||
this->mUnk_0FA = var;
|
||||
|
||||
this->mUnk_0F8.Set(0, max);
|
||||
}
|
||||
return false;
|
||||
case 0x3:
|
||||
return false;
|
||||
case 0xC:
|
||||
var_r1 = true;
|
||||
if (data_027e09a4->mUnk_00.sceneIndex == SceneIndex_d_snow26 && this->mUnk_0FA != 0x0) {
|
||||
if (data_027e09a4->mUnk_00.sceneIndex == SceneIndex_d_snow26 && this->mUnk_0F8.max != 0x0) {
|
||||
var_r1 = false;
|
||||
}
|
||||
if (this->mState == MapObjUnkSKDIState_2 && var_r1) {
|
||||
|
||||
@@ -66,7 +66,7 @@ MapObjectUnkSWHT::~MapObjectUnkSWHT() {
|
||||
}
|
||||
}
|
||||
|
||||
bool MapObjectUnkSWHT::vfunc_00() {
|
||||
bool MapObjectUnkSWHT::Init() {
|
||||
SET_FLAGS(this->mFlags, MapObjFlag_9, MapObjFlag_10);
|
||||
|
||||
this->mUnk_18[0] = 0x11;
|
||||
|
||||
@@ -36,22 +36,22 @@ static ActorUnkZLSL_AnimationTag data_ov032_021223b4 = {.index = 0, .name = "wal
|
||||
static ActorUnkZLSL_AnimationTag data_ov032_021223cc = {.index = 1, .name = "discover", .unknown = 0x1};
|
||||
|
||||
static PTMF<ActorFleeingSpinut> data_ov032_021223e4[ActorFleeingSpinutState_Max] = {
|
||||
ActorFleeingSpinut::func_ov032_0211c2c4, // ActorFleeingSpinutState_0
|
||||
ActorFleeingSpinut::func_ov032_0211c444, // ActorFleeingSpinutState_1
|
||||
ActorFleeingSpinut::func_ov032_0211be30, // ActorFleeingSpinutState_2
|
||||
ActorFleeingSpinut::func_ov032_0211bf84, // ActorFleeingSpinutState_3
|
||||
ActorFleeingSpinut::func_ov032_0211c53c, // ActorFleeingSpinutState_4
|
||||
ActorFleeingSpinut::func_ov032_0211c73c, // ActorFleeingSpinutState_5
|
||||
ActorFleeingSpinut::func_ov032_0211c07c // ActorFleeingSpinutState_6
|
||||
&ActorFleeingSpinut::func_ov032_0211c2c4, // ActorFleeingSpinutState_0
|
||||
&ActorFleeingSpinut::func_ov032_0211c444, // ActorFleeingSpinutState_1
|
||||
&ActorFleeingSpinut::func_ov032_0211be30, // ActorFleeingSpinutState_2
|
||||
&ActorFleeingSpinut::func_ov032_0211bf84, // ActorFleeingSpinutState_3
|
||||
&ActorFleeingSpinut::func_ov032_0211c53c, // ActorFleeingSpinutState_4
|
||||
&ActorFleeingSpinut::func_ov032_0211c73c, // ActorFleeingSpinutState_5
|
||||
&ActorFleeingSpinut::func_ov032_0211c07c // ActorFleeingSpinutState_6
|
||||
};
|
||||
static PTMF<ActorFleeingSpinut> data_ov032_0212241c[ActorFleeingSpinutState_Max] = {
|
||||
ActorFleeingSpinut::func_ov032_0211c340, // ActorFleeingSpinutState_0
|
||||
ActorFleeingSpinut::func_ov032_0211c4d4, // ActorFleeingSpinutState_1
|
||||
ActorFleeingSpinut::func_ov032_0211bea8, // ActorFleeingSpinutState_2
|
||||
ActorFleeingSpinut::func_ov032_0211bffc, // ActorFleeingSpinutState_3
|
||||
ActorFleeingSpinut::func_ov032_0211c5cc, // ActorFleeingSpinutState_4
|
||||
ActorFleeingSpinut::func_ov032_0211c7bc, // ActorFleeingSpinutState_5
|
||||
ActorFleeingSpinut::func_ov032_0211c108 // ActorFleeingSpinutState_6
|
||||
&ActorFleeingSpinut::func_ov032_0211c340, // ActorFleeingSpinutState_0
|
||||
&ActorFleeingSpinut::func_ov032_0211c4d4, // ActorFleeingSpinutState_1
|
||||
&ActorFleeingSpinut::func_ov032_0211bea8, // ActorFleeingSpinutState_2
|
||||
&ActorFleeingSpinut::func_ov032_0211bffc, // ActorFleeingSpinutState_3
|
||||
&ActorFleeingSpinut::func_ov032_0211c5cc, // ActorFleeingSpinutState_4
|
||||
&ActorFleeingSpinut::func_ov032_0211c7bc, // ActorFleeingSpinutState_5
|
||||
&ActorFleeingSpinut::func_ov032_0211c108 // ActorFleeingSpinutState_6
|
||||
};
|
||||
|
||||
DECL_PROFILE(ActorProfileFleeingSpinut);
|
||||
@@ -96,7 +96,7 @@ ActorFleeingSpinut::ActorFleeingSpinut() :
|
||||
|
||||
ActorFleeingSpinut::~ActorFleeingSpinut() {}
|
||||
|
||||
bool ActorFleeingSpinut::vfunc_18(unk32 param1) {
|
||||
bool ActorFleeingSpinut::Init(unk32 param1) {
|
||||
this->mUnk_1EC.mUnk_00 = this->mUnk_5C.mParams[1];
|
||||
|
||||
this->SetState(0x0);
|
||||
@@ -117,7 +117,7 @@ void ActorFleeingSpinut::SetState(ActorState state) {
|
||||
CALL_PTMF(PTMF<ActorFleeingSpinut>, data_ov032_021223e4[oldState]);
|
||||
}
|
||||
|
||||
void ActorFleeingSpinut::vfunc_20() {
|
||||
void ActorFleeingSpinut::Update() {
|
||||
this->mUnk_3C = &this->mUnk_1C0;
|
||||
if (!this->func_ov032_0211c938()) {
|
||||
this->mUnk_1EC.func_ov032_0211d028();
|
||||
@@ -239,7 +239,7 @@ void ActorFleeingSpinut::vfunc_2C(Actor_vfunc_30 *param1) {
|
||||
|
||||
vec.y += this->mUnk_21C;
|
||||
|
||||
this->mUnk_0B0.func_01ffc634(&this->mUnk_98, this->mAngleStruct, &vec);
|
||||
this->mUnk_0B0.func_01ffc634(&this->mUnk_98, this->mAngle, &vec);
|
||||
}
|
||||
|
||||
bool ActorFleeingSpinut::func_ov032_0211be04() {
|
||||
@@ -284,17 +284,14 @@ void ActorFleeingSpinut::func_ov032_0211bea8() {
|
||||
|
||||
void ActorFleeingSpinut::func_ov032_0211bf84() {
|
||||
this->mUnk_110.vfunc_1C(data_ov032_021223b4, 0x1000, 0x19A, 0x0);
|
||||
|
||||
this->mTimerMax = 0xF;
|
||||
this->mTimer = 0x0;
|
||||
|
||||
this->mTimer.Set(0, 15);
|
||||
this->mVel.x = FLOAT_TO_FX32(0.0f);
|
||||
this->mVel.z = FLOAT_TO_FX32(0.0f);
|
||||
}
|
||||
|
||||
void ActorFleeingSpinut::func_ov032_0211bffc() {
|
||||
if (this->func_ov032_0211ca20()) {
|
||||
if (this->mTimer >= this->mTimerMax) {
|
||||
if (this->mTimer.HasReachedMaxU()) {
|
||||
this->SetState(ActorFleeingSpinutState_1);
|
||||
} else {
|
||||
this->SetState(ActorFleeingSpinutState_4);
|
||||
@@ -305,7 +302,7 @@ void ActorFleeingSpinut::func_ov032_0211bffc() {
|
||||
}
|
||||
}
|
||||
|
||||
this->IsTimerOut();
|
||||
this->mTimer.Update();
|
||||
}
|
||||
|
||||
void ActorFleeingSpinut::func_ov032_0211c07c() {
|
||||
@@ -378,7 +375,7 @@ void ActorFleeingSpinut::func_ov032_0211c2c4() {
|
||||
}
|
||||
|
||||
void ActorFleeingSpinut::func_ov032_0211c340() {
|
||||
this->mUnk_1EC.func_ov032_0211cd60(&this->mPos, &this->mAngle, &this->mVel, 0xF6, 0xE39, 0xF6);
|
||||
this->mUnk_1EC.func_ov032_0211cd60(&this->mPos, &this->mAngle.angle_s, &this->mVel, 0xF6, 0xE39, 0xF6);
|
||||
|
||||
if (this->func_ov032_0211c938() && this->func_ov032_0211ca20()) {
|
||||
this->SetState(ActorFleeingSpinutState_1);
|
||||
@@ -423,19 +420,18 @@ void ActorFleeingSpinut::func_ov032_0211c53c() {
|
||||
this->mUnk_224 = false;
|
||||
this->mUnk_1EC.func_ov032_0211d08c(&this->mPos);
|
||||
|
||||
this->mTimerMax = 0xA;
|
||||
this->mTimer = 0x0;
|
||||
this->mTimer.Set(0, 10);
|
||||
|
||||
this->mVel.x = FLOAT_TO_FX32(0.0f);
|
||||
this->mVel.z = FLOAT_TO_FX32(0.0f);
|
||||
}
|
||||
|
||||
void ActorFleeingSpinut::func_ov032_0211c5cc() {
|
||||
if (this->IsTimerOut()) {
|
||||
if (this->mTimer.HasExpired()) {
|
||||
this->mUnk_224 = true;
|
||||
}
|
||||
|
||||
this->mUnk_1EC.func_ov032_0211cd60(&this->mPos, &this->mAngle, &this->mVel, 0x429, 0x429 + 0xA10, 0x429);
|
||||
this->mUnk_1EC.func_ov032_0211cd60(&this->mPos, &this->mAngle.angle_s, &this->mVel, 0x429, 0x429 + 0xA10, 0x429);
|
||||
|
||||
if (this->mUnk_1EC.mUnk_28 & 0x1) {
|
||||
this->SetState(ActorFleeingSpinutState_6);
|
||||
@@ -476,7 +472,7 @@ void ActorFleeingSpinut::func_ov032_0211c73c() {
|
||||
}
|
||||
|
||||
void ActorFleeingSpinut::func_ov032_0211c7bc() {
|
||||
this->mUnk_1EC.func_ov032_0211cd60(&this->mPos, &this->mAngle, &this->mVel, 0xF6, 0xE39, 0xF6);
|
||||
this->mUnk_1EC.func_ov032_0211cd60(&this->mPos, &this->mAngle.angle_s, &this->mVel, 0xF6, 0xE39, 0xF6);
|
||||
|
||||
if (this->func_ov032_0211ca6c() && this->mUnk_1EC.mUnk_28 & 0x2) {
|
||||
this->SetState(ActorFleeingSpinutState_3);
|
||||
@@ -650,7 +646,7 @@ u16 *ActorFleeingSpinut_1EC::func_ov032_0211cd60(VecFx32 *param1, s16 *param2, V
|
||||
func_01ff9258(sp1C.x - param1->x, sp1C.z - param1->z);
|
||||
|
||||
UnkAngleStruct spm04;
|
||||
spm04.angle = sp00;
|
||||
spm04.angle_u = sp00;
|
||||
func_02017f54(param2, spm04);
|
||||
}
|
||||
|
||||
|
||||
@@ -31,28 +31,28 @@ static const VecFx32 data_ov032_021224d8(FLOAT_TO_FX32(1.7f), FLOAT_TO_FX32(0.5f
|
||||
static ActorUnkZLSL_AnimationTag data_ov032_021224e4 = {.index = 0, .name = "fly"};
|
||||
static ActorUnkZLSL_AnimationTag data_ov032_021224fc = {.index = 0, .name = "keeth", .unknown = 1};
|
||||
static PTMF<ActorKeese> data_ov032_0212258c[ActorKeeseState_Max] = {
|
||||
ActorKeese::func_ov032_0211e9ec, // ActorKeeseState_0
|
||||
ActorKeese::func_ov032_0211ece8, // ActorKeeseState_1
|
||||
ActorKeese::func_ov032_0211f1f0, // ActorKeeseState_2
|
||||
ActorKeese::func_ov032_0211f054, // ActorKeeseState_3
|
||||
ActorKeese::func_ov032_0211f300, // ActorKeeseState_4
|
||||
ActorKeese::func_ov032_0211f3ac, // ActorKeeseState_5
|
||||
ActorKeese::func_ov032_0211f4a4, // ActorKeeseState_6
|
||||
ActorKeese::func_ov032_0211f560, // ActorKeeseState_7
|
||||
ActorKeese::func_ov032_0211f604, // ActorKeeseState_8
|
||||
ActorKeese::func_ov032_0211f6bc, // ActorKeeseState_9
|
||||
&ActorKeese::func_ov032_0211e9ec, // ActorKeeseState_0
|
||||
&ActorKeese::func_ov032_0211ece8, // ActorKeeseState_1
|
||||
&ActorKeese::func_ov032_0211f1f0, // ActorKeeseState_2
|
||||
&ActorKeese::func_ov032_0211f054, // ActorKeeseState_3
|
||||
&ActorKeese::func_ov032_0211f300, // ActorKeeseState_4
|
||||
&ActorKeese::func_ov032_0211f3ac, // ActorKeeseState_5
|
||||
&ActorKeese::func_ov032_0211f4a4, // ActorKeeseState_6
|
||||
&ActorKeese::func_ov032_0211f560, // ActorKeeseState_7
|
||||
&ActorKeese::func_ov032_0211f604, // ActorKeeseState_8
|
||||
&ActorKeese::func_ov032_0211f6bc, // ActorKeeseState_9
|
||||
};
|
||||
static PTMF<ActorKeese> data_ov032_021225dc[ActorKeeseState_Max] = {
|
||||
ActorKeese::func_ov032_0211eb60, // ActorKeeseState_0
|
||||
ActorKeese::func_ov032_0211ee5c, // ActorKeeseState_1
|
||||
ActorKeese::func_ov032_0211f1f4, // ActorKeeseState_2
|
||||
ActorKeese::func_ov032_0211f0a8, // ActorKeeseState_3
|
||||
ActorKeese::func_ov032_0211f310, // ActorKeeseState_4
|
||||
ActorKeese::func_ov032_0211f404, // ActorKeeseState_5
|
||||
ActorKeese::func_ov032_0211f50c, // ActorKeeseState_6
|
||||
ActorKeese::func_ov032_0211f58c, // ActorKeeseState_7
|
||||
ActorKeese::func_ov032_0211f614, // ActorKeeseState_8
|
||||
ActorKeese::func_ov032_0211f804, // ActorKeeseState_9
|
||||
&ActorKeese::func_ov032_0211eb60, // ActorKeeseState_0
|
||||
&ActorKeese::func_ov032_0211ee5c, // ActorKeeseState_1
|
||||
&ActorKeese::func_ov032_0211f1f4, // ActorKeeseState_2
|
||||
&ActorKeese::func_ov032_0211f0a8, // ActorKeeseState_3
|
||||
&ActorKeese::func_ov032_0211f310, // ActorKeeseState_4
|
||||
&ActorKeese::func_ov032_0211f404, // ActorKeeseState_5
|
||||
&ActorKeese::func_ov032_0211f50c, // ActorKeeseState_6
|
||||
&ActorKeese::func_ov032_0211f58c, // ActorKeeseState_7
|
||||
&ActorKeese::func_ov032_0211f614, // ActorKeeseState_8
|
||||
&ActorKeese::func_ov032_0211f804, // ActorKeeseState_9
|
||||
};
|
||||
|
||||
DECL_PROFILE(ActorProfileKeese);
|
||||
@@ -116,7 +116,7 @@ bool ActorKeese_2AC::vfunc_08(const UnkStruct_ov031_020f3310 *param1, unk32 para
|
||||
// non-matching
|
||||
bool ActorKeese_2AC::vfunc_0C(const UnkStruct_ov031_020e54d4 *param1, unk32 *param2, unk32 param3) {}
|
||||
|
||||
bool ActorKeese::vfunc_18(unk32 param1) {
|
||||
bool ActorKeese::Init(unk32 param1) {
|
||||
this->mUnk_0B0.func_ov000_02057c38(0x6, 0x2);
|
||||
this->mUnk_0B0.func_ov000_0209a7b8(this, &ActorKeese::func_ov032_0211faf0);
|
||||
|
||||
@@ -258,7 +258,7 @@ void ActorKeese::SetState(ActorState state) {
|
||||
// non-matching
|
||||
void ActorKeese::func_ov032_0211e468() {}
|
||||
|
||||
void ActorKeese::vfunc_20() {
|
||||
void ActorKeese::Update() {
|
||||
if (this->mState != ActorKeeseState_9 && !this->Actor_Derived2::func_ov017_020bef4c(0x4000) && this->mUnk_48 != 0x0) {
|
||||
bool noReturn = true;
|
||||
if (this->mState != ActorKeeseState_7 && this->mState != ActorKeeseState_6) {
|
||||
@@ -332,7 +332,7 @@ void ActorKeese::vfunc_2C(Actor_vfunc_30 *param1) {
|
||||
return;
|
||||
}
|
||||
|
||||
VecFx32 *og = this->mUnk_0B0.func_01ffc6d4(this->mAngleStruct, &this->mPos);
|
||||
VecFx32 *og = this->mUnk_0B0.func_01ffc6d4(this->mAngle, &this->mPos);
|
||||
VecFx32 vec;
|
||||
VecFx32_Init(og->x, og->y, og->z, &vec);
|
||||
|
||||
@@ -341,8 +341,7 @@ void ActorKeese::vfunc_2C(Actor_vfunc_30 *param1) {
|
||||
|
||||
// non-matching
|
||||
void ActorKeese::func_ov032_0211e9ec() {
|
||||
this->mTimerMax = gRandom.Next32(0x1F) + 0x1E;
|
||||
this->mTimer = 0x0;
|
||||
this->mTimer.Set(0, gRandom.Next32(31) + 30);
|
||||
|
||||
u32 sp00;
|
||||
|
||||
@@ -375,16 +374,16 @@ void ActorKeese::func_ov032_0211eb60() {
|
||||
|
||||
this->mAngle += this->mUnk_2A8;
|
||||
|
||||
if (this->IsTimerOut()) {
|
||||
if (this->mTimer.HasExpired()) {
|
||||
this->func_ov032_0211e380();
|
||||
}
|
||||
|
||||
func_01ff916c(&this->mUnk_2A0, this->mUnk_2A4, 0xA4);
|
||||
func_01ff916c(&this->mPos.y, this->mUnk_29C, 0xA4);
|
||||
|
||||
this->Actor::func_ov000_0209a008(this->mUnk_2A0, this->mAngle);
|
||||
this->Actor::func_ov000_0209a008(this->mUnk_2A0, this->mAngle.angle_s);
|
||||
|
||||
if (this->IsTimerOut()) {
|
||||
if (this->mTimer.HasExpired()) {
|
||||
if (func_01ff9258(this->mPos.x - this->mUnk_5C.mInitialPos.x, this->mPos.z - this->mUnk_5C.mInitialPos.z) > 0x2000) {
|
||||
this->SetState(ActorKeeseState_3);
|
||||
return;
|
||||
@@ -398,7 +397,7 @@ void ActorKeese::func_ov032_0211eb60() {
|
||||
|
||||
VecFx32 *vec = data_027e0ce0->func_01fff148(0x0);
|
||||
|
||||
if (!func_02016b8c(&this->mPos, vec, 0x3000, this->mAngleStruct, 0x1000, 0x1)) {
|
||||
if (!func_02016b8c(&this->mPos, vec, 0x3000, this->mAngle, 0x1000, 0x1)) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -411,16 +410,15 @@ void ActorKeese::func_ov032_0211ece8() {}
|
||||
void ActorKeese::func_ov032_0211ee5c() {}
|
||||
|
||||
void ActorKeese::func_ov032_0211f054() {
|
||||
this->mTimerMax = gRandom.Next32(0x1F) + 0x1E;
|
||||
this->mTimer = 0x0;
|
||||
this->mTimer.Set(0, gRandom.Next32(31) + 30);
|
||||
}
|
||||
|
||||
void ActorKeese::func_ov032_0211f0a8() {
|
||||
this->func_ov032_0211f93c(&this->mUnk_5C.mInitialPos, 0x38E);
|
||||
|
||||
if (this->IsTimerOut()) {
|
||||
if (this->mTimer.HasExpired()) {
|
||||
VecFx32 *vec = data_027e0ce0->func_01fff148(0x0);
|
||||
if (func_02016b8c(&this->mPos, vec, 0x3000, this->mAngleStruct, 0x1000, 0x1)) {
|
||||
if (func_02016b8c(&this->mPos, vec, 0x3000, this->mAngle, 0x1000, 0x1)) {
|
||||
this->SetState(ActorKeeseState_2);
|
||||
}
|
||||
}
|
||||
@@ -428,7 +426,7 @@ void ActorKeese::func_ov032_0211f0a8() {
|
||||
if (this->func_ov032_0211f9c4()) {
|
||||
this->SetState(ActorKeeseState_8);
|
||||
} else {
|
||||
if (this->IsTimerOut() && (this->mUnk_46 & 0x1C)) {
|
||||
if (this->mTimer.HasExpired() && (this->mUnk_46 & 0x1C)) {
|
||||
this->mAngle = func_01ffbbe0(this->mUnk_2AC.mUnk_0C.x, this->mUnk_2AC.mUnk_0C.z);
|
||||
this->SetState(ActorKeeseState_0);
|
||||
} else if (func_01ff9258(this->mUnk_5C.mInitialPos.x - this->mPos.x, this->mUnk_5C.mInitialPos.z - this->mPos.z) <
|
||||
@@ -436,7 +434,7 @@ void ActorKeese::func_ov032_0211f0a8() {
|
||||
this->SetState(ActorKeeseState_0);
|
||||
}
|
||||
}
|
||||
this->func_ov000_0209a008(this->mUnk_2A0, this->mAngle);
|
||||
this->func_ov000_0209a008(this->mUnk_2A0, this->mAngle.angle_s);
|
||||
}
|
||||
|
||||
// non-matching
|
||||
@@ -452,7 +450,7 @@ void ActorKeese::func_ov032_0211f1f4() {
|
||||
if (func_01ff9258(this->mPos.x - sp00.x, this->mPos.z - sp00.z) > 0x2000) {
|
||||
this->func_ov032_0211e380();
|
||||
|
||||
this->Actor::func_ov000_0209a008(this->mUnk_2A0, this->mAngle);
|
||||
this->Actor::func_ov000_0209a008(this->mUnk_2A0, this->mAngle.angle_s);
|
||||
return;
|
||||
}
|
||||
}
|
||||
@@ -460,7 +458,7 @@ void ActorKeese::func_ov032_0211f1f4() {
|
||||
if (func_01ff9258(this->mPos.x - this->mUnk_5C.mInitialPos.x, this->mPos.z - this->mUnk_5C.mInitialPos.z) > 0x2000) {
|
||||
this->SetState(ActorKeeseState_3);
|
||||
|
||||
this->Actor::func_ov000_0209a008(this->mUnk_2A0, this->mAngle);
|
||||
this->Actor::func_ov000_0209a008(this->mUnk_2A0, this->mAngle.angle_s);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -470,14 +468,13 @@ void ActorKeese::func_ov032_0211f1f4() {
|
||||
this->func_ov032_0211e380();
|
||||
}
|
||||
|
||||
this->Actor::func_ov000_0209a008(this->mUnk_2A0, this->mAngle);
|
||||
this->Actor::func_ov000_0209a008(this->mUnk_2A0, this->mAngle.angle_s);
|
||||
}
|
||||
|
||||
void ActorKeese::func_ov032_0211f300() {
|
||||
this->mUnk_248.func_ov000_02097bec();
|
||||
}
|
||||
|
||||
// non-matching (270 + 2)
|
||||
void ActorKeese::func_ov032_0211f310() {
|
||||
this->Actor_Derived2::func_ov000_020992dc();
|
||||
|
||||
@@ -485,7 +482,9 @@ void ActorKeese::func_ov032_0211f310() {
|
||||
if (this->mUnk_48 <= 0x0) {
|
||||
this->vfunc_54(0x0);
|
||||
} else {
|
||||
if (this->mUnk_268.mUnk_08 >= this->mUnk_268.mUnk_0A) {
|
||||
Timer *pTimer = &this->mUnk_268.mUnk_08;
|
||||
|
||||
if (pTimer->HasReachedMaxU()) {
|
||||
this->func_ov032_0211e380();
|
||||
} else {
|
||||
this->SetState(ActorKeeseState_6);
|
||||
@@ -602,12 +601,11 @@ void ActorKeese::func_ov032_0211f804() {
|
||||
}
|
||||
|
||||
++this->mUnk_228;
|
||||
this->mTimerMax = 0x1E;
|
||||
this->mTimer = 0x00;
|
||||
this->mTimer.Set(0, 30);
|
||||
break;
|
||||
|
||||
case 0x1: {
|
||||
if (!this->IsTimerOut()) {
|
||||
if (!this->mTimer.HasExpired()) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -617,13 +615,12 @@ void ActorKeese::func_ov032_0211f804() {
|
||||
func_ov017_020c26f8(0x1, &vec, 0x1, 0x2);
|
||||
|
||||
++this->mUnk_228;
|
||||
this->mTimerMax = 0xA;
|
||||
this->mTimer = 0x0;
|
||||
this->mTimer.Set(0, 10);
|
||||
break;
|
||||
}
|
||||
|
||||
case 0x2:
|
||||
if (!this->IsTimerOut()) {
|
||||
if (!this->mTimer.HasExpired()) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -34,36 +34,38 @@ extern "C" void func_ov017_020c2438(unk32 *, unk32, VecFx32 *, unk32, unk32);
|
||||
extern "C" void func_ov017_020c26f8(unk32, VecFx32 *, unk32, unk32);
|
||||
|
||||
static const VecFx32 data_ov032_02122160(FLOAT_TO_FX32(1.7f), FLOAT_TO_FX32(0.5f), FLOAT_TO_FX32(1.7f));
|
||||
static ActorUnkZLSL_AnimationTag data_ov032_02122184 = {.index = 0, .name = "walk", .unknown = 0x0};
|
||||
static ActorUnkZLSL_AnimationTag data_ov032_0212219c = {.index = 1, .name = "discover", .unknown = 0x1};
|
||||
static ActorUnkZLSL_AnimationTag data_ov032_0212216c = {.index = 0, .name = "KURI", .unknown = 0x1};
|
||||
static ActorUnkZLSL_AnimationTag data_ov032_02122184 = {.index = 0, .name = "walk", .unknown = 0x0};
|
||||
static ActorUnkZLSL_AnimationTag data_ov032_0212219c = {.index = 1, .name = "discover", .unknown = 0x1};
|
||||
static ActorUnkZLSL_AnimationTag data_ov032_0212216c = {.index = 0, .name = "KURI", .unknown = 0x1};
|
||||
|
||||
static PTMF<ActorSpinut> data_ov032_02122288[ActorSpinutState_Max] = {
|
||||
ActorSpinut::func_ov032_02119a0c, // ActorSpinutState_0
|
||||
ActorSpinut::func_ov032_02119c80, // ActorSpinutState_1
|
||||
ActorSpinut::func_ov032_02119df4, // ActorSpinutState_2
|
||||
ActorSpinut::func_ov032_02119f40, // ActorSpinutState_3
|
||||
ActorSpinut::func_ov032_0211a20c, // ActorSpinutState_4
|
||||
ActorSpinut::func_ov032_0211a52c, // ActorSpinutState_5
|
||||
ActorSpinut::func_ov032_0211a86c, // ActorSpinutState_6
|
||||
ActorSpinut::func_ov032_0211aac8, // ActorSpinutState_7
|
||||
ActorSpinut::func_ov032_0211abc0, // ActorSpinutState_8
|
||||
ActorSpinut::func_ov032_0211a9c8, // ActorSpinutState_9
|
||||
ActorSpinut::func_ov032_0211ac94, // ActorSpinutState_10
|
||||
ActorSpinut::func_ov032_0211adf4 // ActorSpinutState_11
|
||||
&ActorSpinut::func_ov032_02119a0c, // ActorSpinutState_0
|
||||
&ActorSpinut::func_ov032_02119c80, // ActorSpinutState_1
|
||||
&ActorSpinut::func_ov032_02119df4, // ActorSpinutState_2
|
||||
&ActorSpinut::func_ov032_02119f40, // ActorSpinutState_3
|
||||
&ActorSpinut::func_ov032_0211a20c, // ActorSpinutState_4
|
||||
&ActorSpinut::func_ov032_0211a52c, // ActorSpinutState_5
|
||||
&ActorSpinut::func_ov032_0211a86c, // ActorSpinutState_6
|
||||
&ActorSpinut::func_ov032_0211aac8, // ActorSpinutState_7
|
||||
&ActorSpinut::func_ov032_0211abc0, // ActorSpinutState_8
|
||||
&ActorSpinut::func_ov032_0211a9c8, // ActorSpinutState_9
|
||||
&ActorSpinut::func_ov032_0211ac94, // ActorSpinutState_10
|
||||
&ActorSpinut::func_ov032_0211adf4 // ActorSpinutState_11
|
||||
};
|
||||
|
||||
static PTMF<ActorSpinut> data_ov032_02122348[ActorSpinutState_Max] = {
|
||||
ActorSpinut::func_ov032_02119990, // ActorSpinutState_0
|
||||
ActorSpinut::func_ov032_02119be8, // ActorSpinutState_1
|
||||
ActorSpinut::func_ov032_02119d7c, // ActorSpinutState_2
|
||||
ActorSpinut::func_ov032_02119e90, // ActorSpinutState_3
|
||||
ActorSpinut::func_ov032_0211a140, // ActorSpinutState_4
|
||||
ActorSpinut::func_ov032_0211a484, // ActorSpinutState_5
|
||||
ActorSpinut::func_ov032_0211a7b8, // ActorSpinutState_6
|
||||
ActorSpinut::func_ov032_0211aa40, // ActorSpinutState_7
|
||||
ActorSpinut::func_ov032_0211ab20, // ActorSpinutState_8
|
||||
ActorSpinut::func_ov032_0211a950, // ActorSpinutState_9
|
||||
ActorSpinut::func_ov032_0211ac20, // ActorSpinutState_10
|
||||
ActorSpinut::func_ov032_0211ad40 // ActorSpinutState_11
|
||||
&ActorSpinut::func_ov032_02119990, // ActorSpinutState_0
|
||||
&ActorSpinut::func_ov032_02119be8, // ActorSpinutState_1
|
||||
&ActorSpinut::func_ov032_02119d7c, // ActorSpinutState_2
|
||||
&ActorSpinut::func_ov032_02119e90, // ActorSpinutState_3
|
||||
&ActorSpinut::func_ov032_0211a140, // ActorSpinutState_4
|
||||
&ActorSpinut::func_ov032_0211a484, // ActorSpinutState_5
|
||||
&ActorSpinut::func_ov032_0211a7b8, // ActorSpinutState_6
|
||||
&ActorSpinut::func_ov032_0211aa40, // ActorSpinutState_7
|
||||
&ActorSpinut::func_ov032_0211ab20, // ActorSpinutState_8
|
||||
&ActorSpinut::func_ov032_0211a950, // ActorSpinutState_9
|
||||
&ActorSpinut::func_ov032_0211ac20, // ActorSpinutState_10
|
||||
&ActorSpinut::func_ov032_0211ad40 // ActorSpinutState_11
|
||||
};
|
||||
|
||||
DECL_PROFILE(ActorProfileSpinut);
|
||||
@@ -96,11 +98,11 @@ ActorSpinut::ActorSpinut() :
|
||||
|
||||
VecFx32_Init(FLOAT_TO_FX32(0.0f), FLOAT_TO_FX32(0.0f), FLOAT_TO_FX32(0.0f), &this->mUnk_288);
|
||||
|
||||
Actor_38 *actor_38 = &this->mUnk_258.mUnk_00;
|
||||
actor_38->mUnk_08 = 0x1;
|
||||
this->mUnk_38 = actor_38;
|
||||
this->mUnk_296 = 0x0;
|
||||
this->mUnk_298 = 0x0;
|
||||
this->mUnk_38 = &this->mUnk_258.mUnk_00;
|
||||
this->mUnk_38->mUnk_08 = 0x01;
|
||||
|
||||
this->mUnk_296.value = 0;
|
||||
this->mUnk_296.max = 0;
|
||||
|
||||
VecFx32_Init(FLOAT_TO_FX32(1.0f), FLOAT_TO_FX32(1.0f), FLOAT_TO_FX32(1.0f), &this->mUnk_27C);
|
||||
|
||||
@@ -113,7 +115,7 @@ ActorSpinut::ActorSpinut() :
|
||||
|
||||
ActorSpinut::~ActorSpinut() {}
|
||||
|
||||
bool ActorSpinut::vfunc_18(unk32 param1) {
|
||||
bool ActorSpinut::Init(unk32 param1) {
|
||||
if (this->Actor::func_ov000_02098a60(0x1)) {
|
||||
this->func_ov000_020984d0();
|
||||
return true;
|
||||
@@ -130,7 +132,7 @@ bool ActorSpinut::vfunc_18(unk32 param1) {
|
||||
}
|
||||
|
||||
// non-matching
|
||||
void ActorSpinut::vfunc_1C() {
|
||||
void ActorSpinut::Setup() {
|
||||
if (this->mUnk_5C.mParams[0] == 0x2) {
|
||||
this->mUnk_294 = false;
|
||||
Actor *actor = func_02016fbc(ActorId_Soldier, &this->mPos, 0x0);
|
||||
@@ -174,7 +176,7 @@ void ActorSpinut::SetState(ActorState state) {
|
||||
CALL_PTMF(PTMF<ActorSpinut>, data_ov032_02122348[this->mState]);
|
||||
}
|
||||
|
||||
void ActorSpinut::vfunc_20() {
|
||||
void ActorSpinut::Update() {
|
||||
if (!this->Actor_Derived2::func_ov017_020bef4c(0x4000) && mUnk_48 != 0) {
|
||||
bool var_r1 = true;
|
||||
bool var_r2 = true;
|
||||
@@ -283,7 +285,7 @@ void ActorSpinut::vfunc_2C(Actor_vfunc_30 *param1) {
|
||||
|
||||
VecFx32 sp08 = this->mPos;
|
||||
sp08.y += this->mUnk_288.y;
|
||||
this->mUnk_0B0.func_01ffc634(&sp14, this->mAngleStruct, &sp08);
|
||||
this->mUnk_0B0.func_01ffc634(&sp14, this->mAngle, &sp08);
|
||||
}
|
||||
|
||||
void ActorSpinut::func_ov032_02119990() {
|
||||
@@ -300,24 +302,23 @@ void ActorSpinut::func_ov032_02119a0c() {
|
||||
switch (this->mUnk_218) {
|
||||
case 0x0:
|
||||
unk32 var;
|
||||
|
||||
if (gRandom.Next32(0) & 0x80000000) {
|
||||
var = 0x1;
|
||||
} else {
|
||||
var = -0x1;
|
||||
}
|
||||
|
||||
this->mUnk_21C = var;
|
||||
|
||||
this->mTimerMax = gRandom.Next32(0x15) + 0x1E;
|
||||
this->mTimer = 0x00;
|
||||
|
||||
this->mTimer.Set(0, gRandom.Next32(21) + 30);
|
||||
++this->mUnk_218;
|
||||
break;
|
||||
|
||||
case 0x1:
|
||||
this->mUnk_224 = this->mUnk_21C * gRandom.Next32(0x38E) + this->mAngle;
|
||||
this->mUnk_224 = this->mUnk_21C * gRandom.Next32(0x38E) + this->mAngle.angle_s;
|
||||
|
||||
if (func_01ff930c(&this->mAngle, this->mUnk_224, 0x71C)) {
|
||||
u16 angle = this->mAngle;
|
||||
if (func_01ff930c(&this->mAngle.angle_s, this->mUnk_224, 0x71C)) {
|
||||
u16 angle = this->mAngle.angle_u;
|
||||
this->mVel.x = MUL_FX32(SIN(angle), this->mUnk_220);
|
||||
this->mVel.z = MUL_FX32(COS(angle), this->mUnk_220);
|
||||
|
||||
@@ -326,7 +327,7 @@ void ActorSpinut::func_ov032_02119a0c() {
|
||||
break;
|
||||
}
|
||||
|
||||
if (this->IsTimerOut()) {
|
||||
if (this->mTimer.HasExpired()) {
|
||||
this->SetState(ActorSpinutState_0);
|
||||
}
|
||||
}
|
||||
@@ -380,16 +381,15 @@ void ActorSpinut::func_ov032_02119c80() {
|
||||
|
||||
void ActorSpinut::func_ov032_02119d7c() {
|
||||
this->mUnk_110.vfunc_1C(data_ov032_02122184, 0x1000, 0x19A, 0x0);
|
||||
this->mTimerMax = 0x14;
|
||||
this->mTimer = 0x00;
|
||||
this->mVel.x = FLOAT_TO_FX32(0.0f);
|
||||
this->mVel.z = FLOAT_TO_FX32(0.0f);
|
||||
this->mTimer.Set(0, 20);
|
||||
this->mVel.x = FLOAT_TO_FX32(0.0f);
|
||||
this->mVel.z = FLOAT_TO_FX32(0.0f);
|
||||
}
|
||||
|
||||
// non-matching
|
||||
void ActorSpinut::func_ov032_02119df4() {
|
||||
s16 var;
|
||||
s16 delta = this->mTimerMax - this->mTimer;
|
||||
s16 delta = this->mTimer.GetRemainingTime();
|
||||
func_ov000_020986b4(&var, this, 0x0);
|
||||
|
||||
s16 val = var;
|
||||
@@ -397,7 +397,7 @@ void ActorSpinut::func_ov032_02119df4() {
|
||||
func_01ff9318(&this->mAngle, val, func_01ffb464(delta << 0xC));
|
||||
}
|
||||
|
||||
if (this->IsTimerOut()) {
|
||||
if (this->mTimer.HasExpired()) {
|
||||
this->SetState(ActorSpinutState_3);
|
||||
}
|
||||
this->func_ov032_0211b1e0();
|
||||
@@ -406,11 +406,8 @@ void ActorSpinut::func_ov032_02119df4() {
|
||||
// non-matching
|
||||
void ActorSpinut::func_ov032_02119e90() {
|
||||
this->mUnk_110.vfunc_1C(data_ov032_02122184, 0x1000, 0x19A, 0x0);
|
||||
|
||||
this->mUnk_288.x = func_01ffb66c(0x1800, func_01ffb428(0x148, 0x14) >> 0xC);
|
||||
|
||||
this->mTimer = 0x0;
|
||||
this->mTimerMax = 0xB4;
|
||||
this->mTimer.Set(0, 180);
|
||||
|
||||
if (this->mUnk_5C.mParams[0] == 0x2) {
|
||||
this->mUnk_264 = 0x14000;
|
||||
@@ -425,7 +422,7 @@ void ActorSpinut::func_ov032_02119e90() {
|
||||
|
||||
// non-matching (case 1)
|
||||
void ActorSpinut::func_ov032_02119f40() {
|
||||
if (this->IsTimerOut()) {
|
||||
if (this->mTimer.HasExpired()) {
|
||||
this->mUnk_218 = 0x2;
|
||||
}
|
||||
|
||||
@@ -449,7 +446,7 @@ void ActorSpinut::func_ov032_02119f40() {
|
||||
s16 var;
|
||||
s16 *r5 = &var;
|
||||
func_ov000_020986b4(r5, this, 0x0);
|
||||
func_01ff930c(&this->mAngle, *r5, 0x2D8);
|
||||
func_01ff930c(&this->mAngle.angle_s, *r5, 0x2D8);
|
||||
|
||||
if (!this->func_ov032_0211b064(0x1)) {
|
||||
++this->mUnk_218;
|
||||
@@ -478,7 +475,7 @@ void ActorSpinut::func_ov032_02119f40() {
|
||||
break;
|
||||
}
|
||||
|
||||
u16 angle = this->mAngle;
|
||||
u16 angle = this->mAngle.angle_u;
|
||||
this->mVel.x = MUL_FX32(SIN(angle), this->mUnk_220);
|
||||
this->mVel.z = MUL_FX32(COS(angle), this->mUnk_220);
|
||||
|
||||
@@ -499,10 +496,9 @@ void ActorSpinut::func_ov032_0211a140() {
|
||||
|
||||
this->mUnk_21C = var;
|
||||
|
||||
this->mVel.x = FLOAT_TO_FX32(0.0f);
|
||||
this->mVel.z = FLOAT_TO_FX32(0.0f);
|
||||
this->mTimerMax = 0x1E;
|
||||
this->mTimer = 0x00;
|
||||
this->mVel.x = FLOAT_TO_FX32(0.0f);
|
||||
this->mVel.z = FLOAT_TO_FX32(0.0f);
|
||||
this->mTimer.Set(0, 30);
|
||||
}
|
||||
|
||||
// non-matching
|
||||
@@ -521,8 +517,8 @@ void ActorSpinut::func_ov032_0211a52c() {
|
||||
this->mUnk_110.vfunc_28()->mUnk_04 = this->mUnk_110.vfunc_28()->mUnk_04 + this->mUnk_288.x;
|
||||
|
||||
unk32 val = this->mUnk_220 - 0x14;
|
||||
fx32 sinValue = SIN((u16) this->mAngle);
|
||||
fx32 cosValue = COS((u16) this->mAngle);
|
||||
fx32 sinValue = SIN((u16) this->mAngle.angle_s);
|
||||
fx32 cosValue = COS((u16) this->mAngle.angle_s);
|
||||
this->mUnk_220 = val;
|
||||
|
||||
this->mVel.x = MUL_FX32(sinValue, val);
|
||||
@@ -605,7 +601,7 @@ void ActorSpinut::func_ov032_0211a86c() {
|
||||
return;
|
||||
}
|
||||
|
||||
if (this->mUnk_248.mUnk_08 < this->mUnk_248.mUnk_0A) {
|
||||
if (!this->mUnk_248.mUnk_08.HasReachedMaxU()) {
|
||||
this->SetState(ActorSpinutState_7);
|
||||
return;
|
||||
}
|
||||
@@ -619,15 +615,13 @@ void ActorSpinut::func_ov032_0211a86c() {
|
||||
|
||||
void ActorSpinut::func_ov032_0211a950() {
|
||||
this->mUnk_110.vfunc_1C(data_ov032_02122184, 0x1000, 0x19A, 0x0);
|
||||
|
||||
this->mTimerMax = 0x14;
|
||||
this->mTimer = 0x00;
|
||||
this->mVel.x = FLOAT_TO_FX32(0.0f);
|
||||
this->mVel.z = FLOAT_TO_FX32(0.0f);
|
||||
this->mTimer.Set(0, 20);
|
||||
this->mVel.x = FLOAT_TO_FX32(0.0f);
|
||||
this->mVel.z = FLOAT_TO_FX32(0.0f);
|
||||
}
|
||||
|
||||
void ActorSpinut::func_ov032_0211a9c8() {
|
||||
if (this->IsTimerOut()) {
|
||||
if (this->mTimer.HasExpired()) {
|
||||
if (this->func_ov032_0211b064(0x0) || this->mUnk_5C.mParams[0] == 0x2) {
|
||||
this->SetState(ActorSpinutState_1);
|
||||
} else {
|
||||
@@ -695,17 +689,14 @@ void ActorSpinut::func_ov032_0211abc0() {
|
||||
void ActorSpinut::func_ov032_0211ac20() {
|
||||
this->mVel.x = FLOAT_TO_FX32(0.0f);
|
||||
this->mVel.z = FLOAT_TO_FX32(0.0f);
|
||||
|
||||
this->mTimerMax = 0xA;
|
||||
this->mTimer = 0x0;
|
||||
|
||||
this->mTimer.Set(0, 10);
|
||||
this->mUnk_110.vfunc_1C(data_ov032_02122184, 0x1000, 0x19A, 0x0);
|
||||
}
|
||||
|
||||
void ActorSpinut::func_ov032_0211ac94() {
|
||||
this->mUnk_27C.y -= 0x199;
|
||||
|
||||
if (!this->IsTimerOut()) {
|
||||
if (!this->mTimer.HasExpired()) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -724,19 +715,16 @@ void ActorSpinut::func_ov032_0211ac94() {
|
||||
void ActorSpinut::func_ov032_0211ad40() {
|
||||
this->mVel.x = FLOAT_TO_FX32(0.0f);
|
||||
this->mVel.z = FLOAT_TO_FX32(0.0f);
|
||||
|
||||
this->mUnk_110.vfunc_1C(data_ov032_02122184, 0x1000, 0x19A, 0x0);
|
||||
|
||||
this->mUnk_298 = gRandom.Next32(0xE);
|
||||
this->mUnk_296 = 0x0;
|
||||
this->mUnk_296.Set(0, gRandom.Next32(14));
|
||||
}
|
||||
|
||||
// non-matching
|
||||
void ActorSpinut::func_ov032_0211adf4() {
|
||||
this->IsTimerOut();
|
||||
this->mTimer.Update();
|
||||
switch (this->mUnk_218) {
|
||||
case 0x0:
|
||||
if (!this->IsInternalTimerOut()) {
|
||||
if (!this->mUnk_296.HasExpired()) {
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -752,13 +740,12 @@ void ActorSpinut::func_ov032_0211adf4() {
|
||||
|
||||
data_027e0cec->func_ov000_0209feac(0x880, &this->mPos, 0x2, 0x0, 0x0);
|
||||
this->mUnk_110.vfunc_1C(data_ov032_02122184, 0x1000, 0x19A, 0x0);
|
||||
if (this->func_ov032_0211b064(0x0) || (this->mUnk_294 && this->mTimer >= this->mTimerMax)) {
|
||||
if (this->func_ov032_0211b064(0x0) || (this->mUnk_294 && this->mTimer.HasReachedMaxU())) {
|
||||
this->SetState(ActorSpinutState_1);
|
||||
return;
|
||||
}
|
||||
u16 random = gRandom.Next32(0);
|
||||
this->mUnk_298 = random + 0xA;
|
||||
this->mUnk_296 = 0x0;
|
||||
u16 random = gRandom.Next32(0);
|
||||
this->mUnk_296.Set(0, random + 10);
|
||||
this->mUnk_218 = 0x0;
|
||||
break;
|
||||
}
|
||||
@@ -786,7 +773,7 @@ bool ActorSpinut::func_ov032_0211b064(unk32 param1) {
|
||||
}
|
||||
|
||||
if (param1 != 0x0) {
|
||||
if (!ret || !func_02016ae0(&this->mPos, vec, this->mAngleStruct, 0x4E39, 0x1) == 0x0) {
|
||||
if (!ret || !func_02016ae0(&this->mPos, vec, this->mAngle, 0x4E39, 0x1) == 0x0) {
|
||||
ret = true;
|
||||
} else {
|
||||
ret = false;
|
||||
@@ -850,21 +837,20 @@ void ActorSpinut::func_ov032_0211b298() {
|
||||
void ActorSpinut::func_ov032_0211b37c(Actor *thisx, Actor_vfunc_30 *param1) {
|
||||
if (thisx->GetActorId() == ActorId_Spinut) {
|
||||
((ActorSpinut *) thisx)->mUnk_294 = true;
|
||||
thisx->mTimerMax = (u16) param1; //! TODO: fake match
|
||||
thisx->mTimer = 0x0;
|
||||
thisx->mTimer.Set(0, (u16) param1); //! TODO: fake match
|
||||
}
|
||||
}
|
||||
|
||||
void ActorSpinut::func_ov032_0211b3b0() {
|
||||
if (this->mUnk_5C.mUnk_1A[1] != 0x0) {
|
||||
UNSET_FLAG(this->mFlags, ActorFlag_Alive);
|
||||
this->Kill();
|
||||
} else {
|
||||
this->Actor::func_ov000_020984d0();
|
||||
}
|
||||
|
||||
if (this->mUnk_5C.mParams[0] == 0x2) {
|
||||
this->Actor::func_ov000_02098a88(0x0, 0x1);
|
||||
UNSET_FLAG(this->mFlags, ActorFlag_Alive);
|
||||
this->Kill();
|
||||
return;
|
||||
}
|
||||
this->Actor::func_ov000_020984d0();
|
||||
|
||||
@@ -103,18 +103,16 @@ MapObjectUnkSWSW::MapObjectUnkSWSW() :
|
||||
mUnk_0EC(FLOAT_TO_FX32(0.0f), FLOAT_TO_FX32(0.5f), FLOAT_TO_FX32(-0.4202f)),
|
||||
mUnk_0F8(NULL),
|
||||
mUnk_0FC(0x4),
|
||||
mUnk_100(0x0),
|
||||
mUnk_102(0x0),
|
||||
mUnk_100(0, 0),
|
||||
mUnk_104(0x0),
|
||||
mUnk_105(0x0),
|
||||
mUnk_10C(0x0),
|
||||
mUnk_10E(0x0),
|
||||
mUnk_110(0x0),
|
||||
mUnk_10E(0, 0),
|
||||
mUnk_114(NULL) {
|
||||
this->mUnk_10 = &data_ov032_02122b8c;
|
||||
}
|
||||
|
||||
bool MapObjectUnkSWSW::vfunc_00() {
|
||||
bool MapObjectUnkSWSW::Init() {
|
||||
Vec2bCpp sp00;
|
||||
|
||||
UnkStruct_027e0cd8_0C_Base *data_027e0cd8_0C = data_027e0cd8->mUnk_0C;
|
||||
@@ -196,7 +194,7 @@ void MapObjectUnkSWSW::vfunc_08() {
|
||||
break;
|
||||
|
||||
case 0x2: {
|
||||
if (this->mUnk_102 != 0x0 && this->mUnk_100 >= this->mUnk_102) {
|
||||
if (this->mUnk_100.max != 0 && this->mUnk_100.HasReachedMax()) {
|
||||
this->MapObject::func_ov000_0209d2c4(0x0, true);
|
||||
|
||||
if (this->mUnk_104 != 0x0) {
|
||||
@@ -227,8 +225,8 @@ void MapObjectUnkSWSW::vfunc_08() {
|
||||
func_01ff91b8(&this->mUnk_10C, 0x0, 0x333);
|
||||
}
|
||||
|
||||
if (var_r5 && this->mUnk_110 != 0x0) {
|
||||
fx16 var_r3 = COS((u16) (this->mUnk_10E * 0xFFFF / this->mUnk_110));
|
||||
if (var_r5 && this->mUnk_10E.max != 0) {
|
||||
fx16 var_r3 = COS((u16) (this->mUnk_10E.value * 0xFFFF / this->mUnk_10E.max));
|
||||
|
||||
if (var_r3 < 0) {
|
||||
var_r3 = -var_r3;
|
||||
@@ -236,26 +234,22 @@ void MapObjectUnkSWSW::vfunc_08() {
|
||||
|
||||
this->mUnk_108 = var_r3;
|
||||
|
||||
if (this->mUnk_10E < this->mUnk_110) {
|
||||
++this->mUnk_10E;
|
||||
}
|
||||
this->mUnk_10E.Update();
|
||||
|
||||
if (this->mUnk_10E >= this->mUnk_110) {
|
||||
this->mUnk_110 = 0x0;
|
||||
this->mUnk_10E = 0x0;
|
||||
if (this->mUnk_10E.HasReachedMax()) {
|
||||
this->mUnk_10E.Init();
|
||||
}
|
||||
} else {
|
||||
if (gRandom.Next32(0x33) != 0x0) {
|
||||
this->mUnk_110 = 0x0;
|
||||
this->mUnk_10E.max = 0;
|
||||
} else {
|
||||
this->mUnk_110 = gRandom.Next32(0x29) + 0xA;
|
||||
this->mUnk_10E.max = gRandom.Next32(41) + 10;
|
||||
}
|
||||
|
||||
this->mUnk_10E = 0x0;
|
||||
this->mUnk_10E.value = 0;
|
||||
|
||||
if (!var_r5) {
|
||||
this->mUnk_110 = 0x0;
|
||||
this->mUnk_10E = 0x0;
|
||||
this->mUnk_10E.Init();
|
||||
func_01ff9218(&this->mUnk_108, 0x0, 0x800);
|
||||
} else {
|
||||
func_01ff9218(&this->mUnk_108, 0x1000, 0x800);
|
||||
@@ -269,7 +263,7 @@ void MapObjectUnkSWSW::vfunc_08() {
|
||||
VecFx32 sp24;
|
||||
VecFx32 sp18;
|
||||
VecFx32 sp0C;
|
||||
if (this->mUnk_100 >= this->mUnk_102) {
|
||||
if (this->mUnk_100.HasReachedMax()) {
|
||||
VecFx32_Init(this->mPos.x + this->mUnk_0EC.x, this->mPos.y + this->mUnk_0EC.y, this->mPos.z + this->mUnk_0EC.z,
|
||||
&sp30);
|
||||
sp18 = sp30;
|
||||
@@ -286,7 +280,7 @@ void MapObjectUnkSWSW::vfunc_08() {
|
||||
this->vfunc_3C(0x0);
|
||||
} else {
|
||||
fx32 z = this->mPos.z + this->mUnk_0EC.z +
|
||||
func_02015a18(this->mUnk_100 << 0xC, 0, -0x1000, 0, this->mUnk_102 << 0xC, 0, 0);
|
||||
func_02015a18(this->mUnk_100.max << 0xC, 0, -0x1000, 0, this->mUnk_100.value << 0xC, 0, 0);
|
||||
VecFx32_Init(this->mPos.x + this->mUnk_0EC.x, this->mPos.y + this->mUnk_0EC.y, z, &sp24);
|
||||
|
||||
sp0C = sp24;
|
||||
@@ -307,7 +301,7 @@ void MapObjectUnkSWSW::vfunc_08() {
|
||||
break;
|
||||
}
|
||||
|
||||
this->IsInternalTimerOut();
|
||||
this->mUnk_100.Update();
|
||||
this->mUnk_040.func_ov032_021210a0(this->mUnk_108);
|
||||
|
||||
if (this->mUnk_10C > 0x2AAB) {
|
||||
@@ -349,8 +343,8 @@ bool MapObjectUnkSWSW::vfunc_1C(ActorRef param1, unk32 param2, VecFx32 *param3)
|
||||
}
|
||||
|
||||
UnkAngleStruct angle;
|
||||
angle.angle = actorNSSW->mAngle;
|
||||
VecFx32 *vec = data_027e0ce0->func_01fff148(0x0);
|
||||
angle.angle_s = actorNSSW->mAngle.angle_s;
|
||||
VecFx32 *vec = data_027e0ce0->func_01fff148(0x0);
|
||||
|
||||
if (!func_02016ae0(&actorNSSW->mPos, vec, angle, 0x2AAB, 0x1)) {
|
||||
return false;
|
||||
@@ -402,8 +396,7 @@ void MapObjectUnkSWSW::vfunc_38() {
|
||||
|
||||
this->vfunc_3C(0x2);
|
||||
|
||||
this->mUnk_102 = 0xF;
|
||||
this->mUnk_100 = 0x0;
|
||||
this->mUnk_100.Set(0, 15);
|
||||
this->mUnk_114 = NULL;
|
||||
}
|
||||
|
||||
@@ -437,13 +430,11 @@ void MapObjectUnkSWSW::func_ov032_02121b90() {
|
||||
// non-matching (last copies)
|
||||
void MapObjectUnkSWSW::vfunc_3C(unk32 param1) {
|
||||
this->mUnk_0FC = param1;
|
||||
this->mUnk_102 = 0xFFFF;
|
||||
this->mUnk_100 = 0x0000;
|
||||
this->mUnk_100.Reset();
|
||||
|
||||
switch (param1) {
|
||||
case 0x2:
|
||||
this->mUnk_102 = 0x0;
|
||||
this->mUnk_100 = 0x0;
|
||||
this->mUnk_100.Init();
|
||||
this->mUnk_0AC.func_ov000_020577f8(0x1000);
|
||||
break;
|
||||
|
||||
@@ -459,9 +450,7 @@ void MapObjectUnkSWSW::vfunc_3C(unk32 param1) {
|
||||
this->mUnk_0F8 = actorNSSW;
|
||||
this->mUnk_114 = actorNSSW;
|
||||
|
||||
this->mUnk_102 = 0x28;
|
||||
this->mUnk_100 = 0x00;
|
||||
|
||||
this->mUnk_100.Set(0, 40);
|
||||
this->mUnk_0AC.func_ov000_020577f8(0x1000);
|
||||
|
||||
VecFx32_Init(this->mPos.x + this->mUnk_0EC.x, this->mPos.y + this->mUnk_0EC.y,
|
||||
@@ -491,7 +480,7 @@ void MapObjectUnkSWSW::vfunc_14(unk32 param1) {
|
||||
VecFx32 vec;
|
||||
VecFx32_Init(this->mPos.x + this->mUnk_0EC.x, this->mPos.y + this->mUnk_0EC.y, this->mPos.z + this->mUnk_0EC.z, &vec);
|
||||
|
||||
this->mUnk_040.func_01ffc6d4(this->mAngleStruct, &vec);
|
||||
this->mUnk_040.func_01ffc6d4(this->mAngle, &vec);
|
||||
}
|
||||
|
||||
struct UnkStack_ov032_02121dc8 {
|
||||
@@ -508,7 +497,7 @@ ActorUnkNSSW *MapObjectUnkSWSW::func_ov032_02121dc8(VecFx32 *param1) {
|
||||
params.mUnk_28 = 0;
|
||||
params.func_ov000_020975f8();
|
||||
|
||||
params.mInitialAngle = this->mAngle;
|
||||
params.mInitialAngle = this->mAngle.angle_s;
|
||||
params.mUnk_28 = *(unk32 *) &this->mUnk_38;
|
||||
|
||||
VecFx32_Init(param1->x, param1->y, param1->z, ¶ms.mInitialPos);
|
||||
|
||||
@@ -82,17 +82,17 @@ const Cylinder data_ov063_02162e90(0, 0x99A, 0, 0x99A);
|
||||
DECL_PROFILE(ActorProfileUnkCANS);
|
||||
|
||||
static PTMF<ActorUnkCANS> data_ov063_02162f58[0xB] = {
|
||||
ActorUnkCANS::func_ov063_02158b34, ActorUnkCANS::func_ov063_02158d40, ActorUnkCANS::func_ov063_021590c8,
|
||||
ActorUnkCANS::func_ov063_021591f4, ActorUnkCANS::func_ov063_02159408, ActorUnkCANS::func_ov063_021595a4,
|
||||
ActorUnkCANS::func_ov063_02159714, ActorUnkCANS::func_ov063_021598fc, ActorUnkCANS::func_ov063_02159ca8,
|
||||
ActorUnkCANS::func_ov063_02159dfc, ActorUnkCANS::func_ov063_02159e20,
|
||||
&ActorUnkCANS::func_ov063_02158b34, &ActorUnkCANS::func_ov063_02158d40, &ActorUnkCANS::func_ov063_021590c8,
|
||||
&ActorUnkCANS::func_ov063_021591f4, &ActorUnkCANS::func_ov063_02159408, &ActorUnkCANS::func_ov063_021595a4,
|
||||
&ActorUnkCANS::func_ov063_02159714, &ActorUnkCANS::func_ov063_021598fc, &ActorUnkCANS::func_ov063_02159ca8,
|
||||
&ActorUnkCANS::func_ov063_02159dfc, &ActorUnkCANS::func_ov063_02159e20,
|
||||
};
|
||||
|
||||
static PTMF<ActorUnkCANS> data_ov063_02162fb0[0xB] = {
|
||||
ActorUnkCANS::func_ov063_02158b98, ActorUnkCANS::func_ov063_02158db0, ActorUnkCANS::func_ov063_02159100,
|
||||
ActorUnkCANS::func_ov063_02159258, ActorUnkCANS::func_ov063_02159494, ActorUnkCANS::func_ov063_02159618,
|
||||
ActorUnkCANS::func_ov063_02159784, ActorUnkCANS::func_ov063_021599e4, ActorUnkCANS::func_ov063_02159d68,
|
||||
ActorUnkCANS::func_ov063_02159e1c, ActorUnkCANS::func_ov063_02159ec0,
|
||||
&ActorUnkCANS::func_ov063_02158b98, &ActorUnkCANS::func_ov063_02158db0, &ActorUnkCANS::func_ov063_02159100,
|
||||
&ActorUnkCANS::func_ov063_02159258, &ActorUnkCANS::func_ov063_02159494, &ActorUnkCANS::func_ov063_02159618,
|
||||
&ActorUnkCANS::func_ov063_02159784, &ActorUnkCANS::func_ov063_021599e4, &ActorUnkCANS::func_ov063_02159d68,
|
||||
&ActorUnkCANS::func_ov063_02159e1c, &ActorUnkCANS::func_ov063_02159ec0,
|
||||
};
|
||||
|
||||
Actor *ActorProfileUnkCANS::Create() {
|
||||
@@ -132,7 +132,7 @@ unk32 UnkStruct_ov063_02162e88::vfunc_04(ActorRef param1, unk32 param2, unk32 pa
|
||||
ActorShotArrow *ret4 = (ActorShotArrow *) gpActorManager->func_01fff3b4(param1);
|
||||
|
||||
if (ret4 != NULL && ret4->GetActorId() == ActorId_ShotArrow) {
|
||||
u16 angle = ((ActorUnkCANS *) mUnk_20)->mAngle;
|
||||
u16 angle = ((ActorUnkCANS *) mUnk_20)->mAngle.angle_s;
|
||||
fx32 sin_val = MUL_FX32(SIN(angle), FLOAT_TO_FX32(1.f));
|
||||
fx32 cos_val = MUL_FX32(COS(angle), FLOAT_TO_FX32(1.f));
|
||||
VecFx32 vec;
|
||||
@@ -160,10 +160,8 @@ ActorUnkCANS::ActorUnkCANS() :
|
||||
mUnk_1F4(),
|
||||
mUnk_200(this),
|
||||
mUnk_224(),
|
||||
mUnk_234(0),
|
||||
mUnk_236(0),
|
||||
mUnk_238(0),
|
||||
mUnk_23A(0),
|
||||
mUnk_234(0, 0),
|
||||
mUnk_238(0, 0),
|
||||
mUnk_250(mUnk_5C.mInitialPos),
|
||||
mUnk_274(0),
|
||||
mUnk_270(0xCD) {
|
||||
@@ -178,7 +176,7 @@ ActorUnkCANS::ActorUnkCANS() :
|
||||
mUnk_270 *= mUnk_276;
|
||||
}
|
||||
|
||||
bool ActorUnkCANS::vfunc_18(unk32 param1) {
|
||||
bool ActorUnkCANS::Init(unk32 param1) {
|
||||
this->mUnk_0B0.func_ov000_02057c38(6, 2);
|
||||
this->mUnk_0B0.func_ov000_0209a7b8(this, (UnkSystem4_UnkCallback) ActorUnkCANS::func_ov063_0215a678);
|
||||
|
||||
@@ -191,7 +189,7 @@ bool ActorUnkCANS::vfunc_18(unk32 param1) {
|
||||
return true;
|
||||
}
|
||||
|
||||
void ActorUnkCANS::vfunc_1C(void) {
|
||||
void ActorUnkCANS::Setup(void) {
|
||||
mUnk_26C = mUnk_5C.mInitialAngle;
|
||||
|
||||
s16 var;
|
||||
@@ -219,8 +217,7 @@ void ActorUnkCANS::vfunc_1C(void) {
|
||||
void ActorUnkCANS::func_ov063_02158424(void) {
|
||||
mUnk_274 = 0;
|
||||
if (mState == 6) {
|
||||
mUnk_23A = 0x14;
|
||||
mUnk_238 = 0;
|
||||
this->mUnk_238.Set(0, 20);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -238,15 +235,13 @@ void ActorUnkCANS::func_ov063_02158490(void) {
|
||||
|
||||
void ActorUnkCANS::vfunc_24(void) {
|
||||
if (data_027e09b8->HasAdventureFlag(AdventureFlag_VisitedIslandSanctuaryFirstTime)) {
|
||||
this->vfunc_20();
|
||||
this->Update();
|
||||
}
|
||||
}
|
||||
|
||||
// non-matching
|
||||
void ActorUnkCANS::vfunc_20(void) {
|
||||
if (mUnk_238 < mUnk_23A) {
|
||||
mUnk_238++;
|
||||
}
|
||||
void ActorUnkCANS::Update(void) {
|
||||
this->mUnk_238.Update();
|
||||
|
||||
if (!this->func_ov017_020bef4c(0x4000) && mUnk_48 != 0 && mState != 4) {
|
||||
return;
|
||||
@@ -262,7 +257,7 @@ void ActorUnkCANS::vfunc_20(void) {
|
||||
VecFx32_Add(&mPos, &mVel, &mPos);
|
||||
|
||||
if (mUnk_268 != NULL) {
|
||||
mUnk_268->func_ov063_0215b6c8(&mUnk_250, mAngleStruct);
|
||||
mUnk_268->func_ov063_0215b6c8(&mUnk_250, mAngle);
|
||||
}
|
||||
|
||||
this->func_ov000_02098b8c(1, &mUnk_23C);
|
||||
@@ -284,15 +279,7 @@ void ActorUnkCANS::vfunc_20(void) {
|
||||
unk32 iVar5;
|
||||
|
||||
if (mUnk_48 > 0) {
|
||||
unk32 var;
|
||||
if ((mUnk_234 < mUnk_236)) {
|
||||
mUnk_234++;
|
||||
var = 0;
|
||||
} else {
|
||||
var = 1;
|
||||
}
|
||||
|
||||
if (var == 0) {
|
||||
if (!this->mUnk_234.HasExpired()) {
|
||||
if (mUnk_268 != NULL) {
|
||||
mUnk_268->mUnk_1F4 = 0;
|
||||
}
|
||||
@@ -301,9 +288,7 @@ void ActorUnkCANS::vfunc_20(void) {
|
||||
this->func_ov000_020989e0();
|
||||
|
||||
if (((*(u32 *) &mUnk_200.mUnk_08) & 0x3FFFF) != 0) {
|
||||
|
||||
mUnk_236 = func_ov000_02098d7c(this, &mUnk_200);
|
||||
mUnk_234 = 0;
|
||||
this->mUnk_234.Set(0, func_ov000_02098d7c(this, &this->mUnk_200));
|
||||
|
||||
iVar5 = this->func_ov063_0215a56c((unk16) func_01ffbbe0(mUnk_200.mUnk_10.x, mUnk_200.mUnk_10.z));
|
||||
|
||||
@@ -413,7 +398,7 @@ void ActorUnkCANS::vfunc_20(void) {
|
||||
|
||||
VecFx32_Init(0x4CD, 0, 0, aPtr);
|
||||
|
||||
func_01ff9638(aPtr, mAngle);
|
||||
func_01ff9638(aPtr, mAngle.angle_s);
|
||||
VecFx32_Add(aPtr, &mPos, aPtr);
|
||||
|
||||
VecFx32_Copy(aPtr, &b.vec);
|
||||
@@ -447,18 +432,18 @@ void ActorUnkCANS::vfunc_2C(Actor_vfunc_30 *param1) {
|
||||
return;
|
||||
}
|
||||
|
||||
mUnk_0B0.func_01ffc6d4(mAngleStruct, &mPos);
|
||||
mUnk_0B0.func_01ffc6d4(mAngle, &mPos);
|
||||
|
||||
if (mUnk_268 != NULL) {
|
||||
VecFx32 vec;
|
||||
VecFx32_Init(0x4CD, 0, 0, &vec);
|
||||
|
||||
func_01ff9638(&vec, mAngle);
|
||||
func_01ff9638(&vec, mAngle.angle_s);
|
||||
VecFx32_Add(&vec, &mPos, &vec);
|
||||
|
||||
this->func_ov017_020bf5c4(&vec, 0xD9A, 0x930 - 0x1F, 0x1F, mAngle);
|
||||
this->func_ov017_020bf5c4(&vec, 0xD9A, 0x930 - 0x1F, 0x1F, mAngle.angle_s);
|
||||
} else {
|
||||
this->func_ov017_020bf5c4(&mPos, 0x800, 0x555, 0x1F, mAngle);
|
||||
this->func_ov017_020bf5c4(&mPos, 0x800, 0x555, 0x1F, mAngle.angle_s);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -505,9 +490,8 @@ void ActorUnkCANS::func_ov063_02158b98(void) {
|
||||
}
|
||||
|
||||
void ActorUnkCANS::func_ov063_02158d40(void) {
|
||||
mUnk_128.vfunc_1C(data_ov063_02163068, 0x1800, 0x19A, 0);
|
||||
mUnk_23A = 0;
|
||||
mUnk_238 = 0;
|
||||
this->mUnk_128.vfunc_1C(data_ov063_02163068, 0x1800, 0x19A, 0);
|
||||
this->mUnk_238.Init();
|
||||
}
|
||||
|
||||
// non-matching
|
||||
@@ -598,7 +582,7 @@ void ActorUnkCANS::func_ov063_02159100(void) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (mAngle != mUnk_26C) {
|
||||
if (mAngle.angle_s != mUnk_26C) {
|
||||
mState = 8;
|
||||
return;
|
||||
}
|
||||
@@ -640,7 +624,7 @@ void ActorUnkCANS::func_ov063_02159258(void) {
|
||||
|
||||
if (!mUnk_270 && this->func_ov063_0215a514()) {
|
||||
this->func_ov063_02158448(8);
|
||||
} else if (!mUnk_270 && mUnk_238 >= mUnk_23A && this->func_ov063_0215a474()) {
|
||||
} else if (!mUnk_270 && this->mUnk_238.HasReachedMaxU() && this->func_ov063_0215a474()) {
|
||||
this->func_ov063_02158448(6);
|
||||
} else if (!this->func_ov063_0215a2c0()) {
|
||||
this->func_ov063_02158448(1);
|
||||
@@ -665,7 +649,7 @@ void ActorUnkCANS::func_ov063_02159494(void) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (mAngle != mUnk_26C) {
|
||||
if (mAngle.angle_s != mUnk_26C) {
|
||||
mUnk_128.vfunc_1C(data_ov063_02163068, 0x1333, 0x19A, 0);
|
||||
mState = 8;
|
||||
return;
|
||||
@@ -696,7 +680,7 @@ void ActorUnkCANS::func_ov063_02159618(void) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (mAngle != mUnk_26C) {
|
||||
if (mAngle.angle_s != mUnk_26C) {
|
||||
mUnk_128.vfunc_1C(data_ov063_02163068, 0x1333, 0x19A, 0);
|
||||
mState = 8;
|
||||
return;
|
||||
@@ -759,9 +743,8 @@ void ActorUnkCANS::func_ov063_02159784(void) {
|
||||
|
||||
void ActorUnkCANS::func_ov063_021598fc(void) {
|
||||
mUnk_128.vfunc_1C(data_ov063_02163080, 0x1333, 0x19A, 0);
|
||||
mTimerMax = gRandom.Next32(0x15) + 10;
|
||||
mTimer = 0;
|
||||
mUnk_276 = gRandom.Next32(0) & 0x80000000 ? 1 : -1;
|
||||
this->mTimer.Set(0, gRandom.Next32(21) + 10);
|
||||
mUnk_276 = gRandom.Next32(0) & 0x80000000 ? 1 : -1;
|
||||
}
|
||||
|
||||
// non-matching
|
||||
@@ -776,16 +759,14 @@ void ActorUnkCANS::func_ov063_021599e4(void) {
|
||||
unk32 iVar9 = ABS((unk16) ((mUnk_26C * 0x4000 + mUnk_276) - ret1));
|
||||
|
||||
if (DEG_TO_ANG(90) < iVar9) {
|
||||
mTimer = 0;
|
||||
mUnk_276 *= -1;
|
||||
mTimerMax = 0x1E;
|
||||
this->mTimer.Set(0, 30);
|
||||
}
|
||||
}
|
||||
|
||||
if (this->IsTimerOut()) {
|
||||
if (this->mTimer.HasExpired()) {
|
||||
mUnk_276 *= -1;
|
||||
mTimerMax = gRandom.Next32(0x15) + 10;
|
||||
mTimer = 0;
|
||||
this->mTimer.Set(0, gRandom.Next32(21) + 10);
|
||||
}
|
||||
|
||||
func_01ff916c(&mUnk_270, mUnk_276 * 0x19A, 0xCD);
|
||||
@@ -826,7 +807,7 @@ void ActorUnkCANS::func_ov063_02159d68(void) {
|
||||
mUnk_26C += -FLOAT_TO_FX32(8.f);
|
||||
}
|
||||
|
||||
if (!func_01ff930c(&mAngle, mUnk_26C, 0x71C)) {
|
||||
if (!func_01ff930c(&mAngle.angle_s, mUnk_26C, 0x71C)) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -1046,7 +1027,7 @@ unk32 ActorUnkCANS::func_ov063_0215a474(void) {
|
||||
|
||||
func_ov000_020986b4((s16 *) &var, this, 0);
|
||||
|
||||
s32 val = ABS((s16) (var - mAngle));
|
||||
s32 val = ABS((s16) (var - mAngle.angle_s));
|
||||
if (val >= DEG_TO_ANG(90)) {
|
||||
return false;
|
||||
}
|
||||
@@ -1084,7 +1065,7 @@ unk32 ActorUnkCANS::func_ov063_0215a56c(unk32 param1) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return DEG_TO_ANG(90) <= ABS((s16) (param1 - mAngle));
|
||||
return DEG_TO_ANG(90) <= ABS((s16) (param1 - mAngle.angle_s));
|
||||
}
|
||||
|
||||
// non-matching
|
||||
@@ -1120,7 +1101,7 @@ void ActorUnkCANS::vfunc_10(Cylinder *param1) {
|
||||
VecFx32_Add(¶m1->pos, &this->mPos, ¶m1->pos);
|
||||
|
||||
if (this->mUnk_268 != NULL) {
|
||||
fx16 angle = this->mAngle;
|
||||
fx16 angle = this->mAngle.angle_s;
|
||||
VecFx32 pos;
|
||||
VecFx32_Init(FLOAT_TO_FX32(0.25f), 0, 0, &pos);
|
||||
func_01ff9638(&pos, angle);
|
||||
@@ -1233,6 +1214,7 @@ bool UnkStruct_ov063_02162ea8::vfunc_0C(const UnkStruct_ov031_020e54d4 *param1,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return UnkStruct_027e0ce0_38_Base::vfunc_0C((const UnkStruct_ov031_020e54d4 *) param2Struct->mUnk_04, param2,
|
||||
param2Struct->mUnk_04);
|
||||
}
|
||||
|
||||
@@ -58,13 +58,15 @@ struct UnkStruct_data_ov063_021630c8 {
|
||||
|
||||
const UnkStruct_data_ov063_021630c8 data_ov063_021630c8(0x5EC, 0x785, 0xFFFFFD48, 0x7AE, 0x112, 0xFFFFECA4);
|
||||
|
||||
static PTMF<ActorUnkCASE> data_ov063_021630e0[0x6] = {ActorUnkCASE::func_ov063_0215af58, ActorUnkCASE::func_ov063_0215af60,
|
||||
ActorUnkCASE::func_ov063_0215afb8, ActorUnkCASE::func_ov063_0215b090,
|
||||
ActorUnkCASE::func_ov063_0215b244, ActorUnkCASE::func_ov063_0215b2c4};
|
||||
static PTMF<ActorUnkCASE> data_ov063_021630e0[0x6] = {
|
||||
&ActorUnkCASE::func_ov063_0215af58, &ActorUnkCASE::func_ov063_0215af60, &ActorUnkCASE::func_ov063_0215afb8,
|
||||
&ActorUnkCASE::func_ov063_0215b090, &ActorUnkCASE::func_ov063_0215b244, &ActorUnkCASE::func_ov063_0215b2c4,
|
||||
};
|
||||
|
||||
static PTMF<ActorUnkCASE> data_ov063_02163110[0x6] = {ActorUnkCASE::func_ov063_0215af54, ActorUnkCASE::func_ov063_0215af5c,
|
||||
ActorUnkCASE::func_ov063_0215afa4, ActorUnkCASE::func_ov063_0215b054,
|
||||
ActorUnkCASE::func_ov063_0215b1bc, ActorUnkCASE::func_ov063_0215b2b0};
|
||||
static PTMF<ActorUnkCASE> data_ov063_02163110[0x6] = {
|
||||
&ActorUnkCASE::func_ov063_0215af54, &ActorUnkCASE::func_ov063_0215af5c, &ActorUnkCASE::func_ov063_0215afa4,
|
||||
&ActorUnkCASE::func_ov063_0215b054, &ActorUnkCASE::func_ov063_0215b1bc, &ActorUnkCASE::func_ov063_0215b2b0,
|
||||
};
|
||||
|
||||
DECL_PROFILE(ActorProfileUnkCASE);
|
||||
|
||||
@@ -162,7 +164,7 @@ ActorUnkCASE::ActorUnkCASE() :
|
||||
mUnk_A8 = (Actor_Derived2_A8_PTR *) &data_ov063_02162558;
|
||||
}
|
||||
|
||||
bool ActorUnkCASE::vfunc_18(unk32 param1) {
|
||||
bool ActorUnkCASE::Init(unk32 param1) {
|
||||
mUnk_14C = gpActorManager->func_01fff3b4(mUnk_5C.mUnk_28);
|
||||
|
||||
mUnk_0B0.func_ov000_02057c38(6, 2);
|
||||
@@ -237,14 +239,13 @@ void ActorUnkCASE::func_ov063_0215b054(void) {
|
||||
mVel.y = 0;
|
||||
mVel.z = mUnk_1E0;
|
||||
UNSET_FLAG2(*(s16 *) &mUnk_44, ActorFlag_5);
|
||||
this->mTimerMax = -1;
|
||||
this->mTimer = 0;
|
||||
this->mTimer.Reset();
|
||||
}
|
||||
|
||||
void ActorUnkCASE::func_ov063_0215b090(void) {
|
||||
if (this->mTimer < 4) {
|
||||
if (this->mTimer.value < 4) {
|
||||
this->func_ov063_0215afb8();
|
||||
this->IsTimerOut();
|
||||
this->mTimer.Update();
|
||||
this->vfunc_10(&mUnk_174.mUnk_0C);
|
||||
data_027e09c0->func_ov000_0207e58c(mRef, 3, 4, &mUnk_174);
|
||||
return;
|
||||
@@ -305,11 +306,11 @@ void ActorUnkCASE::vfunc_24() {
|
||||
if (mState != 1 && mState != 2) {
|
||||
return;
|
||||
}
|
||||
this->vfunc_20();
|
||||
this->Update();
|
||||
}
|
||||
|
||||
// non-matching
|
||||
void ActorUnkCASE::vfunc_20() {
|
||||
void ActorUnkCASE::Update() {
|
||||
mUnk_150.mUnk_1C = 1;
|
||||
|
||||
if (!this->func_ov017_020bef4c(0x4000) && mUnk_48 != 0) {
|
||||
@@ -447,7 +448,7 @@ void ActorUnkCASE::func_ov063_0215b6c8(VecFx32 *param1, UnkAngleStruct angle) {
|
||||
VecFx32 vec = *param1;
|
||||
VecFx32_Copy(&vec, &mPos);
|
||||
VecFx32_Copy(&vec, &mPrevPos);
|
||||
mAngle = *(s16 *) &angle.angle;
|
||||
this->mAngle.angle_s = angle.angle_s;
|
||||
}
|
||||
|
||||
void ActorUnkCASE::func_ov063_0215b724(void) {
|
||||
@@ -487,8 +488,7 @@ void ActorUnkCASE::func_ov063_0215b854(void) {
|
||||
VecFx32_Copy(&vec, &mPos);
|
||||
VecFx32_Copy(&vec, &mPrevPos);
|
||||
|
||||
actorCans->mUnk_236 = 20;
|
||||
actorCans->mUnk_234 = 0;
|
||||
actorCans->mUnk_234.Set(0, 20);
|
||||
|
||||
actorCans = (ActorUnkCANS *) mUnk_14C;
|
||||
actorCans->func_ov063_02158b0c();
|
||||
|
||||
@@ -22,7 +22,7 @@ ActorUnkRBLS::ActorUnkRBLS() :
|
||||
mUnk_94(G3d_GetModelPtr(GET_PROFILE(ActorProfileUnkRBLS)->mUnk_3C.mUnk_50)),
|
||||
mUnk_F4(&mUnk_94, GET_PROFILE(ActorProfileUnkRBLS)->vfunc_04()) {}
|
||||
|
||||
bool ActorUnkRBLS::vfunc_18(unk32 param1) {
|
||||
bool ActorUnkRBLS::Init(unk32 param1) {
|
||||
this->mPos.x -= FLOAT_TO_FX32(0.5f);
|
||||
this->mPos.z -= FLOAT_TO_FX32(0.5f);
|
||||
this->mPos.y = 0;
|
||||
@@ -33,12 +33,12 @@ bool ActorUnkRBLS::vfunc_18(unk32 param1) {
|
||||
return true;
|
||||
}
|
||||
|
||||
void ActorUnkRBLS::vfunc_20(void) {
|
||||
void ActorUnkRBLS::Update(void) {
|
||||
this->mUnk_F4.vfunc_34();
|
||||
}
|
||||
|
||||
void ActorUnkRBLS::vfunc_24(void) {
|
||||
this->vfunc_20();
|
||||
this->Update();
|
||||
}
|
||||
|
||||
void ActorUnkRBLS::vfunc_2C(Actor_vfunc_30 *param1) {
|
||||
|
||||
@@ -7,21 +7,21 @@ ActorUnkRMSBase::ActorUnkRMSBase() :
|
||||
mUnk_154(0),
|
||||
mUnk_155(0) {}
|
||||
|
||||
bool ActorUnkRMSBase::vfunc_18(unk32 param1) {
|
||||
bool res = UnkStruct_ov031_02114870::vfunc_18(param1);
|
||||
bool ActorUnkRMSBase::Init(unk32 param1) {
|
||||
bool res = UnkStruct_ov031_02114870::Init(param1);
|
||||
mUnk_F4.vfunc_08(this->vfunc_58());
|
||||
data_027e0cd8->mUnk_0C->mUnk_12A = 1;
|
||||
return res;
|
||||
}
|
||||
|
||||
// Matched
|
||||
void ActorUnkRMSBase::vfunc_1C() {}
|
||||
void ActorUnkRMSBase::Setup() {}
|
||||
|
||||
// Matched
|
||||
void ActorUnkRMSBase::vfunc_20() {}
|
||||
void ActorUnkRMSBase::Update() {}
|
||||
|
||||
void ActorUnkRMSBase::vfunc_24() {
|
||||
this->vfunc_20();
|
||||
this->Update();
|
||||
}
|
||||
|
||||
void ActorUnkRMSBase::vfunc_2C(Actor_vfunc_30 *param1) {
|
||||
|
||||
@@ -21,17 +21,17 @@ ActorProfileUnkRMSD::ActorProfileUnkRMSD() :
|
||||
ActorUnkRMSD::ActorUnkRMSD() :
|
||||
mUnk_158(&mUnk_94, GET_PROFILE(ActorProfileUnkRMSD)->vfunc_04()) {}
|
||||
|
||||
bool ActorUnkRMSD::vfunc_18(unk32 param1) {
|
||||
bool res = ActorUnkRMSBase::vfunc_18(param1);
|
||||
bool ActorUnkRMSD::Init(unk32 param1) {
|
||||
bool res = ActorUnkRMSBase::Init(param1);
|
||||
this->mUnk_158.func_ov000_02099ff8(data_ov063_021634b0, 0x1000);
|
||||
return res;
|
||||
}
|
||||
|
||||
void ActorUnkRMSD::vfunc_20(void) {
|
||||
void ActorUnkRMSD::Update(void) {
|
||||
this->mUnk_158.vfunc_34();
|
||||
}
|
||||
void ActorUnkRMSD::vfunc_24(void) {
|
||||
this->vfunc_20();
|
||||
this->Update();
|
||||
}
|
||||
|
||||
G3d_Model *ActorUnkRMSD::vfunc_54(void) {
|
||||
|
||||
@@ -31,8 +31,8 @@ ActorUnkRMSV::ActorUnkRMSV() :
|
||||
mUnk_158(&mUnk_94, GET_PROFILE(ActorProfileUnkRMSV)->vfunc_04()),
|
||||
mUnk_1D4(&mUnk_94, GET_PROFILE(ActorProfileUnkRMSV)->vfunc_04()) {}
|
||||
|
||||
bool ActorUnkRMSV::vfunc_18(unk32 param1) {
|
||||
bool res = ActorUnkRMSBase::vfunc_18(param1);
|
||||
bool ActorUnkRMSV::Init(unk32 param1) {
|
||||
bool res = ActorUnkRMSBase::Init(param1);
|
||||
this->mUnk_158.func_ov000_02099ff8(data_ov063_021632ac, 0x1000);
|
||||
func_ov000_02099e58(&this->mUnk_1D4, data_ov063_021632c4, 0x1000);
|
||||
this->mUnk_1D4.vfunc_3C();
|
||||
@@ -43,13 +43,13 @@ void UnkStruct_ov063_021632e4::vfunc_3C() {
|
||||
mUnk_08->func_ov000_02057c98(this->vfunc_10());
|
||||
}
|
||||
|
||||
void ActorUnkRMSV::vfunc_20(void) {
|
||||
void ActorUnkRMSV::Update(void) {
|
||||
this->mUnk_158.vfunc_34();
|
||||
this->mUnk_1D4.vfunc_34();
|
||||
}
|
||||
|
||||
void ActorUnkRMSV::vfunc_24(void) {
|
||||
this->vfunc_20();
|
||||
this->Update();
|
||||
}
|
||||
|
||||
G3d_Model *ActorUnkRMSV::vfunc_54(void) {
|
||||
|
||||
@@ -21,18 +21,18 @@ ActorProfileUnkRMSW::ActorProfileUnkRMSW() :
|
||||
ActorUnkRMSW::ActorUnkRMSW() :
|
||||
mUnk_158(&mUnk_94, GET_PROFILE(ActorProfileUnkRMSW)->vfunc_04()) {}
|
||||
|
||||
bool ActorUnkRMSW::vfunc_18(unk32 param1) {
|
||||
bool res = ActorUnkRMSBase::vfunc_18(param1);
|
||||
bool ActorUnkRMSW::Init(unk32 param1) {
|
||||
bool res = ActorUnkRMSBase::Init(param1);
|
||||
this->mUnk_158.func_ov000_02099ff8(data_ov063_02163388, 0x1000);
|
||||
return res;
|
||||
}
|
||||
|
||||
void ActorUnkRMSW::vfunc_20(void) {
|
||||
void ActorUnkRMSW::Update(void) {
|
||||
this->mUnk_158.vfunc_34();
|
||||
}
|
||||
|
||||
void ActorUnkRMSW::vfunc_24(void) {
|
||||
this->vfunc_20();
|
||||
this->Update();
|
||||
}
|
||||
|
||||
G3d_Model *ActorUnkRMSW::vfunc_54(void) {
|
||||
|
||||
@@ -50,11 +50,10 @@ MapObjectProfileUnkLTRW::MapObjectProfileUnkLTRW() :
|
||||
MapObjectUnkLTRW::MapObjectUnkLTRW() :
|
||||
mUnk_40(G3d_GetModelPtr(GET_PROFILE_20_50(MapObjectProfileUnkLTRW))),
|
||||
mUnk_A0(1),
|
||||
mUnk_A4(0),
|
||||
mUnk_A6(0),
|
||||
mUnk_A4(0, 0),
|
||||
mUnk_A8() {}
|
||||
|
||||
bool MapObjectUnkLTRW::vfunc_00() {
|
||||
bool MapObjectUnkLTRW::Init() {
|
||||
mPos.x -= FLOAT_TO_FX32(.5f);
|
||||
mPos.z -= FLOAT_TO_FX32(.5f);
|
||||
mUnk_10 = GET_PROFILE_D4(MapObjectProfileUnkLTRW);
|
||||
@@ -67,9 +66,7 @@ bool MapObjectUnkLTRW::vfunc_00() {
|
||||
}
|
||||
|
||||
void MapObjectUnkLTRW::vfunc_08() {
|
||||
if (mUnk_A4 < mUnk_A6) {
|
||||
mUnk_A4++;
|
||||
}
|
||||
this->mUnk_A4.Update();
|
||||
}
|
||||
|
||||
void MapObjectUnkLTRW::vfunc_14(unk32 param1) {
|
||||
@@ -112,9 +109,8 @@ unk32 MapObjectUnkLTRW::vfunc_28(unk32 param1, unk32 param2, unk32 param3) {
|
||||
}
|
||||
|
||||
void MapObjectUnkLTRW::func_ov063_02160d18(unk32 param1) {
|
||||
mUnk_A0 = param1;
|
||||
mUnk_A6 = -1;
|
||||
mUnk_A4 = 0;
|
||||
this->mUnk_A0 = param1;
|
||||
this->mUnk_A4.Reset();
|
||||
}
|
||||
|
||||
void UnkStruct_ov063_021639e4::vfunc2_04() {
|
||||
|
||||
@@ -32,13 +32,12 @@ MapObjectProfileUnkMTJR::MapObjectProfileUnkMTJR() :
|
||||
MapObjectUnkMTJR::MapObjectUnkMTJR() :
|
||||
mUnk_40(G3d_GetModelPtr(GET_PROFILE_20_50(MapObjectProfileUnkMTJR))),
|
||||
mUnk_A0(2),
|
||||
mUnk_A4(0),
|
||||
mUnk_A6(0),
|
||||
mUnk_A4(0, 0),
|
||||
mUnk_A8(NULL),
|
||||
mUnk_AC(-1),
|
||||
mUnk_B0(0) {}
|
||||
|
||||
bool MapObjectUnkMTJR::vfunc_00() {
|
||||
bool MapObjectUnkMTJR::Init() {
|
||||
if (!this->func_ov000_0209d29c(0)) {
|
||||
return false;
|
||||
}
|
||||
@@ -62,9 +61,8 @@ void MapObjectUnkMTJR::vfunc_08() {
|
||||
VecFx32 stack_vec = {tmp_x, tmp_y, tmp_z};
|
||||
data_027e0cec->func_ov000_020a0220(&mUnk_A8, &stack_vec);
|
||||
}
|
||||
if (mUnk_A4 < mUnk_A6) {
|
||||
mUnk_A4++;
|
||||
}
|
||||
|
||||
this->mUnk_A4.Update();
|
||||
}
|
||||
|
||||
void MapObjectUnkMTJR::vfunc_0C() {
|
||||
@@ -104,9 +102,9 @@ bool MapObjectUnkMTJR::vfunc_1C(ActorRef param1, unk32 param2, VecFx32 *param3)
|
||||
}
|
||||
|
||||
void MapObjectUnkMTJR::func_ov063_02161254(unk32 param1) {
|
||||
mUnk_A0 = param1;
|
||||
mUnk_A6 = -1;
|
||||
mUnk_A4 = 0;
|
||||
this->mUnk_A0 = param1;
|
||||
this->mUnk_A4.Reset();
|
||||
|
||||
if (param1 != 0 && param1 == 1) {
|
||||
this->func_ov063_02161288();
|
||||
}
|
||||
|
||||
@@ -44,8 +44,7 @@ MapObjectUnkSTAT::MapObjectUnkSTAT() :
|
||||
mUnk_50(-1),
|
||||
mUnk_54(0x8000),
|
||||
mUnk_58(500),
|
||||
mUnk_5A(0),
|
||||
mUnk_5C(0),
|
||||
mUnk_5A(0, 0),
|
||||
mUnk_60(0),
|
||||
mUnk_64(0),
|
||||
mUnk_68(0) {
|
||||
@@ -53,7 +52,7 @@ MapObjectUnkSTAT::MapObjectUnkSTAT() :
|
||||
}
|
||||
|
||||
// non-matching
|
||||
bool MapObjectUnkSTAT::vfunc_00(void) {
|
||||
bool MapObjectUnkSTAT::Init(void) {
|
||||
unk32 val;
|
||||
switch (mUnk_20.mParams[0]) {
|
||||
case 0:
|
||||
@@ -92,9 +91,7 @@ void MapObjectUnkSTAT::vfunc_08(void) {
|
||||
break;
|
||||
}
|
||||
|
||||
if (mUnk_5A < mUnk_5C) {
|
||||
mUnk_5A++;
|
||||
}
|
||||
this->mUnk_5A.Update();
|
||||
}
|
||||
|
||||
void MapObjectUnkSTAT::vfunc_0C(void) {
|
||||
@@ -104,7 +101,7 @@ void MapObjectUnkSTAT::vfunc_0C(void) {
|
||||
void MapObjectUnkSTAT::vfunc_14(unk32 param1) {
|
||||
VecFx32 vec;
|
||||
VecFx32_Init(mPos.x + mUnk_60, mPos.y + mUnk_64, mPos.z + mUnk_68, &vec);
|
||||
mUnk_40.func_01ffc6d4(mAngleStruct, &vec);
|
||||
mUnk_40.func_01ffc6d4(this->mAngle, &vec);
|
||||
}
|
||||
|
||||
// non-matching
|
||||
@@ -119,7 +116,7 @@ void MapObjectUnkSTAT::func_ov063_0215f7ac(void) {
|
||||
this->func_ov063_0215fc40(3);
|
||||
}
|
||||
|
||||
if (mUnk_5A == 35) {
|
||||
if (this->mUnk_5A.value == 35) {
|
||||
VecFx32 vec = mPos;
|
||||
|
||||
data_027e0cec->func_ov000_0209feac(0x87D, &vec, 4, 0, 0);
|
||||
@@ -127,7 +124,7 @@ void MapObjectUnkSTAT::func_ov063_0215f7ac(void) {
|
||||
data_027e09a8->func_ov000_02071b30(0x127, &vec, 0);
|
||||
}
|
||||
|
||||
u16 counter = mUnk_5A;
|
||||
u16 counter = this->mUnk_5A.value;
|
||||
if (30 < counter && counter < 50) {
|
||||
u32 randomVal = gRandom.Next32(0x15);
|
||||
s32 gRandomVal = ((u32 *) gRandom.mRandomValue)[0];
|
||||
@@ -179,8 +176,7 @@ void MapObjectUnkSTAT::func_ov063_0215f7ac(void) {
|
||||
VecFx32_Copy(&mPos, &stackStruct.mUnk_0C);
|
||||
|
||||
mUnk_50 = data_027e09b8->func_ov000_02073388(&stackStruct, 0);
|
||||
mUnk_5C = -1;
|
||||
mUnk_5A = 0;
|
||||
this->mUnk_5A.Reset();
|
||||
data_027e09a8->func_ov000_02071bd4(0x126, &mPos, 0);
|
||||
return;
|
||||
}
|
||||
@@ -188,12 +184,11 @@ void MapObjectUnkSTAT::func_ov063_0215f7ac(void) {
|
||||
}
|
||||
|
||||
void MapObjectUnkSTAT::func_ov063_0215fc40(unk32 param1) {
|
||||
mUnk_4C = param1;
|
||||
mUnk_5C = -1;
|
||||
mUnk_5A = 0;
|
||||
mUnk_60 = 0;
|
||||
mUnk_64 = 0;
|
||||
mUnk_68 = 0;
|
||||
this->mUnk_4C = param1;
|
||||
this->mUnk_5A.Reset();
|
||||
this->mUnk_60 = 0;
|
||||
this->mUnk_64 = 0;
|
||||
this->mUnk_68 = 0;
|
||||
|
||||
switch (param1) {
|
||||
case 0:
|
||||
@@ -206,7 +201,7 @@ void MapObjectUnkSTAT::func_ov063_0215fc40(unk32 param1) {
|
||||
}
|
||||
|
||||
unk32 MapObjectUnkSTAT::func_ov063_0215fce0(void) {
|
||||
return func_02016b8c(&mPos, data_027e0ce0->func_01fff148(0), mUnk_54, mAngleStruct, mUnk_58, 1);
|
||||
return func_02016b8c(&mPos, data_027e0ce0->func_01fff148(0), mUnk_54, mAngle, mUnk_58, 1);
|
||||
}
|
||||
|
||||
MapObjectUnkSTAT::~MapObjectUnkSTAT() {}
|
||||
|
||||
@@ -43,7 +43,7 @@ void ActorUnkKEYN::func_ov070_021420a4(void) {}
|
||||
void ActorUnkKEYN::func_ov070_021420d8(void) {}
|
||||
|
||||
void ActorUnkKEYN::func_ov070_02142140(void) {
|
||||
this->IsTimerOut();
|
||||
this->mTimer.Update();
|
||||
|
||||
if (!data_027e09b8->func_01ffd420()) {
|
||||
if (data_027e0d34->TryItemGive(this->mItemId)) {
|
||||
|
||||
@@ -41,12 +41,12 @@ extern UnkStruct_ov019_020d24c8_28_258_00 data_ov071_02165150;
|
||||
|
||||
static ActorUnkZLSL_AnimationTag data_ov071_02164be0 = {0x0, "szku"};
|
||||
static const ActorTearLight_UnkStruct data_ov071_02164cd8 = {.fct = NULL};
|
||||
static ActorTearLight_UnkStruct data_ov071_02164ce0 = {.fct = ActorTearLight::func_ov071_0215fed4};
|
||||
static ActorTearLight_UnkStruct data_ov071_02164ce8 = {.fct = ActorTearLight::func_ov071_0215ff08};
|
||||
static ActorTearLight_UnkStruct data_ov071_02164cf0 = {.fct = ActorTearLight::func_ov071_0215ff3c};
|
||||
static ActorTearLight_UnkStruct data_ov071_02164cf8 = {.fct = ActorTearLight::func_ov071_0215ff3c};
|
||||
static ActorTearLight_UnkStruct data_ov071_02164d00 = {.fct = ActorTearLight::func_ov071_0215ffb8};
|
||||
static ActorTearLight_UnkStruct data_ov071_02164d08 = {.fct = ActorTearLight::func_ov071_0215ffbc};
|
||||
static ActorTearLight_UnkStruct data_ov071_02164ce0 = {.fct = &ActorTearLight::func_ov071_0215fed4};
|
||||
static ActorTearLight_UnkStruct data_ov071_02164ce8 = {.fct = &ActorTearLight::func_ov071_0215ff08};
|
||||
static ActorTearLight_UnkStruct data_ov071_02164cf0 = {.fct = &ActorTearLight::func_ov071_0215ff3c};
|
||||
static ActorTearLight_UnkStruct data_ov071_02164cf8 = {.fct = &ActorTearLight::func_ov071_0215ff3c};
|
||||
static ActorTearLight_UnkStruct data_ov071_02164d00 = {.fct = &ActorTearLight::func_ov071_0215ffb8};
|
||||
static ActorTearLight_UnkStruct data_ov071_02164d08 = {.fct = &ActorTearLight::func_ov071_0215ffbc};
|
||||
|
||||
DECL_PROFILE(ActorProfileTearLight);
|
||||
|
||||
@@ -82,7 +82,7 @@ ActorTearLight::ActorTearLight() :
|
||||
}
|
||||
|
||||
// non-matching
|
||||
bool ActorTearLight::vfunc_18(unk32 param1) {
|
||||
bool ActorTearLight::Init(unk32 param1) {
|
||||
SET_FLAG(this->mFlags, ActorFlag_11);
|
||||
this->mItemId = ItemId_ForceGem_60;
|
||||
|
||||
@@ -98,14 +98,14 @@ bool ActorTearLight::vfunc_18(unk32 param1) {
|
||||
return true;
|
||||
}
|
||||
|
||||
void ActorTearLight::vfunc_1C() {
|
||||
void ActorTearLight::Setup() {
|
||||
if (this->mUnk_5C.mParams[0] != 0x1) {
|
||||
return;
|
||||
}
|
||||
data_027e0cd8->mUnk_0C->func_ov000_02080a5c(&this->mUnk_1BC.mUnk_00);
|
||||
}
|
||||
|
||||
void ActorTearLight::vfunc_20() {
|
||||
void ActorTearLight::Update() {
|
||||
this->func_ov071_0215f92c();
|
||||
this->func_ov071_0215f824();
|
||||
|
||||
@@ -126,8 +126,8 @@ void ActorTearLight::vfunc_24() {
|
||||
|
||||
if (this->mState == ActorUnkSZKUState_2) {
|
||||
if (this->mUnk_1B8 != 0x0) {
|
||||
this->IsTimerOut();
|
||||
if (this->mTimer == 0x14) {
|
||||
this->mTimer.Update();
|
||||
if (this->mTimer.value == 20) {
|
||||
this->func_ov071_0215fca4();
|
||||
VecFx32_Init(FLOAT_TO_FX32(0.0f), FLOAT_TO_FX32(0.0f), FLOAT_TO_FX32(0.0f), &this->mVel);
|
||||
this->mUnk_1B8 = 0x0;
|
||||
@@ -151,7 +151,7 @@ void ActorTearLight::vfunc_2C(Actor_vfunc_30 *param1) {
|
||||
return;
|
||||
}
|
||||
Mat3p matrix;
|
||||
Mat3p_InitYRotation(&matrix, SIN((u16) this->mAngle), COS((u16) this->mAngle));
|
||||
Mat3p_InitYRotation(&matrix, SIN((u16) this->mAngle.angle_s), COS((u16) this->mAngle.angle_s));
|
||||
|
||||
VecFx32 vecC = this->mPos;
|
||||
vecC.y += FLOAT_TO_FX32(0.5f);
|
||||
@@ -310,8 +310,7 @@ void ActorTearLight::func_ov071_0215fc54() {
|
||||
void ActorTearLight::func_ov071_0215fca4() {
|
||||
this->func_ov071_0215f7f4(ActorUnkSZKUState_1);
|
||||
|
||||
this->mTimerMax = 0xFFFF;
|
||||
this->mTimer = 0x0000;
|
||||
this->mTimer.Reset();
|
||||
|
||||
VecFx32_Init(FLOAT_TO_FX32(0.0f), FLOAT_TO_FX32(0.25f), FLOAT_TO_FX32(0.0f), &this->mVel);
|
||||
|
||||
@@ -336,8 +335,7 @@ void ActorTearLight::func_ov071_0215fd04() {
|
||||
var_z = !this->mUnk_18D;
|
||||
}
|
||||
|
||||
this->mTimerMax = 0xFFFF;
|
||||
this->mTimer = 0x0000;
|
||||
this->mTimer.Reset();
|
||||
VecFx32_Init(FLOAT_TO_FX32(0.0f), FLOAT_TO_FX32(0.0f), FLOAT_TO_FX32(0.0f), &this->mVel);
|
||||
this->mUnk_44 = 0;
|
||||
if (var_z) {
|
||||
@@ -351,8 +349,7 @@ void ActorTearLight::func_ov071_0215fd04() {
|
||||
void ActorTearLight::func_ov071_0215fd80() {
|
||||
this->func_ov071_0215f7f4(ActorUnkSZKUState_3);
|
||||
|
||||
this->mTimerMax = 0xFFFF;
|
||||
this->mTimer = 0x0000;
|
||||
this->mTimer.Reset();
|
||||
VecFx32_Init(FLOAT_TO_FX32(0.0f), FLOAT_TO_FX32(0.0f), FLOAT_TO_FX32(0.0f), &this->mVel);
|
||||
|
||||
this->mUnk_4A[0] = 0x0;
|
||||
@@ -365,8 +362,7 @@ void ActorTearLight::func_ov071_0215fd80() {
|
||||
void ActorTearLight::func_ov071_0215fdd4() {
|
||||
this->func_ov071_0215f7f4(ActorUnkSZKUState_4);
|
||||
|
||||
this->mTimerMax = 0xFFFF;
|
||||
this->mTimer = 0x0000;
|
||||
this->mTimer.Reset();
|
||||
|
||||
this->mUnk_4A[0] = 0x0;
|
||||
VecFx32_Init(FLOAT_TO_FX32(0.0f), FLOAT_TO_FX32(0.0f), FLOAT_TO_FX32(0.0f), &this->mVel);
|
||||
@@ -401,19 +397,19 @@ void ActorTearLight::func_ov071_0215fe94() {
|
||||
}
|
||||
|
||||
void ActorTearLight::func_ov071_0215fed4() {
|
||||
this->IsTimerOut();
|
||||
this->mTimer.Update();
|
||||
this->func_ov000_02098838();
|
||||
this->mUnk_3C = &this->mUnk_168;
|
||||
}
|
||||
|
||||
void ActorTearLight::func_ov071_0215ff08() {
|
||||
this->IsTimerOut();
|
||||
this->mTimer.Update();
|
||||
this->mAngle += 0x222; // TODO DEG_ANGLE
|
||||
this->mUnk_3C = &this->mUnk_168;
|
||||
}
|
||||
|
||||
void ActorTearLight::func_ov071_0215ff3c() {
|
||||
this->IsTimerOut();
|
||||
this->mTimer.Update();
|
||||
|
||||
if (!data_027e09b8->func_01ffd420()) {
|
||||
if (data_027e0d34->TryItemGive(this->mItemId)) {
|
||||
|
||||
@@ -25,7 +25,7 @@ struct UnkStruct_ov102_02184a10 {
|
||||
};
|
||||
static const UnkStruct_ov102_02184a10 data_ov102_02184a10;
|
||||
|
||||
void ActorUnkMLCK::vfunc_20() {
|
||||
void ActorUnkMLCK::Update() {
|
||||
this->vfunc_70();
|
||||
|
||||
this->mUnk_F2 = gpMiscAdvManager->mSongs & (1 << this->mUnk_B8) ? 1 : 0;
|
||||
@@ -60,13 +60,11 @@ void ActorUnkMLCK::vfunc_20() {
|
||||
}
|
||||
}
|
||||
|
||||
if (this->mUnk_C0 < this->mUnk_C2) {
|
||||
(*(volatile u16 *) &this->mUnk_C0)++;
|
||||
}
|
||||
this->mUnk_C0.Update();
|
||||
}
|
||||
|
||||
void ActorUnkMLCK::vfunc_24() {
|
||||
this->vfunc_20();
|
||||
this->Update();
|
||||
}
|
||||
|
||||
bool ActorUnkMLCK_C4::func_ov102_021847e8(unk32 param1, unk32 param2) {
|
||||
|
||||
@@ -122,7 +122,7 @@ void MapObjectUnkPTFL::vfunc_08() {
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
if (this->mUnk_56 >= this->mUnk_58) {
|
||||
if (this->mUnk_56.HasReachedMaxU()) {
|
||||
this->func_ov070_0214bbd0(MapObjectUnkPTFLState_0, false);
|
||||
}
|
||||
break;
|
||||
@@ -135,9 +135,7 @@ void MapObjectUnkPTFL::vfunc_08() {
|
||||
break;
|
||||
}
|
||||
|
||||
if (this->mUnk_56 < this->mUnk_58) {
|
||||
this->mUnk_56++;
|
||||
}
|
||||
this->mUnk_56.Update();
|
||||
}
|
||||
|
||||
void MapObjectUnkPTFL::vfunc_0C() {
|
||||
|
||||
@@ -143,7 +143,7 @@ void MapObjectUnkSAND_40::func_ov102_021837a8(Vec2bCpp param1, VecFx32 *param2)
|
||||
const UnkStruct_ov102_021848b0 *ptr = &data_ov102_021848b0[var_r6];
|
||||
UnkSystem6_Derived2 sp14(
|
||||
G3d_GetUnkPtr(data_ov031_021189d0.unk_70, data_ov102_021848f0[data_ov102_021848b0[var_r6].unk_00]), true);
|
||||
sp6.angle_signed = ptr->unk_02;
|
||||
sp6.angle_s = ptr->unk_02;
|
||||
sp14.func_01ffc6d4(sp6, param2);
|
||||
}
|
||||
|
||||
|
||||
@@ -340,7 +340,7 @@ static inline bool UnknownInline2(PlayerLinkActor_A0_1C *param2, VecFx32 *param4
|
||||
if (temp_r0_2 != NULL && temp_r0_2->GetActorId() == ActorId_IWTS) {
|
||||
s16 sp0;
|
||||
func_ov000_0205d65c(&sp0, param4, &((ActorUnkIWTS *) temp_r0_2)->mUnk_22F8, *param5);
|
||||
param5->angle = sp0;
|
||||
param5->angle_u = sp0;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -373,19 +373,19 @@ void func_ov102_02183414(s16 *param1, PlayerLinkActor_A0_1C *param2, bool param3
|
||||
if (var_r1_3) {
|
||||
if (!param2->mUnk_06) {
|
||||
func_ov095_0217aa88(&sp6, ¶m2->mUnk_04, param6, param5);
|
||||
param5.angle = sp6;
|
||||
param5.angle_u = sp6;
|
||||
} else {
|
||||
func_ov095_0217aaa8(&sp4, ¶m2->mUnk_04, param6);
|
||||
param5.angle = sp4;
|
||||
param5.angle_u = sp4;
|
||||
}
|
||||
} else {
|
||||
func_ov031_020dcea4(&sp2, param2->mUnk_00->GetUnk78(), param5);
|
||||
param5.angle = sp2 + 0x4000;
|
||||
param5.angle_u = sp2 + 0x4000;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
param2->mUnk_06 = var_r5;
|
||||
*param1 = param5.angle_signed;
|
||||
*param1 = param5.angle_s;
|
||||
}
|
||||
|
||||
@@ -427,7 +427,7 @@ static const AdventureFlag sAdvFlagItemMap[] = {
|
||||
void UnkStruct_PlayerGet_74::vfunc_00(unk32 param1, unk32 param2) {
|
||||
PlayerGet *unk_14 = (PlayerGet *) this->mUnk_14;
|
||||
|
||||
func_01ffc5a0(&unk_14->mUnk_8C, unk_14->mUnk_6C, unk_14->mUnkAngleStruct, &this->mUnk_04);
|
||||
func_01ffc5a0(&unk_14->mUnk_8C, unk_14->mUnk_6C, unk_14->mAngle, &this->mUnk_04);
|
||||
}
|
||||
|
||||
PlayerGet::PlayerGet() :
|
||||
@@ -564,7 +564,7 @@ void PlayerGet::vfunc_0C(UnkStruct_PlayerGet_vfunc_0C_param1 *param1) {
|
||||
pActor->mUnk_4A[0] = 0;
|
||||
}
|
||||
break;
|
||||
case 0x3A:
|
||||
case 0x3A: {
|
||||
if (this->mUnk_54.mItemId != ItemId_Nothing) {
|
||||
u32 niVar10 = func_ov000_020a4c00(this->mUnk_54.mItemId);
|
||||
|
||||
@@ -664,7 +664,8 @@ void PlayerGet::vfunc_0C(UnkStruct_PlayerGet_vfunc_0C_param1 *param1) {
|
||||
}
|
||||
|
||||
break;
|
||||
case 0x3B:
|
||||
}
|
||||
case 0x3B: {
|
||||
this->mUnk_72 = 0;
|
||||
|
||||
if (this->mUnk_54.mItemId != ItemId_Nothing) {
|
||||
@@ -684,6 +685,7 @@ void PlayerGet::vfunc_0C(UnkStruct_PlayerGet_vfunc_0C_param1 *param1) {
|
||||
UnkTextStruct1 auStack_30(-1, 0);
|
||||
data_ov000_020b504c.func_ov000_02067cf8(ItemManager::GetBmgIDFromItem(this->mUnk_54.mItemId), 0, &auStack_30);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -18,11 +18,23 @@ PlayerSceneChange::PlayerSceneChange() :
|
||||
this->mUnk_68 = this->mUnk_2C->mUnk_14C;
|
||||
this->mUnk_6C = -1;
|
||||
|
||||
#if __MWERKS__
|
||||
this->mUnk_70.coords = this->mUnk_34->coords;
|
||||
this->mUnk_7C = 0;
|
||||
|
||||
this->mUnk_80.coords = this->mUnk_34->coords;
|
||||
this->mUnk_8C = 0;
|
||||
#else
|
||||
this->mUnk_70.x = this->mUnk_34->x;
|
||||
this->mUnk_70.y = this->mUnk_34->y;
|
||||
this->mUnk_70.z = this->mUnk_34->z;
|
||||
this->mUnk_7C = 0;
|
||||
|
||||
this->mUnk_80.x = this->mUnk_34->x;
|
||||
this->mUnk_80.y = this->mUnk_34->y;
|
||||
this->mUnk_80.z = this->mUnk_34->z;
|
||||
this->mUnk_8C = 0;
|
||||
#endif
|
||||
|
||||
this->mUnk_90.Reset();
|
||||
*((u32 *) this->mUnk_94) = 0;
|
||||
@@ -53,7 +65,7 @@ s16 PlayerSceneChange::func_ov112_02184bbc(s16 param1) {
|
||||
Actor *pActor = gpActorManager->func_01fff3b4(this->mUnk_90);
|
||||
|
||||
if (pActor != NULL) {
|
||||
return pActor->mAngle;
|
||||
return pActor->mAngle.angle_s;
|
||||
}
|
||||
} else if (this->mUnk_94[0] == 0x1000) {
|
||||
return this->mUnk_AE;
|
||||
@@ -186,8 +198,8 @@ void PlayerSceneChange::vfunc_0C(UnkStruct_PlayerGet_vfunc_0C_param1 *param1) {
|
||||
|
||||
if (temp_r0_6->GetActorId() == ActorId_GTTG) {
|
||||
this->mUnk_90.type_index = temp_r0_6->mRef.type_index;
|
||||
this->mUnk_AA = temp_r0_6->mAngle;
|
||||
this->mUnk_A8 = temp_r0_6->mAngle;
|
||||
this->mUnk_AA = temp_r0_6->mAngle.angle_s;
|
||||
this->mUnk_A8 = temp_r0_6->mAngle.angle_s;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
#include "Actor/ActorManager.hpp"
|
||||
#include "Player/PlayerSceneChange.hpp"
|
||||
#include "Unknown/UnkStruct_027e0cdc.hpp"
|
||||
#include "Unknown/UnkStruct_027e0ce0.hpp"
|
||||
|
||||
extern "C" void func_ov000_0208ba10(void *, void *, unk32);
|
||||
extern "C" void func_ov000_02087ee8();
|
||||
|
||||
Reference in New Issue
Block a user