X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Flibgame%2Fimage.h;h=9be07c5be1fe8a1bd6ab263fd19212dbce39b733;hb=HEAD;hp=2d970823451c9a5d4a587853f2739d4b3cff21bb;hpb=fe4ae2ae6dd24628a3141093d8cddea7b57812e1;p=rocksndiamonds.git diff --git a/src/libgame/image.h b/src/libgame/image.h index 2d970823..04952e74 100644 --- a/src/libgame/image.h +++ b/src/libgame/image.h @@ -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 // ============================================================================ @@ -15,7 +15,20 @@ #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 @@ -23,17 +36,22 @@ #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 : \ @@ -52,25 +70,25 @@ 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 ReCreateImageTextures(int); +void FreeAllImageTextures(void); void ScaleImage(int, int); -void FreeAllImages(); +void FreeAllImages(void); -#endif /* IMAGE_H */ +#endif // IMAGE_H