summaryrefslogtreecommitdiff
path: root/include/Player/PlayerControl.hpp
diff options
context:
space:
mode:
authorAetias <aetias@outlook.com>2024-03-21 23:22:54 +0100
committerAetias <aetias@outlook.com>2024-03-21 23:22:54 +0100
commit30dbcc458025e9b1129a8eafecc23496a2a43d6d (patch)
tree7f1fea499162a02b45c54f0fcbfba62066f0018f /include/Player/PlayerControl.hpp
parent2324c499ab412d73131a59f224d1b673e53eb915 (diff)
Add all other Link states
Diffstat (limited to 'include/Player/PlayerControl.hpp')
-rw-r--r--include/Player/PlayerControl.hpp58
1 files changed, 58 insertions, 0 deletions
diff --git a/include/Player/PlayerControl.hpp b/include/Player/PlayerControl.hpp
new file mode 100644
index 00000000..d10dce26
--- /dev/null
+++ b/include/Player/PlayerControl.hpp
@@ -0,0 +1,58 @@
+#pragma once
+
+#include "global.h"
+#include "types.h"
+
+#include "Player/TouchControl.hpp"
+
+typedef TouchEdge u16;
+enum TouchEdge_ {
+ TouchEdge_Right = 0,
+ TouchEdge_Left = 1,
+ TouchEdge_Bottom = 2,
+ TouchEdge_Top = 3,
+ TouchEdge_Middle = 4
+};
+
+class PlayerControl : public TouchControl {
+ /* 00 (base) */
+ /* 38 */ Vec3p mTouchWorld; // tile position
+ /* 44 */ Vec3p mUnk_44;
+ /* 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;
+ /* 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
+ /* 66 */ s16 mTouchFastX; // gets set to mTouchX if stylus is fast enough
+ /* 68 */ s16 mTouchFastY; // gets set to mTouchY if stylus is fast enough
+ /* 6a */ s16 mTouchAngle; // angle from touch to link, 0 = down, 0x4000 = right, 0x8000 = up, 0xc000 = left
+ /* 6c */ s16 mTouchFastAngle; // gets set to mTouchAngle if stylus is fast enough
+ /* 6e */ TouchEdge mTouchEdge; // changes value when touching close to the edge of the screen
+ /* 70 */ TouchEdge mTouchLastEdge;
+ /* 72 */ s16 mTouchDiffX;
+ /* 74 */ s16 mTouchDiffY;
+ /* 76 */ bool mTouchFast;
+ /* 78 */ unk32 mUnk_78;
+ /* 7c */ unk32 mUnk_7c;
+ /* 80 */ unk32 mUnk_80;
+ /* 84 */ s32 mUnk_84;
+ /* 88 */ s32 mUnk_88;
+ /* 8c */ s32 mUnk_8c;
+ /* 90 */ s32 mUnk_90;
+ /* 94 */ s32 mUnk_94;
+ /* 98 */ s32 mUnk_98;
+ /* 9c */ q20 mUnk_9c;
+ /* a0 */ void *mFollowActor;
+ /* a4 */ q20 mFollowDist;
+ /* a8 */ u16 mFollowStuckTimer;
+ /* aa */ u16 mCutsceneEndTimer;
+ /* ac */ unk32 mUnk_ac;
+ /* b0 */ Vec3p mAim; // used by boomerang, bow and rope
+ /* bc */ Vec3p mAimWorld; // used by hammer
+ /* c8 */ s32 mUnk_c8;
+ /* cc */ s32 mUnk_cc;
+ /* d0 */ void *mTouchGesture;
+ /* d4 */ void *mDebug;
+};