added setting engine snapshot mode to setup screen and file
[rocksndiamonds.git] / src / libgame / system.h
index 671a0e73b8b1de2c97079e25ae33afda32c9c4cb..eff5452583bbe16db554dbe8c49e7ab8707930de 100644 (file)
                                         (b) <= MB_WHEEL_DOWN)
 #define DEFAULT_WHEEL_STEPS            3
 
+#define BUTTON_STEPSIZE(b)             ((b) == MB_LEFTBUTTON   ?  1 :  \
+                                        (b) == MB_MIDDLEBUTTON ?  5 :  \
+                                        (b) == MB_RIGHTBUTTON  ? 10 : 1)
+
 /* values for move directions */
 #define MV_BIT_LEFT                    0
 #define MV_BIT_RIGHT                   1
 
 #define ERROR_BASENAME         "stderr.txt"
 
+#define STRING_PARENT_DIRECTORY                ".."
+#define STRING_TOP_DIRECTORY           "/"
+
 #define CHAR_PATH_SEPARATOR_UNIX       '/'
 #define CHAR_PATH_SEPARATOR_DOS                '\\'
 
@@ -707,7 +714,6 @@ struct OptionInfo
   boolean network;
   boolean verbose;
   boolean debug;
-  boolean debug_x11_sync;
 };
 
 struct ScreenModeInfo
@@ -730,6 +736,8 @@ struct VideoSystemInfo
   boolean window_scaling_available;
   int window_scaling_percent;
   char *window_scaling_quality;
+
+  boolean initialized;
 };
 
 struct AudioSystemInfo
@@ -789,6 +797,8 @@ struct GfxInfo
   int draw_deactivation_mask;
   int draw_background_mask;
 
+  boolean drawing_area_changed;
+
   Bitmap *field_save_buffer;
 
   Bitmap *background_bitmap;
@@ -812,6 +822,8 @@ struct GfxInfo
   int anim_random_frame;
 
   void (*draw_busy_anim_function)(void);
+
+  int cursor_mode;
 };
 
 struct JoystickInfo
@@ -936,6 +948,7 @@ struct SetupInfo
   boolean toons;
   boolean scroll_delay;
   boolean scroll_delay_value;
+  char *engine_snapshot_mode;
   boolean soft_scrolling;
   boolean fade_screens;
   boolean autorecord;
@@ -1203,13 +1216,15 @@ struct DoorPartPosInfo
 struct TextPosInfo
 {
   int x, y;
+  int xoffset;                 /* special case for tape date and time */
+  int xoffset2;                        /* special case for tape date */
   int width, height;
   int align, valign;
-  int size;
+  int size;                    /* also used for suffix ".digits" */
   int font, font_alt;
   boolean draw_masked;
   boolean draw_player;         /* special case for network player buttons */
-  int sort_priority;
+  int sort_priority;           /* also used for suffix ".draw_order" */
   int id;
 };
 
@@ -1241,11 +1256,6 @@ extern int                       level_nr;
 
 extern struct LevelStats       level_stats[];
 
-extern Display                *display;
-extern Visual                 *visual;
-extern int                     screen;
-extern Colormap                        cmap;
-
 extern DrawWindow             *window;
 extern DrawBuffer             *backbuffer;
 extern DrawBuffer             *drawto;
@@ -1285,6 +1295,7 @@ void InitGfxScrollbufferInfo(int, int);
 void InitGfxClipRegion(boolean, int, int, int, int);
 void InitGfxDrawBusyAnimFunction(void (*draw_busy_anim_function)(void));
 void InitGfxCustomArtworkInfo();
+void InitGfxOtherSettings();
 void SetDrawDeactivationMask(int);
 void SetDrawBackgroundMask(int);
 void SetWindowBackgroundBitmap(Bitmap *);
@@ -1307,10 +1318,9 @@ void FadeRectangle(Bitmap *bitmap, int, int, int, int, int, int, int,
 void FillRectangle(Bitmap *, int, int, int, int, Pixel);
 void ClearRectangle(Bitmap *, int, int, int, int);
 void ClearRectangleOnBackground(Bitmap *, int, int, int, int);
-void SetClipMask(Bitmap *, GC, Pixmap);
-void SetClipOrigin(Bitmap *, GC, int, int);
 void BlitBitmapMasked(Bitmap *, Bitmap *, int, int, int, int, int, int);
 boolean DrawingOnBackground(int, int);
+boolean DrawingAreaChanged();
 void BlitBitmapOnBackground(Bitmap *, Bitmap *, int, int, int, int, int, int);
 void DrawSimpleBlackLine(Bitmap *, int, int, int, int);
 void DrawSimpleWhiteLine(Bitmap *, int, int, int, int);
@@ -1319,8 +1329,6 @@ Pixel GetPixel(Bitmap *, int, int);
 Pixel GetPixelFromRGB(Bitmap *, unsigned int,unsigned int,unsigned int);
 Pixel GetPixelFromRGBcompact(Bitmap *, unsigned int);
 
-void FlushDisplay(void);
-void SyncDisplay(void);
 void KeyboardAutoRepeatOn(void);
 void KeyboardAutoRepeatOff(void);
 boolean PointerInWindow(DrawWindow *);