Decompile overlay 17 (CourseExec Part 1) (#152)

* day 1

* delink overlay 17

* UnkStruct_027e0ce0_30_017 & UnkStruct_027e0ce0_40_017

* ItemManager_017 OK

* UnkStruct_027e0ce0_40_Base_94_017 95%

* UnkStruct_027e0ce0_017 OK

* PlayerLinkActor_017 OK

* PlayerLinkActor_A0_20_017 OK

* code_020be2ec_017 99%

* ActorManager_017 OK

* Actor_017 OK

* ActorEventIcon_017 OK

* code_020be2ec_017 OK

* MapObjectManager_017 97%

* MapObject_017 OK

* MapObjectSwitchStep_017 OK

* fix build issues

* fix other versions build issues
This commit is contained in:
Yanis
2026-10-02 13:18:22 +02:00
committed by GitHub
parent 58b1255fd4
commit 205dc5a1ca
260 changed files with 5554 additions and 2047 deletions
+120 -25
View File
@@ -3,6 +3,7 @@
#include "Actor/ActorId.hpp"
#include "Actor/ActorProfile.hpp"
#include "Actor/ActorRef.hpp"
#include "Physics/AABB.hpp"
#include "Physics/Cylinder.hpp"
#include "System/SysNew.hpp"
#include "Unknown/UnkStruct_ov031_Items.hpp"
@@ -13,6 +14,9 @@
#include "types.h"
#include "versions.h"
class UnkStruct_027e09bc;
class UnkStruct_027e09bc_0C;
class ActorParams {
public:
/* 00 */ VecFx32 mInitialPos;
@@ -72,7 +76,7 @@ enum ActorFlag_ {
ActorFlag_12 = FLAG(0, 12),
ActorFlag_13 = FLAG(0, 13),
ActorFlag_14 = FLAG(0, 14),
ActorFlag_15 = FLAG(0, 15),
ActorFlag_15 = FLAG(0, 15), // stunned?
ActorFlag_16 = FLAG(0, 16),
ActorFlag_17 = FLAG(0, 17),
ActorFlag_18 = FLAG(0, 18),
@@ -91,6 +95,11 @@ enum ActorFlag_ {
ActorFlag_31 = FLAG(0, 31),
};
// normal: 0x603B - 0110 0000 0011 1011 - Alive | Visible | Active | Flag_4 | Flag_13 | Flag_14 | Flag 5
// out of stun: 0xE03B - 1110 0000 0011 1011 - Alive | Visible | Active | Flag_4 | Flag_13 | Flag_14 | Flag 5 | Flag_15
// caught in tornado: 0xE01B - 1110 0000 0001 1011 - Alive | Visible | Active | Flag_4 | Flag_13 | Flag_14 | Flag_15
// stunned: 0xA01B - 1010 0000 0001 1011 - Alive | Visible | Active | Flag_4 | Flag_13 | Flag_15
class Actor_9C {
public:
/* 00 (vtable) */
@@ -120,8 +129,52 @@ public:
class Actor_vfunc_30 {
public:
/* 00 */ s8 mUnk_00;
/* 01 */ s8 mUnk_01;
union UnkStruct {
struct {
s8 unk_00;
s8 unk_01;
};
u16 data;
};
public:
/* 00 */ UnkStruct mUnk_00;
/* 02 */ UnkStruct mUnk_02;
};
// ActorStateStunned? seems to related to that
class UnkStruct_ActorUnkCANS_224 {
public:
/* 00 (base) */ UnkStruct_PlayerGet_ec mUnk_00[0x2];
/* 08 */ volatile u16 mUnk_08;
/* 0A */ u16 mUnk_0A;
/* 0C */ u16 mUnk_0C;
/* 0E */ u16 mUnk_0E;
/* 10 */
UnkStruct_ActorUnkCANS_224(); // func_ov000_02099820
~UnkStruct_ActorUnkCANS_224() {
this->Destroy();
}
void Destroy() {
for (UnkStruct_PlayerGet_ec *ptr = this->mUnk_00; ptr != &this->mUnk_00[ARRAY_LEN(this->mUnk_00)]; ++ptr) {
ptr->func_ov000_020a0334();
}
this->mUnk_0A = 0;
this->mUnk_08 = 0;
}
void UpdateTimer() {
if (this->mUnk_08 < this->mUnk_0A) {
this->mUnk_08++;
}
}
void func_ov000_020998f0(ActorRef ref, VecFx32 *pPos);
void func_ov000_02099a0c();
};
typedef s16 ActorState;
@@ -150,9 +203,9 @@ public:
/* 4A */ u8 mUnk_4A[2];
/* 4C */ ActorState mState;
/* 4E */ fx16 mYOffset;
/* 50 */ volatile u16 mUnk_50; // timer some actors are using
/* 52 */ u16 mUnk_52; // maximum value for above timer
/* 54 */ unk32 mUnk_54;
/* 50 */ volatile u16 mTimer; // generic timer, used for stunned time, drop expiration, ...
/* 52 */ u16 mTimerMax; // maximum value for the above timer
/* 54 */ UnkStruct_ActorUnkCANS_224 *mUnk_54;
/* 58 */ ActorFlags mFlags[1];
/* 5C */ ActorParams mUnk_5C;
/* 8C */ ActorRef mRef;
@@ -164,24 +217,24 @@ public:
/* 08 */ virtual unk16 vfunc_08();
/* 0C */ virtual unk8 vfunc_0C();
/* 10 */ virtual void vfunc_10(Cylinder *param1);
/* 14 */ virtual void vfunc_14();
/* 14 */ virtual bool vfunc_14(Cylinder *param1);
/* 18 */ virtual bool vfunc_18(unk32 param1); // Init?
/* 1C */ virtual void vfunc_1C(); // Setup
/* 20 */ virtual void vfunc_20(); // Update?
/* 24 */ virtual void vfunc_24();
/* 28 */ virtual void vfunc_28();
/* 2C */ virtual void vfunc_2C(unk32 param1);
/* 28 */ virtual void vfunc_28(Actor_vfunc_30 *param1);
/* 2C */ virtual void vfunc_2C(Actor_vfunc_30 *param1);
/* 30 */ virtual void vfunc_30(Actor_vfunc_30 *param1);
/* 34 */ virtual unk32 vfunc_34();
/* 38 */ virtual bool Grab(ActorGrabParams grabParams);
/* 3C */ virtual bool Drop(ActorGrabParams grabParams, const VecFx32 *pVel);
/* 40 */ virtual void vfunc_40();
/* 44 */ virtual void vfunc_44();
/* 48 */ virtual void vfunc_48();
/* 48 */ virtual bool vfunc_48(unk32 param1);
/* 4C */ virtual ~Actor();
/* 54 */
bool func_01fff5d0(unk32 param1, unk32 param2);
bool func_01fff5d0(Actor_vfunc_30 *param1, unk32 param2);
void ResetFlags() {
*(u32 *) this->mFlags = 0;
@@ -191,17 +244,48 @@ public:
UNSET_FLAG(this->mFlags, ActorFlag_Alive);
}
bool IsAlive() {
return GET_FLAG(this->mFlags, ActorFlag_Alive);
}
// clang-format off
/* x & 0x00000001 */ const bool IsAlive() { return GET_FLAG(this->mFlags, ActorFlag_Alive); }
/* x & 0x00000002 */ const bool IsVisible() { return GET_FLAG(this->mFlags, ActorFlag_Visible); }
/* x & 0x00000004 */ const bool IsFlag2() { return GET_FLAG(this->mFlags, ActorFlag_2); }
/* x & 0x00000008 */ const bool IsActive() { return GET_FLAG(this->mFlags, ActorFlag_Active); }
/* x & 0x00000010 */ const bool IsFlag4() { return GET_FLAG(this->mFlags, ActorFlag_4); }
/* x & 0x00000020 */ const bool IsFlag5() { return GET_FLAG(this->mFlags, ActorFlag_5); }
/* x & 0x00000040 */ const bool IsFlag6() { return GET_FLAG(this->mFlags, ActorFlag_6); }
/* x & 0x00000080 */ const bool IsFlag7() { return GET_FLAG(this->mFlags, ActorFlag_7); }
/* x & 0x00000100 */ const bool IsGrabbed() { return GET_FLAG(this->mFlags, ActorFlag_Grabbed); }
/* x & 0x00000200 */ const bool IsFlag9() { return GET_FLAG(this->mFlags, ActorFlag_9); }
/* x & 0x00000400 */ const bool IsInteracting() { return GET_FLAG(this->mFlags, ActorFlag_Interacting); }
/* x & 0x00000800 */ const bool IsFlag11() { return GET_FLAG(this->mFlags, ActorFlag_11); }
/* x & 0x00001000 */ const bool IsFlag12() { return GET_FLAG(this->mFlags, ActorFlag_12); }
/* x & 0x00002000 */ const bool IsFlag13() { return GET_FLAG(this->mFlags, ActorFlag_13); }
/* x & 0x00004000 */ const bool IsFlag14() { return GET_FLAG(this->mFlags, ActorFlag_14); }
/* x & 0x00008000 */ const bool IsFlag15() { return GET_FLAG(this->mFlags, ActorFlag_15); }
/* x & 0x00010000 */ const bool IsFlag16() { return GET_FLAG(this->mFlags, ActorFlag_16); }
/* x & 0x00020000 */ const bool IsFlag17() { return GET_FLAG(this->mFlags, ActorFlag_17); }
/* x & 0x00040000 */ const bool IsFlag18() { return GET_FLAG(this->mFlags, ActorFlag_18); }
/* x & 0x00080000 */ const bool IsFlag19() { return GET_FLAG(this->mFlags, ActorFlag_19); }
/* x & 0x00100000 */ const bool IsFlag20() { return GET_FLAG(this->mFlags, ActorFlag_20); }
/* x & 0x00200000 */ const bool IsFlag21() { return GET_FLAG(this->mFlags, ActorFlag_21); }
/* x & 0x00400000 */ const bool IsFlag22() { return GET_FLAG(this->mFlags, ActorFlag_22); }
/* x & 0x00800000 */ const bool IsFlag23() { return GET_FLAG(this->mFlags, ActorFlag_23); }
/* x & 0x01000000 */ const bool IsFlag24() { return GET_FLAG(this->mFlags, ActorFlag_24); }
/* x & 0x02000000 */ const bool IsFlag25() { return GET_FLAG(this->mFlags, ActorFlag_25); }
/* x & 0x04000000 */ const bool IsFlag26() { return GET_FLAG(this->mFlags, ActorFlag_26); }
/* x & 0x08000000 */ const bool IsFlag27() { return GET_FLAG(this->mFlags, ActorFlag_27); }
/* x & 0x10000000 */ const bool IsFlag28() { return GET_FLAG(this->mFlags, ActorFlag_28); }
/* x & 0x20000000 */ const bool IsFlag29() { return GET_FLAG(this->mFlags, ActorFlag_29); }
/* x & 0x40000000 */ const bool IsFlag30() { return GET_FLAG(this->mFlags, ActorFlag_30); }
/* x & 0x80000000 */ const bool IsFlag31() { return GET_FLAG(this->mFlags, ActorFlag_31); }
// clang-format on
Actor();
ActorId GetActorId();
bool IsTimerOut() {
if (this->mUnk_50 < this->mUnk_52) {
this->mUnk_50++;
if (this->mTimer < this->mTimerMax) {
this->mTimer++;
return false;
}
@@ -237,6 +321,7 @@ public:
void func_ov000_0209862c(unk32 param1);
bool func_ov000_020986fc(unk32 param1);
void func_ov000_020989e0();
void func_ov000_02098a18(Cylinder *param1);
bool func_ov000_02098a60(unk32 param1);
void func_ov000_02098a88(unk32 param1, unk32 param2);
void func_ov000_0209a008(unk32 param1, fx16 param2);
@@ -247,14 +332,29 @@ public:
// overlay 17
bool func_ov017_020beeec(unk32 param1);
void func_ov017_020bef88(Actor_vfunc_30 *param1, void *param2, unk32 param3);
bool func_ov017_020bef4c(unk32 param1);
void func_ov017_020bef88(Actor_vfunc_30 *param1, UnkStruct_ov019_020d24c8_28_258_00 *param2, unk32 param3);
void func_ov017_020bf024(Actor_vfunc_30 *param1);
void func_ov017_020bf050(Actor_9C *param1, unk32 param2);
void func_ov017_020bf178(Actor_9C *param1, unk32 param2);
void func_ov017_020bf284(VecFx32 *param1, VecFx32 param2);
void func_ov017_020bf2d8(Actor_9C *param1, unk32 param2);
void func_ov017_020bf3e0(unk32 param1, fx32 param2);
void func_ov017_020bf5c4(VecFx32 *param1, unk32 param2, unk32 param3, unk32 param4, unk32 param5);
void func_ov017_020bf4b0(unk32 param1);
void func_ov017_020bf574(unk32 param1, unk32 param2);
void func_ov017_020bf5c4(VecFx32 *param1, unk32 param2, unk32 param3, unk32 param4, s16 param5);
void func_ov017_020bf634(const VecFx32 *param1, u16 param2, unk32 param3);
void func_ov017_020bf688();
void func_ov017_020bf710(UnkStruct_ActorUnkCANS_224 *param1, const VecFx32 *param2, u16 param3);
void func_ov017_020bf7a8();
void func_ov017_020bf894(UnkStruct_ActorUnkCANS_224 *param1);
void func_ov017_020bf99c();
void func_ov017_020bf9c8(Actor *param1);
void func_ov017_020bfa50(VecFx32 *param1, unk32 param2);
void func_ov017_020bfad4();
void func_ov017_020bfb18(Actor_9C *param1);
bool func_ov017_020bfd9c(Vec2s *param1, unk32 param2, UnkStruct_027e09bc_0C *param3,
AABB *param4); //! TODO: param4's type not confirmed but probably correct
// overlay 71 (might be temporary)
void func_ov071_021540ac(unk32 param1);
@@ -308,7 +408,6 @@ public:
/* 10 */
};
class UnkStruct_ActorUnkCANS_224;
class Actor_Derived2 : public Actor {
public:
/* 00 (base) */
@@ -326,16 +425,12 @@ public:
/* 4C */ WEAK virtual ~Actor_Derived2() {}
/* 54 */ virtual void vfunc_54(unk32 param1);
void func_ov000_020990c0(Actor_9C *param2, unk32 param3, unk32 param4);
void func_ov000_020990c0(Actor_9C *param1, unk32 param2, unk32 param3);
void func_ov000_020992dc();
unk32 func_ov000_02099450(void *param2, VecFx32 *param3, unk32 param4, u16 param5);
unk32 func_ov000_02099450(UnkStruct_ActorUnkCANS_224 *param1, VecFx32 *param2, unk32 param3, u16 param4);
void func_ov000_020994a0();
void func_ov000_020997c4(unk32 param1);
void func_ov000_02098f34(VecFx32 *);
unk32 func_ov017_020bef4c(unk32 param1);
void func_ov017_020bf178(Actor_9C *param2, unk32 param3);
void func_ov017_020bf894(UnkStruct_ActorUnkCANS_224 *param1);
};
extern UnkStruct_ov000_020b539c data_ov000_020b539c_eur;
+1 -1
View File
@@ -106,7 +106,7 @@ public:
/* 18 */ virtual bool vfunc_18(unk32 param1) override;
/* 20 */ virtual void vfunc_20() override;
/* 24 */ virtual void vfunc_24() override;
/* 2C */ virtual void vfunc_2C(unk32 param1) override;
/* 2C */ virtual void vfunc_2C(Actor_vfunc_30 *param1) override;
/* 38 */ virtual bool Grab(ActorGrabParams grabParams) override;
/* 3C */ virtual bool Drop(ActorGrabParams grabParams, const VecFx32 *pVel) override;
+5 -1
View File
@@ -10,7 +10,7 @@ class ActorEventIcon : public Actor {
public:
/* 000 (base) */
/* 094 */ CellAnimObject mUnk_094; // event icon
/* 10C */ unk16 mUnk_10C;
/* 10C */ u16 mUnk_10C;
/* 110 */ unk16 mUnk_10E; // pad?
ActorEventIcon();
@@ -21,7 +21,11 @@ public:
/* 30 */ virtual void vfunc_30(Actor_vfunc_30 *param1) override;
/* 4C */ virtual ~ActorEventIcon() override;
// overlay 0
void func_ov000_0209c014(void);
// overlay 17
void func_ov017_020c002c();
};
class ActorProfileEventIcon : public ActorProfile {
+1 -1
View File
@@ -77,7 +77,7 @@ public:
/* 18 */ virtual bool vfunc_18(unk32 param1) override;
/* 20 */ virtual void vfunc_20() override;
/* 2C */ virtual void vfunc_2C(unk32 param1) override;
/* 2C */ virtual void vfunc_2C(Actor_vfunc_30 *param1) override;
/* 30 */ virtual void vfunc_30(Actor_vfunc_30 *param1) override;
/* 4C */ virtual ~ActorFleeingSpinut() override;
+1 -1
View File
@@ -46,7 +46,7 @@ public:
/* 18 */ virtual bool vfunc_18(unk32 param1) override;
/* 20 */ virtual void vfunc_20() override;
/* 2C */ virtual void vfunc_2C(unk32 param1) override;
/* 2C */ virtual void vfunc_2C(Actor_vfunc_30 *param1) override;
/* 4C */ virtual ~ActorHeart() override {};
void func_ov031_020f0750();
+1 -1
View File
@@ -84,7 +84,7 @@ public:
/* 18 */ virtual bool vfunc_18(unk32 param1) override;
/* 20 */ virtual void vfunc_20() override;
/* 2C */ virtual void vfunc_2C(unk32 param1) override;
/* 2C */ virtual void vfunc_2C(Actor_vfunc_30 *param1) override;
/* 4C */ virtual ~ActorItemBoomerang() override;
void SetState(ActorState state);
+1 -1
View File
@@ -73,7 +73,7 @@ public:
ActorItemDrop();
/* 18 */ virtual bool vfunc_18(unk32 param1) override;
/* 2C */ virtual void vfunc_2C(unk32 param1) override;
/* 2C */ virtual void vfunc_2C(Actor_vfunc_30 *param1) override;
/* 20 */ virtual void vfunc_20() override;
/* 24 */ virtual void vfunc_24() override;
+1 -1
View File
@@ -42,7 +42,7 @@ public:
/* 18 */ bool vfunc_18(unk32 param1);
/* 20 */ virtual void vfunc_20() override;
/* 2C */ virtual void vfunc_2C(unk32 param1) override;
/* 2C */ virtual void vfunc_2C(Actor_vfunc_30 *param1) override;
/* 5C */ virtual void vfunc_5C(ActorState state) override;
void func_ov031_020f11a8();
+1 -1
View File
@@ -53,7 +53,7 @@ public:
/* 18 */ virtual bool vfunc_18(unk32 param1) override;
/* 20 */ virtual void vfunc_20() override;
/* 24 */ virtual void vfunc_24() override;
/* 2C */ virtual void vfunc_2C(unk32 param1) override;
/* 2C */ virtual void vfunc_2C(Actor_vfunc_30 *param1) override;
void SetState(ActorState state);
void func_ov031_020e5d18(unk32 param1);
+1 -1
View File
@@ -119,7 +119,7 @@ public:
/* 18 */ virtual bool vfunc_18(unk32 param1) override;
/* 20 */ virtual void vfunc_20() override;
/* 2C */ virtual void vfunc_2C(unk32 param1) override;
/* 2C */ virtual void vfunc_2C(Actor_vfunc_30 *param1) override;
void func_ov032_0211e0c0();
void func_ov032_0211e0d4(s16 param1, unk32 param2);
+19 -4
View File
@@ -11,6 +11,9 @@
class EntranceInfo;
class ActorManager : public AutoInstance<ActorManager> {
public:
typedef void (*UnkCallback1)(Actor *, Actor_vfunc_30 *);
public:
/* 00 */ Actor **mActorTable;
/* 04 */ Actor **mActorTableEnd;
@@ -18,9 +21,9 @@ public:
/* 0C */ unk16 mActorCount;
/* 0E */ unk16 mNextActorId;
/* 10 */ unk8 mUnk_10;
/* 10 */ unk8 mUnk_11;
/* 10 */ unk8 mUnk_12;
/* 10 */ unk8 mUnk_13;
/* 11 */ unk8 mUnk_11;
/* 12 */ unk8 mUnk_12;
/* 13 */ unk8 mUnk_13;
/* 14 */ UnkStruct_ov019_020d24c8_28_258_00 mUnk_14;
/* 1C */ unk32 mUnk_1C;
/* 20 */ unk8 mUnk_20;
@@ -40,7 +43,7 @@ public:
~ActorManager();
// itcm
void func_01fff2fc(void (*callback)(Actor *, u16), unk32 param2);
void func_01fff2fc(UnkCallback1 callback, void *param2);
Actor **func_01fff350(UnkStruct_ov000_020b3000_Base *param1, Actor **ppActorTable);
Actor *func_01fff3b4(ActorRef ref);
@@ -65,6 +68,18 @@ public:
static bool func_ov001_020bb728(ActorId actorId);
static void func_ov001_020bb824();
static void func_ov001_020bb844();
// overlay 5
void func_ov005_020b66a4(unk32 param1);
// overlay 17
void func_ov017_020becd8(unk32 param1);
static void func_ov017_020bee20(Actor *pActor, Actor_vfunc_30 *param2);
static void func_ov017_020bee64(Actor *pActor, Actor_vfunc_30 *param2);
static void func_ov017_020bee84(Actor *pActor, Actor_vfunc_30 *param2);
static void func_ov017_020beea4(Actor *pActor, Actor_vfunc_30 *param2);
static void func_ov017_020beecc(Actor *pActor, Actor_vfunc_30 *param2);
};
extern ActorManager *gpActorManager;
+1 -1
View File
@@ -88,7 +88,7 @@ public:
/* 18 */ virtual bool vfunc_18(unk32 param1) override;
/* 20 */ virtual void vfunc_20() override;
/* 2C */ virtual void vfunc_2C(unk32 param1) override;
/* 2C */ virtual void vfunc_2C(Actor_vfunc_30 *param1) override;
/* 5C */ virtual void vfunc_5C(ActorState state) override;
void func_ov031_020f0cf0();
+1 -1
View File
@@ -15,7 +15,7 @@ public:
/* 04 */ Cylinder mUnk_04;
/* 14 */ unk8 mUnk_14;
/* 15 */ bool mUnk_15;
/* 16 */ unk8 mUnk_16;
/* 16 */ unk8 mUnk_16[1]; //! TODO: at least one element
/* 17 */ unk8 mUnk_17;
/* 18 */ unk8 mUnk_18;
/* 19 */ unk8 mUnk_19;
+43
View File
@@ -70,6 +70,49 @@ struct ActorRef {
const u32 Get32() const {
return this->data;
}
const u16 GetTypeIndex1() {
if (this->type_index == REF_TYPE_INDEX(ActorRefType_0, 0x101)) {
return 0x00;
}
return this->unk_id;
}
const bool HasTypeIndexValue(u16 value) {
return this->type_index == value;
}
const bool UnkCheck1() {
bool ret = true;
if (this->type_index != REF_TYPE_INDEX(ActorRefType_0, 0x100) &&
this->type_index != REF_TYPE_INDEX(ActorRefType_0, 0x101)) {
ret = false;
}
return ret;
}
const bool UnkCheck2() {
bool ret = false;
if (this->UnkCheck1() && this->GetTypeIndex1() == 0x01) {
ret = true;
}
return ret;
}
const bool UnkCheck3(u16 value) {
BOOL ret = false;
if (this->HasTypeIndexValue(value) && (this->unk_id == 1 || this->unk_id == 3)) {
ret = true;
}
return ret;
}
};
// for arrays
+3 -3
View File
@@ -81,9 +81,9 @@ public:
ActorRollingStone();
/* 18 */ virtual bool vfunc_18(unk32 param1) override; // func_ov031_020f869c
/* 20 */ virtual void vfunc_20() override; // func_ov031_020f878c
/* 2C */ virtual void vfunc_2C(unk32 param1) override; // func_ov031_020f8948
/* 18 */ virtual bool vfunc_18(unk32 param1) override; // func_ov031_020f869c
/* 20 */ virtual void vfunc_20() override; // func_ov031_020f878c
/* 2C */ virtual void vfunc_2C(Actor_vfunc_30 *param1) override; // func_ov031_020f8948
/* 54 */
bool IsInternalTimerOut1() {
+1 -1
View File
@@ -71,7 +71,7 @@ public:
/* 18 */ virtual bool vfunc_18(unk32 param1) override;
/* 20 */ virtual void vfunc_20() override;
/* 2C */ virtual void vfunc_2C(unk32 param1) override;
/* 2C */ virtual void vfunc_2C(Actor_vfunc_30 *param1) override;
/* 4C */ virtual ~ActorRupee() override;
void func_ov031_020e8fec();
+1 -1
View File
@@ -130,7 +130,7 @@ public:
/* 18 */ virtual bool vfunc_18(unk32 param1) override;
/* 20 */ virtual void vfunc_20() override;
/* 24 */ virtual void vfunc_24() override;
/* 2C */ virtual void vfunc_2C(unk32 param1) override;
/* 2C */ virtual void vfunc_2C(Actor_vfunc_30 *param1) override;
/* 4C */ virtual ~ActorShotArrow() override;
void func_ov031_020f1868();
+2 -2
View File
@@ -130,7 +130,7 @@ public:
/* 18 */ virtual bool vfunc_18(unk32 param1) override;
/* 1C */ virtual void vfunc_1C() override;
/* 20 */ virtual void vfunc_20() override;
/* 2C */ virtual void vfunc_2C(unk32 param1) override;
/* 2C */ virtual void vfunc_2C(Actor_vfunc_30 *param1) override;
/* 4C */ virtual ~ActorSpinut() override;
/* 54 */ virtual void vfunc_54(unk32 param1) override;
@@ -167,7 +167,7 @@ public:
void func_ov032_0211b190(s32 param1, s32 param2);
void func_ov032_0211b1e0();
void func_ov032_0211b298();
static void func_ov032_0211b37c(ActorSpinut *, u16 param1);
static void func_ov032_0211b37c(Actor *thisx, Actor_vfunc_30 *param1);
void func_ov032_0211b3b0();
};
+1 -1
View File
@@ -112,7 +112,7 @@ public:
/* 1C */ virtual void vfunc_1C() override;
/* 20 */ virtual void vfunc_20() override;
/* 24 */ virtual void vfunc_24() override;
/* 2C */ virtual void vfunc_2C(unk32 param1) override;
/* 2C */ virtual void vfunc_2C(Actor_vfunc_30 *param1) override;
/* 30 */ virtual void vfunc_30(Actor_vfunc_30 *param1) override;
void func_ov071_0215f7f4(ActorState state);
+1 -22
View File
@@ -90,27 +90,6 @@ public:
/* 04 */ virtual unk32 vfunc_04(ActorRef param1, unk32 param2, unk32 param3, unk32 *param4) override;
};
class UnkStruct_ActorUnkCANS_224 {
public:
/* 00 (base) */ UnkStruct_PlayerGet_ec mUnk_00[0x2];
/* 08 */ u16 mUnk_08;
/* 0A */ u16 mUnk_0A;
/* 0C */ STRUCT_PAD(0x0C, 0x10);
/* 10 */
UnkStruct_ActorUnkCANS_224(); // func_ov000_02099820
~UnkStruct_ActorUnkCANS_224() {
for (UnkStruct_PlayerGet_ec *ptr = this->mUnk_00; ptr != this->mUnk_00 + ARRAY_LEN(this->mUnk_00); ++ptr) {
ptr->func_ov000_020a0334();
}
this->mUnk_0A = 0x0;
this->mUnk_08 = 0x0;
}
void func_ov000_02099a0c();
};
class ActorUnkCANS : public Actor_Derived2 {
public:
/* 000 (base) */
@@ -146,7 +125,7 @@ public:
/* 1C */ virtual void vfunc_1C(void) override;
/* 20 */ virtual void vfunc_20(void) override;
/* 24 */ virtual void vfunc_24(void) override;
/* 2C */ virtual void vfunc_2C(unk32 param1) override;
/* 2C */ virtual void vfunc_2C(Actor_vfunc_30 *param1) override;
void func_ov063_02158424(void);
void func_ov063_02158448(unk32 param1);
+1 -1
View File
@@ -89,7 +89,7 @@ public:
/* 18 */ virtual bool vfunc_18(unk32 param1) override;
/* 20 */ virtual void vfunc_20() override;
/* 24 */ virtual void vfunc_24() override;
/* 2C */ virtual void vfunc_2C(unk32 param1) override;
/* 2C */ virtual void vfunc_2C(Actor_vfunc_30 *param1) override;
void func_ov063_0215ab70(void);
void func_ov063_0215aba4(void);
+1 -1
View File
@@ -21,7 +21,7 @@ public:
/* 18 */ virtual bool vfunc_18(unk32 param1) override;
/* 20 */ virtual void vfunc_20() override;
/* 24 */ virtual void vfunc_24() override;
/* 2C */ virtual void vfunc_2C(unk32 param1) override;
/* 2C */ virtual void vfunc_2C(Actor_vfunc_30 *param1) override;
/* 54 */ virtual void vfunc_54(unk32 param1);
};
+1 -1
View File
@@ -36,7 +36,7 @@ public:
/* 18 */ virtual bool vfunc_18(unk32 param1) override;
/* 20 */ virtual void vfunc_20() override;
/* 2C */ virtual void vfunc_2C(unk32 param1) override;
/* 2C */ virtual void vfunc_2C(Actor_vfunc_30 *param1) override;
/* 54 */ virtual void vfunc_54(unk32 param1);
void func_ov031_020fb988();
+1 -1
View File
@@ -15,7 +15,7 @@ public:
/* 18 */ virtual bool vfunc_18(unk32 param1) override;
/* 20 */ virtual void vfunc_20() override;
/* 2C */ virtual void vfunc_2C(unk32 param1) override;
/* 2C */ virtual void vfunc_2C(Actor_vfunc_30 *param1) override;
void func_ov031_020f61a0();
void func_ov031_020f61f0();
+1 -1
View File
@@ -29,7 +29,7 @@ public:
/* 18 */ virtual bool vfunc_18(unk32 param1) override;
/* 20 */ virtual void vfunc_20(void) override;
/* 24 */ virtual void vfunc_24(void) override;
/* 2C */ virtual void vfunc_2C(unk32 param1) override;
/* 2C */ virtual void vfunc_2C(Actor_vfunc_30 *param1) override;
void func_ov063_0215f3d4(void);
void func_ov063_0215f500(void);
+1 -1
View File
@@ -20,6 +20,6 @@ public:
/* 1C */ virtual void vfunc_1C() override;
/* 20 */ virtual void vfunc_20() override;
/* 24 */ virtual void vfunc_24() override;
/* 2C */ virtual void vfunc_2C(unk32 param1) override;
/* 2C */ virtual void vfunc_2C(Actor_vfunc_30 *param1) override;
/* 58 */ virtual G3d_Model *vfunc_58() = 0;
};
+1 -1
View File
@@ -15,7 +15,7 @@ public:
/* 18 */ virtual bool vfunc_18(unk32 param1) override;
/* 1C */ virtual void vfunc_1C() override;
/* 2C */ virtual void vfunc_2C(unk32 param1) override;
/* 2C */ virtual void vfunc_2C(Actor_vfunc_30 *param1) override;
};
class ActorProfileUnkRMTG : public ActorProfile_Derived1 {
+1 -1
View File
@@ -28,7 +28,7 @@ public:
/* 18 */ virtual bool vfunc_18(unk32 param1) override;
/* 20 */ virtual void vfunc_20() override;
/* 2C */ virtual void vfunc_2C(unk32 param1) override;
/* 2C */ virtual void vfunc_2C(Actor_vfunc_30 *param1) override;
/* 38 */ virtual bool Grab(ActorGrabParams param1) override;
/* 38 */ virtual bool Drop(ActorGrabParams param1, const VecFx32 *param2) override;
+1 -1
View File
@@ -69,7 +69,7 @@ public:
/* 18 */ virtual bool vfunc_18(unk32 param1) override;
/* 20 */ virtual void vfunc_20() override;
/* 24 */ virtual void vfunc_24() override;
/* 2C */ virtual void vfunc_2C(unk32 param1) override;
/* 2C */ virtual void vfunc_2C(Actor_vfunc_30 *param1) override;
void func_ov031_020e6d48();
void func_ov031_020e6d80(unk32 param1);
+1 -1
View File
@@ -16,7 +16,7 @@ public:
/* 18 */ virtual bool vfunc_18(unk32 param1) override;
/* 20 */ virtual void vfunc_20() override;
/* 2C */ virtual void vfunc_2C(unk32 param1) override;
/* 2C */ virtual void vfunc_2C(Actor_vfunc_30 *param1) override;
};
class ActorProfileUnkSWCH : public ActorProfile {
+1 -1
View File
@@ -47,7 +47,7 @@ public:
/* 18 */ virtual bool vfunc_18(unk32 param1) override;
/* 20 */ virtual void vfunc_20() override;
/* 24 */ virtual void vfunc_24() override;
/* 30 */ virtual void vfunc_2C(unk32 param1) override;
/* 30 */ virtual void vfunc_2C(Actor_vfunc_30 *param1) override;
/* 34 */ virtual void vfunc_30(Actor_vfunc_30 *param1) override;
bool IsInternalTimerOut() {
+1 -1
View File
@@ -281,7 +281,7 @@ public:
/* 00 */ virtual void GetOffsetPos(VecFx32 *pPos) const override;
/* 18 */ virtual bool vfunc_18(unk32 param1) override;
/* 20 */ virtual void vfunc_20() override;
/* 2C */ virtual void vfunc_2C(unk32 param1) override;
/* 2C */ virtual void vfunc_2C(Actor_vfunc_30 *param1) override;
/* 4C */ virtual ~ActorUnkZLSL() override;
/* 58 */ virtual void vfunc_58(ActorState state) override;
/* 68 */ virtual void vfunc_68() override;
+3 -2
View File
@@ -1,6 +1,7 @@
#pragma once
#include "Actor.hpp"
#include "Physics/Cylinder.hpp"
#include "Render/ModelRender.hpp"
#include "Unknown/Common.hpp"
#include "Unknown/UnkStruct_027e0960.hpp"
@@ -154,12 +155,12 @@ public:
/* 118 */ unk32 mUnk_118;
/* 11C */ unk32 mUnk_11C;
/* 14 */ virtual void vfunc_14() override;
/* 14 */ virtual bool vfunc_14(Cylinder *param1) override;
/* 18 */ virtual bool vfunc_18(unk32 param1) override;
/* 1C */ virtual void vfunc_1C() override;
/* 20 */ virtual void vfunc_20() override;
/* 24 */ virtual void vfunc_24() override;
/* 2C */ virtual void vfunc_2C(unk32 param1) override;
/* 2C */ virtual void vfunc_2C(Actor_vfunc_30 *param1) override;
/* 4C */ virtual ~Actor_Derived1();
/* 54 */ virtual void vfunc_54(unk32 param1);
/* 58 */ virtual void vfunc_58(ActorState param1) = 0;
+16 -11
View File
@@ -8,6 +8,9 @@
#include "global.h"
#include "types.h"
class UnkStruct_027e0ce0_30_00;
class Inventory;
#define IS_ITEM_RESTRICTED(restrictions, itemFlag) (((restrictions) & (1 << (itemFlag))) != 0)
struct UnkStruct_ov000_020afc48 {
@@ -66,7 +69,7 @@ public:
// overlay 31
void func_ov031_020d9bd0();
void func_ov031_020dba40();
void func_ov031_020dbc80(unk32 param1, unk32 param2);
void func_ov031_020dbc80(bool param1, bool param2);
};
class UnkStruct_ItemManager_20_04_08_310 {
@@ -122,8 +125,8 @@ public:
// overlay 31
void func_ov031_020d9598();
void func_ov031_020db338();
void func_ov031_020db4f0(unk32 param1, unk32 param2);
void func_ov031_020db528(unk32 param1);
void func_ov031_020db4f0(bool param1, bool param2);
void func_ov031_020db528(void *param1);
};
class UnkStruct_ItemManager_20_08 {
@@ -148,7 +151,7 @@ public:
// overlay 31
void func_ov031_020d9658();
void func_ov031_020db5b4();
void func_ov031_020db704(unk32 param1, unk32 param2);
void func_ov031_020db704(bool param1, bool param2);
};
class UnkStruct_ItemManager_20_0C {
@@ -167,8 +170,8 @@ public:
// overlay 31
void func_ov031_020db954();
void func_ov031_020db958(unk32 param1, unk32 param2);
void func_ov031_020dba3c(unk32 param1);
void func_ov031_020db958(bool param1, bool param2);
void func_ov031_020dba3c(void *param1);
};
struct UnkStruct_ItemManager_20_10_00 {
@@ -227,14 +230,15 @@ public:
// overlay 31
bool func_ov031_020db874(ItemFlag itemFlag);
void func_ov031_020db8cc();
bool func_ov031_020db8f8();
bool func_ov031_020db8f8(UnkStruct_027e0ce0_30_00 *param1);
void func_ov031_020db844(ItemFlag item);
// overlay 101
void func_ov101_02182d5c();
// overlay 102
void func_ov102_02182fa8(unk32 param1, unk32 param2);
void func_ov102_02182ffc(unk32 param1);
void func_ov102_02182fa8(bool param1, bool param2);
void func_ov102_02182ffc(void *param1);
};
struct InvImportData {
@@ -392,7 +396,7 @@ public:
bool func_ov000_020a89d4();
bool func_ov000_020a8a0c();
void func_ov000_020a8a5c();
bool func_ov000_020a8a74();
bool func_ov000_020a8a74(UnkStruct_027e0ce0_30_00 *param1);
UnkStruct_ItemManager_20_00 *func_ov000_020a8a90();
UnkStruct_ItemManager_20_04 *func_ov000_020a8aa4();
UnkStruct_ItemManager_20_0C *func_ov000_020a8ab8();
@@ -408,7 +412,8 @@ public:
void func_ov001_020bc2b8();
// overlay 17
void func_ov017_020bd2a0(unk32 param1, unk32 param2);
void func_ov017_020bd2a0(bool param1, bool param2);
void func_ov017_020bd2e8(void *param1);
// overlay 110
static u32 GetBmgIDFromItem(ItemId itemId);
+42 -4
View File
@@ -12,6 +12,7 @@
#include "types.h"
class MapObjectProfile;
class UnkStruct_027e09bc_0C;
typedef u16 MapObjFlags;
enum MapObjFlag_ {
@@ -148,10 +149,10 @@ public:
/* 08 */ virtual void vfunc_08();
/* 0C */ virtual void vfunc_0C();
/* 10 */ virtual void vfunc_10();
/* 14 */ virtual void vfunc_14();
/* 18 */ virtual void vfunc_18(s8 *param1, s8 param2);
/* 14 */ virtual void vfunc_14(unk32 param1);
/* 18 */ virtual void vfunc_18(s8 *param1);
/* 1C */ virtual bool vfunc_1C(ActorRef param1, unk32 param2, VecFx32 *param3);
/* 20 */ virtual void vfunc_20();
/* 20 */ virtual void vfunc_20(unk32 param1);
/* 24 */ virtual void vfunc_24(MapObject *param1, VecFx32 param2);
/* 28 */ virtual unk32 vfunc_28(unk32 param1, unk32 param2, unk32 param3);
/* 2C */ virtual bool vfunc_2C(VecFx32 *param1);
@@ -177,14 +178,51 @@ public:
UNSET_FLAG(this->mFlags, MapObjFlag_Alive);
}
// clang-format off
/* x & 0x00000001 */ const bool IsAlive() { return GET_FLAG(this->mFlags, MapObjFlag_Alive); }
/* x & 0x00000002 */ const bool IsFlag1() { return GET_FLAG(this->mFlags, MapObjFlag_1); }
/* x & 0x00000004 */ const bool IsFlag2() { return GET_FLAG(this->mFlags, MapObjFlag_2); }
/* x & 0x00000008 */ const bool IsFlag3() { return GET_FLAG(this->mFlags, MapObjFlag_3); }
/* x & 0x00000010 */ const bool IsFlag4() { return GET_FLAG(this->mFlags, MapObjFlag_4); }
/* x & 0x00000020 */ const bool IsFlag5() { return GET_FLAG(this->mFlags, MapObjFlag_5); }
/* x & 0x00000040 */ const bool IsFlag6() { return GET_FLAG(this->mFlags, MapObjFlag_6); }
/* x & 0x00000080 */ const bool IsFlag7() { return GET_FLAG(this->mFlags, MapObjFlag_7); }
/* x & 0x00000100 */ const bool IsFlag8() { return GET_FLAG(this->mFlags, MapObjFlag_8); }
/* x & 0x00000200 */ const bool IsFlag9() { return GET_FLAG(this->mFlags, MapObjFlag_9); }
/* x & 0x00000400 */ const bool IsFlag10() { return GET_FLAG(this->mFlags, MapObjFlag_10); }
/* x & 0x00000800 */ const bool IsFlag11() { return GET_FLAG(this->mFlags, MapObjFlag_11); }
/* x & 0x00001000 */ const bool IsFlag12() { return GET_FLAG(this->mFlags, MapObjFlag_12); }
/* x & 0x00002000 */ const bool IsFlag13() { return GET_FLAG(this->mFlags, MapObjFlag_13); }
/* x & 0x00004000 */ const bool IsFlag14() { return GET_FLAG(this->mFlags, MapObjFlag_14); }
/* x & 0x00008000 */ const bool IsFlag15() { return GET_FLAG(this->mFlags, MapObjFlag_15); }
/* x & 0x00010000 */ const bool IsFlag16() { return GET_FLAG(this->mFlags, MapObjFlag_16); }
/* x & 0x00020000 */ const bool IsFlag17() { return GET_FLAG(this->mFlags, MapObjFlag_17); }
/* x & 0x00040000 */ const bool IsFlag18() { return GET_FLAG(this->mFlags, MapObjFlag_18); }
/* x & 0x00080000 */ const bool IsFlag19() { return GET_FLAG(this->mFlags, MapObjFlag_19); }
/* x & 0x00100000 */ const bool IsFlag20() { return GET_FLAG(this->mFlags, MapObjFlag_20); }
/* x & 0x00200000 */ const bool IsFlag21() { return GET_FLAG(this->mFlags, MapObjFlag_21); }
/* x & 0x00400000 */ const bool IsFlag22() { return GET_FLAG(this->mFlags, MapObjFlag_22); }
/* x & 0x00800000 */ const bool IsFlag23() { return GET_FLAG(this->mFlags, MapObjFlag_23); }
/* x & 0x01000000 */ const bool IsFlag24() { return GET_FLAG(this->mFlags, MapObjFlag_24); }
/* x & 0x02000000 */ const bool IsFlag25() { return GET_FLAG(this->mFlags, MapObjFlag_25); }
/* x & 0x04000000 */ const bool IsFlag26() { return GET_FLAG(this->mFlags, MapObjFlag_26); }
/* x & 0x08000000 */ const bool IsFlag27() { return GET_FLAG(this->mFlags, MapObjFlag_27); }
/* x & 0x10000000 */ const bool IsFlag28() { return GET_FLAG(this->mFlags, MapObjFlag_28); }
/* x & 0x20000000 */ const bool IsFlag29() { return GET_FLAG(this->mFlags, MapObjFlag_29); }
/* x & 0x40000000 */ const bool IsFlag30() { return GET_FLAG(this->mFlags, MapObjFlag_30); }
/* x & 0x80000000 */ const bool IsFlag31() { return GET_FLAG(this->mFlags, MapObjFlag_31); }
// clang-format on
MapObject();
// itcm
MapObjectId GetMapObjectId();
unk32 func_01fff590(unk32 param2);
// overlay 0
bool func_ov000_0209d114();
bool func_ov000_0209d12c();
bool func_ov000_0209d144(Vec2s *param1, unk32 param2, unk32 param3);
bool func_ov000_0209d144(Vec2s *param1, unk32 param2, UnkStruct_027e09bc_0C *param3);
void func_ov000_0209d274(unk32 param1);
bool func_ov000_0209d29c(unk32 param1);
void func_ov000_0209d2c4(unk32 param1, bool param2);
+1 -1
View File
@@ -35,7 +35,7 @@ public:
MapObjectBombFlower();
/* 08 */ virtual void vfunc_08() override;
/* 14 */ virtual void vfunc_14() override;
/* 14 */ virtual void vfunc_14(unk32 param1) override;
/* 1C */ virtual bool vfunc_1C(ActorRef param1, unk32 param2, VecFx32 *param3) override;
/* 28 */ virtual unk32 vfunc_28(unk32 param1, unk32 param2, unk32 param3) override;
/* 38 */ virtual void vfunc_38() override;
+2 -2
View File
@@ -62,8 +62,8 @@ public:
/* 04 */ virtual void vfunc_04() override;
/* 08 */ virtual void vfunc_08() override;
/* 0C */ virtual void vfunc_0C() override;
/* 14 */ virtual void vfunc_14() override;
/* 18 */ virtual void vfunc_18(s8 *param1, s8 param2) override;
/* 14 */ virtual void vfunc_14(unk32 param1) override;
/* 18 */ virtual void vfunc_18(s8 *param1) override;
/* 28 */ virtual ItemId vfunc_28(unk32 param1, unk32 param2, unk32 param3) override;
/* 30 */ virtual ~MapObjectChestBase() override;
/* 38 */ virtual void vfunc_38(unk32 param1, unk32 param2);
+1 -1
View File
@@ -88,7 +88,7 @@ public:
/* 90 */
void func_ov031_020fbf10(bool param1, bool param2);
void func_ov031_020fcb78(s8 *param1, s8 param2);
void func_ov031_020fcb78(s8 *param1);
void func_ov031_020fcd40();
void func_ov031_020fcf0c(unk32 param1);
bool func_ov031_020fcf30();
+2 -2
View File
@@ -43,8 +43,8 @@ public:
/* 00 */ virtual bool vfunc_00() override;
/* 08 */ virtual void vfunc_08() override;
/* 14 */ virtual void vfunc_14() override;
/* 18 */ virtual void vfunc_18(s8 *param1, s8 param2) override;
/* 14 */ virtual void vfunc_14(unk32 param1) override;
/* 18 */ virtual void vfunc_18(s8 *param1) override;
/* 28 */ virtual unk32 vfunc_28(unk32 param1, unk32 param2, unk32 param3) override;
/* 30 */ virtual ~MapObjectDoorClick() override {}
/* 40 */ virtual void vfunc_40() override;
@@ -60,8 +60,8 @@ public:
/* 04 */ virtual void vfunc_04() override;
/* 08 */ virtual void vfunc_08() override;
/* 0C */ virtual void vfunc_0C() override;
/* 14 */ virtual void vfunc_14() override;
/* 18 */ virtual void vfunc_18(s8 *param1, s8 param2) override;
/* 14 */ virtual void vfunc_14(unk32 param1) override;
/* 18 */ virtual void vfunc_18(s8 *param1) override;
/* 30 */ virtual ~MapObjectDoorDangerSpawn() override;
// (MapObject_UnkStruct1_Derived1)
+2 -2
View File
@@ -34,8 +34,8 @@ public:
/* 00 */ virtual bool vfunc_00() override;
/* 08 */ virtual void vfunc_08() override;
/* 14 */ virtual void vfunc_14() override;
/* 18 */ virtual void vfunc_18(s8 *param1, s8 param2) override;
/* 14 */ virtual void vfunc_14(unk32 param1) override;
/* 18 */ virtual void vfunc_18(s8 *param1) override;
/* 28 */ virtual unk32 vfunc_28(unk32 param1, unk32 param2, unk32 param3) override;
/* 30 */ virtual ~MapObjectDoorKey() override;
/* 40 */ virtual void vfunc_40() override;
+2 -2
View File
@@ -42,8 +42,8 @@ public:
// data_ov031_0211527c (MapObject)
/* 00 */ virtual bool vfunc_00() override;
/* 08 */ virtual void vfunc_08() override;
/* 14 */ virtual void vfunc_14() override;
/* 18 */ virtual void vfunc_18(s8 *param1, s8 param2) override;
/* 14 */ virtual void vfunc_14(unk32 param1) override;
/* 18 */ virtual void vfunc_18(s8 *param1) override;
/* 30 */ virtual ~MapObjectDoorSwitch() override;
/* 40 */ virtual void vfunc_40() override;
/* 44 */ virtual void vfunc_44() override;
+1 -1
View File
@@ -39,7 +39,7 @@ public:
/* 00 */ virtual bool vfunc_00() override;
/* 08 */ virtual void vfunc_08() override;
/* 14 */ virtual void vfunc_14() override;
/* 14 */ virtual void vfunc_14(unk32 param1) override;
/* 1C */ virtual bool vfunc_1C(ActorRef param1, unk32 param2, VecFx32 *param3) override;
/* 38 */ virtual bool vfunc_38(MapObjState state, unk32 param2);
/* 3C */ virtual void vfunc_3C(VecFx32 *param1);
+15
View File
@@ -66,6 +66,21 @@ public:
static MapObjectManager *Create();
static void Destroy();
// overlay 5
void func_ov005_020b6570(unk32 param1);
// overlay 17
bool func_ov017_020c007c(unk32 param1);
void func_ov017_020c00dc(unk32 param1);
void func_ov017_020c01c8(void *param1);
void func_ov017_020c01cc(unk32 param1);
void func_ov017_020c023c(s8 *param1);
void func_ov017_020c02ac(volatile unk32 param1, Vec2bCpp param2);
void func_ov017_020c02f4(volatile unk32 param1, VecFx32 *param2);
unk32 func_ov017_020c050c(unk32 param1, unk32 param2, unk32 param3, unk32 param4);
static void func_ov017_020c033c(unk32 *param1, MapObjectManager *thisx, const Vec2s *param2, unk32 param3, unk32 param4);
};
extern MapObjectManager *gpMapObjManager;
+1 -1
View File
@@ -15,7 +15,7 @@ public:
MapObjectMiniBlocks();
/* 00 */ virtual bool vfunc_00() override;
/* 14 */ virtual void vfunc_14() override;
/* 14 */ virtual void vfunc_14(unk32 param1) override;
/* 30 */ virtual ~MapObjectMiniBlocks() override;
};
+1 -1
View File
@@ -14,7 +14,7 @@ public:
MapObjectPot();
/* 04 */ virtual void vfunc_04() override; // func_ov031_02105088
/* 14 */ virtual void vfunc_14() override; // func_ov031_021052cc
/* 14 */ virtual void vfunc_14(unk32 param1) override; // func_ov031_021052cc
/* 1C */ virtual bool vfunc_1C(ActorRef param1, unk32 param2, VecFx32 *param3); // func_ov031_021050b4
/* 24 */ virtual void vfunc_24(MapObject *param1, VecFx32 param2) override; // func_ov031_02105348
/* 3C */ virtual bool vfunc_3C() override; // func_ov031_021053b4
+5 -5
View File
@@ -39,10 +39,10 @@ public:
/* A4 */ UnkSystem5 mUnk_A4;
/* C4 */ unk32 mUnk_C4;
/* C8 */ STRUCT_PAD(0xC8, 0xE4);
/* E4 */ u16 mUnk_E4;
/* E4 */ volatile u16 mUnk_E4;
/* E6 */ u16 mUnk_E6;
/* E8 */ unk16 mUnk_E8;
/* EA */ unk8 mUnk_EA;
/* EA */ u8 mUnk_EA; // bool?
/* EB */ unk8 mUnk_EB;
/* EC */
@@ -50,9 +50,9 @@ public:
/* 00 */ virtual bool vfunc_00() override;
/* 08 */ virtual void vfunc_08() override;
/* 14 */ virtual void vfunc_14() override;
/* 18 */ virtual void vfunc_18(s8 *param1, s8 param2) override;
/* 20 */ virtual void vfunc_20() override;
/* 14 */ virtual void vfunc_14(unk32 param1) override;
/* 18 */ virtual void vfunc_18(s8 *param1) override;
/* 20 */ virtual void vfunc_20(unk32 param1) override;
/* 30 */ virtual ~MapObjectSwitchStep() override;
void func_ov000_0209dda4(void);
+1 -1
View File
@@ -32,7 +32,7 @@ public:
/* 00 */ virtual bool vfunc_00() override;
/* 08 */ virtual void vfunc_08() override;
/* 14 */ virtual void vfunc_14() override;
/* 14 */ virtual void vfunc_14(unk32 param1) override;
/* 1C */ virtual bool vfunc_1C(ActorRef param1, unk32 param2, VecFx32 *param3) override;
/* 28 */ virtual unk32 vfunc_28(unk32 param1, unk32 param2, unk32 param3) override;
+1 -1
View File
@@ -23,7 +23,7 @@ public:
/* 00 */ virtual bool vfunc_00() override;
/* 08 */ virtual void vfunc_08() override;
/* 0C */ virtual void vfunc_0C() override;
/* 14 */ virtual void vfunc_14() override;
/* 14 */ virtual void vfunc_14(unk32 param1) override;
/* 1C */ virtual bool vfunc_1C(ActorRef param1, unk32 param2, VecFx32 *param3) override;
void func_ov063_02161254(unk32 param1);
+1 -1
View File
@@ -35,7 +35,7 @@ public:
/* 08 */ virtual void vfunc_08();
/* 0C */ virtual void vfunc_0C();
/* 0C */ virtual void vfunc_14();
/* 0C */ virtual void vfunc_14(unk32 param1);
/* 30 */ virtual ~MapObjectUnkPTFL() override;
// overlay 70
+1 -1
View File
@@ -38,7 +38,7 @@ public:
/* 08 */ virtual void vfunc_08();
/* 0C */ virtual void vfunc_0C();
/* 0C */ virtual void vfunc_14();
/* 0C */ virtual void vfunc_14(unk32 param1);
/* 30 */ virtual ~MapObjectUnkSAND() override;
void func_ov031_0210acd4(void);
+1 -1
View File
@@ -44,7 +44,7 @@ public:
/* 04 */ virtual void vfunc_04() override;
/* 08 */ virtual void vfunc_08() override;
/* 0C */ virtual void vfunc_0C() override;
/* 14 */ virtual void vfunc_14() override;
/* 14 */ virtual void vfunc_14(unk32 param1) override;
/* 1C */ virtual bool vfunc_1C(ActorRef param1, unk32 param2, VecFx32 *param3) override;
/* 38 */ virtual unk32 vfunc_38();
/* 3C */ virtual unk32 vfunc_3C();
+1 -1
View File
@@ -26,7 +26,7 @@ public:
/* 00 */ virtual bool vfunc_00() override; // Init
/* 08 */ virtual void vfunc_08() override;
/* 0C */ virtual void vfunc_0C() override;
/* 14 */ virtual void vfunc_14() override;
/* 14 */ virtual void vfunc_14(unk32 param1) override;
/* 30 */ virtual ~MapObjectUnkSTAT() override;
void func_ov063_0215f6d0(void);
+1 -1
View File
@@ -34,7 +34,7 @@ public:
/* 00 */ virtual bool vfunc_00() override;
/* 08 */ virtual void vfunc_08() override;
/* 0C */ virtual void vfunc_0C() override;
/* 14 */ virtual void vfunc_14() override;
/* 14 */ virtual void vfunc_14(unk32 param1) override;
/* 1C */ virtual bool vfunc_1C(ActorRef param1, unk32 param2, VecFx32 *param3) override;
/* 30 */ virtual ~MapObjectUnkSWHT() override;
+1 -1
View File
@@ -58,7 +58,7 @@ public:
/* 00 */ virtual bool vfunc_00() override;
/* 08 */ virtual void vfunc_08() override;
/* 14 */ virtual void vfunc_14() override;
/* 14 */ virtual void vfunc_14(unk32 param1) override;
/* 1C */ virtual bool vfunc_1C(ActorRef param1, unk32 param2, VecFx32 *param3) override;
/* 38 */ virtual void vfunc_38();
/* 3C */ virtual void vfunc_3C(unk32 param1);
+3 -2
View File
@@ -6,6 +6,7 @@
#include <nitro/math.h>
struct AABB {
VecFx32 min;
VecFx32 max;
/* 00 */ VecFx32 min;
/* 0C */ VecFx32 max;
/* 18 */
};
+134 -27
View File
@@ -3,6 +3,7 @@
#include "Actor/ActorRef.hpp"
#include "Render/ModelRender.hpp"
#include "Unknown/Common.hpp"
#include "global.h"
#include "math.hpp"
#include "nitro/fx.h"
@@ -11,7 +12,10 @@
#include <nns/g3d/g3d.h>
class Actor_C4;
class UnkStruct_027e0ce0_40_328;
class UnkStruct_027e0ce0_30_00;
class UnkStruct_ov001_020c40f4;
class PlayerActorBase;
class PlayerLinkActor_A0_28;
class ItemManager;
struct ActorGrabParams;
@@ -62,7 +66,10 @@ struct UnkStruct_ov000_020ab4dc {
/* 66 */ unk16 mUnk_70;
/* 66 */ unk16 mUnk_72;
/* 74 */ s16 mUnk_74;
/* 78 */ STRUCT_PAD(0x76, 0x86);
/* 78 */ STRUCT_PAD(0x76, 0x83);
/* 83 */ u8 mUnk_83;
/* 83 */ u8 mUnk_84;
/* 83 */ u8 mUnk_85;
/* 86 */ u8 mUnk_86[7];
/* 8D */ STRUCT_PAD(0x8D, 0x98);
/* 98 */ unk32 mUnk_98;
@@ -70,6 +77,10 @@ struct UnkStruct_ov000_020ab4dc {
};
extern const UnkStruct_ov000_020ab4dc data_ov000_020ab4dc[PlayerCharacter_Max];
inline const UnkStruct_ov000_020ab4dc *Get_ov000_020ab4dc(PlayerCharacter index) {
return &data_ov000_020ab4dc[index];
}
extern "C" G3d_Model *func_ov000_0208eadc(PlayerCharacter, unk32, bool);
extern "C" G3d_Model *func_ov000_0208eb44(PlayerCharacter, unk32, bool);
@@ -123,17 +134,26 @@ public:
class ModelRender_Derived4 : public ModelRender_Derived3 {
public:
/* 00 (base) */
/* 60 */ STRUCT_PAD(0x60, 0x78);
/* 60 */ unk32 mUnk_60;
/* 64 */ unk32 mUnk_64;
/* 68 */ VecFx32 mUnk_68;
/* 74 */ unk32 mUnk_74;
/* 78 */ unk32 mUnk_78;
/* 7C */ unk32 mUnk_7C[9];
/* A0 */ unk32 mUnk_A0[7];
/* BC */ unk32 mUnk_BC;
/* BC */ Mat4x3p *mUnk_BC;
/* C0 */
ModelRender_Derived4(PlayerCharacter character, unk32 param2, G3d_Model *pModel, G3d_BoneMtxStruct *pCacheJntAnm);
// data_ov000_020b2b70
/* 1C */ virtual void vfunc_1C(UnkSystem4_vfunc_1C *param1) override;
// overlay 0
void func_ov000_02057fe8(UnkAngleStruct param1, UnkAngleStruct param2, VecFx32 *param3);
// overlay 93
void func_ov093_0216ca38(bool param1, bool param2, bool param3, bool param4);
};
class ModelRender_Derived5 : public ModelRender_Derived3 {
@@ -150,10 +170,9 @@ public:
};
class PlayerActorBase_38 {
private:
public:
/* 00 */ UnkStruct_PlayerGet_64 mUnk_00;
public:
PlayerActorBase_38(void *param1) :
mUnk_00(param1) {
this->mUnk_00.mUnk_08 = 0;
@@ -175,6 +194,7 @@ public:
/* 14 */
void func_ov000_02089dc4();
void func_ov000_02089f0c(bool param1);
};
class PlayerActorBase_70_0C {
@@ -193,6 +213,14 @@ public:
ModelRender_Derived3* GetUnk0C() const { return this->mUnk_0C; }
// clang-format on
ModelRender_Derived4 *GetUnk08OrUnk0C(bool cond) const {
if (cond) {
return (ModelRender_Derived4 *) this->GetUnk0C();
}
return (ModelRender_Derived4 *) this->GetUnk08();
}
PlayerActorBase_70_0C(PlayerCharacter character, unk32 param2) :
mpModel1(func_ov000_0208eadc(character, param2, true)),
mpModel2(func_ov000_0208eb44(character, param2, true)) {
@@ -237,6 +265,10 @@ public:
// data_ov000_020b2b9c
/* 00 */ virtual void vfunc_00(unk32 param1, unk32 param2, unk32 param3) override;
// overlay 0
void func_ov000_0208c7f0();
void func_ov000_0208c7b0(VecFx32 *param1, UnkAngleStruct param2);
};
class PlayerActorBase_70_30 {
@@ -289,11 +321,11 @@ public:
};
class PlayerActorBase_70_E4 {
private:
/* 00 */ STRUCT_PAD(0x00, 0x30);
public:
/* 00 */ VecFx32 mUnk_00;
/* 0C */ VecFx32 mUnk_0C[PlayerCharacter_Max];
/* 30 */
public:
PlayerActorBase_70_E4();
};
@@ -314,7 +346,7 @@ struct UnkStruct_func_ov000_020830d4 {
};
class PlayerActorBase_70 {
private:
public:
/* 000 */ BOOL mIsNotLink;
/* 004 */ PlayerCharacter mCharacter;
/* 008 */ unk32 mUnk_008;
@@ -332,12 +364,10 @@ private:
/* 0DC */ PlayerActorBase_70_DC *mUnk_0DC;
/* 0E0 */ PlayerActorBase_70_E0 mUnk_0E0;
/* 0E4 */ PlayerActorBase_70_E4 mUnk_0E4;
/* 114 */ Mat4x3p *mUnk_114;
/* 118 */ unk32 mUnk_118;
/* 11C */ unk32 mUnk_11C;
/* 120 */ unk32 mUnk_120;
/* 124 */ unk16 mUnk_124;
/* 126 */ bool mUnk_126;
/* 114 */ Mat4x3p *mUnk_114; // allocated array, size = PlayerCharacter_Max
/* 118 */ Vec3p mUnk_118;
/* 124 */ UnkAngleStruct mUnk_124;
/* 126 */ s8 mUnk_126;
/* 127 */ bool mUnk_127;
/* 128 */ bool mUnk_128;
/* 129 */ bool mUnk_129;
@@ -349,21 +379,29 @@ private:
/* 12F */ bool mUnk_12F;
/* 130 */ bool mUnk_130;
/* 131 */ bool mUnk_131;
/* 132 */ unk16 mUnk_132;
/* 132 */ s16 mUnk_132;
/* 134 */ PlayerActorBase_70_134 mUnk_134;
/* 15C */ unk32 mUnk_15C;
/* 160 */
public:
PlayerActorBase_70(PlayerCharacter character, unk32 param2);
~PlayerActorBase_70();
// overlay 0
void func_ov000_02082e54();
void func_ov000_02082e78(unk32 param1, unk32 param2, unk32 param3, unk32 param4);
void func_ov000_020830d4(UnkAngleStruct param1, u32 param2, u8 param3, unk32 param4);
void func_ov000_020830d4(UnkAngleStruct param1, u32 param2, u8 param3, PlayerLinkActor_A0_28 *param4);
void func_ov000_020830a4(unk32 param1, PlayerCharacter character, unk32 param3, unk32 param4);
void func_ov000_020830a4(unk32 param1, PlayerCharacter character, unk32 param3, unk32 param4, unk32);
// overlay 1
void func_ov001_020bbe18(unk32 param1, UnkAngleStruct param2, u32 param3, u8 param4);
// overlay 17
void func_ov017_020bbaa8(VecFx32 *param1, UnkAngleStruct param2);
void func_ov017_020bbcd8(VecFx32 *param1, UnkAngleStruct param2);
void func_ov017_020bbef4(VecFx32 *param1, UnkAngleStruct param2);
void func_ov017_020bbf6c();
};
class PlayerActorBase_74 {
@@ -395,12 +433,14 @@ struct PlayerActorBase_78_04 {
};
class PlayerActorBase_78 {
private:
/* 00 */ STRUCT_PAD(0x00, 0x0C);
public:
/* 00 */ unk32 mUnk_00;
/* 00 */ unk32 mUnk_04;
/* 00 */ u8 mUnk_08[2]; // bool?
/* 0C */
public:
void func_ov000_0205c584(volatile unk32 param1, volatile unk32 param2);
void func_ov000_0205c5d0(unk32 param1, PlayerActorBase *pPlayer);
};
class PlayerLinkActor_9C_34 {
@@ -408,6 +448,7 @@ private:
/* 00 */ unk32 mUnk_00;
/* 04 */ VecFx32 mUnk_04;
/* 10 */ VecFx32 mUnk_10;
/* 1C */
public:
void func_ov000_0208efd0(VecFx32 *pVec);
@@ -416,17 +457,61 @@ public:
class PlayerLinkActor_9C {
public:
/* 000 (vtable) */
/* 004 */ STRUCT_PAD(0x04, 0x34);
/* 034 */ PlayerLinkActor_9C_34 mUnk_34;
/* 004 */ STRUCT_PAD(0x50, 0xF4);
/* 0F4 */ UnkStruct_027e0ce0_40_328 *mUnk_0F4;
/* 0F8 */ STRUCT_PAD(0xF8, 0x154);
/* 004 */ STRUCT_PAD(0x04, 0x08);
/* 008 */ ActorRef mUnk_008; //! TODO: confirm type
/* 00C */ STRUCT_PAD(0x0C, 0x34);
/* 034 */ PlayerLinkActor_9C_34 mUnk_034;
/* 004 */ STRUCT_PAD(0x50, 0x5A);
/* 05A */ UnkAngleStruct mUnk_5A;
/* 05C */ STRUCT_PAD(0x5C, 0x6C);
/* 06C */ VecFx32 mUnk_06C;
/* 078 */ STRUCT_PAD(0x78, 0x90);
/* 090 */ s16 mUnk_090;
/* 090 */ unk16 mUnk_092;
/* 094 */ unk32 mUnk_094;
/* 098 */ unk16 mUnk_098;
/* 094 */ STRUCT_PAD(0x9A, 0xDC);
/* 0DC */ u16 mUnk_0DC;
/* 0DE */ unk16 mUnk_0DE;
/* 0E0 */ unk32 mUnk_0E0;
/* 0E4 */ unk32 mUnk_0E4;
/* 0E8 */ unk32 mUnk_0E8;
/* 0EC */ unk32 mUnk_0EC;
/* 0F0 */ unk32 mUnk_0F0;
/* 0F4 */ PlayerActorBase *pZelda;
/* 0F8 */ unk32 mUnk_0F8;
/* 0FC */ bool mUnk_0FC;
/* 100 */ unk32 mUnk_100;
/* 104 */ VecFx32 mUnk_104;
/* 110 */ STRUCT_PAD(0x110, 0x138);
/* 138 */ s16 mUnk_138;
/* 13A */ u16 mUnk_13A;
/* 13C */ unk16 mUnk_13C;
/* 13E */ STRUCT_PAD(0x13E, 0x154);
/* 154 */
PlayerLinkActor_9C(UnkStruct_027e0ce0_40 *param1, u32 rawGrabParams, PlayerCharacter character);
// data_ov000_020b2a8c
/* 00 */ virtual ~PlayerLinkActor_9C();
// overlay 0
unk32 func_ov000_02084944();
unk32 func_ov000_020849d0(VecFx32 *pAccel, VecFx32 *pVel);
unk32 func_ov000_02084ac8(unk32 param1, VecFx32 *pPos, VecFx32 *pAccel, VecFx32 *pVel);
void func_ov000_02084c3c(unk32 param1, unk32 param2, VecFx32 *param3, VecFx32 *param4);
unk32 func_ov000_02084e58(unk32 param1, u8 param2, VecFx32 *param3, VecFx32 *pPos, VecFx32 *pAccel, VecFx32 *pVel,
unk32 param7);
void func_ov000_02085274(unk32 param1, unk32 param2, unk32 param3, VecFx32 *param4, VecFx32 *param5, VecFx32 *param6);
void func_ov000_02085578(unk32 param1, unk32 param2, unk32 param3, unk32 param4, VecFx32 *param5);
void func_ov000_02085718(VecFx32 *param1);
void func_ov000_02085840(VecFx32 *param1, VecFx32 *param2, VecFx32 *param3);
void func_ov000_02086758();
void func_ov000_020867f4();
// overlay 17
bool func_ov017_020bc640(u32 param1, bool param2, bool param3, u8 param4, u8 param5, VecFx32 *pAccel, VecFx32 *pPos,
VecFx32 *pVel);
};
class PlayerActorBase {
@@ -464,9 +549,31 @@ public:
// overlay 0
void func_ov000_0208c8f8(VecFx32 *pVec);
void func_ov000_0208c914();
void func_ov000_0208cbf0();
void func_ov000_0208cc20(VecFx32 *param1);
bool func_ov000_0208cc90();
unk32 func_ov000_0208d3a8();
void func_ov000_0208d3d0(Vec2s *param1, unk32 param2, void *param3);
void func_ov000_0208d3fc();
void func_ov000_0208d60c();
bool func_ov000_0208d754();
void func_ov000_0208d7f0(bool param1);
bool func_ov000_0208db08();
unk32 func_ov000_0208dc98();
unk32 func_ov000_0208dd60(UnkStruct_027e0ce0_30_00 *param1);
// overlay 1
void func_ov001_020bc96c(); // ResetState? or just Reset? idk
// overlay 93
//! TODO: move to PlayerZeldaActor?
unk32 func_ov093_0216e8e4(UnkStruct_027e0ce0_30_00 *param1);
void func_ov093_0216d0d4();
void func_ov093_0216d160();
void func_ov093_0216d1cc(unk32 param1, const UnkStruct_ov001_020c40f4 *param2, bool param3, bool param4);
void func_ov093_0216d5b8(bool param1);
void func_ov093_0216f71c(unk32 *param1);
void func_ov093_0216de30(unk32 param1, unk32 param2);
void func_ov093_0216dec8(void *param1);
void func_ov093_0216e1a4(void *param1);
};
+45 -12
View File
@@ -3,7 +3,7 @@
#include "Player/PlayerActorBase.hpp"
class UnkStruct_027e0ce0_40;
class UnkStruct_027e0ce0_40_328;
class PlayerActorBase;
class UnkStruct_027e0ce0_40_150;
class PlayerLinkActor_A0_38;
class ItemManager;
@@ -134,8 +134,7 @@ public:
class PlayerLinkActor_A0_38 {
public:
/* 00 */ unk16 mUnk_00;
/* 02 */ unk16 mUnk_02;
/* 00 */ Vec2s mUnk_00;
/* 04 */ PlayerLinkActor_A0_38_04 mUnk_04;
/* 18 */ PlayerLinkActor_A0_38_18 mUnk_18;
/* 2C */ Vec2s mUnk_2C;
@@ -146,9 +145,28 @@ public:
/* 37 */ bool mUnk_37;
/* 38 */
const bool UnknownCheck1(u16 flag, s16 pos, s16 min, s16 max) {
if (this->mUnk_34 & flag) {
if (pos > min) {
return true;
}
} else {
if (pos < max) {
return true;
}
}
return false;
}
PlayerLinkActor_A0_38();
~PlayerLinkActor_A0_38();
// overlay 17
void func_ov017_020be0a8(unk32 param1);
void func_ov017_020be0e0(s32 param1, VecFx32 *param2, bool param3, bool param4);
// overlay 24
void func_ov024_020d19d8();
};
@@ -191,13 +209,21 @@ public:
~PlayerLinkActor_A0();
// overlay 0
void func_ov000_02091ea0();
bool func_ov000_02091f08(unk32 param1);
void func_ov000_020921e4(unk32 param1);
void func_ov000_02091ea0();
void func_ov000_02092e38();
bool func_ov000_0209360c();
void func_ov000_02092648(unk32 param1);
void func_ov000_02092ea8(unk32 param1, unk32 param2);
void func_ov000_02092ecc(void *param1, bool param2);
u8 func_ov000_02093650();
bool func_ov000_020936c4();
void func_ov000_020936ec();
u32 func_ov000_02093718();
u8 func_ov000_0209378c(); // bool?
void func_ov000_02093a04();
void func_ov000_02093fe8();
// overlay 1
void func_ov001_020bd2e0();
@@ -217,6 +243,8 @@ public:
PlayerLinkActor_A4(PlayerActorBase *pPlayer, PlayerLinkActor_A0 *param2);
~PlayerLinkActor_A4();
void func_ov000_02089998(bool param1);
};
class PlayerLinkActor_134 {
@@ -236,6 +264,7 @@ public:
// overlay 31
void func_ov031_020db0fc();
void func_ov031_020db160(bool param1);
};
class PlayerLinkActor_1B0 : public UnkSystem7 {
@@ -253,7 +282,7 @@ class PlayerLinkActor : public PlayerActorBase {
public:
/* 000 (base) */
/* 094 */ UnkStruct_027e0ce0_40_150 *mUnk_094;
/* 098 */ UnkStruct_027e0ce0_40_328 *mUnk_098;
/* 098 */ PlayerActorBase *mpZelda;
/* 09C */ PlayerLinkActor_9C *mUnk_09C;
/* 0A0 */ PlayerLinkActor_A0 *mUnk_0A0;
/* 0A4 */ PlayerLinkActor_A4 mUnk_0A4;
@@ -261,8 +290,8 @@ public:
/* 0B4 */ bool mUnk_0B4;
/* 0B5 */ bool mUnk_0B5;
/* 0B6 */ bool mUnk_0B6;
/* 0B7 */ bool mUnk_0B7;
/* 0B8 */ bool mUnk_0B8;
/* 0B7 */ u8 mUnk_0B7;
/* 0B8 */ u8 mUnk_0B8;
/* 0B9 */ bool mUnk_0B9;
/* 0BA */ bool mUnk_0BA;
/* 0BB */ bool mUnk_0BB;
@@ -276,16 +305,20 @@ public:
~PlayerLinkActor();
// overlay 1
void func_ov001_020bcb60(UnkStruct_027e0ce0_40_328 *param1);
void func_ov001_020bcb60(PlayerActorBase *pZelda);
void func_ov001_020bcb70();
void func_ov001_020bcba8();
void func_ov001_020bcbd0(VecFx32 *pVec);
// overlay 17
void func_ov017_020bd788(unk32 param1);
void func_ov017_020bdcf4();
void func_ov017_020bdd84(unk32 param1, unk32 param2);
void func_ov017_020bdf48(unk32 param1, unk32 param2, unk32 param3, unk32 param4);
bool func_ov017_020bd6b8();
unk32 func_ov017_020bd6e0(bool param1);
void func_ov017_020bd758();
void func_ov017_020bd788(bool param1);
void func_ov017_020bdcf4(unk32 param1, unk32 param2);
void func_ov017_020bdd84(void *param1, unk32 param2);
void func_ov017_020bdf48(s8 *param1, unk32 param2, void *param3, UnkStruct_ov019_020d24c8_28_258_00 *param4);
void func_ov017_020be098();
// overlay 21
void func_ov021_020ebda0();
+3
View File
@@ -4,11 +4,14 @@
class UnkStruct_027e0ce0_40;
//! TODO: should this be merged with PlayerZeldaActor? both are the exact same size
class PlayerPhantomActor : public PlayerActorBase {
public:
/* 000 (base) */
/* 094 */ unk32 mUnk_94;
/* 098 */ unk32 mUnk_98;
/* 09C */ STRUCT_PAD(0x9C, 0x154);
/* 154 */
PlayerPhantomActor(unk32 param1, unk32 param2, UnkStruct_027e0ce0_40 *param3, bool *param4);
};
+16 -4
View File
@@ -1,14 +1,26 @@
#pragma once
#include "Item/Item.hpp"
#include "Player/PlayerActorBase.hpp"
class UnkStruct_027e0ce0_40 :
class UnkStruct_027e0ce0_40;
class UnkStruct_027e0ce0_40_150;
class PlayerZeldaActor : public PlayerActorBase {
class PlayerZeldaActor : public PlayerActorBase {
public:
/* 000 (base) */
/* 094 */ unk32 mUnk_94;
/* 098 */ unk32 mUnk_98;
/* 098 */ PlayerActorBase *mpPlayer;
/* 09C */ STRUCT_PAD(0x9C, 0xCC);
/* 0CC */ bool mUnk_0CC;
/* 0CD */ STRUCT_PAD(0xCD, 0xD0);
/* 0D0 */ unk32 mUnk_0D0;
/* 0D4 */ unk32 mUnk_0D4;
/* 0D8 */ unk32 mUnk_0D8;
/* 0DC */ unk32 mUnk_0DC;
/* 0E0 */ STRUCT_PAD(0xE0, 0x154);
/* 154 */
PlayerZeldaActor(unk32 param1, unk32 param2, UnkStruct_027e0ce0_40 *param3, bool *param4);
PlayerZeldaActor(void *param1, UnkStruct_027e0ce0_40 *param2, UnkStruct_027e0ce0_40_150 *param3, ItemFlag *pEquippedItem);
~PlayerZeldaActor();
};
+2
View File
@@ -388,6 +388,8 @@ public:
/* 48 */
// clang-format off
const bool IsRabbitCapture() const { return this->mLoadedOverlays[OverlaySlot_1] == OverlayIndex_RabbitCapture; }
const bool IsField() const { return this->mLoadedOverlays[OverlaySlot_7] == OverlayIndex_Field; }
const bool IsTower() const { return this->mLoadedOverlays[OverlaySlot_8] == OverlayIndex_Tower; }
+26 -3
View File
@@ -979,9 +979,7 @@ struct UnkSystem7_UnkStruct_00 {
/* 00 */ STRUCT_PAD(0x00, 0x20);
/* 20 */ UnkSystem7_UnkStruct_00_20 *mUnk_20;
/* 24 */ unk32 mUnk_24;
/* 28 */ unk32 mUnk_28;
/* 2C */ unk32 mUnk_2C;
/* 30 */ unk32 mUnk_30;
/* 28 */ VecFx32 mUnk_28;
/* 34 */ STRUCT_PAD(0x34, 0xA0);
/* A0 */ unk32 mUnk_A0;
/* A4 */ unk16 mUnk_A4;
@@ -1325,3 +1323,28 @@ struct UnkStruct_ov000_020aa88c {
/* 08 */
};
extern UnkStruct_ov000_020aa88c data_ov000_020aa88c[];
union UnkStackStruct_ov000_02077590 {
struct {
/* 00 */ s16 mUnk_00;
/* 02 */ s16 mUnk_02;
/* 04 */ s16 mUnk_04;
/* 06 */ s16 mUnk_06;
/* 08 */ unk32 mUnk_08;
/* 0C */ VecFx32 mUnk_0C;
/* 18 */ u16 mUnk_18;
/* 1A */ u16 mUnk_1A;
/* 1C */ u16 mUnk_1C;
/* 1E */ u16 mUnk_1E;
/* 20 */
};
u32 data[8];
};
extern "C" UnkStackStruct_ov000_02077590 *func_ov000_02077590(unk32);
struct UnkStackStruct_ov000_02084344 {
/* 00 */ s16 mUnk_00;
/* 02 */ s16 mUnk_02;
/* 04 */ unk32 mUnk_04;
};
extern "C" UnkStackStruct_ov000_02084344 *func_ov000_02084344(unk32);
+16
View File
@@ -0,0 +1,16 @@
#pragma once
#include "global.h"
#include "types.h"
class UnkStruct_020499e0 {
public:
/* 00 */ unk32 mUnk_00;
UnkStruct_020499e0();
~UnkStruct_020499e0();
bool func_0201456c(unk32 param1);
};
extern UnkStruct_020499e0 data_020499e0;
+4 -2
View File
@@ -17,14 +17,16 @@ class UnkStruct_02049b18 {
public:
/* 00 */ Input mButtons;
/* 06 */ UnkStruct_02049b18_06 mUnk_06;
/* 28 */ unk16 mUnk_28;
/* 2A */ STRUCT_PAD(0x2A, 0x58);
/* 28 */ u16 mUnk_28;
/* 2A */ u16 mUnk_2A;
/* 2C */ STRUCT_PAD(0x2C, 0x58);
/* 58 */ unk16 mUnk_58;
/* 5A */ unk16 mUnk_5A;
UnkStruct_02049b18();
~UnkStruct_02049b18();
void func_02013768();
TouchState *func_020137c8(unk32 param1);
void func_02013840(u16 param1, unk32 param2);
void func_020138f4(unk32 param1);
};
+1
View File
@@ -16,6 +16,7 @@ public:
void func_02013ecc(unk32 param1, UnkCallback param2, unk32 param3);
void func_02013ee8(unk32 param1, unk32 param2);
void func_02013f80(unk32 param1);
void func_02013fec(unk32 param1, void *param2);
};
extern UnkStruct_02049b80 data_02049b80;
+18
View File
@@ -24,6 +24,24 @@ public:
/* 128 */ unk16 mUnk_128;
/* 12C */
const BOOL IsUnknownCheck1(unk32 value1, unk32 value2) const {
bool ret = false;
if (!(this->mUnk_04 != value1 || this->mUnk_08 != value2)) {
ret = true;
}
return ret;
}
const bool IsUnknownCheck2(unk32 value1, unk32 value2) const {
return this->mUnk_04 == value1 && this->mUnk_08 == value2;
}
const bool IsUnknownCheck3(unk32 value1, unk32 value2) const {
return *(volatile u32 *) &this->mUnk_04 != value1 || this->mUnk_08 != value2;
}
UnkStruct_0204a088();
// overlay 0
+4 -1
View File
@@ -247,7 +247,7 @@ public:
/* DDC */ UnkStruct_0204a110_Sub8 mUnk_DDC;
/* DEC */ GameModeManagerBase *mpManager;
/* DF0 */ u16 mUnk_DF0;
/* DF2 */ unk8 mUnk_DF2;
/* DF2 */ s8 mUnk_DF2;
/* DF3 */ unk8 mUnk_DF3;
/* DF4 */ unk32 mUnk_DF4;
/* DF8 */ unk32 mUnk_DF8;
@@ -286,6 +286,7 @@ public:
void func_0201967c(unk32 param2, unk32 param3, unk32 param4, unk32 param5, unk32 param6);
void func_02019538(unk32 param1, unk32 param2);
unk32 func_02019300(unk32 param1);
bool func_02019340(unk32 param1);
void func_02019350();
void func_020194dc();
void func_02019408();
@@ -294,6 +295,8 @@ public:
void func_02019528();
bool func_02019548();
UnkStruct_func_02019590 *func_02019590(unk16 param1, unk32 param2);
unk32 func_01ff9b64();
unk32 func_01ff9b78();
// overlay 1
void func_ov001_020bd514(unk32 param1, GameModeMgrCreateCallback createCallback, bool param3, bool param4);
+5 -4
View File
@@ -1,5 +1,6 @@
#pragma once
#include "Actor/ActorRef.hpp"
#include "global.h"
#include "math.hpp"
#include "types.h"
@@ -16,7 +17,7 @@ public:
UnkStruct_027e0998_Base();
// data_ov000_020b1e08
/* 00 */ virtual bool vfunc_00(VecFx32 *pPos, Vec2s *param2, u16 *param3);
/* 00 */ virtual bool vfunc_00(VecFx32 *pPos, Vec2s *param2, ActorRef *param3);
/* 04 */
void func_ov000_02061760();
@@ -37,12 +38,12 @@ public:
~UnkStruct_027e0998(); // ClearInstance
// data_ov024_020d7c98
/* 00 */ virtual bool vfunc_00(VecFx32 *pPos, Vec2s *param2, u16 *param3) override;
/* 00 */ virtual bool vfunc_00(VecFx32 *pPos, Vec2s *param2, ActorRef *param3) override;
/* 04 */
bool func_ov024_020c716c();
bool func_ov024_020c7214(VecFx32 *pPos, Vec2s *param2, u16 *param3);
bool func_ov024_020c727c(Vec2s *param1, u16 *param2);
bool func_ov024_020c7214(VecFx32 *pPos, Vec2s *param2, ActorRef *param3);
bool func_ov024_020c727c(Vec2s *param1, ActorRef *param2);
bool func_ov024_020c7300(unk32 param1);
bool func_ov024_020c7354();
+5 -4
View File
@@ -264,7 +264,7 @@ public:
/* 40 */ UnkStruct_027e09a4_2C mUnk_40;
/* 54 */ UnkStruct_027e09a4_54_Base *mUnk_54;
/* 58 */ UnkStruct_WarpUnk1 *mpWarpUnk1;
/* 5C */ unk16 mUnk_5C;
/* 5C */ u16 mUnk_5C;
/* 5E */ unk16 mUnk_5E;
/* 60 */ SceneMode mSceneMode;
/* 64 */ unk32 mUnk_64;
@@ -367,9 +367,10 @@ public:
static UnkStruct_027e09a4 *Create(unk32 param1);
// overlay 17
void func_ov017_020bb994(void *param1);
void func_ov017_020bb994(unk32 param1);
void func_ov017_020bb994(void *, void *);
void func_ov017_020bb660(unk32 param1);
void func_ov017_020bb7f8(void *param1);
void func_ov017_020bb934(void *param1);
void func_ov017_020bb994(s8 *param1);
static void func_ov025_020c4a60();
static void Destroy();
+2
View File
@@ -78,6 +78,8 @@ public:
~UnkStruct_027e09ac();
// overlay 0
void func_ov000_020723f4();
void func_ov000_02072684(void *param1);
void func_ov000_020726f0(u16 param1, unk32 param2, unk32 param3);
void func_ov000_020729c4(UnkStruct_027e09ac_14 *param1, u16 param2, u16 param3, s16 param4, s16 param5);
void func_ov000_02072b08(unk32 param1, unk32 param2);
+3 -1
View File
@@ -17,7 +17,7 @@ public:
UnkStruct_027e09b4();
// main
void func_01fff60c(VecFx32 *param1, unk32 param2, unk32 param3, u8 param4, unk32 param5, unk32 param6);
void func_01fff60c(VecFx32 *param1, unk32 param2, unk32 param3, s32 param4, unk32 param5, unk32 param6);
// overlay 1
void func_ov001_020bea84();
@@ -27,6 +27,8 @@ public:
// overlay 17
void func_ov017_020c08c4(VecFx32 *param1, unk32 param2, unk32 param3, s32 param4, s32 param5, s32 param6);
void func_ov017_020c0970(VecFx32 *param1, unk32 param2, unk32 param3, unk32 param4, unk32 param5, unk32 param6,
fx32 param7);
};
extern UnkStruct_027e09b4 *data_027e09b4;
+41 -5
View File
@@ -4,16 +4,44 @@
#include "Unknown/UnkStruct_0204a060.hpp"
#include "global.h"
#include "math.hpp"
#include "nitro/fx.h"
#include "types.h"
class UnkStruct_027e0ce0_30_00;
class UnkStruct_027e09bc_0C_230 {
public:
/* 00 (base) */
/* 04 */
/* 00 */ virtual void vfunc_00();
/* 04 */ virtual void vfunc_04();
/* 08 */ virtual unk32 vfunc_08();
};
struct UnkStruct_027e09bc_0C_268 {
/* 00 */ u32 unk_00;
/* 04 */ u16 unk_04;
/* 06 */ bool unk_06;
/* 07 */ u8 unk_07;
/* 08 */ VecFx32 unk_08;
/* 14 */
};
class UnkStruct_027e09bc_0C {
public:
/* 000 (vtable) */
/* 004 */ STRUCT_PAD(0x04, 0x34);
/* 034 */ VecFx32 mUnk_034;
/* 040 */ STRUCT_PAD(0x40, 0x264);
/* 040 */ VecFx32 mUnk_040;
/* 04C */ STRUCT_PAD(0x4C, 0xCA);
/* 0CA */ unk16 mUnk_0CA;
/* 0CC */ STRUCT_PAD(0xCC, 0x230);
/* 230 */ UnkStruct_027e09bc_0C_230 *mUnk_230;
/* 234 */ STRUCT_PAD(0x234, 0x264);
/* 264 */ unk32 mUnk_264;
/* 268 */ STRUCT_PAD(0x268, 0x280);
/* 268 */ UnkStruct_027e09bc_0C_268 mUnk_268;
/* 27C */ unk32 mUnk_27C;
/* 280 */ unk32 mUnk_280;
/* 284 */
@@ -26,17 +54,24 @@ public:
/* 10 */
// itcm
bool func_01ffd43c(Vec2s *param1, unk32 param2, unk32 param3);
bool func_01ffd43c(Vec2s *param1, VecFx32 *param2, unk32 param3);
bool func_01ffd640(VecFx32 *param1);
bool func_01ffd768(void *param1, Vec2s *param2, unk8 param3);
// overlay 0
void func_ov000_020767b4(VecFx32 *param1, Vec2s *touchPos, fx32 param3, unk32 param4, VecFx32 *param5);
void func_ov000_02078230(unk32 param1);
bool func_ov000_0207834c(VecFx32 *param1, unk32 param2, unk32 param3);
bool func_ov000_0207834c(VecFx32 *param1, UnkStackStruct_ov000_02077590 *param2, unk32 param3);
unk16 func_ov000_0207868c();
unk16 func_ov000_02078698();
void func_ov000_02078534(VecFx32 *param1, unk32 param2);
bool func_ov000_02078764(VecFx32 *param1, void *param2, unk32 param3);
void func_ov000_02078834(VecFx32 *param1, VecFx32 *param2, unk32 param3, unk32 param4);
void func_ov000_02078aa4(UnkStruct_027e0ce0_30_00 *param1, unk32 param2, unk32 param3, unk32 param4);
void func_ov000_02078ba4();
void func_ov000_02078cec();
void func_ov000_0207a1e0(unk32 param1);
unk32 func_ov000_02076fa8(void *param1, void *param2, unk32 param3, fx32 param4);
};
class UnkStruct_027e09bc_24 : public UnkStruct_0204a060_Base {
@@ -61,12 +96,13 @@ public:
UnkStruct_027e09bc();
~UnkStruct_027e09bc();
/* 00 */ virtual void vfunc_00();
/* 00 */ virtual void vfunc_00(unk32 param1);
/* 04 */ virtual void vfunc_04();
// overlay 0
void func_ov000_020771b8(unk32 param1);
void func_ov000_020771c8();
UnkStruct_027e09bc_0C *func_ov000_02077468(unk32 param1, unk32 param2);
// overlay 1
void func_ov001_020bab5c();
+4
View File
@@ -446,8 +446,12 @@ public:
bool func_ov000_02081f3c(unk16 param1, unk32 param2);
u32 func_ov000_02081d5c(); // returns current room index?
bool func_ov000_02082124();
void func_ov000_02081b84();
void func_ov000_02081b9c(unk32 param1);
void func_ov000_02081bf4();
bool func_ov000_02081c28();
void func_ov000_02081ca0();
void func_ov000_02081d58();
bool func_ov000_02081edc(u16 param1);
// overlay 1
+153 -75
View File
@@ -1,12 +1,16 @@
#pragma once
#include "Unknown/UnkStruct_0204a110.hpp"
#include "flags.h"
#include "global.h"
#include "nitro/fx.h"
#include "types.h"
#include "Actor/ActorRef.hpp"
#include "Item/ItemManager.hpp"
#include "LinkList.hpp"
#include "Player/PlayerLink.hpp"
#include "Player/PlayerZelda.hpp"
#include "Player/TouchControl.hpp"
#include "Save/SaveManager.hpp"
#include "input.hpp"
@@ -17,6 +21,7 @@ class UnkStruct_027e0ce0;
class UnkStruct_027e0ce0_30;
class UnkStruct_027e0ce0_38;
class UnkStruct_027e0ce0_3C;
class UnkStruct_027e0ce0_40;
class UnkStruct_ov001_020c40f4;
class UnkStruct_027e0ce0_0C : public LinkList<UnkStruct_027e0ce0_0C> {
@@ -111,7 +116,9 @@ public:
class UnkStruct_027e0ce0_24 {
public:
/* 00 */ STRUCT_PAD(0x00, 0x88);
/* 00 */ STRUCT_PAD(0x00, 0x70);
/* 70 */ u16 mUnk_70[1]; //! TODO: confirm array size
/* 72 */ STRUCT_PAD(0x72, 0x88);
/* 88 */
UnkStruct_027e0ce0_24();
@@ -121,6 +128,12 @@ public:
void func_ov021_020eaa08(UnkStruct_027e0ce0_20 *param1);
void func_ov021_020eaac4();
void func_ov021_020eab14(unk32 param1, const UnkStruct_ov001_020c40f4 *param2, UnkStruct_027e0ce0_30 *param3);
void func_ov021_020eab6c(bool param1);
void func_ov021_020eae2c(unk32 param1);
void func_ov021_020eae84();
unk32 func_ov021_020eaef0(unk32 param1, bool param2);
void func_ov021_020eb010();
unk32 func_ov021_020eb870(unk32 param1, unk32 param2, unk32 param3, void *param4);
};
class UnkStruct_027e0ce0_30_00 {
@@ -129,20 +142,26 @@ private:
/* 0C */ VecFx32 mUnk_0C;
/* 18 */ unk32 mUnk_18;
/* 1C */ unk32 mUnk_1C;
/* 20 */ unk32 mUnk_20;
/* 20 */ u32 mUnk_20;
/* 24 */ unk32 mUnk_24;
/* 28 */ bool mUnk_28;
/* 2C */ UnkStruct_027e0ce0_38 *mUnk_2C;
/* 30 */ UnkStruct_027e0ce0_3C *mUnk_30;
/* 34 */ unk32 mUnk_34;
/* 38 */ unk32 *mUnk_38;
/* 38 */ unk32 mUnk_3C;
/* 34 */ UnkStruct_027e0ce0_40 *mUnk_34;
/* 38 */ PlayerLinkActor *mpPlayer;
/* 3C */ PlayerActorBase *mpZelda; // either phantom zelda or human zelda
/* 40 */
public:
UnkStruct_027e0ce0_30_00(UnkStruct_027e0ce0_38 *param1, UnkStruct_027e0ce0_3C *param2, unk32 param3, unk32 *param4,
unk32 param5);
UnkStruct_027e0ce0_30_00(UnkStruct_027e0ce0_38 *param1, UnkStruct_027e0ce0_3C *param2, UnkStruct_027e0ce0_40 *param3,
PlayerLinkActor *param4, PlayerActorBase *param5);
~UnkStruct_027e0ce0_30_00();
// overlay 0
void func_ov000_020a8af4(unk32 param1);
// overlay 17
void func_ov017_020bbf7c(ItemManager *pItemMgr);
};
class UnkStruct_027e0ce0_30_04 {
@@ -163,6 +182,9 @@ private:
public:
UnkStruct_027e0ce0_30_08(unk32 param1);
~UnkStruct_027e0ce0_30_08();
// overlay 21
void func_ov021_020ebc68();
};
class UnkStruct_027e0ce0_30 {
@@ -180,9 +202,12 @@ public:
void func_ov001_020bbf00(int index, unk32 param2);
void func_ov001_020bbf24(UnkStruct_027e0ce0_38 *param1);
void func_ov001_020bbf50(UnkStruct_027e0ce0_3C *param1);
void func_ov001_020bbf7c(unk32 param1, unk32 *param2, unk32 param3);
void func_ov001_020bbf7c(UnkStruct_027e0ce0_40 *param1, PlayerLinkActor *param2, PlayerActorBase *param3);
void func_ov001_020bbfcc();
void func_ov001_020bbff4(UnkStruct_027e0ce0_38 *param1);
// overlay 17
void func_ov017_020bc5fc(ItemManager *pItemMgr);
};
class UnkStruct_027e0ce0_34_20 {
@@ -267,6 +292,9 @@ public:
// overlay 88
void func_ov088_0216fbc4(unk32 param1, const UnkStruct_ov001_020c40f4 *param2);
void func_ov088_0216fca0();
void func_ov088_0216ff10();
void func_ov088_0216fbf0(unk32 param1);
};
class UnkStruct_ov031_020f3310_00 {
@@ -448,20 +476,33 @@ public:
// overlay 26
void func_ov026_020dc8f0();
void func_ov026_020de908(UnkStruct_027e0ce0_30_00 *param1);
void func_ov026_020dc918();
void func_ov026_020dc9b0();
void func_ov026_020dc9bc(const UnkStruct_ov001_020c40f4 *param1);
void func_ov026_020de19c(unk32 param1, bool param2);
void func_ov026_020de45c(void *param1);
void func_ov026_020de46c();
void func_ov026_020de49c();
void func_ov026_020de908(UnkStruct_027e0ce0_30_00 *param1);
};
class UnkStruct_027e0ce0_40_Base_14 {
public:
/* 00 */ TouchControl mTouchControl;
/* 22 */ STRUCT_PAD(0x22, 0x40);
/* 40 */ unk16 mUnk_40;
/* 22 */ STRUCT_PAD(0x22, 0x24);
/* 24 */ VecFx32 mUnk_24;
/* 30 */ VecFx32 mUnk_30;
/* 3C */ unk32 mUnk_3C;
/* 40 */ s16 mUnk_40;
/* 42 */ unk16 mUnk_42;
/* 44 */ unk16 mUnk_44;
/* 48 */ STRUCT_PAD(0x48, 0x60);
/* 46 */ unk16 mUnk_46;
/* 48 */ Vec2s mUnk_48;
/* 4C */ Vec2s mUnk_4C;
/* 50 */ unk32 mUnk_50;
/* 54 */ unk32 mUnk_54;
/* 58 */ unk32 mUnk_58;
/* 5C */ unk16 mUnk_5C;
/* 60 */
UnkStruct_027e0ce0_40_Base_14() :
@@ -471,7 +512,13 @@ public:
ptr->func_ov000_02096a9c();
}
// overlay 0
void func_ov000_02096a9c();
void func_ov000_02096af4();
unk32 func_ov000_02096b1c(BOOL param1);
// overlay 17
void func_ov017_020be44c(unk32 param1, bool param2);
};
class UnkStruct_027e0ce0_40_Base_74 {
@@ -490,34 +537,46 @@ public:
void func_ov031_020e0c34();
// overlay 102
void func_ov102_0218323c(UnkStruct_027e0ce0_40_Base_14 *param1, unk32 param2);
void func_ov102_0218323c(UnkStruct_027e0ce0_40_Base_14 *param1, BOOL param2);
};
class UnkStruct_027e0ce0_40_Base_78 {
public:
/* 00 */ unk16 mUnk_00; // ActorRef?
/* 02 */ unk16 mUnk_02;
/* 00 */ ActorRef mRef;
/* 04 */
const u32 GetData() const {
return *(u32 *) this;
const bool HasValue() const {
u32 var_r2 = 0;
return *(u32 *) &this->mRef != *(u32 *) &var_r2;
}
const bool HasValue() const {
return this->GetData() != 0;
const bool UnkCheck1() {
return this->mRef.UnkCheck2();
}
UnkStruct_027e0ce0_40_Base_78();
~UnkStruct_027e0ce0_40_Base_78();
// overlay 31
u8 func_ov031_020dcfb4(void *param1);
};
struct UnkParamStruct1 {
u32 unk_00;
};
class UnkStruct_027e0ce0_40_Base_7C_04 {
public:
/* 00 */ STRUCT_PAD(0x00, 0xB4);
/* 00 */ unk32 mUnk_00;
/* 04 */ STRUCT_PAD(0x04, 0xB4);
/* B4 */
UnkStruct_027e0ce0_40_Base_7C_04();
~UnkStruct_027e0ce0_40_Base_7C_04();
// overlay 31
void func_ov031_020dca3c();
void func_ov031_020dcb60(UnkParamStruct1 param1);
};
class UnkStruct_027e0ce0_40_Base_7C {
@@ -532,9 +591,12 @@ public:
~UnkStruct_027e0ce0_40_Base_7C();
// overlay 0
void func_ov000_020968b8();
void func_ov000_020968e0();
bool func_ov000_020968fc();
// overlay 17
void func_ov017_020be2ec(UnkStruct_027e0ce0_40_Base_14 *param1, bool param2, UnkParamStruct1 param3);
void func_ov017_020be434();
};
@@ -569,12 +631,13 @@ class UnkStruct_027e0ce0_40_Base_94_Base : public UnkStruct_027e0ce0_40_Base_94_
public:
/* 00 (base) */
/* 14 */ ActorRef mUnk_14;
/* 18 */ unk32 mUnk_18;
/* 18 */ ActorRef mUnk_18;
/* 1C */ ActorRef mUnk_1C;
/* 20 */ unk32 mUnk_20;
/* 24 */ STRUCT_PAD(0x24, 0x48);
/* 20 */ Vec2s mTouchPosLast;
/* 24 */ unk32 mUnk_24;
/* 28 */ STRUCT_PAD(0x28, 0x48);
/* 48 */ ActorRef mUnk_48;
/* 4C */ unk32 mUnk_4C;
/* 4C */ u16 mUnk_4C;
/* 50 */
UnkStruct_027e0ce0_40_Base_94_Base(unk32 param1);
@@ -587,15 +650,14 @@ public:
/* 54 */ UnkStruct_027e0ce0_40_Base_94 *mUnk_54;
/* 58 */ UnkStruct_027e0ce0_40_Base_94_50 *mUnk_58;
/* 5C */ unk32 mUnk_5C; // seems to be the walking speed of link??
/* 60 */ unk16 mUnk_60;
/* 62 */ unk16 mUnk_62;
/* 64 */ unk8 mUnk_64;
/* 65 */ unk8 mUnk_65;
/* 66 */ unk8 mUnk_66;
/* 67 */ unk8 mUnk_67;
/* 68 */ unk8 mUnk_68;
/* 69 */ unk8 mUnk_69;
/* 6A */ unk8 mUnk_6A;
/* 60 */ Vec2s mUnk_60;
/* 64 */ u8 mUnk_64;
/* 65 */ u8 mUnk_65;
/* 66 */ u8 mUnk_66;
/* 67 */ u8 mUnk_67;
/* 68 */ u8 mUnk_68;
/* 69 */ u8 mUnk_69;
/* 6A */ u8 mUnk_6A;
/* 6C */ unk32 mUnk_6C;
/* 70 */
@@ -604,6 +666,10 @@ public:
// overlay 0
void func_ov000_0208aee4();
// overlay 17
void func_ov017_020bd478();
void func_ov017_020bd300(UnkStruct_027e0ce0_40_Base_14 *param1, unk32 param2, bool param3);
};
typedef u16 UnkFlags3;
@@ -641,10 +707,38 @@ public:
/* 107 */ unk8 mUnk_107;
/* 108 */
ItemManager *GetItemMgr() const {
return this->mpItemManager;
}
UnkStruct_027e0ce0_40_Base_78 *GetUnk78() const {
return this->mUnk_078;
}
const bool IsUnk78() {
return this->mUnk_078 != NULL;
}
const BOOL Unk78HasValue() const {
return this->mUnk_078 != NULL && this->mUnk_078->HasValue();
}
const bool CheckUnk104(UnkFlags3 flag) const {
return GET_FLAG2(this->mUnk_104, flag);
}
const bool UnkCheck1() {
bool ret = false;
if (this->IsUnk78() && this->mUnk_078->UnkCheck1()) {
ret = true;
}
return ret;
}
inline const bool UnknownInline1(bool param1, unk32 param2);
UnkStruct_027e0ce0_40_Base(unk32 param1, void *param2, ItemManager *pItemMgr);
~UnkStruct_027e0ce0_40_Base();
@@ -692,7 +786,7 @@ public:
/* 00 */ virtual void vfunc_00() override;
// overlay 102
void func_ov102_02182e54(unk32 param1, unk32 param2, unk32 param3);
void func_ov102_02182e54(unk32 param1, VecFx32 *param2, unk32 param3);
};
class UnkStruct_027e0ce0_40_14C {
@@ -704,12 +798,11 @@ public:
~UnkStruct_027e0ce0_40_14C();
// overlay 17
void func_ov093_02168e24(unk32 param1);
void func_ov093_02168e24(void *param1);
// overlay 93
void func_ov093_02168850();
bool func_ov092_021689e8(unk32 param1, UnkStruct_027e0ce0_40 *param2, PlayerLinkActor *param3,
UnkStruct_027e0ce0_40_328 *param4);
bool func_ov092_021689e8(bool param1, UnkStruct_027e0ce0_40 *param2, PlayerLinkActor *pPlayer, PlayerActorBase *pZelda);
};
class UnkStruct_027e0ce0_40_150 {
@@ -725,35 +818,6 @@ public:
bool func_ov096_02179c54(bool param1, bool param2);
};
class UnkStruct_027e0ce0_40_328 {
public:
/* 000 */ STRUCT_PAD(0x00, 0x98);
/* 098 */ PlayerActorBase *mpPlayer;
/* 09C */ STRUCT_PAD(0x9C, 0xCC);
/* 0CC */ bool mUnk_0CC;
/* 0CD */ STRUCT_PAD(0xCD, 0xD0);
/* 0D0 */ unk32 mUnk_0D0;
/* 0D4 */ unk32 mUnk_0D4;
/* 0D8 */ unk32 mUnk_0D8;
/* 0DC */ unk32 mUnk_0DC;
/* 0E0 */ STRUCT_PAD(0xE0, 0x154);
/* 154 */
UnkStruct_027e0ce0_40_328(void *param1, UnkStruct_027e0ce0_40 *param2, UnkStruct_027e0ce0_40_150 *param3,
ItemFlag *pEquippedItem);
~UnkStruct_027e0ce0_40_328();
// overlay 93
void func_ov093_0216d0d4();
void func_ov093_0216d160();
void func_ov093_0216d1cc(unk32 param1, const UnkStruct_ov001_020c40f4 *param2, bool param3, bool param4);
void func_ov093_0216d5b8(unk32 param1);
void func_ov093_0216f71c(unk32 *param1);
void func_ov093_0216de30(unk32 param1, unk32 param2);
void func_ov093_0216dec8(unk32 param1);
void func_ov093_0216e1a4(unk32 param1);
};
// land player stuff
class UnkStruct_027e0ce0_40 : public UnkStruct_027e0ce0_40_Base {
public:
@@ -762,9 +826,9 @@ public:
/* 14C */ UnkStruct_027e0ce0_40_14C *mUnk_14C;
/* 150 */ UnkStruct_027e0ce0_40_150 *mUnk_150;
/* 154 */ PlayerLinkActor mPlayer;
/* 328 */ UnkStruct_027e0ce0_40_328 *mUnk_328;
/* 32C */ PlayerLinkActor *mpPlayer; // set to mPlayer
/* 330 */ UnkStruct_027e0ce0_40_328 *mUnk_330; // set to mUnk_328
/* 328 */ PlayerZeldaActor *mpZelda;
/* 32C */ PlayerLinkActor *mpPlayer; // set to mPlayer
/* 330 */ PlayerZeldaActor *mUnk_330; // set to mpZelda
/* 334 */ ItemFlag mEquippedItem;
/* 338 */ bool mIsSceneTowerInsideStairs;
/* 339 */ bool mIsSceneTowerOutsideStairs;
@@ -779,10 +843,15 @@ public:
void func_ov000_02088060(bool param1);
// overlay 17
unk32 func_ov017_020bcde8(unk32 param1, ItemManager *pItemMgr);
bool func_ov017_020bc95c(bool param1);
void func_ov017_020bca40(bool param1, unk32 param2);
bool func_ov017_020bcde8(bool param1);
// overlay 93
void func_ov093_02168020(unk32 param1);
void func_ov093_021680fc(unk32 param1);
void func_ov093_02168220();
void func_ov093_02168258();
// overlay 101
bool func_ov101_02182fb4(bool param1);
@@ -791,10 +860,10 @@ public:
unk32 param4, ItemManager *pItemMgr, UnkStruct_027e0ce0_30 *param6, bool param7, bool param8);
// overlay 102
void func_ov102_0218303c(unk32 param1, ItemManager *pItemMgr);
void func_ov102_0218303c(bool param1, ItemManager *pItemMgr);
void func_ov102_02183180(unk32 param1, bool param2);
void func_ov102_021831b4(unk32 param1);
void func_ov102_021831f0(unk32 param1);
void func_ov102_021831b4(void *param1);
void func_ov102_021831f0(void *param1);
};
union UnkStruct_027e0478 {
@@ -848,10 +917,15 @@ public:
void func_ov000_0208ba94(unk32 param1, VecFx32 *param2);
void func_ov000_0208bacc(unk32 param1, VecFx32 *param2);
void func_ov000_0208bbd4(unk32 param1, VecFx32 *param2, u16 param3);
bool func_ov000_0208bc1c(unk32 param1, unk32 param2, unk32 param3, unk32 param4, unk32 param5, unk32 param6);
bool func_ov000_0208bc1c(unk32 param1, unk32 param2, void *param3, unk32 param4, void *param5, unk32 param6);
bool func_ov000_0208bc1c(unk32 param1, unk32 param2, unk32 param3, unk32 param4, void *param5, unk32 param6);
bool func_ov000_0208bc1c(unk32 param1, unk32 param2, unk32 param4, void *param5, unk32 param6);
void func_ov000_0208bc9c(unk32 param1, unk32 param2);
void func_ov000_0208bd20(bool param1, unk32 param2, unk32 param3);
void func_ov000_0208bd30(bool param1, unk32 param2, unk32 param3, unk32 param4);
bool func_ov000_0208be0c(ActorRef param1);
bool func_ov000_0208be70(VecFx32 param1);
bool func_ov000_0208bf34(unk32 param1);
static UnkStruct_027e0ce0_34 *func_ov000_0205c904();
@@ -870,7 +944,11 @@ public:
static void Destroy();
// overlay 17
void func_ov017_020bd5dc(unk32 param1);
void func_ov017_020bd4a0(unk32 param1, bool param2);
void func_ov017_020bd568(unk32 param1);
void func_ov017_020bd5c4(void *param1);
void func_ov017_020bd5dc(void *param1);
void func_ov017_020bd644(void *param1);
void func_ov017_020bd69c();
};
+3
View File
@@ -6,6 +6,9 @@
class UnkStruct_027e0cf4 {
public:
~UnkStruct_027e0cf4();
// overlay 21
void func_ov021_020f6f58(unk32 param1, unk32 param2, void *param3, unk32 param4, unk32 param5);
void func_ov021_020f8cdc();
void func_ov021_020f8d20();
};
+5 -1
View File
@@ -101,7 +101,7 @@ public:
class UnkStruct_027e0cf8_08 {
public:
/* 000 */ UnkStruct_027e0cf8_08_00 *mUnk_000;
/* 004 */ unk32 mUnk_004;
/* 004 */ unk32 mUnk_004; // volatile?
/* 008 */ unk32 mUnk_008;
/* 00C */ unk32 mUnk_00C;
/* 010 */ UnkArrayDataType1 mUnk_010;
@@ -114,6 +114,10 @@ public:
UnkStruct_027e0cf8_08();
~UnkStruct_027e0cf8_08();
// overlay 17
void func_ov017_020be8a8();
// overlay 24
void func_ov024_020d32b4(unk8 *param1);
void func_ov024_020d32d8();
void func_ov024_020d32e8(Vec2s *param1);
+3 -1
View File
@@ -25,11 +25,13 @@ public:
bool func_ov031_020d9758();
bool func_ov031_020d97e4();
bool func_ov031_020d97f4();
bool TryItemGive(ItemId itemId);
void func_ov031_020d9844();
void func_ov031_020d9854(VecFx32 *param1, fx32 param2);
void func_ov031_020d994c();
void func_ov031_020d996c();
bool TryItemGive(ItemId itemId);
unk32 func_ov031_020d9a4c(unk32 param1);
bool func_ov031_020d9ab8();
};
extern UnkStruct_027e0d34 *data_027e0d34;
+5
View File
@@ -1,6 +1,8 @@
#pragma once
#include "Actor/ActorRef.hpp"
#include "global.h"
#include "nitro/fx.h"
#include "types.h"
class UnkStruct_027e0d38 : public AutoInstance<UnkStruct_027e0d38> {
@@ -9,6 +11,9 @@ public:
UnkStruct_027e0d38();
// overlay 26
unk32 func_ov026_020d9c14(ActorRef ref, VecFx32 *pPos, VecFx32 *pVel);
// overlay 31
bool func_ov031_020d9bec();
bool func_ov031_020d9c04(unk32 param1, unk32 param2, unk32 param3);
+1
View File
@@ -9,6 +9,7 @@ public:
void func_ov071_0215e8f8();
void func_ov071_0215e9ac();
void func_ov071_0215eac8();
void func_ov071_0215eb18();
};
extern UnkStruct_027e0d70 *data_027e0d70;
+2 -19
View File
@@ -9,6 +9,7 @@
#include "math.hpp"
class PlayerLinkActor_A0;
class UnkStruct_027e0ce0_40;
class UnkStruct_ov000_0208f820_14 {
public:
@@ -102,24 +103,6 @@ public:
/* 1C */ ItemId mUnk_1C;
};
class UnkStruct_ov000_0208f820_24 {
public:
/* 00 */ unk8 mUnk_00[0x24];
/* 24 */ unk8 mUnk_24;
/* 25 */ unk8 mUnk_25;
/* 26 */ STRUCT_PAD(0x26, 0x78);
/* 78 */ void **mUnk_78;
/* 7C */ STRUCT_PAD(0x7C, 0x94);
/* 94 */ unk32 mUnk_94;
/* 98 */ unk32 mUnk_98;
/* 9C */ unk32 mUnk_9C;
/* A0 */ STRUCT_PAD(0xA0, 0xFE);
/* FE */ unk8 mUnk_FE;
/* FF */ unk8 mUnk_FF;
/* 100 */ unk32 mUnk_100;
/* 104 */ u16 mUnk_104;
};
class UnkStruct_ov000_0208f820_04 {
public:
/* 00 */ ActorRef mUnk_00;
@@ -154,7 +137,7 @@ public:
/* 1B */ unk8 mUnk_1B;
/* 1C */ unk32 mUnk_1C;
/* 20 */ unk32 mUnk_20;
/* 24 */ UnkStruct_ov000_0208f820_24 *mUnk_24;
/* 24 */ UnkStruct_027e0ce0_40 *mUnk_24;
/* 28 */ UnkStruct_ov000_0208f820_28 *mUnk_28;
/* 2C */ UnkStruct_ov000_0208f820_2c *mUnk_2C;
/* 30 */ PlayerLinkActor_A0 *mUnk_30;
@@ -0,0 +1,20 @@
#pragma once
#include "global.h"
#include "types.h"
class UnkStruct_ov016_020b8310 {
public:
/* 00 */ unk32 mUnk_00;
UnkStruct_ov016_020b8310();
~UnkStruct_ov016_020b8310();
/* 00 */ virtual void vfunc_00();
/* 04 */ virtual void vfunc_04();
/* 08 */ virtual void vfunc_08();
/* 0C */ virtual void vfunc_0C(void *param1);
/* 10 */ virtual void vfunc_10(void *param1);
};
extern UnkStruct_ov016_020b8310 data_ov016_020b8310;
+19 -4
View File
@@ -1,17 +1,32 @@
#pragma once
#include "global.h"
#include "nitro/os/thread.h"
#include "types.h"
class UnkStruct_ov017_020c3f70 {
class UnkStruct_ov017_020c3f70_Base {
public:
/* 00 */ unk32 mUnk_00;
/* 00 (vtable) */
/* 04 */ OSThread mThread;
/* C4 */ unk32 mUnk_C4;
/* C8 */ unk32 mUnk_C8;
/* CC */
UnkStruct_ov017_020c3f70();
UnkStruct_ov017_020c3f70_Base(); // func_02013c24
// data_0204375c
/* 00 */ virtual ~UnkStruct_ov017_020c3f70_Base(); // func_02013cd4 & func_02013d30
/* 08 */ virtual void vfunc_08();
};
class UnkStruct_ov017_020c3f70 : public UnkStruct_ov017_020c3f70_Base {
public:
/* 00 (base) */
/* CC */
// data_ov017_020c3f08
/* 00 */ virtual ~UnkStruct_ov017_020c3f70();
/* 08 */ virtual void vfunc_08(); //! TODO: probably inherited?
/* 08 */ virtual void vfunc_08() override;
void func_ov017_020bba78();
void func_ov017_020bba94();
+1 -1
View File
@@ -10,5 +10,5 @@ public:
/* 18 */ virtual bool vfunc_18(unk32 param1) override;
/* 1C */ virtual void vfunc_1C() override;
/* 2C */ virtual void vfunc_2C(unk32 param1) override;
/* 2C */ virtual void vfunc_2C(Actor_vfunc_30 *param1) override;
};
+1 -1
View File
@@ -11,6 +11,6 @@ public:
UnkStruct_ov031_02114870();
/* 18 */ virtual bool vfunc_18(unk32 param1) override;
/* 2C */ virtual void vfunc_2C(unk32 param1) override;
/* 2C */ virtual void vfunc_2C(Actor_vfunc_30 *param1) override;
/* 54 */ virtual G3d_Model *vfunc_54();
};
+6 -2
View File
@@ -4,7 +4,7 @@
#include <nitro/pad.h>
#define CHECK_BUTTON_COMBO(value, btn) ((value) & (btn))
#define CHECK_BUTTON_COMBO(value, btn) (((value) & (btn)) != 0)
struct Input {
/* 00 */ u16 cur;
@@ -16,8 +16,12 @@ struct Input {
this->Init();
}
BOOL CheckCurButtonCombo(u16 combo) {
return CHECK_BUTTON_COMBO(this->cur, combo);
}
void Init();
unk32 func_02013c08(u16 param1);
unk32 func_02013c08(u32 param1);
unk32 func_02013b24(unk32 param1);
unk32 func_02013bbc();
};
+38
View File
@@ -369,9 +369,47 @@ union Vec2sb {
}
};
union Vec3s {
struct {
/* 0 */ s16 x;
/* 2 */ s16 y;
/* 4 */ s16 z;
/* 6 */
};
s16 coords[3];
void operator=(const Vec3s &from) {
this->x = from.x;
this->y = from.y;
this->z = from.z;
}
Vec3s() {}
Vec3s(Vec3s *from) {
#if __MWERKS__
this->coords = from->coords;
#else
this->x = from->x;
this->y = from->y;
this->z = from->z;
#endif
}
Vec3s(s16 X, s16 Y, s16 Z) {
x = X;
y = Y;
y = Z;
}
};
struct UnkAngleStruct {
union {
u16 angle;
s16 angle_signed;
};
UnkAngleStruct() {}
UnkAngleStruct(s16 angle) :
angle_signed(angle) {}
};