X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fscreens.c;h=30214464c1bd46d791915af73b9c195f3fbd0481;hb=6b748c845ff51daac061662d016447e122cf6fb3;hp=c51e140fef17d3e808560ce55f120383a39e3c65;hpb=9eacc6f4e47b05a7c4942f205faac1d62b0fc289;p=rocksndiamonds.git diff --git a/src/screens.c b/src/screens.c index c51e140f..30214464 100644 --- a/src/screens.c +++ b/src/screens.c @@ -1252,14 +1252,6 @@ void DrawHeadline() setup.internal.program_copyright); } -int effectiveGameStatus() -{ - if (game_status == GAME_MODE_INFO && info_mode == INFO_MODE_TITLE) - return GAME_MODE_TITLE; - - return game_status; -} - void DrawTitleScreenImage(int nr, boolean initial) { int graphic = getTitleScreenGraphic(nr, initial); @@ -1316,6 +1308,14 @@ void DrawTitleScreenMessage(int nr, boolean initial) /* force TITLE font on title message screen */ game_status = getTitleMessageGameMode(initial); + /* if chars *and* width set to "-1", automatically determine width */ + if (tmi->chars == -1 && tmi->width == -1) + tmi->width = viewport.window[game_status].width; + + /* if lines *and* height set to "-1", automatically determine height */ + if (tmi->lines == -1 && tmi->height == -1) + tmi->height = viewport.window[game_status].height; + /* if chars set to "-1", automatically determine by text and font width */ if (tmi->chars == -1) tmi->chars = tmi->width / getFontWidth(tmi->font); @@ -1328,6 +1328,14 @@ void DrawTitleScreenMessage(int nr, boolean initial) else tmi->height = tmi->lines * getFontHeight(tmi->font); + /* if x set to "-1", automatically determine by width and alignment */ + if (tmi->x == -1) + tmi->x = -1 * ALIGNED_XPOS(0, tmi->width, tmi->align); + + /* if y set to "-1", automatically determine by height and alignment */ + if (tmi->y == -1) + tmi->y = -1 * ALIGNED_YPOS(0, tmi->height, tmi->valign); + SetDrawBackgroundMask(REDRAW_ALL); SetWindowBackgroundImage(getTitleBackground(nr, initial, FALSE)); @@ -1576,6 +1584,8 @@ void HandleTitleScreen(int mx, int my, int dx, int dy, int button) ClearField(); } + ChangeViewportPropertiesIfNeeded(); + if (tci->is_image) DrawTitleScreenImage(tci->local_nr, tci->initial); else @@ -2166,6 +2176,8 @@ static void DrawInfoScreen_Main() FadeOut(fade_mask); + ChangeViewportPropertiesIfNeeded(); + OpenDoor(GetDoorState() | DOOR_NO_DELAY | DOOR_FORCE_REDRAW); ClearField();