X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fevents.c;h=3d1163638a24738f20af985e658300d3e8eedd10;hb=e82d8640dfa77aa8fc3cee9d4385dd9419d1bb51;hp=ea5312aecb1efbe79e8239e20ab69115c36a74e4;hpb=0ac301d6e3c5551a5ff66baaaa8ce867bb1aceb1;p=rocksndiamonds.git diff --git a/src/events.c b/src/events.c index ea5312ae..3d116363 100644 --- a/src/events.c +++ b/src/events.c @@ -403,6 +403,9 @@ void SetPlayerMouseAction(int mx, int my, int button) int ly = getLevelFromScreenY(my); int new_button = (!local_player->mouse_action.button && button); + if (local_player->mouse_action.button_hint) + button = local_player->mouse_action.button_hint; + ClearPlayerMouseAction(); if (!IN_GFX_FIELD_PLAY(mx, my) || !IN_LEV_FIELD(lx, ly)) @@ -960,7 +963,16 @@ void HandleFingerEvent(FingerEvent *event) return; if (level.game_engine_type == GAME_ENGINE_TYPE_MM) + { + if (strEqual(setup.touch.control_type, TOUCH_CONTROL_OFF)) + local_player->mouse_action.button_hint = + (event->type == EVENT_FINGERRELEASE ? MB_NOT_PRESSED : + event->x < 0.5 ? MB_LEFTBUTTON : + event->x > 0.5 ? MB_RIGHTBUTTON : + MB_NOT_PRESSED); + return; + } if (strEqual(setup.touch.control_type, TOUCH_CONTROL_VIRTUAL_BUTTONS)) HandleFingerEvent_VirtualButtons(event); @@ -2343,7 +2355,12 @@ void HandleJoystick() return; } - if (tape.recording && tape.pausing && !tape.use_mouse) + if (tape.single_step && tape.recording && tape.pausing && !tape.use_mouse) + { + if (joystick & JOY_ACTION) + TapeTogglePause(TAPE_TOGGLE_AUTOMATIC); + } + else if (tape.recording && tape.pausing && !tape.use_mouse) { if (joystick & JOY_ACTION) TapeTogglePause(TAPE_TOGGLE_MANUAL);