Actor::mType field (#7)

* `Actor::mType` field

* Fix struct sizes

* Update symbols
This commit is contained in:
Aetias
2025-08-24 18:41:23 +02:00
committed by GitHub
parent 758f36f10c
commit c925fce03c
10 changed files with 118 additions and 86 deletions
+14 -14
View File
@@ -18,8 +18,8 @@ ARM Actor::Actor() {
this->mFlags = 0;
this->mUnk_84 = 0;
this->mUnk_5c.func_ov000_020975f8();
this->mUnk_8c = 0;
this->mUnk_90 = 0;
this->mRef.Reset();
this->mType = NULL;
data_ov000_020b539c.func_02028cdc(&this->mUnk_5c, 0x30);
this->mPrevPos = this->mPos = this->mUnk_5c.mUnk_00;
this->mAngle = this->mUnk_5c.mUnk_0c;
@@ -33,16 +33,16 @@ ARM Actor::Actor() {
ARM Actor::~Actor() {}
// non-matching (equivalent)
ARM void Actor::func_ov000_0209848c(UnkStruct_ov000_020b539c_30 *param1) {
ARM void Actor::func_ov000_0209848c(ActorType *param1) {
s16 unk_1c;
unk32 *temp_r3;
Cylinder *temp_r3;
unk_1c = param1->mUnk_1c;
temp_r3 = &param1->mUnk_04;
this->mUnk_90 = param1;
this->mUnk_30 = (unk32 *) this->mUnk_34 = temp_r3;
this->mUnk_4e = unk_1c;
this->mType = param1;
this->mUnk_30 = this->mUnk_34 = temp_r3;
this->mUnk_4e = unk_1c;
}
ARM unk32 Actor::vfunc_18(unk32 param1) {
@@ -97,15 +97,15 @@ ARM void Actor::func_ov000_0209853c(void) {
}
ARM bool Actor::vfunc_04() {
return this->mUnk_90->mUnk_1e & 1;
return this->mType->mUnk_1e & 1;
}
ARM unk16 Actor::vfunc_08() {
return this->mUnk_90->mUnk_1a;
return this->mType->mUnk_1a;
}
ARM unk8 Actor::vfunc_0c() {
return this->mUnk_90->mUnk_18;
return this->mType->mUnk_18;
}
// non-matching
@@ -115,11 +115,11 @@ ARM unk32 Actor::vfunc_38(unk32 param1) {
var_r3 = param1 >> 16;
if (GET_FLAG(&this->mFlags, ActorFlag_8)) {
if (GET_FLAG(&this->mFlags, ActorFlag_Grabbed)) {
return 0;
}
SET_FLAG(&this->mFlags, ActorFlag_8);
SET_FLAG(&this->mFlags, ActorFlag_Grabbed);
stack_c = this->mFlags;
switch (stack_c) {
@@ -141,12 +141,12 @@ ARM unk32 Actor::vfunc_38(unk32 param1) {
// non-matching
ARM bool Actor::vfunc_3c(unk32 param2, Vec3p *param3) {
if (!GET_FLAG(&this->mFlags, ActorFlag_8)) {
if (!GET_FLAG(&this->mFlags, ActorFlag_Grabbed)) {
return false;
}
this->mVel = *param3;
UNSET_FLAG(&this->mFlags, ActorFlag_8);
UNSET_FLAG(&this->mFlags, ActorFlag_Grabbed);
return true;
}
@@ -24,24 +24,24 @@ ARM ActorUnk_ov000_020a8bb0::ActorUnk_ov000_020a8bb0(ActorUnk_ov000_020a8bb0_a4_
this->mUnk_0a4.mUnk_08 = 0;
this->mUnk_0b4 = -1;
this->mUnk_0b8 = 0;
this->mUnk_0bc = 0;
this->mUnk_0c0.x = 0;
this->mUnk_0c0.y = 0;
this->mUnk_0c0.z = 0;
this->mUnk_0cc = 0;
this->mUnk_0ce = 0;
this->mUnk_0d0 = 0;
this->mUnk_0d4 = 0;
this->mUnk_0d8 = 0;
this->mUnk_0da = 0;
this->mUnk_0dc = 0x2AAB;
this->mUnk_0de = 0xEAAB;
this->mUnk_0e0 = 0x1555;
this->mUnk_0e4 = 0;
this->mUnk_0e8 = 0;
this->mUnk_0ea = 0;
this->mUnk_0bc.Reset();
this->mUnk_0c0.x = 0;
this->mUnk_0c0.y = 0;
this->mUnk_0c0.z = 0;
this->mUnk_0cc = 0;
this->mUnk_0ce = 0;
this->mUnk_0d0 = 0;
this->mUnk_0d4 = 0;
this->mUnk_0d8 = 0;
this->mUnk_0da = 0;
this->mUnk_0dc = 0x2AAB;
this->mUnk_0de = 0xEAAB;
this->mUnk_0e0 = 0x1555;
this->mUnk_0e4 = 0;
this->mUnk_0e8 = 0;
this->mUnk_0ea = 0;
this->mUnk_0ec.func_ov024_020d6668();
uVar2 = this->mUnk_34->mUnk_0c;
uVar2 = this->mUnk_34->size;
this->mUnk_114 = -1;
this->mUnk_118 = 0x1000;
this->mUnk_11c = 0x019A;
@@ -49,7 +49,7 @@ ARM ActorUnk_ov000_020a8bb0::ActorUnk_ov000_020a8bb0(ActorUnk_ov000_020a8bb0_a4_
this->mUnk_108 = uVar2;
this->mUnk_10c = 0;
this->mUnk_110 = uVar2;
this->mUnk_30 = &this->mUnk_104;
this->mUnk_30 = (Cylinder *) &this->mUnk_104;
this->mUnk_4a = 5;
this->mUnk_44 = 0x1F;
this->mUnk_094.mUnk_08 = 3;
@@ -88,14 +88,14 @@ ARM unk32 ActorUnk_ov000_020a8bb0::func_ov000_020a8dd0() {
}
// non-matching
ARM void ActorUnk_ov000_020a8bb0::func_ov000_020a8df0(unk32 param1, unk32 param2) {
ARM void ActorUnk_ov000_020a8bb0::func_ov000_020a8df0(ActorRef param1, unk32 param2) {
if (!((u32) (((param2 + 8) - param2) / 2) < 2)) {
this->mUnk_0b0 |= 2;
} else {
this->mUnk_0b0 &= ~2;
}
if (this->mUnk_8c != param1) {
if (this->mRef != param1) {
this->vfunc_b4();
this->mUnk_0bc = param1;
this->mUnk_0c0.x = 0;
@@ -118,7 +118,7 @@ ARM void ActorUnk_ov000_020a8bb0::func_ov000_020a8e9c(Vec3p *param1) {
this->mUnk_0c0.x = x;
this->mUnk_0c0.y = y;
this->mUnk_0c0.z = x;
this->mUnk_0bc = 0;
this->mUnk_0bc.Reset();
}
ARM void ActorUnk_ov000_020a8bb0::vfunc_b0() {
+5 -5
View File
@@ -29,10 +29,10 @@ ARM Actor *ActorTypeRupee::Create() {
ARM ActorTypeRupee::ActorTypeRupee() :
ActorType(ActorId_Rupee) {
this->mData.mUnk_00 = 0;
this->mData.mUnk_04 = 0x556;
this->mData.mUnk_08 = 0;
this->mData.mUnk_0c = 0x556;
this->mUnk_04.pos.x = 0;
this->mUnk_04.pos.y = 0x556;
this->mUnk_04.pos.z = 0;
this->mUnk_04.size = 0x556;
}
// non-matching
@@ -755,7 +755,7 @@ ARM bool ActorRupee::func_ov031_020e9e5c() {
#define GET_ACTOR_RUPEE(pActor) ((ActorRupee *) (pActor))
ARM Actor_c4::Actor_c4(Actor *param1) :
Actor_c4_Base(&param1->mUnk_8c, 0) {
Actor_c4_Base(&param1->mRef, 0) {
this->mUnk_20 = param1;
this->mUnk_04 = 1;
}