// (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);
void ScaleImage(int, int);
-void FreeAllImages();
+void FreeAllImages(void);
-#endif /* IMAGE_H */
+#endif // IMAGE_H