-#if defined(TARGET_X11)
-
-#define MAX_COLORS 256 /* maximal number of colors for each image */
-
-typedef unsigned short Intensity; /* RGB intensity for X11 */
-
-typedef struct
-{
- Display *display; /* destination display */
- int depth; /* depth of destination drawable */
- Pixel index[MAX_COLORS]; /* array of pixel values */
- int no; /* number of pixels in the array */
- Colormap cmap; /* colormap used for image */
- Pixmap pixmap; /* final pixmap */
- Pixmap pixmap_mask; /* final pixmap of mask */
-} XImageInfo;
-
-struct RGBMap
-{
- unsigned int used; /* number of colors used in RGB map */
- Intensity red[MAX_COLORS]; /* color values in X style */
- Intensity green[MAX_COLORS];
- Intensity blue[MAX_COLORS];
- boolean color_used[MAX_COLORS]; /* flag if color cell is used */
-};
-
-typedef struct
-{
- unsigned int type; /* type of image (True-Color etc.) */
- struct RGBMap rgb; /* RGB map of image if IRGB type */
- unsigned int width; /* width of image in pixels */
- unsigned int height; /* height of image in pixels */
- unsigned int depth; /* depth of image in bits if IRGB type */
- unsigned int bytes_per_pixel;/* (depth + 7) / 8 */
- unsigned int bytes_per_row; /* width * bytes_per_pixel */
- byte *data; /* image data */
-} Image;
-
-#define IMAGETYPE_BITMAP 0 /* monochrome bitmap */
-#define IMAGETYPE_RGB 1 /* RGB image with colormap */
-#define IMAGETYPE_TRUECOLOR 2 /* true-color image */
-
-#define TRUECOLOR_RED(pixel) (((unsigned long)((pixel) & 0xff0000)) >> 16)
-#define TRUECOLOR_GREEN(pixel) (((unsigned long)((pixel) & 0xff00)) >> 8)
-#define TRUECOLOR_BLUE(pixel) ( (unsigned long)((pixel) & 0xff))
-#define RGB_TO_TRUECOLOR(r,g,b) ((((unsigned long)((r) & 0xff00)) << 8) | ((g) & 0xff00) | (((unsigned short)(b)) >> 8))
-
-Image *newImage(unsigned int, unsigned int, unsigned int);
-void freeImage(Image *);
-void freeXImage(Image *, XImageInfo *);
-int Read_PCX_to_Pixmap(Display *, Window, GC, char *, Pixmap *, Pixmap *);
-
-#endif /* TARGET_X11 */
-
-
-struct FileInfo *getCurrentImageList();
-Bitmap *getBitmapFromImageID(int);
-void InitImageList(struct ConfigInfo *, struct ConfigInfo *, int);
+// these bitmap pointers either point to allocated bitmaps or are NULL
+#define IMG_BITMAP_32x32 0
+#define IMG_BITMAP_16x16 1
+#define IMG_BITMAP_8x8 2
+#define IMG_BITMAP_4x4 3
+#define IMG_BITMAP_2x2 4
+#define IMG_BITMAP_1x1 5
+#define IMG_BITMAP_CUSTOM 6
+
+#define NUM_IMG_BITMAPS 7
+
+// this bitmap pointer points to one of the above bitmaps (do not free it)
+#define IMG_BITMAP_GAME 7
+
+#define NUM_IMG_BITMAP_POINTERS 8
+
+// this bitmap pointer points to the bitmap with default image size
+#define IMG_BITMAP_STANDARD IMG_BITMAP_32x32
+
+
+#define GET_BITMAP_ID_FROM_TILESIZE(x) ((x) == 1 ? IMG_BITMAP_1x1 : \
+ (x) == 2 ? IMG_BITMAP_2x2 : \
+ (x) == 4 ? IMG_BITMAP_4x4 : \
+ (x) == 8 ? IMG_BITMAP_8x8 : \
+ (x) == 16 ? IMG_BITMAP_16x16 : \
+ (x) == 32 ? IMG_BITMAP_32x32 : \
+ IMG_BITMAP_CUSTOM)
+
+#define GET_TILESIZE_FROM_BITMAP_ID(x) ((x) == IMG_BITMAP_1x1 ? 1 : \
+ (x) == IMG_BITMAP_2x2 ? 2 : \
+ (x) == IMG_BITMAP_4x4 ? 4 : \
+ (x) == IMG_BITMAP_8x8 ? 8 : \
+ (x) == IMG_BITMAP_16x16 ? 16 : \
+ (x) == IMG_BITMAP_32x32 ? 32 : \
+ 0)
+
+
+int getImageListSize();
+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();
+void InitImageList(struct ConfigInfo *, int, struct ConfigTypeInfo *,
+ char **, char **, char **, char **, char **);
+