X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fscreens.c;h=425c35e86f014dfbc4c079166e7bb76c1d7ccdd7;hb=cee436b68cda95e13abc810235a11ce94bc79c95;hp=12901f035f76b63fdb3e47d1217f3da7afe9e6bd;hpb=0cb7e467765fe1ac2797cb58c069fcca56d43877;p=rocksndiamonds.git diff --git a/src/screens.c b/src/screens.c index 12901f03..425c35e8 100644 --- a/src/screens.c +++ b/src/screens.c @@ -2944,17 +2944,35 @@ void HandleGameActions() if (game_status != GAME_MODE_PLAYING) return; - if (local_player->LevelSolved) - GameWon(); + /* !!! FIX THIS (START) !!! */ + if (level.file_info.type == LEVEL_FILE_TYPE_EM) + { + byte summarized_player_action = 0; + int i; - if (AllPlayersGone && !TAPE_IS_STOPPED(tape)) - TapeStop(); + for (i = 0; i < MAX_PLAYERS; i++) + summarized_player_action |= stored_player[i].action; - GameActions(); - BackToFront(); + if (em_main_handle_game(summarized_player_action) != 0) + { + game_status = GAME_MODE_MAIN; + DrawMainMenu(); + } + } + else + { + if (local_player->LevelSolved) + GameWon(); + + if (AllPlayersGone && !TAPE_IS_STOPPED(tape)) + TapeStop(); - if (tape.auto_play && !tape.playing) - AutoPlayTape(); /* continue automatically playing next tape */ + GameActions(); + BackToFront(); + + if (tape.auto_play && !tape.playing) + AutoPlayTape(); /* continue automatically playing next tape */ + } } /* ---------- new screen button stuff -------------------------------------- */