X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Finit.c;h=58ebc1a3bb21d909979afd893191ba5a54dfcd8d;hb=f89a490028c36509216b97a96b779b779c2065c9;hp=c8b468c0dfef0feb7bc5c070d43b8a589b135d46;hpb=8e3612567b52232c0f1dff593546cb90b396911c;p=rocksndiamonds.git diff --git a/src/init.c b/src/init.c index c8b468c0..58ebc1a3 100644 --- a/src/init.c +++ b/src/init.c @@ -1369,6 +1369,10 @@ static void InitGraphicInfo() static int full_size_graphics[] = { IMG_GLOBAL_BORDER, + IMG_GLOBAL_BORDER_MAIN, + IMG_GLOBAL_BORDER_SCORES, + IMG_GLOBAL_BORDER_EDITOR, + IMG_GLOBAL_BORDER_PLAYING, IMG_GLOBAL_DOOR, IMG_BACKGROUND_ENVELOPE_1, @@ -4549,8 +4553,6 @@ static void InitGlobal() global.create_images_dir = NULL; global.frames_per_second = 0; - global.fps_slowdown = FALSE; - global.fps_slowdown_factor = 1; global.border_status = GAME_MODE_MAIN; @@ -5000,9 +5002,21 @@ static void InitMixer() void InitGfxBuffers() { + static int win_xsize_last = -1; + static int win_ysize_last = -1; + /* create additional image buffers for double-buffering and cross-fading */ - ReCreateBitmap(&bitmap_db_store, WIN_XSIZE, WIN_YSIZE, DEFAULT_DEPTH); - ReCreateBitmap(&bitmap_db_cross, WIN_XSIZE, WIN_YSIZE, DEFAULT_DEPTH); + + if (WIN_XSIZE != win_xsize_last || WIN_YSIZE != win_ysize_last) + { + /* may contain content for cross-fading -- only re-create if changed */ + ReCreateBitmap(&bitmap_db_store, WIN_XSIZE, WIN_YSIZE, DEFAULT_DEPTH); + ReCreateBitmap(&bitmap_db_cross, WIN_XSIZE, WIN_YSIZE, DEFAULT_DEPTH); + + win_xsize_last = WIN_XSIZE; + win_ysize_last = WIN_YSIZE; + } + ReCreateBitmap(&bitmap_db_field, FXSIZE, FYSIZE, DEFAULT_DEPTH); ReCreateBitmap(&bitmap_db_panel, DXSIZE, DYSIZE, DEFAULT_DEPTH); ReCreateBitmap(&bitmap_db_door_1, 3 * DXSIZE, DYSIZE, DEFAULT_DEPTH); @@ -5190,7 +5204,16 @@ void InitGfx() void RedrawGlobalBorder() { - BlitBitmap(graphic_info[IMG_GLOBAL_BORDER].bitmap, backbuffer, + int global_border_graphic; + + global_border_graphic = + (game_status == GAME_MODE_MAIN ? IMG_GLOBAL_BORDER_MAIN : + game_status == GAME_MODE_SCORES ? IMG_GLOBAL_BORDER_SCORES : + game_status == GAME_MODE_EDITOR ? IMG_GLOBAL_BORDER_EDITOR : + game_status == GAME_MODE_PLAYING ? IMG_GLOBAL_BORDER_PLAYING : + IMG_GLOBAL_BORDER); + + BlitBitmap(graphic_info[global_border_graphic].bitmap, backbuffer, 0, 0, WIN_XSIZE, WIN_YSIZE, 0, 0); redraw_mask = REDRAW_ALL;