DirectInput: Only choose DIDF_RELAXIS id the device has at least one axis, and all axes are relative

This commit is contained in:
elias 2006-08-23 08:04:50 +00:00
parent b251b846f2
commit 9cc64dd560

View file

@ -240,14 +240,18 @@ final class IDirectInputDevice {
* obscure reason.
*/
boolean all_relative = true;
boolean has_axis = false;
for (int i = 0; i < objects.size(); i++) {
DIDeviceObject obj = (DIDeviceObject)objects.get(i);
if (obj.isAxis() && !obj.isRelative()) {
all_relative = false;
break;
if (obj.isAxis()) {
has_axis = true;
if (!obj.isRelative()) {
all_relative = false;
break;
}
}
}
this.axes_in_relative_mode = all_relative;
this.axes_in_relative_mode = all_relative && has_axis;
int axis_mode = all_relative ? DIDF_RELAXIS : DIDF_ABSAXIS;
setDataFormat(axis_mode);
if (rumblers.size() > 0) {