changed setup to be initialized before executing commands
[rocksndiamonds.git] / src / init.c
index 18a5a2c16199f38dfe9521f9419fe330fb5ccddc..a760cbf51223c3c3a42d8a01bdafb2933cdfa5bf 100644 (file)
@@ -4734,6 +4734,12 @@ void Execute_Command(char *command)
       Error(ERR_EXIT, "image target directory '%s' not found or not writable",
            global.create_images_dir);
   }
+  else if (strPrefix(command, "create CE image "))
+  {
+    CreateCustomElementImages(&command[16]);
+
+    exit(0);
+  }
 
 #if DEBUG
 #if defined(TARGET_SDL2)
@@ -5014,6 +5020,9 @@ void InitGfxBuffers()
   InitGfxScrollbufferInfo(FXSIZE, FYSIZE);
   InitGfxClipRegion(FALSE, -1, -1, -1, -1);
 
+  /* required if door size definitions have changed */
+  InitGraphicCompatibilityInfo_Doors();
+
   InitGfxBuffers_EM();
   InitGfxBuffers_SP();
 }
@@ -5066,6 +5075,7 @@ void InitGfx()
 
   InitGfxBuffers();
   InitGfxCustomArtworkInfo();
+  InitGfxOtherSettings();
 
   bitmap_font_initial = LoadCustomImage(filename_font_initial);
 
@@ -5663,6 +5673,10 @@ void OpenAll()
 
   print_timestamp_time("[init global stuff]");
 
+  InitSetup();
+
+  print_timestamp_time("[init setup/config stuff (1)]");
+
   if (options.execute_command)
     Execute_Command(options.execute_command);
 
@@ -5677,10 +5691,6 @@ void OpenAll()
     exit(0);                   /* never reached, server loops forever */
   }
 
-  InitSetup();
-
-  print_timestamp_time("[init setup/config stuff (1)]");
-
   InitGameInfo();
   print_timestamp_time("[init setup/config stuff (2)]");
   InitPlayerInfo();