X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Ftools.c;h=66796da98780e401a25d3c90a10a152e2f5a70a9;hb=7b61c9f3ee0fb13b190dba016923ebcd547c4f27;hp=62cd26a8d9ebaeb2c4f1065d8361cdb7848c073f;hpb=12a8eb6ca28aa97f422e7cf9317f01eb0dfc9a11;p=rocksndiamonds.git diff --git a/src/tools.c b/src/tools.c index 62cd26a8..66796da9 100644 --- a/src/tools.c +++ b/src/tools.c @@ -300,17 +300,17 @@ void SetDrawtoField(int mode) static void RedrawPlayfield_RND() { - int x, y; - if (game.envelope_active) return; -#if 0 - DrawLevel(); +#if 1 + DrawLevel(REDRAW_ALL); #else + int x, y; SetMainBackgroundImage(IMG_BACKGROUND_PLAYING); // SetDrawBackgroundMask(REDRAW_FIELD); // !!! CHECK THIS !!! + SetDrawBackgroundMask(REDRAW_ALL); // !!! CHECK THIS !!! for (x = BX1; x <= BX2; x++) for (y = BY1; y <= BY2; y++) @@ -1587,6 +1587,7 @@ inline void getGraphicSourceExt(int graphic, int frame, Bitmap **bitmap, int src_y = g->src_y + (get_backside ? g->offset2_y : 0); #if NEW_TILESIZE + if (TILESIZE_VAR != TILESIZE) return getSizedGraphicSourceExt(graphic, frame, TILESIZE_VAR, bitmap, x, y, get_backside); @@ -3513,15 +3514,20 @@ void DrawPreviewElement(int dst_x, int dst_y, int element, int tilesize) BlitBitmap(src_bitmap, drawto, src_x, src_y, tilesize, tilesize, dst_x,dst_y); } -void DrawLevel() +void DrawLevel(int draw_background_mask) { int x,y; +#if 1 + SetMainBackgroundImage(IMG_BACKGROUND_PLAYING); + SetDrawBackgroundMask(draw_background_mask); +#else #if 1 SetMainBackgroundImage(IMG_BACKGROUND_PLAYING); SetDrawBackgroundMask(REDRAW_FIELD); #else SetDrawBackgroundMask(REDRAW_NONE); +#endif #endif ClearField(); @@ -11493,6 +11499,7 @@ void ChangeViewportPropertiesIfNeeded() boolean init_gfx_buffers = FALSE; boolean init_video_buffer = FALSE; boolean init_gadgets_and_toons = FALSE; + boolean init_em_graphics = FALSE; #if 0 /* !!! TEST ONLY !!! */ @@ -11580,12 +11587,15 @@ void ChangeViewportPropertiesIfNeeded() ) { #if 1 - // changing tile size invalidates scroll values of engine snapshots if (new_tilesize_var != TILESIZE_VAR) { // printf("::: new_tilesize_var != TILESIZE_VAR\n"); + // changing tile size invalidates scroll values of engine snapshots FreeEngineSnapshot(); + + // changing tile size requires update of graphic mapping for EM engine + init_em_graphics = TRUE; } #endif @@ -11678,6 +11688,11 @@ void ChangeViewportPropertiesIfNeeded() InitToons(); } + if (init_em_graphics) + { + InitGraphicInfo_EM(); + } + #if 0 printf("::: %d, %d / %d, %d [%d]\n", VX, VY, EX, EY, game_status); #endif