Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 8 additions & 8 deletions include/Player/TouchControl.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -41,14 +41,14 @@ class TouchControl {
TouchControl(unk32 param_1);
~TouchControl();

void Init();
void IncreaseSpeed(s16 increase);
void UpdateFlags(u16 speed);
void UpdateWithStateFlags(TouchStateFlags *state, u16 speed);
void Update(TouchState *state, u16 speed);
bool func_ov00_0207aeac();
void UpdateConditionally(TouchState *state, u16 speed);
void func_ov00_0207af38(u16 speedIncrease, bool shouldIncrease);
THUMB void Init();
ARM void IncreaseSpeed(s16 increase);
ARM void UpdateFlags(u16 speed);
ARM void UpdateWithStateFlags(TouchStateFlags *state, u16 speed);
ARM void Update(TouchState *state, u16 speed);
ARM bool func_ov00_0207aeac();
ARM void UpdateConditionally(TouchState *state, u16 speed);
ARM void func_ov00_0207af38(u16 speedIncrease, bool shouldIncrease);

static bool func_0202b864(Vec3p *param1, s32 size, unk8 param3);
static bool func_0202b894(Vec3p *param1, s32 size, unk8 param3);
Expand Down
67 changes: 59 additions & 8 deletions src/00_Core/Player/TouchControl.cpp
Original file line number Diff line number Diff line change
@@ -1,21 +1,72 @@
#include "Player/TouchControl.hpp"

void TouchControl::Init() {}
#define REG_027fffa8 (*(volatile u16 *) 0x027fffa8)

void TouchControl::IncreaseSpeed(s16 increase) {
THUMB void TouchControl::Init() {
this->mSpeed = 1;
this->mTimeBetweenTouches = 0xffff;
this->mTimeSinceTouch = 0xffff;
this->mRepeatStart = 0x14;
this->mRepeatLoop = 6;
this->mRepeatTimer = *(u16 *) &this->mRepeatStart;
this->mTouch = false;
this->mTouchX = -1;
this->mTouchY = -1;
this->mTouchPrev = false;
this->mTouchPrevX = -1;
this->mTouchPrevY = -1;
this->mTouchLastX = 0x80;
this->mTouchLastY = 0x60;
this->mTouchStartX = -1;
this->mTouchStartY = -1;
this->mFlags = 0;
return;
}

ARM void TouchControl::IncreaseSpeed(s16 increase) {
this->mFlags = 0;
this->mSpeed += increase;
}

void TouchControl::UpdateFlags(u16 speed) {}
ARM void TouchControl::UpdateFlags(u16 speed) {}

void TouchControl::UpdateWithStateFlags(TouchStateFlags *state, u16 speed) {}
void TouchControl::Update(TouchState *state, u16 speed) {}
bool TouchControl::func_ov00_0207aeac() {
return ((*data_0207aecc & 0x8000) >> 15) == 1;

ARM void TouchControl::Update(TouchState *state, u16 speed) {
this->mTouchPrev = this->mTouch;
this->mTouchPrevX = this->mTouchX;
this->mTouchPrevY = this->mTouchY;
this->mTouch = state->touch;
this->mTouchX = state->touchX;
this->mTouchY = state->touchY;
this->UpdateFlags(speed);
return;
}

ARM bool TouchControl::func_ov00_0207aeac() {
return ((REG_027fffa8 & 0x8000) >> 15) == 1;
}

ARM void TouchControl::UpdateConditionally(TouchState *state, u16 speed) {
int iVar1;
TouchState local_20;

iVar1 = func_ov00_0207aeac();
if (iVar1) {
local_20.touch = false;
local_20.touchX = -1;
local_20.touchY = -1;
} else {
local_20.touch = state->touch;
local_20.touchX = state->touchX;
local_20.touchY = state->touchY;
}
Update(&local_20, speed);
return;
}
void TouchControl::UpdateConditionally(TouchState *state, u16 speed) {}

void TouchControl::func_ov00_0207af38(u16 speedIncrease, bool shouldIncrease) {
// non-matching
ARM void TouchControl::func_ov00_0207af38(u16 speedIncrease, bool shouldIncrease) {
TouchStateFlags touchState;

if (shouldIncrease) {
Expand Down