fixed bug with potentially suppressed exit error message on startup
[rocksndiamonds.git] / src / init.c
index 401e59ea370e7c40f7dcde5a6536ace53ce10a04..5cd9f8d59e8b2ea63c28d1b90e2edf4d591ac6c0 100644 (file)
@@ -1055,11 +1055,17 @@ static void set_graphic_parameters_ext(int graphic, int *parameter,
     g->height = get_scaled_graphic_height(graphic);
   }
 
+  /* optional width and height of each animation frame */
+  if (parameter[GFX_ARG_WIDTH] != ARG_UNDEFINED_VALUE)
+    g->width = parameter[GFX_ARG_WIDTH];
+  if (parameter[GFX_ARG_HEIGHT] != ARG_UNDEFINED_VALUE)
+    g->height = parameter[GFX_ARG_HEIGHT];
+
   /* optional x and y tile position of animation frame sequence */
   if (parameter[GFX_ARG_XPOS] != ARG_UNDEFINED_VALUE)
-    g->src_x = parameter[GFX_ARG_XPOS] * TILEX;
+    g->src_x = parameter[GFX_ARG_XPOS] * g->width;
   if (parameter[GFX_ARG_YPOS] != ARG_UNDEFINED_VALUE)
-    g->src_y = parameter[GFX_ARG_YPOS] * TILEY;
+    g->src_y = parameter[GFX_ARG_YPOS] * g->height;
 
   /* optional x and y pixel position of animation frame sequence */
   if (parameter[GFX_ARG_X] != ARG_UNDEFINED_VALUE)
@@ -1067,12 +1073,6 @@ static void set_graphic_parameters_ext(int graphic, int *parameter,
   if (parameter[GFX_ARG_Y] != ARG_UNDEFINED_VALUE)
     g->src_y = parameter[GFX_ARG_Y];
 
-  /* optional width and height of each animation frame */
-  if (parameter[GFX_ARG_WIDTH] != ARG_UNDEFINED_VALUE)
-    g->width = parameter[GFX_ARG_WIDTH];
-  if (parameter[GFX_ARG_HEIGHT] != ARG_UNDEFINED_VALUE)
-    g->height = parameter[GFX_ARG_HEIGHT];
-
   if (src_bitmap)
   {
     if (g->width <= 0)
@@ -5017,12 +5017,11 @@ void InitGfx()
 
   font_height = getFontHeight(FC_RED);
 
-  DrawInitTextAlways(getProgramInitString(), 20, FC_YELLOW);
-  DrawInitTextAlways(PROGRAM_COPYRIGHT_STRING, 50, FC_RED);
-  DrawInitTextAlways(PROGRAM_WEBSITE_STRING, WIN_YSIZE - 20 - font_height,
-                    FC_RED);
+  DrawInitText(getProgramInitString(), 20, FC_YELLOW);
+  DrawInitText(PROGRAM_COPYRIGHT_STRING, 50, FC_RED);
+  DrawInitText(PROGRAM_WEBSITE_STRING, WIN_YSIZE - 20 - font_height, FC_RED);
 
-  DrawInitTextAlways("Loading graphics", 120, FC_GREEN);
+  DrawInitText("Loading graphics", 120, FC_GREEN);
 
   /* initialize busy animation with default values */
   int parameter[NUM_GFX_ARGS];
@@ -5577,6 +5576,9 @@ void DisplayExitMessage(char *format, va_list ap)
 
   redraw_mask = REDRAW_ALL;
 
+  /* force drawing exit message even if screen updates are currently limited */
+  LimitScreenUpdates(FALSE);
+
   BackToFront();
 
   /* deactivate toons on error message screen */