graphic += PlayerFrame;
- if (PlayerMovPos)
+ if (PlayerGfxPos)
{
if (PlayerMovDir == MV_LEFT || PlayerMovDir == MV_RIGHT)
- sxx = PlayerMovPos;
+ sxx = PlayerGfxPos;
else
- syy = PlayerMovPos;
+ syy = PlayerGfxPos;
}
- if (PlayerPushing && PlayerMovPos)
+ MarkTileDirty(sx,sy);
+
+
+
+ if (PlayerPushing && PlayerGfxPos)
{
int nextJX = JX + (JX - lastJX);
int nextJY = JY + (JY - lastJY);
if (element == EL_FELSBROCKEN && sxx)
{
- int phase = PlayerMovPos / (TILEX/4);
+ int phase = PlayerGfxPos / (TILEX/4);
if (PlayerMovDir == MV_LEFT)
graphic += phase;
#endif
DrawGraphicExt(drawto_field, gc, x, y, graphic);
- redraw_tiles++;
- redraw[redraw_x1 + x][redraw_y1 + y] = TRUE;
- redraw_mask |= REDRAW_TILES;
+ MarkTileDirty(x,y);
}
void DrawGraphicExt(Drawable d, GC gc, int x, int y, int graphic)
return;
}
- redraw_tiles++;
- redraw[redraw_x1 + x][redraw_y1 + y]=TRUE;
- redraw_mask|=REDRAW_TILES;
+ MarkTileDirty(x,y);
}
void DrawElementThruMask(int x, int y, int element)
void DrawMiniGraphic(int x, int y, int graphic)
{
DrawMiniGraphicExt(drawto, gc, x, y, graphic);
- redraw_tiles++;
- redraw[x/2][y/2]=TRUE;
- redraw_mask|=REDRAW_TILES;
+ MarkTileDirty(x/2, y/2);
}
void DrawMiniGraphicExt(Drawable d, GC gc, int x, int y, int graphic)
else if (x==BX2 && dx>0) /* Element verläßt rechts das Bild */
width -= dx;
else if (dx) /* allg. Bewegung in x-Richtung */
- redraw[redraw_x1 + x + SIGN(dx)][redraw_y1 + y] = TRUE;
+ MarkTileDirty(x + SIGN(dx), y);
if (y < BY1) /* Element kommt von oben ins Bild */
{
height = dy;
cy = TILEY-dy;
dy = TILEY;
- redraw[redraw_x1 + x][redraw_y1 + y + 1] = TRUE;
+ MarkTileDirty(x, y + 1);
} /* Element verläßt unten das Bild */
else if (dy > 0 && (y == BY2 || cut_mode==CUT_BELOW))
height -= dy;
else if (dy) /* allg. Bewegung in y-Richtung */
- redraw[redraw_x1 + x][redraw_y1 + y + SIGN(dy)] = TRUE;
+ MarkTileDirty(x, y + SIGN(dy));
}
if (graphic >= GFX_START_ROCKSSCREEN && graphic <= GFX_END_ROCKSSCREEN)
}
#endif
- redraw_tiles++;
- redraw[redraw_x1 + x][redraw_y1 + y] = TRUE;
- redraw_mask |= REDRAW_TILES;
+ MarkTileDirty(x,y);
}
void DrawElementShifted(int x, int y, int dx, int dy, int element,int cut_mode)
else if (x==BX2 && dx>0) /* Element verläßt rechts das Bild */
width -= dx;
else if (dx) /* allg. Bewegung in x-Richtung */
- redraw[redraw_x1 + x + SIGN(dx)][redraw_y1 + y] = TRUE;
+ MarkTileDirty(x + SIGN(dx), y);
if (y < BY1) /* Element kommt von oben ins Bild */
{
height = dy;
cy = TILEY-dy;
dy = TILEY;
- redraw[redraw_x1 + x][redraw_y1 + y + 1] = TRUE;
+ MarkTileDirty(x, y + 1);
} /* Element verläßt unten das Bild */
else if (dy > 0 && (y == BY2 || cut_mode==CUT_BELOW))
height -= dy;
else if (dy) /* allg. Bewegung in y-Richtung */
- redraw[redraw_x1 + x][redraw_y1 + y + SIGN(dy)] = TRUE;
+ MarkTileDirty(x, y + SIGN(dy));
}
if (graphic >= GFX_START_ROCKSSCREEN && graphic <= GFX_END_ROCKSSCREEN)
}
#endif
- redraw_tiles++;
- redraw[redraw_x1 + x][redraw_y1 + y] = TRUE;
- redraw_mask |= REDRAW_TILES;
+ MarkTileDirty(x,y);
}
void ErdreichAnbroeckeln(int x, int y)
width,height, FX+x*TILEX+cx,FY+y*TILEY+cy);
}
- redraw_tiles++;
- redraw[redraw_x1 + x][redraw_y1 + y] = TRUE;
+ MarkTileDirty(x,y);
}
else
{
SY+(graphic / GFX_PER_LINE)*TILEY+cy,
width,height, FX+xx*TILEX+cx,FY+yy*TILEY+cy);
- redraw_tiles++;
- redraw[redraw_x1 + xx][redraw_y1 + yy] = TRUE;
+ MarkTileDirty(xx,yy);
}
}
}
graphic = el2gfx(element);
DrawMiniGraphic(x,y,graphic);
-
- redraw_tiles++;
- redraw[x/2][y/2]=TRUE;
- redraw_mask|=REDRAW_TILES;
}
void DrawMiniElementOrWall(int x, int y, int scroll_x, int scroll_y)