X-Git-Url: https://git.artsoft.org/?p=rocksndiamonds.git;a=blobdiff_plain;f=src%2Ftools.c;h=d15f800e638e3534adc600d1db7b08694efcc5a7;hp=84afef183185e8b37eed8454fb71879f9b059cbd;hb=47da774c66f9325f9d27cddb5a697514154e2de9;hpb=b62e4322b0b7d01aac9340adaddba753e04c9c51 diff --git a/src/tools.c b/src/tools.c index 84afef18..d15f800e 100644 --- a/src/tools.c +++ b/src/tools.c @@ -3759,6 +3759,10 @@ void WaitForEventToContinue() { case EVENT_BUTTONPRESS: case EVENT_KEYPRESS: +#if defined(TARGET_SDL2) + case SDL_CONTROLLERBUTTONDOWN: +#endif + case SDL_JOYBUTTONDOWN: still_wait = FALSE; break; @@ -3887,16 +3891,16 @@ static int RequestHandleEvents(unsigned int req_state) } #if defined(TARGET_SDL2) - case SDL_WINDOWEVENT: - HandleWindowEvent((WindowEvent *) &event); - break; + case SDL_WINDOWEVENT: + HandleWindowEvent((WindowEvent *) &event); + break; - case SDL_APP_WILLENTERBACKGROUND: - case SDL_APP_DIDENTERBACKGROUND: - case SDL_APP_WILLENTERFOREGROUND: - case SDL_APP_DIDENTERFOREGROUND: - HandlePauseResumeEvent((PauseResumeEvent *) &event); - break; + case SDL_APP_WILLENTERBACKGROUND: + case SDL_APP_DIDENTERBACKGROUND: + case SDL_APP_WILLENTERFOREGROUND: + case SDL_APP_DIDENTERFOREGROUND: + HandlePauseResumeEvent((PauseResumeEvent *) &event); + break; #endif case EVENT_KEYPRESS: @@ -3912,7 +3916,11 @@ static int RequestHandleEvents(unsigned int req_state) case KSYM_Return: #if defined(TARGET_SDL2) + case KSYM_Select: case KSYM_Menu: +#if defined(KSYM_Rewind) + case KSYM_Rewind: /* for Amazon Fire TV remote */ +#endif #endif result = 1; break; @@ -3920,6 +3928,9 @@ static int RequestHandleEvents(unsigned int req_state) case KSYM_Escape: #if defined(TARGET_SDL2) case KSYM_Back: +#if defined(KSYM_FastForward) + case KSYM_FastForward: /* for Amazon Fire TV remote */ +#endif #endif result = 0; break; @@ -3963,6 +3974,7 @@ static int RequestHandleEvents(unsigned int req_state) break; case SDL_CONTROLLERBUTTONUP: + HandleJoystickEvent(&event); ClearPlayerAction(); break; #endif @@ -8358,8 +8370,15 @@ void CheckSingleStepMode_EM(byte action[MAX_PLAYERS], int frame, void CheckSingleStepMode_SP(boolean murphy_is_waiting, boolean murphy_is_dropping) { + boolean murphy_starts_dropping = FALSE; + int i; + + for (i = 0; i < MAX_PLAYERS; i++) + if (stored_player[i].force_dropping) + murphy_starts_dropping = TRUE; + if (tape.single_step && tape.recording && !tape.pausing) - if (murphy_is_waiting) + if (murphy_is_waiting && !murphy_starts_dropping) TapeTogglePause(TAPE_TOGGLE_AUTOMATIC); CheckSaveEngineSnapshot_SP(murphy_is_waiting, murphy_is_dropping);