X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fgame.c;h=fefe353d0e1194cd12a2349fdcda8981961c8895;hb=a6d0395ba3236badfa052d8329bb42f9a440433f;hp=fdb77eb3e9e2a139200e2d6d4741f9455b4603e6;hpb=172a34e8d64ad71e6eee7871803e9faee7669ca3;p=rocksndiamonds.git diff --git a/src/game.c b/src/game.c index fdb77eb3..fefe353d 100644 --- a/src/game.c +++ b/src/game.c @@ -3595,7 +3595,7 @@ void InitGame(void) SCAN_PLAYFIELD(x, y) { - Feld[x][y] = level.field[x][y]; + Feld[x][y] = Last[x][y] = level.field[x][y]; MovPos[x][y] = MovDir[x][y] = MovDelay[x][y] = 0; ChangeDelay[x][y] = 0; ChangePage[x][y] = -1; @@ -8917,7 +8917,7 @@ static void Life(int ax, int ay) { int xx = ax+x1, yy = ay+y1; int old_element = Feld[xx][yy]; - int nachbarn = 0; + int num_neighbours = 0; if (!IN_LEV_FIELD(xx, yy)) continue; @@ -8933,13 +8933,13 @@ static void Life(int ax, int ay) (element == EL_GAME_OF_LIFE && IS_PLAYER(x, y))) && !Stop[x][y]) || (IS_FREE(x, y) && Stop[x][y])) - nachbarn++; + num_neighbours++; } if (xx == ax && yy == ay) /* field in the middle */ { - if (nachbarn < life_parameter[0] || - nachbarn > life_parameter[1]) + if (num_neighbours < life_parameter[0] || + num_neighbours > life_parameter[1]) { Feld[xx][yy] = EL_EMPTY; if (Feld[xx][yy] != old_element) @@ -8950,8 +8950,8 @@ static void Life(int ax, int ay) } else if (IS_FREE(xx, yy) || CAN_GROW_INTO(Feld[xx][yy])) { /* free border field */ - if (nachbarn >= life_parameter[2] && - nachbarn <= life_parameter[3]) + if (num_neighbours >= life_parameter[2] && + num_neighbours <= life_parameter[3]) { Feld[xx][yy] = element; MovDelay[xx][yy] = (element == EL_GAME_OF_LIFE ? 0 : life_time-1); @@ -11733,6 +11733,8 @@ void GameActions_RND(void) SCAN_PLAYFIELD(x, y) { + Last[x][y] = Feld[x][y]; + ChangeCount[x][y] = 0; ChangeEvent[x][y] = -1;