updated special function to generate custom element graphics
authorHolger Schemel <info@artsoft.org>
Mon, 2 Mar 2015 12:40:34 +0000 (13:40 +0100)
committerHolger Schemel <info@artsoft.org>
Mon, 2 Mar 2015 12:40:34 +0000 (13:40 +0100)
src/files.c
src/files.h
src/init.c
src/main.c

index d79e5f55ca3587531794809b82adad7e8f155b85..21b2472d4a41babf18cd7f9508607daa715ce573 100644 (file)
@@ -9772,24 +9772,24 @@ void CreateLevelSketchImages()
 /* create and save images for custom and group elements (raw BMP format)     */
 /* ------------------------------------------------------------------------- */
 
-void CreateCustomElementImages()
+void CreateCustomElementImages(char *filename)
 {
 #if defined(TARGET_SDL)
-  char *filename = "graphics.classic/RocksCE.bmp";
+  char *src_basename = "RocksCE.tmpl.ilbm";
   Bitmap *bitmap;
   Bitmap *src_bitmap;
-  int dummy_graphic = IMG_CUSTOM_99;
   int yoffset_ce = 0;
   int yoffset_ge = (TILEY * NUM_CUSTOM_ELEMENTS / 16);
-  int src_x, src_y;
   int i;
 
+  SDLInitVideoDisplay();
+
+  src_bitmap = LoadCustomImage(src_basename);
+
   bitmap = CreateBitmap(TILEX * 16 * 2,
                        TILEY * (NUM_CUSTOM_ELEMENTS + NUM_GROUP_ELEMENTS) / 16,
                        DEFAULT_DEPTH);
 
-  getFixedGraphicSource(dummy_graphic, 0, &src_bitmap, &src_x, &src_y);
-
   for (i = 0; i < NUM_CUSTOM_ELEMENTS; i++)
   {
     int x = i % 16;
index c7f72437b7b99bfe4ac04504e6061e3af697abab..3041cc836b1d54045950e12a2b1ac1346c2ef9db 100644 (file)
@@ -70,5 +70,6 @@ void LoadHelpTextInfo();
 
 void ConvertLevels();
 void CreateLevelSketchImages();
+void CreateCustomElementImages(char *);
 
 #endif /* FILES_H */
index e4b15279a401e5024b84b343b1fb16613e1f0f06..38dd52b693e57de59e6d1b043d2b88c4431674d9 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)
index 9bcc40a88b4741993f7e3f795491ae6f4f74f804..836e0594df2d850731e86e68f239ec8b534f17c6 100644 (file)
@@ -5580,6 +5580,7 @@ static void print_usage()
         "  \"autoplay LEVELDIR [NR ...]\"     play level tapes for LEVELDIR\n"
         "  \"convert LEVELDIR [NR]\"          convert levels in LEVELDIR\n"
         "  \"create images DIRECTORY\"        write BMP images to DIRECTORY\n"
+        "  \"create CE image FILE\"           write BMP image to FILE\n"
         "\n",
         program.command_basename);
 }