X-Git-Url: https://git.artsoft.org/?p=rocksndiamonds.git;a=blobdiff_plain;f=src%2Fscreens.c;h=4802015c8fe1519456267c76133a700c2cac65fb;hp=4f7dd6f6670a41294c810cb738d26cfd09e55930;hb=c5f13e5788a1c1733ca0c847ecf8ae8583c9641c;hpb=0b35d42d7e09d2f9ac90b57f20ac77df07841e19 diff --git a/src/screens.c b/src/screens.c index 4f7dd6f6..4802015c 100644 --- a/src/screens.c +++ b/src/screens.c @@ -1449,9 +1449,6 @@ void DrawMainMenu() return; } - /* needed if different viewport properties defined for menues */ - ChangeViewportPropertiesIfNeeded(); - if (redraw_mask & REDRAW_ALL) fade_mask = REDRAW_ALL; @@ -1460,6 +1457,9 @@ void DrawMainMenu() FadeOut(fade_mask); + /* needed if different viewport properties defined for menues */ + ChangeViewportPropertiesIfNeeded(); + SetDrawtoField(DRAW_TO_BACKBUFFER); /* level_nr may have been set to value over handicap with level editor */ @@ -1600,12 +1600,12 @@ void HandleTitleScreen(int mx, int my, int dx, int dy, int button) FadeOut(REDRAW_ALL); - /* only required to update logic for redrawing global border */ - ClearField(); - /* title screens may have different window size */ ChangeViewportPropertiesIfNeeded(); + /* only required to update logic for redrawing global border */ + ClearField(); + if (tci->is_image) DrawTitleScreenImage(tci->local_nr, tci->initial); else @@ -1851,8 +1851,6 @@ void HandleMainMenu(int mx, int my, int dx, int dy, int button) SetGameStatus(GAME_MODE_LEVELNR); - ChangeViewportPropertiesIfNeeded(); - DrawChooseLevelNr(); } else if (pos >= MAIN_CONTROL_NAME && pos <= MAIN_CONTROL_QUIT) @@ -1893,8 +1891,6 @@ void HandleMainMenu(int mx, int my, int dx, int dy, int button) if (setup.internal.choose_from_top_leveldir) gotoTopLevelDir(); - ChangeViewportPropertiesIfNeeded(); - DrawChooseLevelSet(); } } @@ -1928,8 +1924,6 @@ void HandleMainMenu(int mx, int my, int dx, int dy, int button) info_mode = INFO_MODE_MAIN; - ChangeViewportPropertiesIfNeeded(); - DrawInfoScreen(); } else if (pos == MAIN_CONTROL_GAME) @@ -1944,8 +1938,6 @@ void HandleMainMenu(int mx, int my, int dx, int dy, int button) setup_mode = SETUP_MODE_MAIN; - ChangeViewportPropertiesIfNeeded(); - DrawSetupScreen(); } else if (pos == MAIN_CONTROL_QUIT) @@ -2164,8 +2156,11 @@ static void DrawInfoScreen_Main() FadeOut(fade_mask); + /* needed if different viewport properties defined for info screen */ ChangeViewportPropertiesIfNeeded(); + SetMainBackgroundImage(IMG_BACKGROUND_INFO); + ClearField(); OpenDoor(GetDoorState() | DOOR_NO_DELAY | DOOR_FORCE_REDRAW); @@ -3501,8 +3496,6 @@ void HandleInfoScreen_LevelSet(int button) static void DrawInfoScreen() { - SetMainBackgroundImage(IMG_BACKGROUND_INFO); - if (info_mode == INFO_MODE_TITLE) DrawInfoScreen_TitleScreen(); else if (info_mode == INFO_MODE_ELEMENTS) @@ -3660,6 +3653,14 @@ static void DrawChooseTree(TreeInfo **ti_ptr) FadeOut(fade_mask); + /* needed if different viewport properties defined for choosing level (set) */ + ChangeViewportPropertiesIfNeeded(); + + if (game_status == GAME_MODE_LEVELNR) + SetMainBackgroundImage(IMG_BACKGROUND_LEVELNR); + else if (game_status == GAME_MODE_LEVELS) + SetMainBackgroundImage(IMG_BACKGROUND_LEVELS); + ClearField(); OpenDoor(GetDoorState() | DOOR_NO_DELAY | DOOR_FORCE_REDRAW); @@ -4054,8 +4055,6 @@ void DrawChooseLevelSet() { FadeSoundsAndMusic(); - SetMainBackgroundImage(IMG_BACKGROUND_LEVELS); - DrawChooseTree(&leveldir_current); PlayMenuSound(); @@ -4117,8 +4116,6 @@ void DrawChooseLevelNr() if (level_number_current == NULL) level_number_current = level_number; - SetMainBackgroundImage(IMG_BACKGROUND_LEVELNR); - DrawChooseTree(&level_number_current); PlayMenuSound(); @@ -4134,9 +4131,6 @@ void DrawHallOfFame(int highlight_position) { int fade_mask = REDRAW_FIELD; - /* needed if different viewport properties defined for scores */ - ChangeViewportPropertiesIfNeeded(); - if (CheckIfGlobalBorderHasChanged()) fade_mask = REDRAW_ALL; @@ -4158,6 +4152,9 @@ void DrawHallOfFame(int highlight_position) FadeOut(fade_mask); + /* needed if different viewport properties defined for scores */ + ChangeViewportPropertiesIfNeeded(); + PlayMenuSound(); PlayMenuMusic(); @@ -4189,9 +4186,10 @@ static void drawHallOfFameList(int first_entry, int highlight_position) int font_nr2 = (active ? FONT_TEXT_2_ACTIVE : FONT_TEXT_2); int font_nr3 = (active ? FONT_TEXT_3_ACTIVE : FONT_TEXT_3); int font_nr4 = (active ? FONT_TEXT_4_ACTIVE : FONT_TEXT_4); + int dxoff = getFontDrawOffsetX(font_nr1); int dx1 = 3 * getFontWidth(font_nr1); int dx2 = dx1 + getFontWidth(font_nr1); - int dx3 = SXSIZE - 2 * (mSX - SX) - 5 * getFontWidth(font_nr4); + int dx3 = SXSIZE - 2 * (mSX - SX + dxoff) - 5 * getFontWidth(font_nr4); int num_dots = (dx3 - dx2) / getFontWidth(font_nr3); int sy = mSY + 64 + i * 32; @@ -5772,6 +5770,11 @@ static void DrawSetupScreen_Generic() FadeOut(fade_mask); + /* needed if different viewport properties defined for setup screen */ + ChangeViewportPropertiesIfNeeded(); + + SetMainBackgroundImage(IMG_BACKGROUND_SETUP); + ClearField(); OpenDoor(GetDoorState() | DOOR_NO_DELAY | DOOR_FORCE_REDRAW); @@ -6476,8 +6479,6 @@ void DrawSetupScreen() { DeactivateJoystick(); - SetMainBackgroundImage(IMG_BACKGROUND_SETUP); - if (setup_mode == SETUP_MODE_INPUT) DrawSetupScreen_Input(); else if (setup_mode == SETUP_MODE_CHOOSE_GAME_SPEED)