summaryrefslogtreecommitdiff
path: root/core
diff options
context:
space:
mode:
Diffstat (limited to 'core')
-rw-r--r--core/input_map.cpp2
-rw-r--r--core/io/marshalls.cpp6
2 files changed, 5 insertions, 3 deletions
diff --git a/core/input_map.cpp b/core/input_map.cpp
index 5a9b035771..17e98902a1 100644
--- a/core/input_map.cpp
+++ b/core/input_map.cpp
@@ -106,7 +106,7 @@ List<InputEvent>::Element *InputMap::_find_event(List<InputEvent> &p_list,const
} break;
case InputEvent::JOYSTICK_MOTION: {
- same=(e.joy_motion.axis==p_event.joy_motion.axis);
+ same=(e.joy_motion.axis==p_event.joy_motion.axis && (e.joy_motion.axis_value < 0) == (p_event.joy_motion.axis_value < 0));
} break;
}
diff --git a/core/io/marshalls.cpp b/core/io/marshalls.cpp
index 1733aecd46..60617e1237 100644
--- a/core/io/marshalls.cpp
+++ b/core/io/marshalls.cpp
@@ -438,8 +438,9 @@ Error decode_variant(Variant& r_variant,const uint8_t *p_buffer, int p_len,int *
case InputEvent::JOYSTICK_MOTION: {
ie.joy_motion.axis=decode_uint32(&buf[12]);
+ ie.joy_motion.axis_value=decode_float(&buf[16]);
if (r_len)
- (*r_len)+=4;
+ (*r_len)+=8;
} break;
}
@@ -1154,8 +1155,9 @@ Error encode_variant(const Variant& p_variant, uint8_t *r_buffer, int &r_len) {
int axis = ie.joy_motion.axis;
encode_uint32(axis,&buf[llen]);
+ encode_float(ie.joy_motion.axis_value, &buf[llen+4]);
}
- llen+=4;
+ llen+=8;
} break;
}