X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fevents.c;h=366acd1a4fa83215d053491484e12c7006501020;hb=9c285b0e8e4d81c5559815c5f7142685ce865206;hp=19c47763e05236c491659fbd15d9b772ecf204f1;hpb=2f5368f25e34c02cb5ff7a012aa96198442231cb;p=rocksndiamonds.git diff --git a/src/events.c b/src/events.c index 19c47763..366acd1a 100644 --- a/src/events.c +++ b/src/events.c @@ -487,23 +487,60 @@ static void HandleKeysCheating(Key key) printf("::: '%s' [%d]\n", cheat_input, cheat_input_len); #endif -#if 1 - if (is_string_suffix(cheat_input, ":insert solution tape")) - InsertSolutionTape(); -#else - if (is_string_suffix(cheat_input, ":ist")) - InsertSolutionTape(); -#endif - + if (game_status == GAME_MODE_MAIN) + { + if (is_string_suffix(cheat_input, ":insert-solution-tape") || + is_string_suffix(cheat_input, ":ist")) + { + InsertSolutionTape(); + } + else if (is_string_suffix(cheat_input, ":reload-graphics") || + is_string_suffix(cheat_input, ":rg")) + { + ReloadCustomArtwork(1 << ARTWORK_TYPE_GRAPHICS); + DrawMainMenu(); + } + else if (is_string_suffix(cheat_input, ":reload-sounds") || + is_string_suffix(cheat_input, ":rs")) + { + ReloadCustomArtwork(1 << ARTWORK_TYPE_SOUNDS); + DrawMainMenu(); + } + else if (is_string_suffix(cheat_input, ":reload-music") || + is_string_suffix(cheat_input, ":rm")) + { + ReloadCustomArtwork(1 << ARTWORK_TYPE_MUSIC); + DrawMainMenu(); + } + else if (is_string_suffix(cheat_input, ":reload-artwork") || + is_string_suffix(cheat_input, ":ra")) + { + ReloadCustomArtwork(1 << ARTWORK_TYPE_GRAPHICS | + 1 << ARTWORK_TYPE_SOUNDS | + 1 << ARTWORK_TYPE_MUSIC); + DrawMainMenu(); + } + else if (is_string_suffix(cheat_input, ":dump-level") || + is_string_suffix(cheat_input, ":dl")) + { + DumpLevel(&level); + } + else if (is_string_suffix(cheat_input, ":dump-tape") || + is_string_suffix(cheat_input, ":dt")) + { + DumpTape(&tape); + } + } + else if (game_status == GAME_MODE_PLAYING) + { #ifdef DEBUG - else if (is_string_suffix(cheat_input, ":dump tape")) - DumpTape(&tape); - else if (is_string_suffix(cheat_input, ".q")) - for (i = 0; i < MAX_INVENTORY_SIZE; i++) - if (local_player->inventory_size < MAX_INVENTORY_SIZE) - local_player->inventory_element[local_player->inventory_size++] = - EL_DYNAMITE; + if (is_string_suffix(cheat_input, ".q")) + for (i = 0; i < MAX_INVENTORY_SIZE; i++) + if (local_player->inventory_size < MAX_INVENTORY_SIZE) + local_player->inventory_element[local_player->inventory_size++] = + EL_DYNAMITE; #endif + } } void HandleKey(Key key, int key_status) @@ -523,14 +560,14 @@ void HandleKey(Key key, int key_status) { &custom_key.up, DEFAULT_KEY_UP, JOY_UP }, { &custom_key.down, DEFAULT_KEY_DOWN, JOY_DOWN }, { &custom_key.snap, DEFAULT_KEY_SNAP, JOY_BUTTON_1 }, - { &custom_key.bomb, DEFAULT_KEY_BOMB, JOY_BUTTON_2 } + { &custom_key.drop, DEFAULT_KEY_DROP, JOY_BUTTON_2 } }; if (game_status == GAME_MODE_PLAYING) { /* only needed for single-step tape recording mode */ static boolean clear_button_2[MAX_PLAYERS] = { FALSE,FALSE,FALSE,FALSE }; - static boolean bomb_placed[MAX_PLAYERS] = { FALSE,FALSE,FALSE,FALSE }; + static boolean element_dropped[MAX_PLAYERS] = { FALSE,FALSE,FALSE,FALSE }; int pnr; for (pnr = 0; pnr < MAX_PLAYERS; pnr++) @@ -568,13 +605,13 @@ void HandleKey(Key key, int key_status) if (key_action & KEY_MOTION) { if (stored_player[pnr].action & KEY_BUTTON_2) - bomb_placed[pnr] = TRUE; + element_dropped[pnr] = TRUE; } } else if (key_status == KEY_RELEASED && (key_action & KEY_BUTTON_2)) { - if (!bomb_placed[pnr]) + if (!element_dropped[pnr]) { TapeTogglePause(TAPE_TOGGLE_AUTOMATIC); @@ -582,7 +619,7 @@ void HandleKey(Key key, int key_status) clear_button_2[pnr] = TRUE; } - bomb_placed[pnr] = FALSE; + element_dropped[pnr] = FALSE; } } else if (tape.recording && tape.pausing && (key_action & KEY_ACTION)) @@ -614,16 +651,35 @@ void HandleKey(Key key, int key_status) if (key_status == KEY_RELEASED) return; - if ((key == KSYM_Return || key == setup.shortcut.toggle_pause) && - game_status == GAME_MODE_PLAYING && AllPlayersGone) + if (game_status == GAME_MODE_PLAYING && AllPlayersGone && + (key == KSYM_Return || key == setup.shortcut.toggle_pause)) { CloseDoor(DOOR_CLOSE_1); game_status = GAME_MODE_MAIN; DrawMainMenu(); + + return; + } + + if (game_status == GAME_MODE_MAIN && key == setup.shortcut.toggle_pause) + { + if (setup.autorecord) + TapeStartRecording(); + +#if defined(PLATFORM_UNIX) + if (options.network) + SendToServer_StartPlaying(); + else +#endif + { + game_status = GAME_MODE_PLAYING; + StopAnimation(); + InitGame(); + } + return; } - /* special key shortcuts */ if (game_status == GAME_MODE_MAIN || game_status == GAME_MODE_PLAYING) { if (key == setup.shortcut.save_game)