X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fgame.c;h=2c577f2fe3fa8db757c460a06a51b3a8a529fe7f;hb=2bcba5d4d363ba2f58c9d3f22aba6a455522f499;hp=54d678499801233dd497952ba799c00004722253;hpb=684f9040af5b97bc73676f8f8198688d87c3ea25;p=rocksndiamonds.git diff --git a/src/game.c b/src/game.c index 54d67849..2c577f2f 100644 --- a/src/game.c +++ b/src/game.c @@ -1893,7 +1893,7 @@ void Explode(int ex, int ey, int phase, int mode) PlaySoundLevelAction(ex, ey, ACTION_EXPLODING); /* remove things displayed in background while burning dynamite */ - if (!IS_INDESTRUCTIBLE(Back[ex][ey])) + if (Back[ex][ey] != EL_EMPTY && !IS_INDESTRUCTIBLE(Back[ex][ey])) Back[ex][ey] = 0; if (IS_MOVING(ex, ey) || IS_BLOCKED(ex, ey)) @@ -1927,7 +1927,7 @@ void Explode(int ex, int ey, int phase, int mode) #if 1 -#if 1 +#if 0 if (IS_EXPLOSION_PROOF(element)) continue; #else @@ -1958,11 +1958,11 @@ void Explode(int ex, int ey, int phase, int mode) } /* save walkable background elements while explosion on same tile */ -#if 1 +#if 0 if (IS_INDESTRUCTIBLE(element)) Back[x][y] = element; #else - if (IS_INDESTRUCTIBLE(element) && IS_WALKABLE(element)) + if (IS_WALKABLE(element) && IS_INDESTRUCTIBLE(element)) Back[x][y] = element; #endif @@ -2136,6 +2136,9 @@ void Explode(int ex, int ey, int phase, int mode) InitMovDir(x, y); DrawLevelField(x, y); + if (CAN_BE_CRUMBLED(element)) + DrawLevelFieldCrumbledSandNeighbours(x, y); + if (IS_PLAYER(x, y) && !PLAYERINFO(x,y)->present) StorePlayer[x][y] = 0; } @@ -4055,7 +4058,8 @@ void StartMoving(int x, int y) TurnRound(x, y); #if 1 - DrawLevelElementAnimation(x, y, element); + if (GFX_ELEMENT(element) != EL_SAND) + DrawLevelElementAnimation(x, y, element); #else if (element == EL_BUG || element == EL_SPACESHIP ||