diff options
| author | SammygoodTunes <56520787+SammygoodTunes@users.noreply.github.com> | 2025-06-03 23:52:44 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-06-03 23:52:44 +0200 |
| commit | 920023d800e853925eca42f0dc00510d01bc84bc (patch) | |
| tree | 31f224a3add3df006f9a22ce1bd6bce17c2fa8f9 /include | |
| parent | 088f7b4771ff002831323a3176d12813520c4269 (diff) | |
| parent | 21aaec6b40f8cb756e5ef4fff5552b980ab58d4e (diff) | |
Merge branch 'main' into decomp/MapManager
Diffstat (limited to 'include')
25 files changed, 320 insertions, 55 deletions
diff --git a/include/Actor/Actor.hpp b/include/Actor/Actor.hpp index c22f086e..2906b670 100644 --- a/include/Actor/Actor.hpp +++ b/include/Actor/Actor.hpp @@ -64,6 +64,7 @@ struct Actor_UnkStruct_0a4 { /* 14 */ Actor_UnkStruct_0a4(q20 x, q20 y, q20 z, s32 unk_10); + void func_ov000_0207a1c8(unk32 param1, Vec3p *param2); }; class KillPickupsFilter : FilterActorReturn, public FilterActorBase { @@ -83,7 +84,8 @@ enum PlayerCollide_ { PlayerCollide_Gongoron = 0x8, PlayerCollide_Hammer = 0x10, - PlayerCollide_PickupFlags = PlayerCollide_Hammer | PlayerCollide_Gongoron | PlayerCollide_Sword | PlayerCollide_Player, + /* 0x1b */ PlayerCollide_PickupFlags = + PlayerCollide_Hammer | PlayerCollide_Gongoron | PlayerCollide_Sword | PlayerCollide_Player, }; struct Knockback { @@ -136,10 +138,10 @@ public: /* 108 */ unk8 mUnk_108; /* 109 */ unk8 mUnk_109; /* 10a */ unk8 mUnk_10a[0x6]; - /* 110 */ unk8 mUnk_110; + /* 110 */ bool mUnk_110; /* 111 */ bool mUnk_111; - /* 112 */ unk8 mUnk_112; - /* 113 */ unk8 mUnk_113; + /* 112 */ bool mUnk_112; + /* 113 */ bool mUnk_113; /* 114 */ unk8 mUnk_114; /* 115 */ unk8 mUnk_115; /* 116 */ unk8 mUnk_116; @@ -173,7 +175,7 @@ public: /* 00 */ virtual ~Actor(); /* 08 */ virtual bool vfunc_08(); - /* 0c */ virtual void vfunc_0c(); + /* 0c */ virtual bool vfunc_0c(); /* 10 */ virtual void vfunc_10(u32 param1); /* 14 */ virtual void vfunc_14(u32 param1); /* 18 */ virtual void vfunc_18(u32 param1); diff --git a/include/Actor/ActorRef.hpp b/include/Actor/ActorRef.hpp index 5ef03f2c..eeace571 100644 --- a/include/Actor/ActorRef.hpp +++ b/include/Actor/ActorRef.hpp @@ -8,9 +8,7 @@ struct ActorRef { /* 4 */ s32 index; /* 8 */ - inline ActorRef() { - Reset(); - } + inline ActorRef() {} inline ActorRef(s32 id, s32 index) : id(id), index(index) {} diff --git a/include/Actor/ActorType.hpp b/include/Actor/ActorType.hpp index fe7b2cc6..6101cd2c 100644 --- a/include/Actor/ActorType.hpp +++ b/include/Actor/ActorType.hpp @@ -25,8 +25,13 @@ enum ActorTypeId_ { ActorTypeId_ShopItemShield = 'ITSL', ActorTypeId_ShopItemSoldOut = 'ITSO', - ActorTypeId_Heart = 'HART', - ActorTypeId_Rupee = 'RUPY', + ActorTypeId_RefillArrows = 'FLAL', + ActorTypeId_RefillBombs = 'FLBM', + ActorTypeId_RefillBombchus = 'FLBT', + ActorTypeId_RefillTime = 'FLTM', + ActorTypeId_Heart = 'HART', + ActorTypeId_LSTM = 'LSTM', + ActorTypeId_Rupee = 'RUPY', ActorTypeId_Arrow = 'ARRW', ActorTypeId_Blast = 'BLST', diff --git a/include/Actor/Dungeon/ActorSwitchObject.hpp b/include/Actor/Dungeon/ActorSwitchObject.hpp index b2fa08d3..61cc3267 100644 --- a/include/Actor/Dungeon/ActorSwitchObject.hpp +++ b/include/Actor/Dungeon/ActorSwitchObject.hpp @@ -22,7 +22,7 @@ public: /* 00 */ virtual ~ActorSwitchObject() override; /* 08 */ virtual bool vfunc_08() override; - /* 0c */ virtual void vfunc_0c() override; + /* 0c */ virtual bool vfunc_0c() override; /* 14 */ virtual void vfunc_14(u32 param1) override; /* 18 */ virtual void vfunc_18(u32 param1) override; /* b4 */ diff --git a/include/Actor/Navi/ActorNaviBase.hpp b/include/Actor/Navi/ActorNaviBase.hpp index 4c2a20cf..59db230b 100644 --- a/include/Actor/Navi/ActorNaviBase.hpp +++ b/include/Actor/Navi/ActorNaviBase.hpp @@ -21,7 +21,7 @@ class ActorNaviBase_Unk1 {}; class ActorNaviBase : public Actor { public: /* 000 (base) */ - /* 158 */ Vec3p mUnk_158; + /* 158 */ Vec3p mOffsetPos; /* 164 */ unk32 mUnk_164; /* 168 */ ModelRender mUnk_168; /* 1c4 */ unk8 mUnk_1c4[0xc]; diff --git a/include/Actor/Player/ActorRefill.hpp b/include/Actor/Player/ActorRefill.hpp new file mode 100644 index 00000000..bdd334ff --- /dev/null +++ b/include/Actor/Player/ActorRefill.hpp @@ -0,0 +1,113 @@ +#pragma once + +#include "global.h" +#include "types.h" + +#include "Actor/Actor.hpp" +#include "Actor/ActorType.hpp" + +class ActorRefill : public Actor { +public: + /* 000 (base) */ + /* 158 */ unk32 mUnk_158; + /* 15c */ unk32 mUnk_15c; + /* 160 */ unk32 mUnk_160; + /* 164 */ u8 mUnk_164; + /* 165 */ unk8 mUnk_165[0x3]; + /* 168 */ + +public: + ActorRefill(unk32 param1); + + /* 00 */ virtual ~ActorRefill() override; + /* 08 */ virtual bool vfunc_08() override; + /* 14 */ virtual void vfunc_14(u32 param1) override; + /* 20 */ virtual void vfunc_20(bool param1) override; + /* b4 */ virtual ItemFlag vfunc_b4() = 0; + /* b8 */ + + bool func_ov014_02135364(unk32 param1); + void func_ov014_02135474(); +}; + +class ActorRefillBombs : public ActorRefill { +public: + static ActorType gType; + + /* 000 (base) */ + /* 168 */ + +public: + ActorRefillBombs(); + static ActorRefillBombs *Create(); + + /* 00 */ virtual ~ActorRefillBombs() override; + /* b4 */ virtual ItemFlag vfunc_b4() override; + /* b8 */ +}; + +class ActorRefillBombchus : public ActorRefill { +public: + static ActorType gType; + + /* 000 (base) */ + /* 168 */ + +public: + ActorRefillBombchus(); + static ActorRefillBombchus *Create(); + + /* 00 */ virtual ~ActorRefillBombchus() override; + /* b4 */ virtual ItemFlag vfunc_b4() override; + /* b8 */ +}; + +class ActorRefillArrows : public ActorRefill { +public: + static ActorType gType; + + /* 000 (base) */ + /* 168 */ + +public: + ActorRefillArrows(); + static ActorRefillArrows *Create(); + + /* 00 */ virtual ~ActorRefillArrows() override; + /* b4 */ virtual ItemFlag vfunc_b4() override; + /* b8 */ +}; + +class ActorRefillTime : public ActorRefill { +public: + static ActorType gType; + + /* 000 (base) */ + /* 168 */ + +public: + ActorRefillTime(); + static ActorRefillTime *Create(); + + /* 00 */ virtual ~ActorRefillTime() override; + /* 08 */ virtual bool vfunc_08() override; + /* b4 */ virtual ItemFlag vfunc_b4() override; + /* b8 */ +}; + +class ActorLSTM : public ActorRefill { +public: + static ActorType gType; + + /* 000 (base) */ + /* 168 */ + +public: + ActorLSTM(); + static ActorLSTM *Create(); + + /* 00 */ virtual ~ActorLSTM() override; + /* 08 */ virtual bool vfunc_08() override; + /* b4 */ virtual ItemFlag vfunc_b4() override; + /* b8 */ +}; diff --git a/include/DTCM/UnkStruct_027e05f8.hpp b/include/DTCM/UnkStruct_027e05f8.hpp index 43e83540..a5bc24d6 100644 --- a/include/DTCM/UnkStruct_027e05f8.hpp +++ b/include/DTCM/UnkStruct_027e05f8.hpp @@ -4,7 +4,10 @@ #include "types.h" struct UnkStruct_027e05f8 { - // TODO: Add fields + /* 0 */ u16 mUnk_0; + /* 2 */ u16 mUnk_2; + /* 4 */ unk16 mUnk_4; + /* 6 */ void func_0202adf4(unk32 param1, s32 param2); ~UnkStruct_027e05f8(); @@ -15,3 +18,5 @@ struct UnkStruct_027e05f8 { void func_02037480(); static unk32 func_02037490(unk32 param1); }; + +extern UnkStruct_027e05f8 data_027e05f8; diff --git a/include/DTCM/UnkStruct_027e077c.hpp b/include/DTCM/UnkStruct_027e077c.hpp index 3adda2bc..57ef477d 100644 --- a/include/DTCM/UnkStruct_027e077c.hpp +++ b/include/DTCM/UnkStruct_027e077c.hpp @@ -4,8 +4,26 @@ #include "types.h" struct UnkStruct_027e077c { - // TODO: Add fields +private: + /* 0 */ unk32 mUnk_0; + /* 4 */ unk32 mUnk_4; + +public: + /* 8 */ unk16 mUnk_8; + /* a */ unk8 mUnk_a; + /* b */ UnkStruct_027e077c(unk32 param1); bool func_0202e740(unk32 param1); + + inline volatile unk32 GetUnk0() const { + return mUnk_0; + } + + inline unk32 GetUnk4() const { + return mUnk_4; + } }; + +extern UnkStruct_027e077c data_027e077c; +extern volatile u8 data_02056be4[]; diff --git a/include/DTCM/UnkStruct_027e0c68.hpp b/include/DTCM/UnkStruct_027e0c68.hpp new file mode 100644 index 00000000..e172e51e --- /dev/null +++ b/include/DTCM/UnkStruct_027e0c68.hpp @@ -0,0 +1,27 @@ +#pragma once + +#include "global.h" +#include "types.h" + +#include "Debug/DebugHierarchyBase.hpp" + +struct UnkStruct_027e0c68 { + /* 00 */ unk8 mUnk_00[4]; + /* 04 */ u8 mUnk_04; + /* 05 */ unk8 mUnk_05[3]; + /* 08 */ unk32 mUnk_08; + /* 0c */ unk8 mUnk_0c[4]; + /* 10 */ unk16 mUnk_10; + /* 12 */ unk8 mUnk_12[2]; + /* 14 */ unk32 mUnk_14; + /* 18 */ s32 mUnk_18; + /* 1c */ s32 mUnk_1c; + /* 20 */ s32 *mUnk_20; + /* 24 */ unk32 mUnk_24; + /* 28 */ s32 *mUnk_28; + /* 2c */ unk8 mUnk_2c[0x1c]; + /* 48 */ DebugHierarchyBase *mDebug; + /* 4c */ +}; + +extern UnkStruct_027e0c68 data_027e0c68; diff --git a/include/DTCM/UnkStruct_027e0d38.hpp b/include/DTCM/UnkStruct_027e0d38.hpp index a36af0fe..b2e50a89 100644 --- a/include/DTCM/UnkStruct_027e0d38.hpp +++ b/include/DTCM/UnkStruct_027e0d38.hpp @@ -3,6 +3,12 @@ #include "global.h" #include "types.h" +struct UnkStruct_027e0d38_Unk28 { + /* 00 */ unk8 mUnk_00[0x34]; + /* 34 */ bool mUnk_34; + /* 35 */ +}; + struct UnkStruct_027e0d38 { /* 00 */ unk8 mUnk_00; /* 01 */ unk8 mUnk_01[3]; // padding? @@ -19,10 +25,10 @@ struct UnkStruct_027e0d38 { /* 21 */ unk8 mUnk_21; /* 22 */ unk8 mUnk_22[2]; // padding? /* 24 */ void *mUnk_24; - /* 28 */ void *mUnk_28; + /* 28 */ UnkStruct_027e0d38_Unk28 *mUnk_28; /* 2c */ - unk32 func_ov000_02078b40(); + s32 func_ov000_02078b40(); unk8 func_ov000_02078b64(); bool func_ov000_02078b88(); }; diff --git a/include/DTCM/UnkStruct_027e0e2c.hpp b/include/DTCM/UnkStruct_027e0e2c.hpp new file mode 100644 index 00000000..b8923bde --- /dev/null +++ b/include/DTCM/UnkStruct_027e0e2c.hpp @@ -0,0 +1,22 @@ +#pragma once + +#include "global.h" +#include "types.h" + +struct UnkStruct_027e0e2c { + /* 00 */ unk32 mUnk_00; + /* 04 */ unk32 mUnk_04; + /* 08 */ unk32 mUnk_08; + /* 0c */ unk32 mUnk_0c; + /* 10 */ unk32 mUnk_10; + /* 14 */ unk16 mUnk_14; + /* 16 */ unk16 mUnk_16; + /* 18 */ unk32 mUnk_18; + /* 1c */ unk32 mUnk_1c; + /* 20 */ unk32 mUnk_20; + /* 24 */ unk32 mUnk_24; + /* 28 */ unk32 mUnk_28; + /* 2c */ +}; + +extern UnkStruct_027e0e2c data_027e0e2c; diff --git a/include/DTCM/UnkStruct_027e0f64.hpp b/include/DTCM/UnkStruct_027e0f64.hpp new file mode 100644 index 00000000..33728a7e --- /dev/null +++ b/include/DTCM/UnkStruct_027e0f64.hpp @@ -0,0 +1,15 @@ +#pragma once + +#include "global.h" +#include "types.h" + +struct UnkStruct_027e0f64 { + /* 0 */ DebugHierarchyBase *mUnk_0; + /* 4 */ void *mUnk_4; + /* 8 */ void *mUnk_8; + /* c */ + + unk32 func_ov000_0208b180(); +}; + +extern UnkStruct_027e0f64 *data_027e0f64; diff --git a/include/DTCM/UnkStruct_027e0ffc.hpp b/include/DTCM/UnkStruct_027e0ffc.hpp new file mode 100644 index 00000000..463d9ec8 --- /dev/null +++ b/include/DTCM/UnkStruct_027e0ffc.hpp @@ -0,0 +1,27 @@ +#pragma once + +#include "global.h" +#include "types.h" + +struct UnkStruct_027e0ffc { + /* 00 */ unk32 mUnk_00; + /* 04 */ unk32 mUnk_04[0x4]; + /* 14 */ unk32 mUnk_14; + /* 18 */ unk32 mUnk_18; + /* 1c */ unk32 mUnk_1c; + /* 20 */ unk32 mUnk_20; + /* 24 */ unk8 mUnk_24; + /* 25 */ unk8 mUnk_25[0x3]; + /* 28 */ unk32 mUnk_28; + /* 2c */ unk32 mUnk_2c; + /* 30 */ unk32 mUnk_30; + /* 34 */ unk32 mUnk_34; + /* 38 */ unk8 mUnk_38; + /* 39 */ + + void func_ov000_020cebcc(u32 param1, unk16 param2, unk32 param3); + void func_ov000_020ced64(Cylinder *param1, u32 param2, u32 param3); + void func_ov000_020ced7c(Vec3p *param1, s32 param2, s32 param3, unk32 param4); +}; + +extern UnkStruct_027e0ffc data_027e0ffc; diff --git a/include/DTCM/UnkStruct_027e1098.hpp b/include/DTCM/UnkStruct_027e1098.hpp new file mode 100644 index 00000000..043e108a --- /dev/null +++ b/include/DTCM/UnkStruct_027e1098.hpp @@ -0,0 +1,21 @@ +#pragma once + +#include "types.h" + +struct UnkStruct_027e1098 { + /* 00 */ unk8 mUnk_00[0x38]; + /* 38 */ unk32 mUnk_38; + /* 3c */ unk32 mUnk_3c; + /* 40 */ unk32 mUnk_40; + /* 44 */ unk32 mUnk_44; + /* 48 */ unk8 mUnk_48; + /* 49 */ unk8 mUnk_49; + /* 4a */ unk8 mUnk_4a; + /* 4b */ unk8 mUnk_4b; + /* 4c */ unk32 mUnk_4c; + /* 50 */ + + void func_ov014_0211fd04(); +}; + +extern UnkStruct_027e1098 *data_027e1098; diff --git a/include/Debug/DebugHierarchyBase.hpp b/include/Debug/DebugHierarchyBase.hpp index 0e57c9a7..ca1e0eb7 100644 --- a/include/Debug/DebugHierarchyBase.hpp +++ b/include/Debug/DebugHierarchyBase.hpp @@ -19,7 +19,7 @@ public: /* 14 */ virtual void vfunc_14(); /* 18 */ virtual void vfunc_18(); /* 1c */ virtual void vfunc_1c(); - /* 20 */ virtual void vfunc_20(); + /* 20 */ virtual void vfunc_20(unk32 param1, const char *param2, unk32 param3, unk32 param4, unk32 param5, unk32 param6); /* 24 */ virtual void vfunc_24(); /* 28 */ virtual void vfunc_28(); /* 2c */ virtual void vfunc_2c(); diff --git a/include/Item/ItemManager.hpp b/include/Item/ItemManager.hpp index 9e473fc2..34d5a636 100644 --- a/include/Item/ItemManager.hpp +++ b/include/Item/ItemManager.hpp @@ -51,7 +51,7 @@ enum DungeonItemModelId_ { };
class ItemManager : public SysObject {
-private:
+public:
/* 000 */ ItemFlag mEquippedItem;
/* 004 */ ItemFlag mPrevEquippedItem;
/* 008 */ ItemFlag mForcedItem; // game crashes when any item besides this one is equipped
@@ -92,7 +92,6 @@ private: /* 14e */ unk8 mUnk_14e[0x2]; // padding?
/* 150 */
-public:
static ItemManager *Create();
static void Destroy();
ItemManager();
@@ -135,7 +134,7 @@ public: // Ammo
u16 GetAmmo(ItemFlag equipId) const;
- void GiveAmmo(ItemFlag equipId, u16 amount);
+ void GiveAmmo(ItemFlag equipId, u32 amount);
u16 GetMaxAmmo(ItemFlag equipId) const;
void UpgradeQuiver();
void UpgradeBombBag();
diff --git a/include/Player/LinkStateBase.hpp b/include/Player/LinkStateBase.hpp index bca6c796..14f4603d 100644 --- a/include/Player/LinkStateBase.hpp +++ b/include/Player/LinkStateBase.hpp @@ -14,13 +14,13 @@ typedef unk32 LinkStateId; enum LinkStateId_ { - LinkStateId_Move = 0, - LinkStateId_Item = 1, - LinkStateId_Grab = 2, - LinkStateId_Unk3 = 3, - LinkStateId_Unk4 = 4, - LinkStateId_Damage = 5, - LinkStateId_ItemGet = 6, + LinkStateId_Move = 0, + LinkStateId_Item = 1, + LinkStateId_Interact = 2, + LinkStateId_Follow = 3, + LinkStateId_Roll = 4, + LinkStateId_Damage = 5, + LinkStateId_Cutscene = 6, LinkStateId_COUNT }; @@ -60,7 +60,7 @@ public: void func_ov00_020a81b8(unk32 param1, unk32 param2); LinkStateItem *GetLinkItemState(); void LookAt(Vec3p *target); - void func_ov00_020a81fc(); + void func_ov00_020a81fc(Vec3p *param1, unk32 param2); void AddHealth(s16 amount); void func_ov00_020a8224(unk32 param1); void TurnTo(s16 angle, unk32 param2, unk32 speed); @@ -82,7 +82,7 @@ public: void Clear_PlayerLinkBase_Unk48(u16 flags); void func_ov00_020a8680(unk32 param1, unk16 param2, bool param3); void PlayerLinkBase_func_ov00_020bccc8(); - bool PlayerLinkBase_vfunc_58(); + bool PlayerLinkBase_vfunc_58(unk32 param1, ActorRef *param2); bool func_ov00_020a8704(s16 *pAngle); bool func_ov00_020a8774(Vec3p *param1, s32 angle); void func_ov00_020a8844(Vec3p *param1, bool param2, bool param3); @@ -90,7 +90,7 @@ public: void func_ov00_020a8994(); void func_ov00_020a89bc(unk32 param1, unk32 param2); void func_ov00_020a8a08(unk32 param1); - void func_ov00_020a8a4c(unk32 param1, unk32 param2); + void func_ov00_020a8a4c(const void *param1, unk32 param2); void func_ov00_020a8a90(unk32 param1); void func_ov00_020a8ab0(unk32 param1); void func_ov00_020a8ad0(unk32 param1); @@ -152,6 +152,6 @@ public: void func_ov005_021113c4(bool param1); }; -LinkStateBase *GetLinkState(s32 index); +LinkStateBase *GetLinkState(LinkStateId index); extern LinkStateBase **gLinkStates; diff --git a/include/Player/LinkStateDamage.hpp b/include/Player/LinkStateDamage.hpp index 0e3a70a7..02e2c526 100644 --- a/include/Player/LinkStateDamage.hpp +++ b/include/Player/LinkStateDamage.hpp @@ -8,6 +8,7 @@ #include "Render/ModelRender.hpp" class LinkStateDamage : public LinkStateBase { +public: /* 00 (base) */ /* 0c */ void *mUnk_0c; /* 10 */ unk32 mUnk_10; diff --git a/include/Player/LinkStateMove.hpp b/include/Player/LinkStateMove.hpp index 0b197a27..a782b22d 100644 --- a/include/Player/LinkStateMove.hpp +++ b/include/Player/LinkStateMove.hpp @@ -7,6 +7,8 @@ class LinkStateMove : public LinkStateBase { public: + static unk32 data_ov000_020e56f0; + /* 00 (base) */ /* 0c */ s32 mUnk_0c; /* 10 */ unk16 mUnk_10; diff --git a/include/Player/PlayerBase.hpp b/include/Player/PlayerBase.hpp index d2ffea38..744ff464 100644 --- a/include/Player/PlayerBase.hpp +++ b/include/Player/PlayerBase.hpp @@ -64,4 +64,4 @@ public: extern PlayerBase *gPlayer; extern Vec3p gPlayerPos; extern Vec3p gPlayerVel; -extern s16 gPlayerAngle; +extern u16 gPlayerAngle; diff --git a/include/Player/PlayerControl.hpp b/include/Player/PlayerControl.hpp index f2cc23eb..11dd6488 100644 --- a/include/Player/PlayerControl.hpp +++ b/include/Player/PlayerControl.hpp @@ -11,7 +11,7 @@ #include "Player/TouchControl.hpp" #include "Player/TouchGesture.hpp" -typedef u16 TouchEdge; +typedef s16 TouchEdge; enum TouchEdge_ { TouchEdge_Right = 0, TouchEdge_Left = 1, @@ -28,7 +28,7 @@ public: /* 50 */ q20 mTouchSpeedX; // how fast the stylus moves /* 54 */ q20 mTouchSpeedY; /* 58 */ q20 mTouchDist; // pixel distance from touch to link, deadzone is 20 pixels - /* 5c */ unk32 mUnk_5c; + /* 5c */ q20 mTouchSpeed; /* 60 */ s16 mTouchDuration; /* 62 */ s16 mTouchSlowDuration; // resets to 0 if stylus is fast enough /* 64 */ s16 mTouchFastTime; // gets set to mTouchDuration if stylus is fast enough @@ -46,24 +46,23 @@ public: /* 79 */ bool mUsingEquipItem; /* 7a */ bool mUnk_7a; /* 7b */ bool mUnk_7b; - /* 7c */ s8 mUnk_7c; + /* 7c */ u8 mUnk_7c; /* 7d */ bool mUnk_7d; - /* 7e */ s8 mUnk_7e; + /* 7e */ u8 mUnk_7e; /* 7f */ bool mUnk_7f; /* 80 */ bool mUnk_80; /* 81 */ bool mFollowing; - /* 82 */ unk8 mUnk_82; + /* 82 */ bool mUnk_82; /* 83 */ bool mUnk_83; /* 84 */ ActorRef mFollowRef; /* 8c */ ActorRef mNextFollowRef; /* 94 */ ActorRef mLastFollowRef; - /* 9c */ unk8 mUnk_9c; - /* 9d */ unk8 mUnk_9d; + /* 9c */ Vec2b mUnk_9c; /* 9e */ unk8 mUnk_9e[2]; - /* a0 */ void *mFollowActor; + /* a0 */ void *mFollowObject; /* a4 */ q20 mFollowDist; - /* a8 */ u16 mFollowStuckTimer; - /* aa */ u16 mCutsceneEndTimer; + /* a8 */ s16 mFollowStuckTimer; + /* aa */ s16 mCutsceneEndTimer; /* ac */ s16 mUnk_ac; /* ae */ unk16 mUnk_ae; /* b0 */ Vec3p mAim; // used by boomerang, bow and rope @@ -75,11 +74,11 @@ public: /* d8 */ static bool func_ov00_020aeeac(); - void func_ov00_020aeef8(); + static bool func_ov00_020aeef8(); void func_ov00_020aef30(); void UpdateAim(); Actor *GetFollowActor(); - bool func_ov00_020af01c(unk8 *param1); + bool func_ov00_020af01c(Vec2b *param1); void SetUnk_80(); void StopFollowing(); void func_ov00_020af06c(); @@ -90,30 +89,30 @@ public: bool CheckTouching(u32 param1); bool CheckTouchFast(u32 param1); bool func_ov00_020af4a4(); - void func_ov00_020af538(); + void func_ov00_020af538(bool param1, u8 param2); void func_ov00_020af6e4(Vec3p *param1, s32 param3, s32 param4); bool func_ov00_020af778(); bool func_ov00_020afad8(Vec3p *param1); void func_ov00_020afb6c(); bool func_ov00_020afe88(s32 param1, bool param2); bool func_ov00_020afeec(unk32 param1, bool param2); - void func_ov00_020aff90(unk32 param1, unk32 param2); + void func_ov00_020aff90(Vec3p *param1, unk32 param2); void func_ov00_020affec(Vec3p *param1, s32 y, s32 param3, Vec3p *param4); - void func_ov00_020b014c(); - void SetAim(); + void func_ov00_020b014c(Vec3p *param1); + void ResetAim(); bool UpdateAimWorld(Vec3p *param1); s16 GetTouchAngle(); u32 func_ov00_020b034c(); s32 func_ov00_020b0418(); bool func_ov00_020b049c(Vec3p *param1, bool param2); bool func_ov00_020b05e8(Vec3p *param1); - bool func_ov00_020b0778(Vec3p *param1, u32 param2, unk32 param3); + bool func_ov00_020b0778(Vec3p *param1, u32 param2, unk32 *param3); bool CheckNotTouching(); bool func_ov00_020b0ad0(Actor *actor); bool func_ov00_020b0b0c(s16 *pAngle, ItemFlag *pEquipId, unk32 *pCardinal, bool *pFast); bool func_ov00_020b0de8(Vec3p *param1); bool func_ov00_020b0e54(Vec3p *param1, Vec3p *param2); - bool func_ov00_020b0f88(Vec3p *param1, unk32 param2, Vec3p *param3); + bool func_ov00_020b0f88(Vec3p *param1, unk32 scale, Vec3p *param3); bool func_ov00_020b1058(Vec3p *param1, unk32 param2, Vec3p *param3, Vec3p *param4); bool IsUntouchedNow(); bool IsNotUntouchedNow(); @@ -138,6 +137,8 @@ public: void Init(); void func_ov004_0210b1d0(); static void func_ov004_0210b1f0(); + + bool func_ov024_02178348(Vec3p *param1); }; extern PlayerControl *gPlayerControl; diff --git a/include/Player/PlayerControlData.hpp b/include/Player/PlayerControlData.hpp index 3527810c..cdcd8db8 100644 --- a/include/Player/PlayerControlData.hpp +++ b/include/Player/PlayerControlData.hpp @@ -87,8 +87,8 @@ public: /* 68 */ virtual void vfunc_68(unk32 param1, unk32 param2); /* 6c */ virtual void vfunc_6c(s32 param1, Vec3p *param2); /* 70 */ virtual void vfunc_70(s32 param1); - /* 74 */ virtual unk32 vfunc_74(); - /* 78 */ virtual unk32 vfunc_78(); + /* 74 */ virtual unk32 vfunc_74(s32 param1); + /* 78 */ virtual unk32 vfunc_78(s32 param1); /* 7c */ virtual unk32 vfunc_7c(); /* 80 */ @@ -105,3 +105,5 @@ public: PlayerControlData(); }; + +extern PlayerControlData *gPlayerControlData; diff --git a/include/Player/TouchGesture.hpp b/include/Player/TouchGesture.hpp index 5009525e..0ed897a7 100644 --- a/include/Player/TouchGesture.hpp +++ b/include/Player/TouchGesture.hpp @@ -22,7 +22,8 @@ public: class TouchGesture : public TouchGestureBase { public: /* 00 (base) */ - /* 05 */ unk8 mUnk_05[7]; + /* 05 */ unk8 mUnk_05[3]; + /* 08 */ s32 mUnk_08; /* 0c */ u16 mIndex; /* 0e */ unk16 mUnk_0e; /* 10 */ u16 mUnk_10[GESTURE_BUFFER_LENGTH]; diff --git a/include/System/Random.hpp b/include/System/Random.hpp index 4506466d..cc1f2a12 100644 --- a/include/System/Random.hpp +++ b/include/System/Random.hpp @@ -19,4 +19,4 @@ struct Random { } }; -extern Random *gRandom; +extern Random gRandom; diff --git a/include/Unknown/UnkStruct_02037750.hpp b/include/Unknown/UnkStruct_02037750.hpp index 5fe84a89..2e5ea7b6 100644 --- a/include/Unknown/UnkStruct_02037750.hpp +++ b/include/Unknown/UnkStruct_02037750.hpp @@ -31,7 +31,7 @@ public: /* 34 */ UnkStruct_02037750(unk32 param1, unk32 param2); - LinkStateInteract *GetLinkStateInteract(); + static LinkStateInteract *GetLinkStateInteract(); void func_020385d0(s32 param1, unk32 *param2); }; |
