projects
/
rocksndiamonds.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
4542ded
)
added initializing gray ball content elements in MM engine
author
Holger Schemel
<info@artsoft.org>
Sat, 18 Feb 2023 16:18:10 +0000
(17:18 +0100)
committer
Holger Schemel
<info@artsoft.org>
Sat, 18 Feb 2023 16:18:27 +0000
(17:18 +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 d6ba5374db4d5e50448ab0e7ead370bda84bb6c8..9a7ad5e6b031563653389669f4f6690f500acdce 100644
(file)
--- a/
src/game_mm/mm_game.c
+++ b/
src/game_mm/mm_game.c
@@
-463,7
+463,7
@@
static void InitMovDir_MM(int x, int y)
}
}
}
}
-static void InitField(int x, int y)
+static void InitField(int x, int y
, boolean init_game
)
{
int element = Tile[x][y];
{
int element = Tile[x][y];
@@
-475,7
+475,7
@@
static void InitField(int x, int y)
case EL_KETTLE:
case EL_CELL:
case EL_KETTLE:
case EL_CELL:
- if (native_mm_level.auto_count_kettles)
+ if (
init_game &&
native_mm_level.auto_count_kettles)
game_mm.kettles_still_needed++;
break;
game_mm.kettles_still_needed++;
break;
@@
-535,9
+535,12
@@
static void InitField(int x, int y)
}
else if (IS_MCDUFFIN(element) || IS_LASER(element))
{
}
else if (IS_MCDUFFIN(element) || IS_LASER(element))
{
- laser.start_edge.x = x;
- laser.start_edge.y = y;
- laser.start_angle = get_element_angle(element);
+ if (init_game)
+ {
+ laser.start_edge.x = x;
+ laser.start_edge.y = y;
+ laser.start_angle = get_element_angle(element);
+ }
if (IS_MCDUFFIN(element))
{
if (IS_MCDUFFIN(element))
{
@@
-699,7
+702,7
@@
void InitGameEngine_MM(void)
Store[x][y] = Store2[x][y] = 0;
Stop[x][y] = FALSE;
Store[x][y] = Store2[x][y] = 0;
Stop[x][y] = FALSE;
- InitField(x, y);
+ InitField(x, y
, TRUE
);
}
}
}
}
@@
-2482,7
+2485,9
@@
static void OpenSurpriseBall(int x, int y)
{
Tile[x][y] = Store[x][y];
Store[x][y] = Store2[x][y] = 0;
{
Tile[x][y] = Store[x][y];
Store[x][y] = Store2[x][y] = 0;
+ MovDir[x][y] = MovPos[x][y] = MovDelay[x][y] = 0;
+ InitField(x, y, FALSE);
DrawField_MM(x, y);
ScanLaser();
DrawField_MM(x, y);
ScanLaser();
@@
-2720,7
+2725,7
@@
static void Explode_MM(int x, int y, int phase, int mode)
Store[x][y] = Store2[x][y] = 0;
MovDir[x][y] = MovPos[x][y] = MovDelay[x][y] = 0;
Store[x][y] = Store2[x][y] = 0;
MovDir[x][y] = MovPos[x][y] = MovDelay[x][y] = 0;
- InitField(x, y);
+ InitField(x, y
, FALSE
);
DrawField_MM(x, y);
}
else if (!(phase % delay) && IN_SCR_FIELD(SCREENX(x), SCREENY(y)))
DrawField_MM(x, y);
}
else if (!(phase % delay) && IN_SCR_FIELD(SCREENX(x), SCREENY(y)))