added optional button to restart game (door, panel and touch variants)
[rocksndiamonds.git] / src / libgame / image.h
index 76ff3509fa583b24f60229d15f3644cb09387d74..04952e74882e0535b766c4a6a687dd4311f53379 100644 (file)
@@ -4,7 +4,7 @@
 // (c) 1995-2014 by Artsoft Entertainment
 //                         Holger Schemel
 //                 info@artsoft.org
-//                 http://www.artsoft.org/
+//                 https://www.artsoft.org/
 // ----------------------------------------------------------------------------
 // image.h
 // ============================================================================
 #include "system.h"
 
 
-// these bitmap pointers either point to allocated bitmaps or are NULL
+// bitmap array positions for various element sizes, if available
+//
+// for any loaded image, the "standard" size (which represents the 32x32 pixel
+// size for game elements) is always defined; other bitmap sizes may be NULL
+//
+// formats from 32x32 down to 1x1 are standard bitmap sizes for game elements
+// (used in the game, in the level editor, in the level preview etc.)
+//
+// "CUSTOM" sizes for game elements (like 64x64) may be additionally created;
+// all "OTHER" image sizes are stored if different from all other bitmap sizes,
+// which may be used "as is" by global animations (as the "standard" size used
+// normally may be wrong due to being scaled up or down to a different size if
+// the same image contains game elements in a non-standard size)
+
 #define IMG_BITMAP_32x32       0
 #define IMG_BITMAP_16x16       1
 #define IMG_BITMAP_8x8         2
 #define IMG_BITMAP_2x2         4
 #define IMG_BITMAP_1x1         5
 #define IMG_BITMAP_CUSTOM      6
+#define IMG_BITMAP_OTHER       7
 
-#define NUM_IMG_BITMAPS                7
+#define NUM_IMG_BITMAPS                8
 
-// this bitmap pointer points to one of the above bitmaps (do not free it)
-#define IMG_BITMAP_GAME                7
+// these bitmap pointers point to one of the above bitmaps (do not free them)
+#define IMG_BITMAP_PTR_GAME    8
+#define IMG_BITMAP_PTR_ORIGINAL        9
 
-#define NUM_IMG_BITMAP_POINTERS        8
+#define NUM_IMG_BITMAP_POINTERS        10
 
 // this bitmap pointer points to the bitmap with default image size
 #define IMG_BITMAP_STANDARD    IMG_BITMAP_32x32
 
+// maximum number of statically and dynamically defined image files
+#define MAX_IMAGE_FILES                1000000
+
 
 #define GET_BITMAP_ID_FROM_TILESIZE(x) ((x) ==  1 ? IMG_BITMAP_1x1   : \
                                         (x) ==  2 ? IMG_BITMAP_2x2   : \
                                         0)
 
 
-int getImageListSize();
+int getImageListSize(void);
 struct FileInfo *getImageListEntryFromImageID(int);
 Bitmap **getBitmapsFromImageID(int);
 int getOriginalImageWidthFromImageID(int);
 int getOriginalImageHeightFromImageID(int);
 char *getTokenFromImageID(int);
 int getImageIDFromToken(char *);
-char *getImageConfigFilename();
-int getImageListPropertyMappingSize();
-struct PropertyMapping *getImageListPropertyMapping();
+char *getImageConfigFilename(void);
+int getImageListPropertyMappingSize(void);
+struct PropertyMapping *getImageListPropertyMapping(void);
 void InitImageList(struct ConfigInfo *, int, struct ConfigTypeInfo *,
                   char **, char **, char **, char **, char **);
 
-void ReloadCustomImages();
+void ReloadCustomImages(void);
 void CreateImageWithSmallImages(int, int, int);
 void CreateImageTextures(int);
-void FreeAllImageTextures();
+void FreeAllImageTextures(void);
 void ScaleImage(int, int);
 
-void FreeAllImages();
+void FreeAllImages(void);
 
-#endif /* IMAGE_H */
+#endif // IMAGE_H