fixed redraw/fade bugs when redefining the playfield size or position
[rocksndiamonds.git] / src / libgame / system.h
index af8772b143b29a6ff0e627b6801ad2a0cdab3861..f7259356ee8eb5932f8d76d43605975a4eccaf59 100644 (file)
@@ -1,15 +1,13 @@
-/***********************************************************
-* Artsoft Retro-Game Library                               *
-*----------------------------------------------------------*
-* (c) 1994-2006 Artsoft Entertainment                      *
-*               Holger Schemel                             *
-*               Detmolder Strasse 189                      *
-*               33604 Bielefeld                            *
-*               Germany                                    *
-*               e-mail: info@artsoft.org                   *
-*----------------------------------------------------------*
-* system.h                                                 *
-***********************************************************/
+// ============================================================================
+// Artsoft Retro-Game Library
+// ----------------------------------------------------------------------------
+// (c) 1995-2014 by Artsoft Entertainment
+//                         Holger Schemel
+//                 info@artsoft.org
+//                 http://www.artsoft.org/
+// ----------------------------------------------------------------------------
+// system.h
+// ============================================================================
 
 #ifndef SYSTEM_H
 #define SYSTEM_H
@@ -679,6 +677,8 @@ struct ProgramInfo
   int version_major;
   int version_minor;
   int version_patch;
+  int version_build;
+  int version_ident;
 
   char *(*window_title_function)(void);
   void (*exit_message_function)(char *, va_list);
@@ -707,7 +707,6 @@ struct OptionInfo
   boolean network;
   boolean verbose;
   boolean debug;
-  boolean debug_x11_sync;
 };
 
 struct ScreenModeInfo
@@ -773,6 +772,8 @@ struct GfxInfo
   int full_sxsize, full_sysize;
   int scrollbuffer_width, scrollbuffer_height;
 
+  int game_tile_size, standard_tile_size;
+
   int dx, dy;
   int dxsize, dysize;
 
@@ -787,6 +788,8 @@ struct GfxInfo
   int draw_deactivation_mask;
   int draw_background_mask;
 
+  boolean drawing_area_changed;
+
   Bitmap *field_save_buffer;
 
   Bitmap *background_bitmap;
@@ -1239,11 +1242,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;
@@ -1274,6 +1272,7 @@ void InitPlatformDependentStuff(void);
 void ClosePlatformDependentStuff(void);
 
 void InitGfxFieldInfo(int, int, int, int, int, int, int, int, Bitmap *);
+void InitGfxTileSizeInfo(int, int);
 void InitGfxDoor1Info(int, int, int, int);
 void InitGfxDoor2Info(int, int, int, int);
 void InitGfxDoor3Info(int, int, int, int);
@@ -1304,10 +1303,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);
@@ -1316,8 +1314,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 *);
@@ -1329,8 +1325,9 @@ Bitmap *LoadCustomImage(char *);
 void ReloadCustomImage(Bitmap *, char *);
 
 Bitmap *ZoomBitmap(Bitmap *, int, int);
-void CreateBitmapWithSmallBitmaps(Bitmap *, int);
-void ScaleBitmap(Bitmap *, int);
+void ReCreateGameTileSizeBitmap(Bitmap **);
+void CreateBitmapWithSmallBitmaps(Bitmap **, int, int);
+void ScaleBitmap(Bitmap **, int);
 
 void SetMouseCursor(int);