added drawing global borders when fading screens
[rocksndiamonds.git] / src / libgame / system.h
index 1fe8d9f40ff4467aed94010d1bda5c3d390c76c4..98aa9c734422c31ac6b867feab2dc92539e49ccb 100644 (file)
 #define DRAW_GLOBAL_ANIM_STAGE_1       1
 #define DRAW_GLOBAL_ANIM_STAGE_2       2
 
+/* values for drawing target for global border */
+#define DRAW_BORDER_TO_BACKBUFFER      0
+#define DRAW_BORDER_TO_SCREEN          1
+#define DRAW_BORDER_TO_FADE_SOURCE     2
+#define DRAW_BORDER_TO_FADE_TARGET     3
+
 /* values for move directions and special "button" key bitmasks */
 #define MV_NONE                        0
 #define MV_LEFT                        (1 << MV_BIT_LEFT)
                                 MV_NONE)
 
 /* values for animation mode (frame order and direction) */
+/* (stored in level files -- never change existing values) */
 #define ANIM_NONE              0
 #define ANIM_LOOP              (1 << 0)
 #define ANIM_LINEAR            (1 << 1)
 #define ANIM_OPAQUE_PLAYER     (1 << 9)
 
 /* 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_DEFAULT           ANIM_LOOP
 
@@ -808,6 +817,14 @@ struct GfxInfo
   Bitmap *background_bitmap;
   int background_bitmap_mask;
 
+  Bitmap *fade_bitmap_source;
+  Bitmap *fade_bitmap_target;
+  Bitmap *fade_bitmap_black;
+
+  int fade_border_source_status;
+  int fade_border_target_status;
+  Bitmap *masked_border_bitmap_ptr;
+
 #if USE_FINAL_SCREEN_BITMAP
   Bitmap *final_screen_bitmap;
 #endif
@@ -968,6 +985,9 @@ struct SetupInternalInfo
 
   char *default_level_series;
 
+  int default_window_width;
+  int default_window_height;
+
   boolean choose_from_top_leveldir;
 };