X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Fgame.c;h=7fa685050df85dd100f8e5e026387703ee7487f0;hb=091030459bbdc406295bcb6d9ecc431081ff03db;hp=6925cfaedbafcac5cca7f1e3831436d48237989e;hpb=a03cba579681d7e84e8d85549518ddc7e1dc2f63;p=rocksndiamonds.git diff --git a/src/game.c b/src/game.c index 6925cfae..7fa68505 100644 --- a/src/game.c +++ b/src/game.c @@ -1199,20 +1199,17 @@ void RemoveMovingField(int x, int y) if (Feld[x][y] == EL_BLOCKED && (Feld[oldx][oldy] == EL_QUICKSAND_EMPTYING || Feld[oldx][oldy] == EL_MAGIC_WALL_EMPTYING || - Feld[oldx][oldy] == EL_MAGIC_WALL_BD_EMPTYING)) + Feld[oldx][oldy] == EL_MAGIC_WALL_BD_EMPTYING || + Feld[oldx][oldy] == EL_AMOEBA_DRIPPING)) { Feld[oldx][oldy] = (Feld[oldx][oldy] == EL_QUICKSAND_EMPTYING ? EL_MORAST_LEER : Feld[oldx][oldy] == EL_MAGIC_WALL_EMPTYING ? EL_MAGIC_WALL_EMPTY : Feld[oldx][oldy] == EL_MAGIC_WALL_BD_EMPTYING ? - EL_MAGIC_WALL_BD_EMPTY : 0); - Store[oldx][oldy] = Store2[oldx][oldy] = 0; - } - else if (Feld[x][y] == EL_BLOCKED && - Store[oldx][oldy] == EL_AMOEBE_NASS) - { - Feld[oldx][oldy] = Store[oldx][oldy]; + EL_MAGIC_WALL_BD_EMPTY : + Feld[oldx][oldy] == EL_AMOEBA_DRIPPING ? + EL_AMOEBE_NASS : 0); Store[oldx][oldy] = Store2[oldx][oldy] = 0; } else @@ -2946,7 +2943,7 @@ void ContinueMoving(int x, int y) int newx = x + dx, newy = y + dy; int step = (horiz_move ? dx : dy) * TILEX / 8; - if (element == EL_TROPFEN) + if (element == EL_TROPFEN || element == EL_AMOEBA_DRIPPING) step /= 2; else if (element == EL_QUICKSAND_FILLING || element == EL_QUICKSAND_EMPTYING) @@ -3041,16 +3038,17 @@ void ContinueMoving(int x, int y) element = Feld[newx][newy] = Store[x][y]; Store[x][y] = 0; } - else if (Store[x][y] == EL_SALZSAEURE) + else if (element == EL_AMOEBA_DRIPPING) { + Feld[x][y] = EL_AMOEBE_NASS; + element = Feld[newx][newy] = Store[x][y]; Store[x][y] = 0; - Feld[newx][newy] = EL_SALZSAEURE; - element = EL_SALZSAEURE; } - else if (Store[x][y] == EL_AMOEBE_NASS) + else if (Store[x][y] == EL_SALZSAEURE) { Store[x][y] = 0; - Feld[x][y] = EL_AMOEBE_NASS; + Feld[newx][newy] = EL_SALZSAEURE; + element = EL_SALZSAEURE; } MovPos[x][y] = MovDir[x][y] = MovDelay[x][y] = 0; @@ -3450,8 +3448,8 @@ void AmoebeAbleger(int ax, int ay) else { InitMovingField(ax, ay, MV_DOWN); - Feld[ax][ay] = EL_TROPFEN; - Store[ax][ay] = EL_AMOEBE_NASS; + Feld[ax][ay] = EL_AMOEBA_DRIPPING; + Store[ax][ay] = EL_TROPFEN; ContinueMoving(ax, ay); return; }