Skip to content

Commit 3bf1c59

Browse files
committed
Fix axis direction not being handled
1 parent 7804d0e commit 3bf1c59

File tree

3 files changed

+15
-8
lines changed

3 files changed

+15
-8
lines changed

android/AndroidManifest.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
33
package="com.rolandoislas.drcsimclient"
4-
android:versionCode="6"
4+
android:versionCode="7"
55
android:versionName="2.0" >
66

77
<uses-sdk android:minSdkVersion="9" android:targetSdkVersion="25" />

core/src/com/rolandoislas/drcsimclient/control/ControlController.java

+3-5
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
import com.rolandoislas.drcsimclient.config.ConfigKeymap;
77
import com.rolandoislas.drcsimclient.data.Constants;
88
import com.rolandoislas.drcsimclient.stage.StageControl;
9-
import com.rolandoislas.drcsimclient.util.logging.Logger;
109

1110
import java.util.HashMap;
1211

@@ -91,16 +90,15 @@ public void update() {
9190
private float getJoystickInput(Controller controller, ConfigKeymap.Input input) {
9291
if (input.getType() == ConfigKeymap.Input.TYPE_AXIS)
9392
return controller.getAxis(input.getInput());
94-
else {
95-
Logger.warn("Joystick input not set to an axis. Cannot get input.");
93+
else
9694
return 0;
97-
}
9895
}
9996

10097
private boolean isPressed(Controller controller, ConfigKeymap.Input input) {
10198
switch (input.getType()) {
10299
case ConfigKeymap.Input.TYPE_AXIS:
103-
return true;
100+
return input.getExtra() == 0 ? controller.getAxis(input.getInput()) < -.2 :
101+
controller.getAxis(input.getInput()) > .2;
104102
case ConfigKeymap.Input.TYPE_POV:
105103
return controller.getPov(input.getInput()).ordinal() == input.getExtra();
106104
case ConfigKeymap.Input.TYPE_BUTTON:

core/src/com/rolandoislas/drcsimclient/stage/StageConfigInput.java

+11-2
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,8 @@ public static String getInputDisplayName(int type, ConfigKeymap config, String k
101101
return Input.Keys.toString(input.getInput());
102102
else if (type == CONTROLLER) {
103103
if (input.getType() == ConfigKeymap.Input.TYPE_AXIS)
104-
return String.format(Locale.US, "Axis %d", input.getInput());
104+
return String.format(Locale.US, "Axis %d %s", input.getInput(),
105+
input.getExtra() == 0 ? "negative" : "positive");
105106
else if (input.getType() == ConfigKeymap.Input.TYPE_POV) {
106107
String pov = String.valueOf(input.getExtra());
107108
for (PovDirection dir : PovDirection.values())
@@ -170,9 +171,17 @@ private void pollInputController() {
170171
continue;
171172
// Check axes
172173
for (int axis = 0; axis < 1000; axis++) {
173-
if (Math.abs(controller.getAxis(axis)) > .2) {
174+
float ax = controller.getAxis(axis);
175+
if (ax > .5) {
174176
input_type = ConfigKeymap.Input.TYPE_AXIS;
175177
input = axis;
178+
input_extra = 1; // positive
179+
break main;
180+
}
181+
else if (ax < -.5) {
182+
input_type = ConfigKeymap.Input.TYPE_AXIS;
183+
input = axis;
184+
input_extra = 0; // negative
176185
break main;
177186
}
178187
}

0 commit comments

Comments
 (0)