Fix further Android joystick issues, including flickering pause menu. Fixes #2708

This commit is contained in:
Henrik Rydgard 2013-07-08 17:46:20 +02:00
parent 67b79a5933
commit b879f32284
4 changed files with 9 additions and 6 deletions

View file

@ -83,6 +83,7 @@ struct DefaultKeyMap {
static KeyMapping defaultPadMap()
{
KeyMapping m;
#ifdef ANDROID
m[KeyDef(DEVICE_ID_X360_0, KEYCODE_BUTTON_A)] = CTRL_CROSS;
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_MAX;
#else
KeyMapping m;
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_4)] = CTRL_SQUARE;

View file

@ -199,9 +199,14 @@ void EmuScreen::onVKeyDown(int virtualKeyCode) {
osm.Show(s->T("standard", "Speed: standard"), 1.0);
}
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:
screenManager()->push(new PauseScreen());
break;
#endif
case VIRTKEY_AXIS_X_MIN:
__CtrlSetAnalogX(-1.0f, CTRL_STICK_LEFT);
@ -379,7 +384,7 @@ void EmuScreen::update(InputState &input) {
// Copy over the mouse data from the real inputstate.
fakeInputState.mouse_valid = input.mouse_valid;
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_x, input.pointer_x, sizeof(input.pointer_x));
memcpy(fakeInputState.pointer_y, input.pointer_y, sizeof(input.pointer_y));

View file

@ -1583,7 +1583,6 @@ void KeyMappingScreen::render() {
KeyBtn(left+pad, top+hlfpad, CTRL_RIGHT); // >
KeyBtn(left+hlfpad, top+pad, CTRL_DOWN); // v
#ifndef ANDROID
top = 10;
left = 250;
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+hlfpad, top+pad, VIRTKEY_AXIS_Y_MIN); // v
top = 100;
#endif
left = 500;
KeyBtn(left+hlfpad, top, CTRL_TRIANGLE); // Triangle
@ -1606,7 +1604,7 @@ void KeyMappingScreen::render() {
KeyBtn(left + pad, top, CTRL_START);
top = 10;
left = 750;
left = 720;
KeyBtn(left, top, VIRTKEY_UNTHROTTLE);
top += 100;
KeyBtn(left, top, VIRTKEY_SPEED_TOGGLE);

2
native

@ -1 +1 @@
Subproject commit 94a163ca3521ca4aa122d2685262a2dc4a432a48
Subproject commit f4bc31be4e08b588d102568df37cb39cd847b628