X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fevents.c;h=b9b5b8621ffde3e25c1d15a06c9f6543a1782bb2;hb=d442dd6ca65b694c37fbd3c93505644fe8478263;hp=7ea4356bc8920f6afaa51f0c7bdc397ad4a64b93;hpb=ca40038f7fbffd28bd6a106715a573d2029b5a04;p=rocksndiamonds.git diff --git a/src/events.c b/src/events.c index 7ea4356b..b9b5b862 100644 --- a/src/events.c +++ b/src/events.c @@ -223,6 +223,10 @@ void HandleOtherEvents(Event *event) case SDL_JOYBUTTONUP: HandleJoystickEvent(event); break; + + case SDL_SYSWMEVENT: + HandleWindowManagerEvent(event); + break; #endif default: @@ -413,6 +417,13 @@ void HandleClientMessageEvent(ClientMessageEvent *event) CloseAllAndExit(0); } +void HandleWindowManagerEvent(Event *event) +{ +#if defined(TARGET_SDL) + SDLHandleWindowManagerEvent(event); +#endif +} + void HandleButton(int mx, int my, int button, int button_nr) { static int old_mx = 0, old_my = 0; @@ -566,6 +577,11 @@ static void HandleKeysSpecial(Key key) { DumpTape(&tape); } + else if (is_string_suffix(cheat_input, ":save-native-level") || + is_string_suffix(cheat_input, ":snl")) + { + SaveNativeLevel(&level); + } } else if (game_status == GAME_MODE_PLAYING) { @@ -717,9 +733,8 @@ void HandleKey(Key key, int key_status) return; } -#if 1 - if (game_status == GAME_MODE_PLAYING && - local_player->LevelSolved_GameEnd && +#if 0 + if (game_status == GAME_MODE_PLAYING && local_player->LevelSolved_GameEnd && (key == KSYM_Return || key == setup.shortcut.toggle_pause)) #else if (game_status == GAME_MODE_PLAYING && AllPlayersGone && @@ -734,7 +749,7 @@ void HandleKey(Key key, int key_status) if (game_status == GAME_MODE_MAIN && (key == setup.shortcut.toggle_pause || key == KSYM_space)) { - StartGameActions(options.network, setup.autorecord, NEW_RANDOMIZE); + StartGameActions(options.network, setup.autorecord, level.random_seed); return; } @@ -747,6 +762,8 @@ void HandleKey(Key key, int key_status) TapeQuickLoad(); else if (key == setup.shortcut.toggle_pause) TapeTogglePause(TAPE_TOGGLE_MANUAL); + + HandleTapeButtonKeys(key); } if (game_status == GAME_MODE_PLAYING && !network_playing) @@ -812,6 +829,9 @@ void HandleKey(Key key, int key_status) break; case KSYM_Escape: + if (game_status != GAME_MODE_MAIN) + FadeSkipNextFadeIn(); + if (game_status == GAME_MODE_TITLE) HandleTitleScreen(0, 0, 0, 0, MB_MENU_LEAVE); else if (game_status == GAME_MODE_LEVELS) @@ -1068,7 +1088,7 @@ void HandleJoystick() if (tape.playing || keyboard) newbutton = ((joy & JOY_BUTTON) != 0); -#if 1 +#if 0 if (local_player->LevelSolved_GameEnd && newbutton) #else if (AllPlayersGone && newbutton)