X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fgame_em%2Fgraphics.c;h=c3d365407b9e53406c93e6149300c8bf5fa37ec5;hb=96e81193abbb278dd3b79d109ff99d061fe43973;hp=21ca0964ec8bfbeebc4bc190137ee2db6f07710d;hpb=2a54652c5fad8751e08b648111a0534f8c012a32;p=rocksndiamonds.git diff --git a/src/game_em/graphics.c b/src/game_em/graphics.c index 21ca0964..c3d36540 100644 --- a/src/game_em/graphics.c +++ b/src/game_em/graphics.c @@ -248,6 +248,11 @@ static void DrawLevelPlayer_EM(int x1, int y1, int player_nr, int anim, { struct GraphicInfo_EM *g = &graphic_info_em_player[player_nr][anim][frame]; +#if 1 + getGraphicSourceExt_EM(player_nr, anim, frame, + &g->bitmap, &g->src_x, &g->src_y); +#endif + int src_x = g->src_x, src_y = g->src_y; int dst_x, dst_y; @@ -452,9 +457,14 @@ static void blitplayer(struct PLAYER *ply) DrawLevelField_EM(new_x, new_y, new_sx, new_sy, TRUE); } - /* mark screen tiles as dirty */ + /* redraw screen tiles in the next frame (player may have left the tiles) */ screentiles[old_sy][old_sx] = -1; screentiles[new_sy][new_sx] = -1; + + /* mark screen tiles as dirty (force screen refresh with changed content) */ + redraw[old_sx][old_sy] = TRUE; + redraw[new_sx][new_sy] = TRUE; + redraw_tiles += 2; } }