X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Fgame.c;h=593a8bac409ac4b4a1f45cf0fc957ffe0d49ec56;hb=884012f34f9f3c22bf75d1468e4ed57d7795a24b;hp=297efe8502254ba09972f195dbea379219e08713;hpb=74ed6f367314f4b4f373b45f82cedd04595a2608;p=rocksndiamonds.git diff --git a/src/game.c b/src/game.c index 297efe85..593a8bac 100644 --- a/src/game.c +++ b/src/game.c @@ -87,16 +87,10 @@ #define EX_TYPE_DYNA (1 << 4) #define EX_TYPE_SINGLE_TILE (EX_TYPE_CENTER | EX_TYPE_BORDER) -#if 1 #define PANEL_OFF() (local_player->LevelSolved_PanelOff) #define PANEL_DEACTIVATED(p) ((p)->x < 0 || (p)->y < 0 || PANEL_OFF()) -#define PANEL_XPOS(p) (DX + ALIGNED_MENU_XPOS(p)) -#define PANEL_YPOS(p) (DY + ALIGNED_MENU_YPOS(p)) -#else -#define PANEL_DEACTIVATED(p) ((p).x < 0 || (p).y < 0) -#define PANEL_XPOS(p) (ALIGNED_XPOS((p).x, (p).width, (p).align)) -#define PANEL_YPOS(p) ((p).y) -#endif +#define PANEL_XPOS(p) (DX + ALIGNED_TEXT_XPOS(p)) +#define PANEL_YPOS(p) (DY + ALIGNED_TEXT_YPOS(p)) /* special positions in the game control window (relative to control window) */ #define XX_LEVEL1 (PANEL_XPOS(game.panel.level)) @@ -3161,8 +3155,20 @@ void InitGame() if (!game.restart_level) CloseDoor(DOOR_CLOSE_1); + if (level_editor_test_game) + fading = fading_none; + else + fading = menu.destination; + +#if 1 + if (fading.anim_mode == ANIM_CROSSFADE) + FadeCrossSaveBackbuffer(); + else + FadeOut(REDRAW_FIELD); +#else if (do_fading) FadeOut(REDRAW_FIELD); +#endif /* !!! FIX THIS (START) !!! */ if (level.game_engine_type == GAME_ENGINE_TYPE_EM) @@ -3189,10 +3195,17 @@ void InitGame() } /* !!! FIX THIS (END) !!! */ +#if 1 + if (fading.anim_mode == ANIM_CROSSFADE) + FadeCross(redraw_mask); + else + FadeIn(redraw_mask); +#else if (do_fading) FadeIn(REDRAW_FIELD); BackToFront(); +#endif if (!game.restart_level) { @@ -3643,14 +3656,25 @@ void GameEnd() { game_status = GAME_MODE_MAIN; +#if 1 + DrawAndFadeInMainMenu(REDRAW_FIELD); +#else DrawMainMenu(); +#endif return; } if (!local_player->LevelSolved_SaveScore) { +#if 1 + if (fading.anim_mode == ANIM_CROSSFADE) + FadeCrossSaveBackbuffer(); + else + FadeOut(REDRAW_FIELD); +#else FadeOut(REDRAW_FIELD); +#endif game_status = GAME_MODE_MAIN; @@ -3682,7 +3706,14 @@ void GameEnd() } else { +#if 1 + if (fading.anim_mode == ANIM_CROSSFADE) + FadeCrossSaveBackbuffer(); + else + FadeOut(REDRAW_FIELD); +#else FadeOut(REDRAW_FIELD); +#endif game_status = GAME_MODE_MAIN; @@ -14099,13 +14130,32 @@ void RequestQuitGameExt(boolean skip_request, boolean quick_quit, char *message) { if (quick_quit) { +#if 1 + fading = fading_none; +#else + OpenDoor(DOOR_CLOSE_1); +#endif + game_status = GAME_MODE_MAIN; +#if 1 + DrawAndFadeInMainMenu(REDRAW_FIELD); +#else DrawMainMenu(); +#endif } else { +#if 0 +#if 1 + if (fading.anim_mode == ANIM_CROSSFADE) + FadeCrossSaveBackbuffer(); + else + FadeOut(REDRAW_FIELD); +#else FadeOut(REDRAW_FIELD); +#endif +#endif game_status = GAME_MODE_MAIN;