X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Flibgame%2Fsystem.c;h=6c2e968417e2b82f7ba74544d3d6634d931417d2;hb=5c6c42f1;hp=6d2b222a5f05ecc69972e056fb7f1261a5ce0e8e;hpb=ca78975abfe7b2517a7c090a06abfdad065475b7;p=rocksndiamonds.git diff --git a/src/libgame/system.c b/src/libgame/system.c index 6d2b222a..6c2e9684 100644 --- a/src/libgame/system.c +++ b/src/libgame/system.c @@ -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)