X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fevents.c;h=c32f35e91356cf6800d7a9a50a56c5ab028bda74;hb=def7303f9655be9d5fba4c313c61544fa284af2d;hp=2b55372054f61a8479e66ccb911cbb7ed77dae75;hpb=90cd4dc88df3f891ecaa0ee9b9010fe432154503;p=rocksndiamonds.git diff --git a/src/events.c b/src/events.c index 2b553720..c32f35e9 100644 --- a/src/events.c +++ b/src/events.c @@ -464,7 +464,7 @@ static void SetPlayerMouseAction(int mx, int my, int button) local_player->mouse_action.ly = ly; local_player->mouse_action.button = button; - if (tape.recording && tape.pausing && tape.use_mouse) + if (tape.recording && tape.pausing && tape.use_mouse_actions) { // un-pause a paused game only if mouse button was newly pressed down if (new_button) @@ -1375,7 +1375,7 @@ static void HandleButtonOrFinger(int mx, int my, int button) { if (strEqual(setup.touch.control_type, TOUCH_CONTROL_FOLLOW_FINGER)) HandleButtonOrFinger_FollowFinger(mx, my, button); - else if (level.has_mouse_events && valid_mouse_event) + else if (game.use_mouse_actions && valid_mouse_event) SetPlayerMouseAction(mx, my, button); } } @@ -2098,43 +2098,46 @@ void HandleKey(Key key, int key_status) if (stored_player[pnr].snap_action) stored_player[pnr].action |= JOY_BUTTON_SNAP; - if (tape.single_step && tape.recording && tape.pausing && !tape.use_mouse) + if (tape.recording && tape.pausing && tape.use_key_actions) { - if (key_status == KEY_PRESSED && key_action & KEY_MOTION) + if (tape.single_step) { - TapeTogglePause(TAPE_TOGGLE_AUTOMATIC); + if (key_status == KEY_PRESSED && key_action & KEY_MOTION) + { + TapeTogglePause(TAPE_TOGGLE_AUTOMATIC); - // if snap key already pressed, keep pause mode when releasing - if (stored_player[pnr].action & KEY_BUTTON_SNAP) - has_snapped[pnr] = TRUE; - } - else if (key_status == KEY_PRESSED && key_action & KEY_BUTTON_DROP) - { - TapeTogglePause(TAPE_TOGGLE_AUTOMATIC); + // if snap key already pressed, keep pause mode when releasing + if (stored_player[pnr].action & KEY_BUTTON_SNAP) + has_snapped[pnr] = TRUE; + } + else if (key_status == KEY_PRESSED && key_action & KEY_BUTTON_DROP) + { + TapeTogglePause(TAPE_TOGGLE_AUTOMATIC); - if (level.game_engine_type == GAME_ENGINE_TYPE_SP && - getRedDiskReleaseFlag_SP() == 0) + if (level.game_engine_type == GAME_ENGINE_TYPE_SP && + getRedDiskReleaseFlag_SP() == 0) + { + // add a single inactive frame before dropping starts + stored_player[pnr].action &= ~KEY_BUTTON_DROP; + stored_player[pnr].force_dropping = TRUE; + } + } + else if (key_status == KEY_RELEASED && key_action & KEY_BUTTON_SNAP) { - // add a single inactive frame before dropping starts - stored_player[pnr].action &= ~KEY_BUTTON_DROP; - stored_player[pnr].force_dropping = TRUE; + // if snap key was pressed without direction, leave pause mode + if (!has_snapped[pnr]) + TapeTogglePause(TAPE_TOGGLE_AUTOMATIC); + + has_snapped[pnr] = FALSE; } } - else if (key_status == KEY_RELEASED && key_action & KEY_BUTTON_SNAP) + else { - // if snap key was pressed without direction, leave pause mode - if (!has_snapped[pnr]) - TapeTogglePause(TAPE_TOGGLE_AUTOMATIC); - - has_snapped[pnr] = FALSE; + // prevent key release events from un-pausing a paused game + if (key_status == KEY_PRESSED && key_action & KEY_ACTION) + TapeTogglePause(TAPE_TOGGLE_MANUAL); } } - else if (tape.recording && tape.pausing && !tape.use_mouse) - { - // prevent key release events from un-pausing a paused game - if (key_status == KEY_PRESSED && key_action & KEY_ACTION) - TapeTogglePause(TAPE_TOGGLE_MANUAL); - } // for MM style levels, handle in-game keyboard input in HandleJoystick() if (level.game_engine_type == GAME_ENGINE_TYPE_MM) @@ -2630,15 +2633,18 @@ void HandleJoystick(void) return; } - if (tape.single_step && tape.recording && tape.pausing && !tape.use_mouse) + if (tape.recording && tape.pausing && tape.use_key_actions) { - 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); + if (tape.single_step) + { + if (joystick & JOY_ACTION) + TapeTogglePause(TAPE_TOGGLE_AUTOMATIC); + } + else + { + if (joystick & JOY_ACTION) + TapeTogglePause(TAPE_TOGGLE_MANUAL); + } } if (level.game_engine_type == GAME_ENGINE_TYPE_MM)