X-Git-Url: https://git.artsoft.org/?p=rocksndiamonds.git;a=blobdiff_plain;f=src%2Ftools.c;fp=src%2Ftools.c;h=bf79b048d344368bf064bbc992bf98a18c4cf301;hp=0271abfc43d83eb615b99fe8663df7cd83e0a5d5;hb=207dd0ba7951139a27a87a091c7eb98c395f3c70;hpb=00f1c42e2779f15ae0e68dc820292141bb2cea2f diff --git a/src/tools.c b/src/tools.c index 0271abfc..bf79b048 100644 --- a/src/tools.c +++ b/src/tools.c @@ -1496,6 +1496,15 @@ int getGraphicAnimationFrameXY(int graphic, int lx, int ly) return sync_frame % g->anim_frames; } + else if (graphic_info[graphic].anim_mode & ANIM_RANDOM_STATIC) + { + struct GraphicInfo *g = &graphic_info[graphic]; + int x = (lx + lev_fieldx) % lev_fieldx; + int y = (ly + lev_fieldy) % lev_fieldy; + int sync_frame = GfxRandomStatic[x][y]; + + return sync_frame % g->anim_frames; + } return getGraphicAnimationFrame(graphic, GfxFrame[lx][ly]); } @@ -3951,7 +3960,7 @@ void DrawLevelGraphicAnimationIfNeeded(int x, int y, int graphic) if (!IS_NEW_FRAME(GfxFrame[x][y], graphic)) return; - if (ANIM_MODE(graphic) & ANIM_TILED) + if (ANIM_MODE(graphic) & (ANIM_TILED | ANIM_RANDOM_STATIC)) return; DrawGraphicAnimation(sx, sy, graphic);