X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Ftools.c;h=3595839db2e82a9aa898a4ca67e10d5e16bcc966;hb=c9bb6e0a6eecbf84320be79b121bd957a938a08c;hp=f2f3cdd03859b746a9b97f774d6854db2c8d7a0c;hpb=4c2027809249e8cfb5d81ef0ab5835f40c3a3835;p=rocksndiamonds.git diff --git a/src/tools.c b/src/tools.c index f2f3cdd0..3595839d 100644 --- a/src/tools.c +++ b/src/tools.c @@ -739,10 +739,14 @@ void DrawPlayer(struct PlayerInfo *player) if (player_is_moving && last_element == EL_EXPLOSION) { +#if 1 + int graphic = el_act2img(GfxElement[last_jx][last_jy], ACTION_EXPLODING); +#else int stored = Store[last_jx][last_jy]; int graphic = (game.emulation != EMU_SUPAPLEX ? IMG_EXPLOSION : stored == EL_SP_INFOTRON ? IMG_SP_EXPLOSION_INFOTRON : IMG_SP_EXPLOSION); +#endif int delay = (game.emulation == EMU_SUPAPLEX ? 3 : 2); int phase = ExplodePhase[last_jx][last_jy] - 1; int frame = getGraphicAnimationFrame(graphic, phase - delay); @@ -1191,7 +1195,7 @@ static void DrawLevelFieldCrumbledSandExt(int x, int y, int graphic, int frame) element = (GfxElement[x][y] != EL_UNDEFINED ? GfxElement[x][y] : Feld[x][y]); /* crumble field itself */ - if (CAN_BE_CRUMBLED(element)) + if (CAN_BE_CRUMBLED(element) && !IS_MOVING(x, y)) { if (!IN_SCR_FIELD(sx, sy)) return; @@ -1206,7 +1210,7 @@ static void DrawLevelFieldCrumbledSandExt(int x, int y, int graphic, int frame) element = (IN_LEV_FIELD(xx, yy) ? Feld[xx][yy] : EL_STEELWALL); /* check if neighbour field is of same type */ - if (CAN_BE_CRUMBLED(element)) + if (CAN_BE_CRUMBLED(element) && !IS_MOVING(xx, yy)) continue; if (i == 1 || i == 2) @@ -1243,7 +1247,8 @@ static void DrawLevelFieldCrumbledSandExt(int x, int y, int graphic, int frame) if (!IN_LEV_FIELD(xx, yy) || !IN_SCR_FIELD(sxx, syy) || - !CAN_BE_CRUMBLED(Feld[xx][yy])) + !CAN_BE_CRUMBLED(Feld[xx][yy]) || + IS_MOVING(xx, yy)) continue; if (i == 1 || i == 2)