X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fgame.c;h=703cfa54c6a07d17cc1830cd5e4d867c385411fd;hb=2884cb273130660d64871bef2845525ef0bfc034;hp=aa9fa6f4d27b3e07483d5a6cc55c414ecbe872d3;hpb=f7704e2d22e9499efe6380e0c916c2bd4918e4be;p=rocksndiamonds.git diff --git a/src/game.c b/src/game.c index aa9fa6f4..703cfa54 100644 --- a/src/game.c +++ b/src/game.c @@ -2634,12 +2634,12 @@ void InitGame() StopAnimation(); - if (do_fading) - FadeOutField(TITLE_SCREEN_FADE_DELAY, TITLE_SCREEN_POST_DELAY); - if (!game.restart_level) CloseDoor(DOOR_CLOSE_1); + if (do_fading) + FadeOut(REDRAW_FIELD); + /* !!! FIX THIS (START) !!! */ if (level.game_engine_type == GAME_ENGINE_TYPE_EM) { @@ -2666,7 +2666,7 @@ void InitGame() /* !!! FIX THIS (END) !!! */ if (do_fading) - FadeInField(TITLE_SCREEN_FADE_DELAY); + FadeIn(REDRAW_FIELD); if (!game.restart_level) { @@ -3059,11 +3059,11 @@ void GameEnd() if (!local_player->LevelSolved_SaveScore) { - FadeOutField(TITLE_SCREEN_FADE_DELAY, TITLE_SCREEN_POST_DELAY); + FadeOut(REDRAW_FIELD); game_status = GAME_MODE_MAIN; - DrawMainMenuExt(TITLE_SCREEN_FADE_DELAY, REDRAW_FIELD); + DrawAndFadeInMainMenu(REDRAW_FIELD); return; } @@ -3093,7 +3093,7 @@ void GameEnd() } else { - FadeOutField(TITLE_SCREEN_FADE_DELAY, TITLE_SCREEN_POST_DELAY); + FadeOut(REDRAW_FIELD); game_status = GAME_MODE_MAIN; @@ -3103,7 +3103,7 @@ void GameEnd() TapeErase(); } - DrawMainMenuExt(TITLE_SCREEN_FADE_DELAY, REDRAW_FIELD); + DrawAndFadeInMainMenu(REDRAW_FIELD); } local_player->LevelSolved_SaveScore = FALSE; @@ -9924,8 +9924,26 @@ void GameActions() network_player_action_received = FALSE; #endif + /* when playing tape, read previously recorded player input from tape data */ recorded_player_action = (tape.playing ? TapePlayAction() : NULL); +#if 1 + /* TapePlayAction() may return NULL when toggling to "pause before death" */ + if (tape.pausing) + return; +#endif + +#if 0 + if (tape.playing) + { + if (recorded_player_action == NULL) + printf("!!! THIS SHOULD NOT HAPPEN !!!\n"); + else + printf("::: %05d: TAPE PLAYING: %08x\n", + FrameCounter, recorded_player_action[0]); + } +#endif + if (tape.set_centered_player) { game.centered_player_nr_next = tape.centered_player_nr_next; @@ -9972,6 +9990,12 @@ void GameActions() if (tape.recording) TapeRecordAction(tape_action); +#if 0 + if (tape.recording) + printf("::: %05d: TAPE RECORDING: %08x\n", + FrameCounter, tape_action[0]); +#endif + if (level.game_engine_type == GAME_ENGINE_TYPE_EM) { GameActions_EM_Main(); @@ -13434,11 +13458,11 @@ void RequestQuitGame(boolean ask_if_really_quit) } else { - FadeOutField(TITLE_SCREEN_FADE_DELAY, TITLE_SCREEN_POST_DELAY); + FadeOut(REDRAW_FIELD); game_status = GAME_MODE_MAIN; - DrawMainMenuExt(TITLE_SCREEN_FADE_DELAY, REDRAW_FIELD); + DrawAndFadeInMainMenu(REDRAW_FIELD); } } }