fixed fading complete screen if playfield viewport has changed
[rocksndiamonds.git] / src / libgame / system.c
index 6d2b222a5f05ecc69972e056fb7f1261a5ce0e8e..6c2e968417e2b82f7ba74544d3d6634d931417d2 100644 (file)
@@ -421,6 +421,11 @@ void LimitScreenUpdates(boolean enable)
   SDLLimitScreenUpdates(enable);
 }
 
+void InitVideoDefaults(void)
+{
+  video.default_depth = 32;
+}
+
 void InitVideoDisplay(void)
 {
   if (program.headless)
@@ -466,7 +471,7 @@ void InitVideoBuffer(int width, int height, int depth, boolean fullscreen)
 
   SDLInitVideoBuffer(fullscreen);
 
-  video.initialized = TRUE;
+  video.initialized = !program.headless;
 
   drawto = backbuffer;
 }
@@ -600,6 +605,17 @@ inline static boolean CheckDrawingArea(int x, int y, int width, int height,
   return FALSE;
 }
 
+boolean DrawingDeactivatedField()
+{
+  if (program.headless)
+    return TRUE;
+
+  if (gfx.draw_deactivation_mask & REDRAW_FIELD)
+    return TRUE;
+
+  return FALSE;
+}
+
 boolean DrawingDeactivated(int x, int y, int width, int height)
 {
   return CheckDrawingArea(x, y, width, height, gfx.draw_deactivation_mask);
@@ -903,6 +919,9 @@ void DrawLine(Bitmap *bitmap, int from_x, int from_y,
 {
   int x, y;
 
+  if (program.headless)
+    return;
+
   for (x = 0; x < line_width; x++)
   {
     for (y = 0; y < line_width; y++)
@@ -938,6 +957,9 @@ void DrawLines(Bitmap *bitmap, struct XY *points, int num_points, Pixel pixel)
 
 Pixel GetPixel(Bitmap *bitmap, int x, int y)
 {
+  if (program.headless)
+    return BLACK_PIXEL;
+
   if (x < 0 || x >= bitmap->width ||
       y < 0 || y >= bitmap->height)
     return BLACK_PIXEL;
@@ -948,6 +970,9 @@ Pixel GetPixel(Bitmap *bitmap, int x, int y)
 Pixel GetPixelFromRGB(Bitmap *bitmap, unsigned int color_r,
                      unsigned int color_g, unsigned int color_b)
 {
+  if (program.headless)
+    return BLACK_PIXEL;
+
   return SDL_MapRGB(bitmap->surface->format, color_r, color_g, color_b);
 }
 
@@ -1493,9 +1518,9 @@ boolean PendingEvent(void)
   return (SDL_PollEvent(NULL) ? TRUE : FALSE);
 }
 
-void NextEvent(Event *event)
+void WaitEvent(Event *event)
 {
-  SDLNextEvent(event);
+  SDLWaitEvent(event);
 }
 
 void PeekEvent(Event *event)