summaryrefslogtreecommitdiff
path: root/include/Player
diff options
context:
space:
mode:
authorAetias <aetias@outlook.com>2024-03-20 19:48:26 +0100
committerAetias <aetias@outlook.com>2024-03-20 19:48:26 +0100
commit29e5b949c0bcd43af41effe6ecab677aecf28a29 (patch)
tree574535b53b6c00ae901b3e28b49cb3285799adda /include/Player
parentbd0a74f62fa297ddcd041d8fb5f1149d3a4a4669 (diff)
Add `LinkDamage` class definition
Diffstat (limited to 'include/Player')
-rw-r--r--include/Player/LinkDamage.hpp28
-rw-r--r--include/Player/LinkStateHandler.hpp14
-rw-r--r--include/Player/MotionParams.hpp11
-rw-r--r--include/Player/PlayerLink.hpp37
-rw-r--r--include/Player/PlayerLinkBase.hpp19
5 files changed, 109 insertions, 0 deletions
diff --git a/include/Player/LinkDamage.hpp b/include/Player/LinkDamage.hpp
new file mode 100644
index 00000000..b5b1f847
--- /dev/null
+++ b/include/Player/LinkDamage.hpp
@@ -0,0 +1,28 @@
+#pragma once
+
+#include "global.h"
+#include "types.h"
+
+#include "Player/LinkStateHandler.hpp"
+#include "Render/ModelRender.hpp"
+
+class LinkDamage : public LinkStateHandler {
+ /* 00 (base) */
+ /* 0c */ void *mUnk_0c;
+ /* 10 */ unk32 mUnk_10;
+ /* 14 */ unk32 mUnk_14;
+ /* 18 */ unk32 mUnk_18;
+ /* 1c */ unk32 mUnk_1c;
+ /* 20 */ unk8 mUnk_20[2];
+ /* 22 */ unk16 mUnk_22;
+ /* 24 */ unk8 mUnk_24[0xe];
+ /* 32 */ unk16 mUnk_32;
+ /* 34 */ unk32 mUnk_34[2];
+ /* 3c */ ModelRender mUnk_3c;
+ /* 98 */ void *mUnk_98;
+ /* 9c */ void *mUnk_9c;
+ /* a0 */ unk32 mUnk_a0[3];
+ /* ac */ unk32 mUnk_ac;
+ /* b0 */ unk8 mUnk_b0[4];
+ /* b4 */
+};
diff --git a/include/Player/LinkStateHandler.hpp b/include/Player/LinkStateHandler.hpp
new file mode 100644
index 00000000..0247d42a
--- /dev/null
+++ b/include/Player/LinkStateHandler.hpp
@@ -0,0 +1,14 @@
+#pragma once
+
+#include "global.h"
+#include "types.h"
+
+#include "System/SysNew.hpp"
+#include "Player/PlayerLink.hpp"
+
+class LinkStateHandler : public SysObject {
+ /* 0 (vtable) */
+ /* 4 */ unk32 mSubState;
+ /* 8 */ PlayerLink *mLink;
+ /* c */
+};
diff --git a/include/Player/MotionParams.hpp b/include/Player/MotionParams.hpp
new file mode 100644
index 00000000..017800ff
--- /dev/null
+++ b/include/Player/MotionParams.hpp
@@ -0,0 +1,11 @@
+#pragma once
+
+#include "global.h"
+#include "types.h"
+#include "lib/files.h"
+
+struct MotionParams {
+ /* 00 */ FileEntry motionBhio; // motion.bhio
+ /* 10 */ unk8 mUnk_10;
+ /* 11 */
+};
diff --git a/include/Player/PlayerLink.hpp b/include/Player/PlayerLink.hpp
new file mode 100644
index 00000000..235810eb
--- /dev/null
+++ b/include/Player/PlayerLink.hpp
@@ -0,0 +1,37 @@
+#pragma once
+
+#include "global.h"
+#include "types.h"
+#include "lib/math.h"
+
+#include "Player/PlayerLinkBase.hpp"
+#include "Player/MotionParams.hpp"
+
+#include "Debug/DebugHierarchy.hpp"
+
+class PlayerLink: public PlayerLinkBase {
+ /* 00 (base) */
+ /* 14 */ Vec3p mPos;
+ /* 20 */ Vec3p mVel;
+ /* 2c */ unk8[2][2] mTilePos;
+ /* 30 */ unk32 mAltitude;
+ /* 34 */ unk8 mUnk_34[4];
+ /* 38 */ s32 mUnk_38;
+ /* 3c */ ActorRef mUnkRef_03c;
+ /* 44 */ s32 mUnk_44;
+ /* 48 */ unk16 mUnk_48;
+ /* 4a */ unk16 mUnk_4a;
+ /* 4c */ unk32 mUnk_4c;
+ /* 50 */ unk32 mUnk_50;
+ /* 54 */ s16 mUnk_54;
+ /* 56 */ unk16 mUnk_56;
+ /* 58 */ unk16 mUnk_58;
+ /* 5a */ s16 mUnk_5a;
+ /* 5c */ unk8 mUnk_5c[3];
+ /* 5f */ bool mUnk_5f;
+ /* 60 */ MotionParams *mMotionParams;
+ /* 64 */ DebugHierarchy *mDebugHierarchy_0;
+ /* 68 */ DebugHierarchy *mDebugHierarchy_1;
+ /* 6c */ DebugHierarchy *mDebugHierarchy_2;
+ /* 70 */
+};
diff --git a/include/Player/PlayerLinkBase.hpp b/include/Player/PlayerLinkBase.hpp
new file mode 100644
index 00000000..8a3ccd2b
--- /dev/null
+++ b/include/Player/PlayerLinkBase.hpp
@@ -0,0 +1,19 @@
+#pragma once
+
+#include "global.h"
+#include "types.h"
+
+#include "System/SysNew.hpp"
+
+class PlayerLinkBase : public SysObject {
+ /* 00 (vtable) */
+ /* 04 */ void *mUnk_04;
+ /* 08 */ s16 mUnk_08;
+ /* 0a */ s16 mHealth;
+ /* 0c */ unk8 mUnk_0c[2];
+ /* 0e */ unk16 mUnk_0e;
+ /* 10 */ unk8 mUnk_10;
+ /* 11 */ bool mUnk_11;
+ /* 12 */ bool mUnk_12;
+ /* 13 */
+};