// values for drawing stages for global animations
#define DRAW_GLOBAL_ANIM_STAGE_1 1
#define DRAW_GLOBAL_ANIM_STAGE_2 2
+#define DRAW_GLOBAL_ANIM_STAGE_3 3
// values for drawing target (various functions)
#define DRAW_TO_BACKBUFFER 0
#define ANIM_DEFAULT ANIM_LOOP
+// values for special global animation events
+#define ANIM_EVENT_UNDEFINED -1
+#define ANIM_EVENT_NONE 0
+#define ANIM_EVENT_SELF (1 << 0)
+#define ANIM_EVENT_ANY (1 << 1)
+#define ANIM_EVENT_CLICK (1 << 2)
+#define ANIM_EVENT_INIT (1 << 3)
+#define ANIM_EVENT_START (1 << 4)
+#define ANIM_EVENT_END (1 << 5)
+#define ANIM_EVENT_POST (1 << 6)
+#define ANIM_EVENT_UNCLICK_ANY (1 << 7)
+#define ANIM_EVENT_CE_CHANGE (1 << 8)
+
+// event mask: bits 0-15
+// CE number: bits 16-23
+// anim number: bits 16-23
+// page number: bits 24-31
+// part number: bits 24-31
+#define ANIM_EVENT_CE_BIT 16
+#define ANIM_EVENT_ANIM_BIT 16
+#define ANIM_EVENT_PAGE_BIT 24
+#define ANIM_EVENT_PART_BIT 24
+
+#define ANIM_EVENT_CE_MASK (0xff << ANIM_EVENT_CE_BIT)
+#define ANIM_EVENT_ANIM_MASK (0xff << ANIM_EVENT_ANIM_BIT)
+#define ANIM_EVENT_PAGE_MASK (0xff << ANIM_EVENT_PAGE_BIT)
+#define ANIM_EVENT_PART_MASK (0xff << ANIM_EVENT_PART_BIT)
+
+#define ANIM_EVENT_DEFAULT ANIM_EVENT_NONE
+
+// values for special global animation event actions
+#define ANIM_EVENT_ACTION_NONE -1
+
+// values for special global animation delay types
+#define ANIM_DELAY_UNDEFINED -1
+#define ANIM_DELAY_NONE 0
+#define ANIM_DELAY_INIT 1
+#define ANIM_DELAY_ANIM 2
+#define ANIM_DELAY_POST 3
+
+// values for special global animation delay actions
+#define ANIM_DELAY_ACTION_NONE -1
+
// values for special drawing styles and event handling
#define STYLE_NONE 0
#define STYLE_DEFAULT STYLE_NONE
-// values for special global animation delay types
-#define ANIM_DELAY_UNDEFINED -1
-#define ANIM_DELAY_NONE 0
-#define ANIM_DELAY_INIT 1
-#define ANIM_DELAY_ANIM 2
-#define ANIM_DELAY_POST 3
-
-// values for special global animation delay actions
-#define ANIM_DELAY_ACTION_NONE -1
-
-// values for special global animation events
-#define ANIM_EVENT_UNDEFINED -1
-#define ANIM_EVENT_NONE 0
-#define ANIM_EVENT_SELF (1 << 16)
-#define ANIM_EVENT_ANY (1 << 17)
-#define ANIM_EVENT_CLICK (1 << 18)
-#define ANIM_EVENT_INIT (1 << 19)
-#define ANIM_EVENT_START (1 << 20)
-#define ANIM_EVENT_END (1 << 21)
-#define ANIM_EVENT_POST (1 << 22)
-#define ANIM_EVENT_UNCLICK_ANY (1 << 23)
-
-// anim number: bits 0-7
-// part number: bits 8-15
-#define ANIM_EVENT_ANIM_BIT 0
-#define ANIM_EVENT_PART_BIT 8
-
-#define ANIM_EVENT_ANIM_MASK (0xff << ANIM_EVENT_ANIM_BIT)
-#define ANIM_EVENT_PART_MASK (0xff << ANIM_EVENT_PART_BIT)
-
-#define ANIM_EVENT_DEFAULT ANIM_EVENT_NONE
-
-// values for special global animation event actions
-#define ANIM_EVENT_ACTION_NONE -1
-
// values for fade mode
#define FADE_TYPE_NONE 0
#define FADE_TYPE_FADE_IN (1 << 0)
#define VALIGN_MIDDLE (1 << 2)
#define VALIGN_DEFAULT VALIGN_TOP
-#define ALIGNED_XPOS(x,w,a) ((a) == ALIGN_CENTER ? (x) - (w) / 2 : \
+#define ALIGNED_XPOS(x, w, a) ((a) == ALIGN_CENTER ? (x) - (w) / 2 : \
(a) == ALIGN_RIGHT ? (x) - (w) : (x))
-#define ALIGNED_YPOS(y,h,v) ((v) == VALIGN_MIDDLE ? (y) - (h) / 2 : \
+#define ALIGNED_YPOS(y, h, v) ((v) == VALIGN_MIDDLE ? (y) - (h) / 2 : \
(v) == VALIGN_BOTTOM ? (y) - (h) : (y))
#define ALIGNED_TEXT_XPOS(p) ALIGNED_XPOS((p)->x, (p)->width, (p)->align)
#define ALIGNED_TEXT_YPOS(p) ALIGNED_YPOS((p)->y, (p)->height, (p)->valign)
JOY_NO_ACTION)
// maximum number of level sets in the level set history
-#define MAX_LEVELDIR_HISTORY 12
+#define MAX_LEVELDIR_HISTORY 100
// default name for empty highscore entry
#define EMPTY_PLAYER_NAME "no name"
void ReCreateBitmap(Bitmap **, int, int);
void FreeBitmap(Bitmap *);
void BlitBitmap(Bitmap *, Bitmap *, int, int, int, int, int, int);
-void BlitBitmapTiled(Bitmap *, Bitmap *, int, int, int, int, int, int, int,int);
+void BlitBitmapTiled(Bitmap *, Bitmap *, int, int, int, int, int, int, int, int);
void FadeRectangle(int, int, int, int, int, int, int,
void (*draw_border_function)(void));
void FillRectangle(Bitmap *, int, int, int, int, Pixel);
void DrawSimpleWhiteLine(Bitmap *, int, int, int, int);
void DrawLines(Bitmap *, struct XY *, int, Pixel);
Pixel GetPixel(Bitmap *, int, int);
-Pixel GetPixelFromRGB(Bitmap *, unsigned int,unsigned int,unsigned int);
+Pixel GetPixelFromRGB(Bitmap *, unsigned int, unsigned int, unsigned int);
void KeyboardAutoRepeatOn(void);
void KeyboardAutoRepeatOff(void);