improved error messages when loading artwork fails
[rocksndiamonds.git] / src / init.c
index c30548161e2408565ff3ef6155217c6582c5f345..d206859a5f6b0f962faf723a636cc8ed20c3d885 100644 (file)
@@ -151,7 +151,7 @@ void InitGadgets()
   gadgets_initialized = TRUE;
 }
 
-inline void InitElementSmallImagesScaledUp(int graphic)
+inline static void InitElementSmallImagesScaledUp(int graphic)
 {
   struct GraphicInfo *g = &graphic_info[graphic];
 
@@ -4678,10 +4678,16 @@ void Execute_Command(char *command)
 
     exit(0);
   }
-  else if (strPrefix(command, "autoplay "))
+  else if (strPrefix(command, "autotest ") ||
+          strPrefix(command, "autoplay ") ||
+          strPrefix(command, "autoffwd "))
   {
     char *str_ptr = getStringCopy(&command[9]);        /* read command parameters */
 
+    global.autoplay_mode = (strPrefix(command, "autotest") ? AUTOPLAY_TEST :
+                           strPrefix(command, "autoplay") ? AUTOPLAY_PLAY :
+                           strPrefix(command, "autoffwd") ? AUTOPLAY_FFWD : 0);
+
     while (*str_ptr != '\0')                   /* continue parsing string */
     {
       /* cut leading whitespace from string, replace it by string terminator */
@@ -5202,26 +5208,6 @@ void InitGfx()
   init_last = init;
 }
 
-void RedrawGlobalBorder()
-{
-  int global_border_graphic =
-    (game_status == GAME_MODE_MAIN ? IMG_GLOBAL_BORDER_MAIN :
-     game_status == GAME_MODE_SCORES ? IMG_GLOBAL_BORDER_SCORES :
-     game_status == GAME_MODE_EDITOR ? IMG_GLOBAL_BORDER_EDITOR :
-     game_status == GAME_MODE_PLAYING ? IMG_GLOBAL_BORDER_PLAYING :
-     IMG_GLOBAL_BORDER);
-
-  Bitmap *global_border_bitmap =
-    (graphic_info[global_border_graphic].bitmap ?
-     graphic_info[global_border_graphic].bitmap :
-     graphic_info[IMG_GLOBAL_BORDER].bitmap);
-
-  BlitBitmap(global_border_bitmap, backbuffer,
-            0, 0, WIN_XSIZE, WIN_YSIZE, 0, 0);
-
-  redraw_mask = REDRAW_ALL;
-}
-
 void InitGfxBackground()
 {
   fieldbuffer = bitmap_db_field;
@@ -5237,6 +5223,15 @@ static void InitLevelInfo()
   LoadLevelInfo();                             /* global level info */
   LoadLevelSetup_LastSeries();                 /* last played series info */
   LoadLevelSetup_SeriesInfo();                 /* last played level info */
+
+  if (global.autoplay_leveldir &&
+      global.autoplay_mode != AUTOPLAY_TEST)
+  {
+    leveldir_current = getTreeInfoFromIdentifier(leveldir_first,
+                                                 global.autoplay_leveldir);
+    if (leveldir_current == NULL)
+      leveldir_current = getFirstValidTreeInfoEntry(leveldir_first);
+  }
 }
 
 static void InitLevelArtworkInfo()