X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fscreens.c;h=425c35e86f014dfbc4c079166e7bb76c1d7ccdd7;hb=cee436b68cda95e13abc810235a11ce94bc79c95;hp=2196c6e49c7a2b1830ad19eb63854b5f4cb4d772;hpb=98cdb3fce945485772ccc49741fa29051338ce0d;p=rocksndiamonds.git diff --git a/src/screens.c b/src/screens.c index 2196c6e4..425c35e8 100644 --- a/src/screens.c +++ b/src/screens.c @@ -2409,6 +2409,8 @@ static void drawPlayerSetupInputInfo(int player_nr) DrawText(mSX+11*32, mSY+2*32, int2str(player_nr +1, 1), FONT_INPUT_1_ACTIVE); #if 1 + ClearRectangleOnBackground(drawto, mSX + 8 * TILEX, mSY + 2 * TILEY, + TILEX, TILEY); DrawGraphicThruMaskExt(drawto, mSX + 8 * TILEX, mSY + 2 * TILEY, PLAYER_NR_GFX(IMG_PLAYER_1, player_nr), 0); #else @@ -2942,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 -------------------------------------- */