Fix further Android joystick issues, including flickering pause menu. Fixes #2708
This commit is contained in:
parent
67b79a5933
commit
b879f32284
4 changed files with 9 additions and 6 deletions
|
@ -83,6 +83,7 @@ struct DefaultKeyMap {
|
||||||
|
|
||||||
static KeyMapping defaultPadMap()
|
static KeyMapping defaultPadMap()
|
||||||
{
|
{
|
||||||
|
KeyMapping m;
|
||||||
#ifdef ANDROID
|
#ifdef ANDROID
|
||||||
m[KeyDef(DEVICE_ID_X360_0, KEYCODE_BUTTON_A)] = CTRL_CROSS;
|
m[KeyDef(DEVICE_ID_X360_0, KEYCODE_BUTTON_A)] = CTRL_CROSS;
|
||||||
m[KeyDef(DEVICE_ID_X360_0, KEYCODE_BUTTON_B)] = CTRL_CIRCLE;
|
m[KeyDef(DEVICE_ID_X360_0, KEYCODE_BUTTON_B)] = CTRL_CIRCLE;
|
||||||
|
@ -104,7 +105,6 @@ struct DefaultKeyMap {
|
||||||
m[AxisDef(DEVICE_ID_X360_0, JOYSTICK_AXIS_Y, -1)] = VIRTKEY_AXIS_Y_MIN;
|
m[AxisDef(DEVICE_ID_X360_0, JOYSTICK_AXIS_Y, -1)] = VIRTKEY_AXIS_Y_MIN;
|
||||||
m[AxisDef(DEVICE_ID_X360_0, JOYSTICK_AXIS_Y, +1)] = VIRTKEY_AXIS_Y_MAX;
|
m[AxisDef(DEVICE_ID_X360_0, JOYSTICK_AXIS_Y, +1)] = VIRTKEY_AXIS_Y_MAX;
|
||||||
#else
|
#else
|
||||||
KeyMapping m;
|
|
||||||
m[KeyDef(DEVICE_ID_PAD_0, KEYCODE_BUTTON_2)] = CTRL_CROSS;
|
m[KeyDef(DEVICE_ID_PAD_0, KEYCODE_BUTTON_2)] = CTRL_CROSS;
|
||||||
m[KeyDef(DEVICE_ID_PAD_0, KEYCODE_BUTTON_3)] = CTRL_CIRCLE;
|
m[KeyDef(DEVICE_ID_PAD_0, KEYCODE_BUTTON_3)] = CTRL_CIRCLE;
|
||||||
m[KeyDef(DEVICE_ID_PAD_0, KEYCODE_BUTTON_4)] = CTRL_SQUARE;
|
m[KeyDef(DEVICE_ID_PAD_0, KEYCODE_BUTTON_4)] = CTRL_SQUARE;
|
||||||
|
|
|
@ -199,9 +199,14 @@ void EmuScreen::onVKeyDown(int virtualKeyCode) {
|
||||||
osm.Show(s->T("standard", "Speed: standard"), 1.0);
|
osm.Show(s->T("standard", "Speed: standard"), 1.0);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
// On Android, this is take care of in update() using input.buttons & back
|
||||||
|
// Should get rid of that but not now.
|
||||||
|
#ifndef ANDROID
|
||||||
case VIRTKEY_PAUSE:
|
case VIRTKEY_PAUSE:
|
||||||
screenManager()->push(new PauseScreen());
|
screenManager()->push(new PauseScreen());
|
||||||
break;
|
break;
|
||||||
|
#endif
|
||||||
|
|
||||||
case VIRTKEY_AXIS_X_MIN:
|
case VIRTKEY_AXIS_X_MIN:
|
||||||
__CtrlSetAnalogX(-1.0f, CTRL_STICK_LEFT);
|
__CtrlSetAnalogX(-1.0f, CTRL_STICK_LEFT);
|
||||||
|
@ -379,7 +384,7 @@ void EmuScreen::update(InputState &input) {
|
||||||
// Copy over the mouse data from the real inputstate.
|
// Copy over the mouse data from the real inputstate.
|
||||||
fakeInputState.mouse_valid = input.mouse_valid;
|
fakeInputState.mouse_valid = input.mouse_valid;
|
||||||
fakeInputState.pad_last_buttons = fakeInputState.pad_buttons;
|
fakeInputState.pad_last_buttons = fakeInputState.pad_buttons;
|
||||||
fakeInputState.pad_buttons = 0;
|
fakeInputState.pad_buttons = input.pad_buttons;
|
||||||
memcpy(fakeInputState.pointer_down, input.pointer_down, sizeof(input.pointer_down));
|
memcpy(fakeInputState.pointer_down, input.pointer_down, sizeof(input.pointer_down));
|
||||||
memcpy(fakeInputState.pointer_x, input.pointer_x, sizeof(input.pointer_x));
|
memcpy(fakeInputState.pointer_x, input.pointer_x, sizeof(input.pointer_x));
|
||||||
memcpy(fakeInputState.pointer_y, input.pointer_y, sizeof(input.pointer_y));
|
memcpy(fakeInputState.pointer_y, input.pointer_y, sizeof(input.pointer_y));
|
||||||
|
|
|
@ -1583,7 +1583,6 @@ void KeyMappingScreen::render() {
|
||||||
KeyBtn(left+pad, top+hlfpad, CTRL_RIGHT); // >
|
KeyBtn(left+pad, top+hlfpad, CTRL_RIGHT); // >
|
||||||
KeyBtn(left+hlfpad, top+pad, CTRL_DOWN); // v
|
KeyBtn(left+hlfpad, top+pad, CTRL_DOWN); // v
|
||||||
|
|
||||||
#ifndef ANDROID
|
|
||||||
top = 10;
|
top = 10;
|
||||||
left = 250;
|
left = 250;
|
||||||
KeyBtn(left+hlfpad, top, VIRTKEY_AXIS_Y_MAX); // ^
|
KeyBtn(left+hlfpad, top, VIRTKEY_AXIS_Y_MAX); // ^
|
||||||
|
@ -1591,7 +1590,6 @@ void KeyMappingScreen::render() {
|
||||||
KeyBtn(left+pad, top+hlfpad, VIRTKEY_AXIS_X_MAX); // >
|
KeyBtn(left+pad, top+hlfpad, VIRTKEY_AXIS_X_MAX); // >
|
||||||
KeyBtn(left+hlfpad, top+pad, VIRTKEY_AXIS_Y_MIN); // v
|
KeyBtn(left+hlfpad, top+pad, VIRTKEY_AXIS_Y_MIN); // v
|
||||||
top = 100;
|
top = 100;
|
||||||
#endif
|
|
||||||
|
|
||||||
left = 500;
|
left = 500;
|
||||||
KeyBtn(left+hlfpad, top, CTRL_TRIANGLE); // Triangle
|
KeyBtn(left+hlfpad, top, CTRL_TRIANGLE); // Triangle
|
||||||
|
@ -1606,7 +1604,7 @@ void KeyMappingScreen::render() {
|
||||||
KeyBtn(left + pad, top, CTRL_START);
|
KeyBtn(left + pad, top, CTRL_START);
|
||||||
|
|
||||||
top = 10;
|
top = 10;
|
||||||
left = 750;
|
left = 720;
|
||||||
KeyBtn(left, top, VIRTKEY_UNTHROTTLE);
|
KeyBtn(left, top, VIRTKEY_UNTHROTTLE);
|
||||||
top += 100;
|
top += 100;
|
||||||
KeyBtn(left, top, VIRTKEY_SPEED_TOGGLE);
|
KeyBtn(left, top, VIRTKEY_SPEED_TOGGLE);
|
||||||
|
|
2
native
2
native
|
@ -1 +1 @@
|
||||||
Subproject commit 94a163ca3521ca4aa122d2685262a2dc4a432a48
|
Subproject commit f4bc31be4e08b588d102568df37cb39cd847b628
|
Loading…
Add table
Add a link
Reference in a new issue