X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Ftools.c;h=7a15c03e81b4973bbf5d29a533252ade5b43d30d;hb=eb72f4adc74084da40e39484b2545e3d49d39eaa;hp=3cf3b9609618d50b46346dba54d7bed7c7f32937;hpb=7ecbe0a730dc19d8a46ffe6bbcb052f20d0c4152;p=rocksndiamonds.git diff --git a/src/tools.c b/src/tools.c index 3cf3b960..7a15c03e 100644 --- a/src/tools.c +++ b/src/tools.c @@ -649,7 +649,7 @@ void FadeSetEnterScreen() void FadeSetNextScreen() { - fading = menu.next_screen; + fading = menu.next_screen[game_status]; // (do not overwrite fade mode set by FadeSetEnterScreen) // FadeSetLeaveNext(fading, TRUE); /* (keep same fade mode) */ @@ -875,7 +875,8 @@ static void RedrawGlobalBorderIfNeeded() return; // copy current draw buffer to later copy back areas that have not changed - BlitBitmap(backbuffer, bitmap_db_store, 0, 0, WIN_XSIZE, WIN_YSIZE, 0, 0); + if (game_status_last != GAME_MODE_TITLE) + BlitBitmap(backbuffer, bitmap_db_store, 0, 0, WIN_XSIZE, WIN_YSIZE, 0, 0); if (CheckIfGlobalBorderRedrawIsNeeded()) { @@ -1064,8 +1065,8 @@ void getSizedGraphicSourceExt(int graphic, int frame, int tilesize, } *bitmap = src_bitmap; - *x = src_x * tilesize / TILESIZE; - *y = src_y * tilesize / TILESIZE; + *x = src_x * tilesize / g->tile_size; + *y = src_y * tilesize / g->tile_size; } void getFixedGraphicSourceExt(int graphic, int frame, Bitmap **bitmap, @@ -1126,6 +1127,9 @@ inline static void getGraphicSourceExt(int graphic, int frame, Bitmap **bitmap, *x = src_x + frame * g->offset_x; *y = src_y + frame * g->offset_y; } + + *x = *x * TILESIZE_VAR / g->tile_size; + *y = *y * TILESIZE_VAR / g->tile_size; } void getGraphicSource(int graphic, int frame, Bitmap **bitmap, int *x, int *y) @@ -1302,20 +1306,20 @@ inline static void DrawGraphicShiftedNormal(int x, int y, int dx, int dy, width = -dx; dx = TILEX + dx; } - else if (x==BX1 && dx < 0) /* object leaves playfield to the left */ + else if (x == BX1 && dx < 0) /* object leaves playfield to the left */ { width += dx; cx = -dx; dx = 0; } - else if (x==BX2 && dx > 0) /* object leaves playfield to the right */ + else if (x == BX2 && dx > 0) /* object leaves playfield to the right */ width -= dx; else if (dx) /* general horizontal movement */ MarkTileDirty(x + SIGN(dx), y); if (y < BY1) /* object enters playfield from the top */ { - if (cut_mode==CUT_BELOW) /* object completely above top border */ + if (cut_mode == CUT_BELOW) /* object completely above top border */ return; y = BY1; @@ -1329,7 +1333,7 @@ inline static void DrawGraphicShiftedNormal(int x, int y, int dx, int dy, height = -dy; dy = TILEY + dy; } - else if (y==BY1 && dy < 0) /* object leaves playfield to the top */ + else if (y == BY1 && dy < 0) /* object leaves playfield to the top */ { height += dy; cy = -dy;