X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fscreens.c;h=5752a49d0e2308913a6bc3971af728be68904a6c;hb=fd054e61ac10b62524efcac1e8438e432cded86a;hp=551b2a6b5e7ab1aefd0f81a2058beeafb28ada47;hpb=be789d9a341f5d7369f4aa2f74e2f85f3e004a4c;p=rocksndiamonds.git diff --git a/src/screens.c b/src/screens.c index 551b2a6b..5752a49d 100644 --- a/src/screens.c +++ b/src/screens.c @@ -1394,6 +1394,8 @@ void DrawMainMenu() /* needed if last screen was the playing screen, invoked from level editor */ if (level_editor_test_game) { + CloseDoor(DOOR_CLOSE_ALL); + SetGameStatus(GAME_MODE_EDITOR); DrawLevelEd(); @@ -1420,6 +1422,17 @@ void DrawMainMenu() /* needed if last screen (level choice) changed graphics, sounds or music */ ReloadCustomArtwork(0); + if (CheckTitleScreen(levelset_has_changed)) + { + game_status_last_screen = GAME_MODE_MAIN; + + SetGameStatus(GAME_MODE_TITLE); + + DrawTitleScreen(); + + return; + } + /* needed if different viewport properties defined for menues */ ChangeViewportPropertiesIfNeeded(); @@ -1436,17 +1449,6 @@ void DrawMainMenu() SetDrawtoField(DRAW_BACKBUFFER); - if (CheckTitleScreen(levelset_has_changed)) - { - game_status_last_screen = GAME_MODE_MAIN; - - SetGameStatus(GAME_MODE_TITLE); - - DrawTitleScreen(); - - return; - } - /* level_nr may have been set to value over handicap with level editor */ if (setup.handicap && level_nr > leveldir_current->handicap_level) level_nr = leveldir_current->handicap_level; @@ -2155,8 +2157,6 @@ static void DrawInfoScreen_Main() FreeScreenGadgets(); CreateScreenGadgets(); - CloseDoor(DOOR_CLOSE_2); - /* (needed after displaying title screens which disable auto repeat) */ KeyboardAutoRepeatOn(); @@ -2166,10 +2166,10 @@ static void DrawInfoScreen_Main() ChangeViewportPropertiesIfNeeded(); - OpenDoor(GetDoorState() | DOOR_NO_DELAY | DOOR_FORCE_REDRAW); - ClearField(); + OpenDoor(GetDoorState() | DOOR_NO_DELAY | DOOR_FORCE_REDRAW); + DrawTextSCentered(mSY - SY + 16, FONT_TITLE_1, "Info Screen"); info_info = info_info_main; @@ -2191,11 +2191,6 @@ static void DrawInfoScreen_Main() PlayMenuSound(); PlayMenuMusic(); -#if 1 - // needed after returning from title screens with different window size - OpenDoor(GetDoorState() | DOOR_NO_DELAY | DOOR_FORCE_REDRAW); -#endif - DrawMaskedBorder(fade_mask); FadeIn(fade_mask); @@ -3667,14 +3662,12 @@ static void DrawChooseTree(TreeInfo **ti_ptr) FreeScreenGadgets(); CreateScreenGadgets(); - CloseDoor(DOOR_CLOSE_2); - FadeOut(fade_mask); - OpenDoor(GetDoorState() | DOOR_NO_DELAY | DOOR_FORCE_REDRAW); - ClearField(); + OpenDoor(GetDoorState() | DOOR_NO_DELAY | DOOR_FORCE_REDRAW); + HandleChooseTree(0, 0, 0, 0, MB_MENU_INITIALIZE, ti_ptr); MapScreenTreeGadgets(*ti_ptr); @@ -4153,9 +4146,6 @@ void DrawHallOfFame(int highlight_position) { int fade_mask = REDRAW_FIELD; - /* required before door position may be changed in next step */ - CloseDoor(DOOR_CLOSE_ALL); - /* needed if different viewport properties defined for scores */ ChangeViewportPropertiesIfNeeded(); @@ -5780,17 +5770,15 @@ static void DrawSetupScreen_Generic() FreeScreenGadgets(); CreateScreenGadgets(); - CloseDoor(DOOR_CLOSE_2); - if (redraw_mask & REDRAW_ALL) redraw_all = TRUE; FadeOut(fade_mask); - OpenDoor(GetDoorState() | DOOR_NO_DELAY | DOOR_FORCE_REDRAW); - ClearField(); + OpenDoor(GetDoorState() | DOOR_NO_DELAY | DOOR_FORCE_REDRAW); + if (setup_mode == SETUP_MODE_MAIN) { setup_info = setup_info_main;