summaryrefslogtreecommitdiff
path: root/src/input
diff options
context:
space:
mode:
authorewewukek <ewewukek@gmail.com>2024-01-10 22:29:22 +0300
committerFedja Beader <fedja@protonmail.ch>2024-05-14 01:14:04 +0000
commit9e3a03079cfa530fd3885e36d3f7214ec2348818 (patch)
tree8666b32e3f7c95b45a26d0722c4ee219a122bbbb /src/input
parent4337008fdeef5bb01be2fc6fed1683d5941f23ae (diff)
downloadplus-9e3a03079cfa530fd3885e36d3f7214ec2348818.tar.gz
plus-9e3a03079cfa530fd3885e36d3f7214ec2348818.tar.bz2
plus-9e3a03079cfa530fd3885e36d3f7214ec2348818.tar.xz
plus-9e3a03079cfa530fd3885e36d3f7214ec2348818.zip
Use single tolerance value for all 4 joystick movement directions
Diffstat (limited to 'src/input')
-rw-r--r--src/input/joystick.cpp49
-rw-r--r--src/input/joystick.h5
2 files changed, 18 insertions, 36 deletions
diff --git a/src/input/joystick.cpp b/src/input/joystick.cpp
index 52d9a7525..5396adadc 100644
--- a/src/input/joystick.cpp
+++ b/src/input/joystick.cpp
@@ -48,10 +48,7 @@ bool Joystick::mInitialized = false;
Joystick::Joystick(const int no) :
mDirection(0),
mJoystick(nullptr),
- mUpTolerance(0),
- mDownTolerance(0),
- mLeftTolerance(0),
- mRightTolerance(0),
+ mTolerance(0),
mCalibrating(false),
mNumber(no >= joystickCount ? joystickCount : no),
mCalibrated(false),
@@ -201,18 +198,12 @@ bool Joystick::open()
#ifdef __SWITCH__
config.setValue("joystick" + toString(mNumber) + "calibrated", true);
- config.setValue("leftTolerance" + toString(mNumber), -10000);
- config.setValue("rightTolerance" + toString(mNumber), 10000);
- config.setValue("upTolerance" + toString(mNumber), -10000);
- config.setValue("downTolerance" + toString(mNumber), 10000);
+ config.setValue("joystickTolerance" + toString(mNumber), 10000);
#endif
mCalibrated = config.getValueBool("joystick"
+ toString(mNumber) + "calibrated", false);
- mUpTolerance = config.getIntValue("upTolerance" + toString(mNumber));
- mDownTolerance = config.getIntValue("downTolerance" + toString(mNumber));
- mLeftTolerance = config.getIntValue("leftTolerance" + toString(mNumber));
- mRightTolerance = config.getIntValue("rightTolerance" + toString(mNumber));
+ mTolerance = config.getIntValue("joystickTolerance" + toString(mNumber));
mUseInactive = config.getBoolValue("useInactiveJoystick");
return true;
@@ -266,16 +257,16 @@ void Joystick::logic()
{
// X-Axis
int position = SDL_JoystickGetAxis(mJoystick, 0);
- if (position >= mRightTolerance)
+ if (position >= mTolerance)
mDirection |= RIGHT;
- else if (position <= mLeftTolerance)
+ else if (position <= -mTolerance)
mDirection |= LEFT;
// Y-Axis
position = SDL_JoystickGetAxis(mJoystick, 1);
- if (position <= mUpTolerance)
+ if (position <= -mTolerance)
mDirection |= UP;
- else if (position >= mDownTolerance)
+ else if (position >= mTolerance)
mDirection |= DOWN;
#ifdef DEBUG_JOYSTICK
@@ -324,10 +315,7 @@ void Joystick::logic()
void Joystick::startCalibration()
{
- mUpTolerance = 0;
- mDownTolerance = 0;
- mLeftTolerance = 0;
- mRightTolerance = 0;
+ mTolerance = 0;
mCalibrating = true;
}
@@ -335,17 +323,17 @@ void Joystick::doCalibration()
{
// X-Axis
int position = SDL_JoystickGetAxis(mJoystick, 0);
- if (position > mRightTolerance)
- mRightTolerance = position;
- else if (position < mLeftTolerance)
- mLeftTolerance = position;
+ if (position > mTolerance)
+ mTolerance = position;
+ else if (position < -mTolerance)
+ mTolerance = -position;
// Y-Axis
position = SDL_JoystickGetAxis(mJoystick, 1);
- if (position > mDownTolerance)
- mDownTolerance = position;
- else if (position < mUpTolerance)
- mUpTolerance = position;
+ if (position > mTolerance)
+ mTolerance = position;
+ else if (position < -mTolerance)
+ mTolerance = -position;
}
void Joystick::finishCalibration()
@@ -353,10 +341,7 @@ void Joystick::finishCalibration()
mCalibrated = true;
mCalibrating = false;
config.setValue("joystick" + toString(mNumber) + "calibrated", true);
- config.setValue("leftTolerance" + toString(mNumber), mLeftTolerance);
- config.setValue("rightTolerance" + toString(mNumber), mRightTolerance);
- config.setValue("upTolerance" + toString(mNumber), mUpTolerance);
- config.setValue("downTolerance" + toString(mNumber), mDownTolerance);
+ config.setValue("joystickTolerance" + toString(mNumber), mTolerance);
}
bool Joystick::buttonPressed(const unsigned char no) const
diff --git a/src/input/joystick.h b/src/input/joystick.h
index a3c129950..3587d1ba0 100644
--- a/src/input/joystick.h
+++ b/src/input/joystick.h
@@ -148,10 +148,7 @@ class Joystick final
SDL_Joystick *mJoystick;
- int mUpTolerance;
- int mDownTolerance;
- int mLeftTolerance;
- int mRightTolerance;
+ int mTolerance;
bool mCalibrating;
int mNumber;
bool mCalibrated;