if (HAS_CHANGE_EVENT(element, CE_DELAY_FIXED))
changing_element[element].change_delay +=
- change->delay_fixed * FRAMES_PER_SECOND;
+ change->delay_fixed * change->delay_frames;
if (HAS_CHANGE_EVENT(element, CE_DELAY_RANDOM));
/* random frame delay added at runtime for each element individually */
if (phase == delay)
DrawLevelFieldCrumbledSand(x, y);
- if (IS_WALKABLE_OVER(Back[x][y]))
+ if (IS_WALKABLE_OVER(Back[x][y]) && Back[x][y] != EL_EMPTY)
{
DrawLevelElement(x, y, Back[x][y]);
DrawGraphicThruMask(SCREENX(x), SCREENY(y), graphic, frame);
{
int element = Feld[x][y];
- if (IS_MOVING(x, y)) /* never change moving elements */
+ if (IS_MOVING(x, y)) /* never change a running system :-) */
return;
if (MovDelay[x][y] == 0) /* initialize element change */
{
int i = element - EL_CUSTOM_START;
int max_random_delay = level.custom_element[i].change.delay_random;
+ int delay_frames = level.custom_element[i].change.delay_frames;
- MovDelay[x][y] += RND(max_random_delay * FRAMES_PER_SECOND);
+ MovDelay[x][y] += RND(max_random_delay * delay_frames);
}
ResetGfxAnimation(x, y);