-#define COMPILE_DATE_STRING "[2002-11-17 04:09]"
+#define COMPILE_DATE_STRING "[2002-11-18 21:55]"
if (IS_PLAYER(x, y) && !PLAYERINFO(x,y)->present)
StorePlayer[x][y] = 0;
}
- else if (!(phase % delay) && IN_SCR_FIELD(SCREENX(x), SCREENY(y)))
+ else if (phase >= delay && IN_SCR_FIELD(SCREENX(x), SCREENY(y)))
{
- int graphic = IMG_EXPLOSION;
- int frame = (phase / delay - 1);
-
- if (game.emulation == EMU_SUPAPLEX)
- graphic = (Store[x][y] == EL_SP_INFOTRON ?
- IMG_SP_EXPLOSION_INFOTRON :
- IMG_SP_EXPLOSION);
+ int stored = Store[x][y];
+ int graphic = (game.emulation != EMU_SUPAPLEX ? IMG_EXPLOSION :
+ stored == EL_SP_INFOTRON ? IMG_SP_EXPLOSION_INFOTRON :
+ IMG_SP_EXPLOSION);
+ int frame = getGraphicAnimationFrame(graphic, phase - delay);
if (phase == delay)
DrawCrumbledSand(SCREENX(x), SCREENY(y));
{ "explosion.xpos", "0" },
{ "explosion.ypos", "4" },
{ "explosion.frames", "8" },
+ { "explosion.delay", "2" },
+ { "explosion.global_sync", "0" },
{ "twinkle_blue", "RocksHeroes.pcx" },
{ "twinkle_blue.xpos", "9" },
if (player_is_moving && last_element == EL_EXPLOSION)
{
- int graphic = IMG_EXPLOSION;
- int phase = Frame[last_jx][last_jy] - 1;
+ 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);
int delay = (game.emulation == EMU_SUPAPLEX ? 3 : 2);
- int frame = (phase / delay - 1);
-
- if (game.emulation == EMU_SUPAPLEX)
- graphic = (Store[last_jx][last_jy] == EL_SP_INFOTRON ?
- IMG_SP_EXPLOSION_INFOTRON :
- IMG_SP_EXPLOSION);
+ int phase = Frame[last_jx][last_jy] - 1;
+ int frame = getGraphicAnimationFrame(graphic, phase - delay);
- if (frame >= 0)
+ if (phase >= delay)
DrawGraphicThruMask(SCREENX(last_jx), SCREENY(last_jy), graphic, frame);
}