added support for setting alpha value for global animations
[rocksndiamonds.git] / src / libgame / system.h
index 44ac3e3448626e95065285ae524203ae6ab0a396..e5938dee7772abfe95220ff60f10e3f37781b76e 100644 (file)
 #define DRAW_GLOBAL_ANIM_STAGE_1       1
 #define DRAW_GLOBAL_ANIM_STAGE_2       2
 #define DRAW_GLOBAL_ANIM_STAGE_3       3
+#define DRAW_GLOBAL_ANIM_STAGE_RESTART 4
 
 // values for drawing target (various functions)
 #define DRAW_TO_BACKBUFFER             0
 #define ANIM_CE_DELAY          (1 << 7)
 #define ANIM_REVERSE           (1 << 8)
 #define ANIM_OPAQUE_PLAYER     (1 << 9)
+#define ANIM_LEVEL_NR          (1 << 10)
 
 // values for special (non game element) animation modes
 // (not stored in level files -- can be changed, if needed)
-#define ANIM_HORIZONTAL                (1 << 10)
-#define ANIM_VERTICAL          (1 << 11)
-#define ANIM_CENTERED          (1 << 12)
-#define ANIM_STATIC_PANEL      (1 << 13)
-#define ANIM_ALL               (1 << 14)
-#define ANIM_ONCE              (1 << 15)
-#define ANIM_TILED             (1 << 16)
-#define ANIM_RANDOM_STATIC     (1 << 17)
+#define ANIM_HORIZONTAL                (1 << 11)
+#define ANIM_VERTICAL          (1 << 12)
+#define ANIM_CENTERED          (1 << 13)
+#define ANIM_STATIC_PANEL      (1 << 14)
+#define ANIM_ALL               (1 << 15)
+#define ANIM_ONCE              (1 << 16)
+#define ANIM_TILED             (1 << 17)
+#define ANIM_RANDOM_STATIC     (1 << 18)
 
 #define ANIM_DEFAULT           ANIM_LOOP
 
 #define ANIM_EVENT_END         (1 << 5)
 #define ANIM_EVENT_POST                (1 << 6)
 #define ANIM_EVENT_UNCLICK_ANY (1 << 7)
-
-// event mask:  bits 0-7
-// anim number: bits 8-15
-// part number: bits 16-23
-#define ANIM_EVENT_ANIM_BIT    8
-#define ANIM_EVENT_PART_BIT    16
-
+#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
 #define STYLE_BLOCK            (1 << 4)
 #define STYLE_PASSTHROUGH      (1 << 5)
 #define STYLE_MULTIPLE_ACTIONS (1 << 6)
+#define STYLE_CONSUME_CE_EVENT (1 << 7)
 
 #define STYLE_DEFAULT          STYLE_NONE
 
 #define POS_LOWER              5
 #define POS_BOTTOM             6
 #define POS_ANY                        7
-#define POS_LAST               8
+#define POS_CE                 8
+#define POS_CE_TRIGGER         9
+#define POS_LAST               10
 
 // values for text alignment
 #define ALIGN_LEFT             (1 << 0)
@@ -1234,6 +1246,7 @@ struct GfxInfo
   void (*draw_global_anim_function)(int, int);
   void (*draw_global_border_function)(int);
   void (*draw_tile_cursor_function)(int);
+  void (*draw_envelope_request_function)(int);
 
   int cursor_mode;
   int cursor_mode_override;
@@ -1968,6 +1981,7 @@ void InitGfxDrawBusyAnimFunction(void (*draw_busy_anim_function)(boolean));
 void InitGfxDrawGlobalAnimFunction(void (*draw_global_anim_function)(int, int));
 void InitGfxDrawGlobalBorderFunction(void (*draw_global_border_function)(int));
 void InitGfxDrawTileCursorFunction(void (*draw_tile_cursor_function)(int));
+void InitGfxDrawEnvelopeRequestFunction(void (*draw_envelope_request_function)(int));
 void InitGfxCustomArtworkInfo(void);
 void InitGfxOtherSettings(void);
 void InitTileCursorInfo(void);
@@ -1999,6 +2013,7 @@ Bitmap *CreateBitmapStruct(void);
 Bitmap *CreateBitmap(int, int, int);
 void ReCreateBitmap(Bitmap **, int, int);
 void FreeBitmap(Bitmap *);
+void SetBitmapAlphaNextBlit(Bitmap *, int);
 void BlitBitmap(Bitmap *, Bitmap *, 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,