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:
Yanis
2026-10-02 20:54:43 +02:00
committed by GitHub
parent 205dc5a1ca
commit 07a5bd9fcc
204 changed files with 1851 additions and 1985 deletions
+16 -17
View File
@@ -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();
+1 -1
View File
@@ -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;
}
+3 -3
View File
@@ -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) {
+3 -4
View File
@@ -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;
+6 -7
View File
@@ -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;
+6 -7
View File
@@ -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)) {
+3 -3
View File
@@ -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);
+1 -1
View File
@@ -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:
+1 -1
View File
@@ -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() {
+15 -19
View File
@@ -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]);
}
}
}
+3 -3
View File
@@ -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;
+69 -69
View File
@@ -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};
+2 -1
View File
@@ -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;
}
+4 -4
View File
@@ -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() {
+18 -16
View File
@@ -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;
+3 -3
View File
@@ -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);
+6 -6
View File
@@ -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
+1 -1
View File
@@ -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();
+5 -6
View File
@@ -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();
+23 -26
View File
@@ -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);
+26 -31
View File
@@ -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;
}
+11 -12
View File
@@ -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);
}
}
+27 -32
View File
@@ -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();
}
}
+19 -19
View File
@@ -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]);
}
+12 -15
View File
@@ -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);
}
+19 -19
View File
@@ -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]);
}
+62 -61
View File
@@ -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;
}
+40 -44
View File
@@ -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;
+51 -53
View File
@@ -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);
}
+5 -4
View File
@@ -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);
+4 -4
View File
@@ -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);
}
+4 -4
View File
@@ -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);
+4 -6
View File
@@ -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;
}
+8 -10
View File
@@ -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;
}
+2 -2
View File
@@ -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;
}
+2 -2
View File
@@ -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) {}
+2 -2
View File
@@ -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);
}
+3 -4
View File
@@ -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);
+2 -2
View File
@@ -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;
+3 -3
View File
@@ -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;
+18 -18
View File
@@ -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
+2 -2
View File
@@ -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;
}
+1 -1
View File
@@ -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)) {
+33 -35
View File
@@ -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, &params, 0x0);
+2 -1
View File
@@ -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);
+97 -115
View File
@@ -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);
}
+10 -12
View File
@@ -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, &params.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, &params.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;
+9 -8
View File
@@ -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);
+1 -1
View File
@@ -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;
}
+1 -1
View File
@@ -33,7 +33,7 @@ MapObjectGrass::MapObjectGrass() :
}
// non-matching
bool MapObjectGrass::vfunc_00() {}
bool MapObjectGrass::Init() {}
void MapObjectGrass::vfunc_08() {
MapObjState state = this->mState;
+3 -3
View File
@@ -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;
}
+22 -21
View File
@@ -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) {
+1 -1
View File
@@ -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;
+26 -30
View File
@@ -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);
}
+43 -46
View File
@@ -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;
}
+76 -90
View File
@@ -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();
+24 -35
View File
@@ -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, &params.mInitialPos);
+41 -59
View File
@@ -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(&param1->pos, &this->mPos, &param1->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);
}
+16 -16
View File
@@ -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();
+3 -3
View File
@@ -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) {
+5 -5
View File
@@ -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) {
+4 -4
View File
@@ -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) {
+4 -4
View File
@@ -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) {
+4 -4
View File
@@ -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();
}
+13 -18
View File
@@ -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() {}
+1 -1
View File
@@ -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)) {
+19 -23
View File
@@ -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)) {
+3 -5
View File
@@ -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, &param2->mUnk_04, param6, param5);
param5.angle = sp6;
param5.angle_u = sp6;
} else {
func_ov095_0217aaa8(&sp4, &param2->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;
}
+5 -3
View File
@@ -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();