projects
/
rocksndiamonds.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
f11f733
)
added drawing sparkles when laser hits mirrors for MM engine
author
Holger Schemel
<info@artsoft.org>
Fri, 25 Nov 2022 19:40:08 +0000
(20:40 +0100)
committer
Holger Schemel
<info@artsoft.org>
Fri, 25 Nov 2022 19:40:08 +0000
(20:40 +0100)
src/game_mm/mm_game.c
patch
|
blob
|
history
diff --git
a/src/game_mm/mm_game.c
b/src/game_mm/mm_game.c
index 1ef6339e826957c521ef5d79efc81935cbd8ebba..7b8a139b114fe8647bf23c6e37becc1af4c5b9d5 100644
(file)
--- a/
src/game_mm/mm_game.c
+++ b/
src/game_mm/mm_game.c
@@
-1463,14
+1463,14
@@
boolean HitElement(int element, int hit_mask)
LX += step_size * XS;
LY += step_size * YS;
LX += step_size * XS;
LY += step_size * YS;
-#if 0
// draw sparkles on mirror
// draw sparkles on mirror
- if ((IS_MIRROR(element) || IS_MIRROR_FIXED(element)) &&
+ if ((IS_MIRROR(element) ||
+ IS_MIRROR_FIXED(element) ||
+ element == EL_PRISM) &&
current_angle != laser.current_angle)
{
current_angle != laser.current_angle)
{
- Mov
eSprite(vp, &Pfeil[2], 4 + 16 * ELX, 5 + 16 * ELY + 1);
+ Mov
Delay[ELX][ELY] = 11; // start animation
}
}
-#endif
if ((!IS_POLAR(element) && !IS_POLAR_CROSS(element)) &&
current_angle != laser.current_angle)
if ((!IS_POLAR(element) && !IS_POLAR_CROSS(element)) &&
current_angle != laser.current_angle)
@@
-2404,11
+2404,31
@@
static void GrowAmoeba(int x, int y)
static void DrawFieldAnimated_MM(int x, int y)
{
static void DrawFieldAnimated_MM(int x, int y)
{
+ int element = Tile[x][y];
+
if (IS_BLOCKED(x, y))
return;
DrawField_MM(x, y);
if (IS_BLOCKED(x, y))
return;
DrawField_MM(x, y);
+ if (IS_MIRROR(element) ||
+ IS_MIRROR_FIXED(element) ||
+ element == EL_PRISM)
+ {
+ if (MovDelay[x][y] != 0) // wait some time before next frame
+ {
+ MovDelay[x][y]--;
+
+ if (MovDelay[x][y] != 0)
+ {
+ int graphic = IMG_TWINKLE_WHITE;
+ int frame = getGraphicAnimationFrame(graphic, 10 - MovDelay[x][y]);
+
+ DrawGraphicThruMask_MM(SCREENX(x), SCREENY(y), graphic, frame);
+ }
+ }
+ }
+
laser.redraw = TRUE;
}
laser.redraw = TRUE;
}