summaryrefslogtreecommitdiff
path: root/src/00_Core/Player/TouchControl.cpp
diff options
context:
space:
mode:
authorYanis002 <35189056+Yanis002@users.noreply.github.com>2025-06-29 21:57:44 +0200
committerYanis002 <35189056+Yanis002@users.noreply.github.com>2025-06-29 21:57:44 +0200
commitf7c54542b9c2b3231c10992c80f775d4ccb1706b (patch)
tree44545be8b43231411c967efd2289b4dd97e9e0dd /src/00_Core/Player/TouchControl.cpp
parent7d783ffb12a59965f7a288ac9e5bfc4caccf3d1a (diff)
parent3fe49695b4936ea29526eb8b7d07250a69a06c38 (diff)
Merge remote-tracking branch 'upstream/main' into hammer
Diffstat (limited to 'src/00_Core/Player/TouchControl.cpp')
-rw-r--r--src/00_Core/Player/TouchControl.cpp34
1 files changed, 31 insertions, 3 deletions
diff --git a/src/00_Core/Player/TouchControl.cpp b/src/00_Core/Player/TouchControl.cpp
index 5cae75a5..9630de1a 100644
--- a/src/00_Core/Player/TouchControl.cpp
+++ b/src/00_Core/Player/TouchControl.cpp
@@ -1,11 +1,39 @@
#include "Player/TouchControl.hpp"
TouchControl::TouchControl() {}
-void TouchControl::IncreaseSpeed(s16 increase) {}
+
+void TouchControl::IncreaseSpeed(s16 increase) {
+ this->mFlags = 0;
+ this->mSpeed += increase;
+}
+
void TouchControl::UpdateFlags(u16 speed) {}
void TouchControl::UpdateWithStateFlags(TouchStateFlags *state, u16 speed) {}
void TouchControl::Update(TouchState *state, u16 speed) {}
-bool TouchControl::func_ov00_0207aeac() {}
+bool TouchControl::func_ov00_0207aeac() {
+ return ((*data_0207aecc & 0x8000) >> 15) == 1;
+}
void TouchControl::UpdateConditionally(TouchState *state, u16 speed) {}
-void TouchControl::func_ov00_0207af38(u16 speed, bool param2) {}
+
+void TouchControl::func_ov00_0207af38(u16 speedIncrease, bool shouldIncrease) {
+ TouchStateFlags touchState;
+
+ if (shouldIncrease) {
+ IncreaseSpeed(speedIncrease); /* TODO: IncreaseSpeed expects an s16 variable,
+ while speedIncrease is a u16. As a result, the function
+ performs a conversion that is not present in the binary. */
+ return;
+ }
+
+ u32 result = TouchControl::func_ov00_0207aeac();
+ if (result != 0) {
+ Fill16(0, &touchState.touchX, 8);
+ } else {
+
+ GetTouchStateFlags(&touchState);
+ }
+
+ UpdateWithStateFlags(&touchState, speedIncrease);
+}
+
TouchControl::~TouchControl() {}