X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Flibgame%2Fsystem.c;h=5ccb5eb71257414f36e6dba3ae7d1a6682fcbdde;hb=07ebce49a5cbbaa7728e84e118961f750abe377a;hp=c0448a8e0d14e1d64c8deb694ca4b3e2f685fba5;hpb=f7704e2d22e9499efe6380e0c916c2bd4918e4be;p=rocksndiamonds.git diff --git a/src/libgame/system.c b/src/libgame/system.c index c0448a8e..5ccb5eb7 100644 --- a/src/libgame/system.c +++ b/src/libgame/system.c @@ -1,7 +1,7 @@ /*********************************************************** * Artsoft Retro-Game Library * *----------------------------------------------------------* -* (c) 1994-2002 Artsoft Entertainment * +* (c) 1994-2006 Artsoft Entertainment * * Holger Schemel * * Detmolder Strasse 189 * * 33604 Bielefeld * @@ -321,22 +321,24 @@ void CloseVideoDisplay(void) #endif } -void InitVideoBuffer(DrawBuffer **backbuffer, DrawWindow **window, - int width, int height, int depth, boolean fullscreen) +void InitVideoBuffer(int width, int height, int depth, boolean fullscreen) { video.width = width; video.height = height; video.depth = GetRealDepth(depth); + video.fullscreen_available = FULLSCREEN_STATUS; video.fullscreen_enabled = FALSE; video.fullscreen_modes = NULL; video.fullscreen_mode_current = NULL; #if defined(TARGET_SDL) - SDLInitVideoBuffer(backbuffer, window, fullscreen); + SDLInitVideoBuffer(&backbuffer, &window, fullscreen); #else - X11InitVideoBuffer(backbuffer, window); + X11InitVideoBuffer(&backbuffer, &window); #endif + + drawto = backbuffer; } Bitmap *CreateBitmapStruct(void) @@ -423,13 +425,16 @@ inline static boolean CheckDrawingArea(int x, int y, int width, int height, if (draw_mask & REDRAW_ALL) return TRUE; - if ((draw_mask & REDRAW_FIELD) && x < gfx.real_sx + gfx.full_sxsize) + if ((draw_mask & REDRAW_FIELD) && + x >= gfx.real_sx && x < gfx.real_sx + gfx.full_sxsize) return TRUE; - if ((draw_mask & REDRAW_DOOR_1) && x >= gfx.dx && y < gfx.dy + gfx.dysize) + if ((draw_mask & REDRAW_DOOR_1) && + x >= gfx.dx && y < gfx.dy + gfx.dysize) return TRUE; - if ((draw_mask & REDRAW_DOOR_2) && x >= gfx.dx && y >= gfx.vy) + if ((draw_mask & REDRAW_DOOR_2) && + x >= gfx.dx && y >= gfx.vy) return TRUE; return FALSE; @@ -458,14 +463,15 @@ void BlitBitmap(Bitmap *src_bitmap, Bitmap *dst_bitmap, } void FadeRectangle(Bitmap *bitmap_cross, int x, int y, int width, int height, - int fade_mode, int fade_delay, int post_delay) + int fade_mode, int fade_delay, int post_delay, + void (*draw_border_function)(void)) { #if defined(TARGET_SDL) SDLFadeRectangle(bitmap_cross, x, y, width, height, - fade_mode, fade_delay, post_delay); + fade_mode, fade_delay, post_delay, draw_border_function); #else X11FadeRectangle(bitmap_cross, x, y, width, height, - fade_mode, fade_delay, post_delay); + fade_mode, fade_delay, post_delay, draw_border_function); #endif }