-inline void DrawGraphicAnimationExt(DrawBuffer *dst_bitmap, int x, int y,
- int graphic, int sync_frame, int mask_mode)
-{
- int frame = getGraphicAnimationFrame(graphic, sync_frame);
-
- if (mask_mode == USE_MASKING)
- DrawGraphicThruMaskExt(dst_bitmap, x, y, graphic, frame);
- else
- DrawGraphicExt(dst_bitmap, x, y, graphic, frame);
-}
-
-inline void DrawGraphicAnimation(int x, int y, int graphic)
-{
- int lx = LEVELX(x), ly = LEVELY(y);
-
- if (!IN_SCR_FIELD(x, y) ||
- (GfxFrame[lx][ly] % new_graphic_info[graphic].anim_delay) != 0)
- return;
-
- DrawGraphicAnimationExt(drawto_field, FX + x * TILEX, FY + y * TILEY,
- graphic, GfxFrame[lx][ly], NO_MASKING);
- MarkTileDirty(x, y);
-}
-
-void DrawLevelGraphicAnimation(int x, int y, int graphic)
-{
- DrawGraphicAnimation(SCREENX(x), SCREENY(y), graphic);
-}
-
-void DrawLevelElementAnimation(int x, int y, int element)
-{
- DrawGraphicAnimation(SCREENX(x), SCREENY(y), el2img(element));
-}
-