projects
/
rocksndiamonds.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fixed bug with redrawing state changes for "game of life" style elements
[rocksndiamonds.git]
/
src
/
game.c
diff --git
a/src/game.c
b/src/game.c
index 467b9e440a490756c7f28e95bb6f3e549ebec6b5..fdb77eb3e9e2a139200e2d6d4741f9455b4603e6 100644
(file)
--- a/
src/game.c
+++ b/
src/game.c
@@
-8916,6
+8916,7
@@
static void Life(int ax, int ay)
for (y1 = -1; y1 < 2; y1++) for (x1 = -1; x1 < 2; x1++)
{
int xx = ax+x1, yy = ay+y1;
for (y1 = -1; y1 < 2; y1++) for (x1 = -1; x1 < 2; x1++)
{
int xx = ax+x1, yy = ay+y1;
+ int old_element = Feld[xx][yy];
int nachbarn = 0;
if (!IN_LEV_FIELD(xx, yy))
int nachbarn = 0;
if (!IN_LEV_FIELD(xx, yy))
@@
-8941,7
+8942,7
@@
static void Life(int ax, int ay)
nachbarn > life_parameter[1])
{
Feld[xx][yy] = EL_EMPTY;
nachbarn > life_parameter[1])
{
Feld[xx][yy] = EL_EMPTY;
- if (
!Stop[xx][yy]
)
+ if (
Feld[xx][yy] != old_element
)
TEST_DrawLevelField(xx, yy);
Stop[xx][yy] = TRUE;
changed = TRUE;
TEST_DrawLevelField(xx, yy);
Stop[xx][yy] = TRUE;
changed = TRUE;
@@
-8954,7
+8955,7
@@
static void Life(int ax, int ay)
{
Feld[xx][yy] = element;
MovDelay[xx][yy] = (element == EL_GAME_OF_LIFE ? 0 : life_time-1);
{
Feld[xx][yy] = element;
MovDelay[xx][yy] = (element == EL_GAME_OF_LIFE ? 0 : life_time-1);
- if (
!Stop[xx][yy]
)
+ if (
Feld[xx][yy] != old_element
)
TEST_DrawLevelField(xx, yy);
Stop[xx][yy] = TRUE;
changed = TRUE;
TEST_DrawLevelField(xx, yy);
Stop[xx][yy] = TRUE;
changed = TRUE;