+ if (c->position == POS_CE)
+ {
+ // calculate playfield position (with scrolling) for related CE tile
+ int fx = getFieldbufferOffsetX_RND(ScreenMovDir, ScreenGfxPos);
+ int fy = getFieldbufferOffsetY_RND(ScreenMovDir, ScreenGfxPos);
+ int sx = FX + SCREENX(part->tile_x) * TILEX_VAR;
+ int sy = FY + SCREENY(part->tile_y) * TILEY_VAR;
+ int x = sx - fx;
+ int y = sy - fy;
+
+ part->tile_xoffset += part->step_xoffset;
+ part->tile_yoffset += part->step_yoffset;
+
+ part->x = x + part->tile_xoffset;
+ part->y = y + part->tile_yoffset;
+ }
+ else
+ {
+ part->x += part->step_xoffset;
+ part->y += part->step_yoffset;
+ }