projects
/
rocksndiamonds.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
a6efe25
)
fixed acid animation for elements falling/moving into (GFX engine change)
author
Holger Schemel
<info@artsoft.org>
Mon, 28 Nov 2016 21:39:56 +0000
(22:39 +0100)
committer
Holger Schemel
<info@artsoft.org>
Mon, 28 Nov 2016 21:39:56 +0000
(22:39 +0100)
src/game.c
patch
|
blob
|
history
src/tools.c
patch
|
blob
|
history
diff --git
a/src/game.c
b/src/game.c
index 7930740727592e7928e5ca9d175d3929b837f09c..de245df51c6b571301d58eca00d70e43fce5135d 100644
(file)
--- a/
src/game.c
+++ b/
src/game.c
@@
-11483,7
+11483,7
@@
void GameActions_RND()
ResetGfxFrame(x, y);
ResetGfxFrame(x, y);
- if (GfxFrame[x][y] != last_gfx_frame)
+ if (GfxFrame[x][y] != last_gfx_frame
&& !Stop[x][y]
)
DrawLevelGraphicAnimation(x, y, graphic);
if (ANIM_MODE(graphic) == ANIM_RANDOM &&
DrawLevelGraphicAnimation(x, y, graphic);
if (ANIM_MODE(graphic) == ANIM_RANDOM &&
@@
-11529,8
+11529,12
@@
void GameActions_RND()
if (IS_GEM(element) || element == EL_SP_INFOTRON)
TEST_DrawTwinkleOnField(x, y);
}
if (IS_GEM(element) || element == EL_SP_INFOTRON)
TEST_DrawTwinkleOnField(x, y);
}
- else if ((element == EL_ACID ||
- element == EL_EXIT_OPEN ||
+ else if (element == EL_ACID)
+ {
+ if (!Stop[x][y])
+ DrawLevelGraphicAnimationIfNeeded(x, y, graphic);
+ }
+ else if ((element == EL_EXIT_OPEN ||
element == EL_EM_EXIT_OPEN ||
element == EL_SP_EXIT_OPEN ||
element == EL_STEEL_EXIT_OPEN ||
element == EL_EM_EXIT_OPEN ||
element == EL_SP_EXIT_OPEN ||
element == EL_STEEL_EXIT_OPEN ||
diff --git
a/src/tools.c
b/src/tools.c
index 2ca18cf6b5f773e117aa6e0ebbfaf0fc010479f3..133a8265d6eee5631b1db356305c27e24218e554 100644
(file)
--- a/
src/tools.c
+++ b/
src/tools.c
@@
-2322,6
+2322,10
@@
void DrawScreenField(int x, int y)
int newly = ly + (dir == MV_UP ? -1 : dir == MV_DOWN ? +1 : 0);
DrawLevelElementThruMask(newlx, newly, EL_ACID);
int newly = ly + (dir == MV_UP ? -1 : dir == MV_DOWN ? +1 : 0);
DrawLevelElementThruMask(newlx, newly, EL_ACID);
+
+ // prevent target field from being drawn again (but without masking)
+ // (this would happen if target field is scanned after moving element)
+ Stop[newlx][newly] = TRUE;
}
}
else if (IS_BLOCKED(lx, ly))
}
}
else if (IS_BLOCKED(lx, ly))