boolean emulate_bd = TRUE; /* unless non-BOULDERDASH elements found */
boolean emulate_sb = TRUE; /* unless non-SOKOBAN elements found */
boolean emulate_sp = TRUE; /* unless non-SUPAPLEX elements found */
+ boolean do_fading = (game_status == GAME_MODE_MAIN);
int i, j, x, y;
+ game_status = GAME_MODE_PLAYING;
+
InitGameEngine();
/* don't play tapes over network */
local_player->jy - MIDPOSY);
}
+ StopAnimation();
+
+ if (do_fading)
+ FadeOutField(TITLE_SCREEN_FADE_DELAY, TITLE_SCREEN_POST_DELAY);
+
if (!game.restart_level)
CloseDoor(DOOR_CLOSE_1);
BlitBitmap(fieldbuffer, backbuffer, FX, FY, SXSIZE, SYSIZE, SX, SY);
redraw_mask |= REDRAW_FROM_BACKBUFFER;
+
+#if 0
FadeToFront();
+#endif
}
/* !!! FIX THIS (END) !!! */
+ if (do_fading)
+ FadeInField(TITLE_SCREEN_FADE_DELAY);
+
if (!game.restart_level)
{
/* copy default game door content to main double buffer */
if (!local_player->LevelSolved_SaveScore)
{
+ FadeOutField(TITLE_SCREEN_FADE_DELAY, TITLE_SCREEN_POST_DELAY);
+
game_status = GAME_MODE_MAIN;
- DrawMainMenu();
+ DrawMainMenuExt(TITLE_SCREEN_FADE_DELAY, REDRAW_FIELD);
return;
}
}
else
{
+ FadeOutField(TITLE_SCREEN_FADE_DELAY, TITLE_SCREEN_POST_DELAY);
+
game_status = GAME_MODE_MAIN;
if (raise_level)
TapeErase();
}
- DrawMainMenu();
+ DrawMainMenuExt(TITLE_SCREEN_FADE_DELAY, REDRAW_FIELD);
}
local_player->LevelSolved_SaveScore = FALSE;
}
#endif
- StopAnimation();
-
- game_status = GAME_MODE_PLAYING;
-
InitGame();
}
else
#endif
{
- game_status = GAME_MODE_MAIN;
- DrawMainMenu();
+ if (!ask_if_really_quit || level_editor_test_game)
+ {
+ game_status = GAME_MODE_MAIN;
+
+ DrawMainMenu();
+ }
+ else
+ {
+ FadeOutField(TITLE_SCREEN_FADE_DELAY, TITLE_SCREEN_POST_DELAY);
+
+ game_status = GAME_MODE_MAIN;
+
+ DrawMainMenuExt(TITLE_SCREEN_FADE_DELAY, REDRAW_FIELD);
+ }
}
}
else