NO_CUTTING);
else
{
+#if 0
+ int element = Feld[jx][jy];
+#else
int element = Feld[next_jx][next_jy];
+#endif
+
int graphic = el2img(element);
int frame = 0;
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);
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;
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)
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)