X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fgame_sp%2FExplosions.c;h=574991b2b7c70bd17515e9ac63325248f62bf2ad;hb=dec5093fc78bfe1356d764c2432fed6566b2af66;hp=ccd75b8f48b99180c1853455f2d8e1382cbe2246;hpb=4591885cdbcfec145d1ac0510fed1519af1eea1d;p=rocksndiamonds.git diff --git a/src/game_sp/Explosions.c b/src/game_sp/Explosions.c index ccd75b8f..574991b2 100644 --- a/src/game_sp/Explosions.c +++ b/src/game_sp/Explosions.c @@ -17,7 +17,7 @@ static void subExplodeZonk(int tsi, int cx); void subAnimateExplosion(int si) { - int ax, bl, X, Y; + int ax, bl; if (LowByte(PlayField16[si]) != fiExplosion) return; @@ -35,15 +35,14 @@ void subAnimateExplosion(int si) MovHighByte(&PlayField16[si], bl); // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - X = GetStretchX(si); - Y = GetStretchY(si); GfxGraphic[GetX(si)][GetY(si)] = aniDefaultExplosion; // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ if (bl == 8) { PlayField16[si] = 0; - ExplosionShake = 0; // nothing explodes + ExplosionShake = 0; // nothing explodes + // ExplosionShakeMurphy = 0; // nothing explodes // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ GfxGraphic[GetX(si)][GetY(si)] = aniSpace; @@ -57,7 +56,8 @@ loc_g_28D0: // explosion produces infotron if (bl == 0x89) { PlayField16[si] = fiInfotron; - MovLowByte(&ExplosionShake, 0); // nothing explodes + MovLowByte(&ExplosionShake, 0); // nothing explodes + // MovLowByte(&ExplosionShakeMurphy, 0); // nothing explodes // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ GfxGraphic[GetX(si)][GetY(si)] = aniInfotron; @@ -69,8 +69,6 @@ loc_g_28D0: // explosion produces infotron MovHighByte(&PlayField16[si], bl); // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - X = GetStretchX(si); - Y = GetStretchY(si); GfxGraphic[GetX(si)][GetY(si)] = aniElectronExplosion; // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ } @@ -88,14 +86,13 @@ void ExplodeFieldSP(int si) if (ax == fiHardWare) return; - ExplosionShake = 1; // something explodes + ExplosionShake = 1; // something explodes + if (ax == fiMurphy) { -#if 1 - printf("::: Explosions.c: ExplodeFieldSP(): killing murphy\n"); -#endif - KillMurphyFlag = 1; + + ExplosionShakeMurphy = 30; // Murphy explodes } if (ax == fiElectron) @@ -129,7 +126,7 @@ static void LetExplodeFieldSP(int tsi, int cx, int dh) { int al; - if (tsi < (-FieldWidth)) + if (tsi < -FieldWidth) return; al = LowByte(PlayField16[tsi]); @@ -161,11 +158,6 @@ static void LetExplodeFieldSP(int tsi, int cx, int dh) break; case fiMurphy: -#if 1 - printf("::: Explosions.c: LetExplodeFieldSP(): killing murphy [%d]\n", - tsi); -#endif - KillMurphyFlag = 1; PlayField8[tsi] = dh; PlayField16[tsi] = cx; @@ -269,20 +261,16 @@ static void subExplodeInfotron(int tsi, int cx) void subClearFieldDueToExplosion(int si) { - int X, Y; - if (LowByte(PlayField16[si]) == fiExplosion) return; PlayField16[si] = 0; // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - X = GetStretchX(si); - Y = GetStretchY(si); GfxGraphic[GetX(si)][GetY(si)] = aniSpace; // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ } -void subRedDiskReleaseExplosion() +void subRedDiskReleaseExplosion(void) { int al, X, Y, si; @@ -297,12 +285,7 @@ void subRedDiskReleaseExplosion() // +++++++++++++++++++++++++++++++++++++++++ X = GetStretchX(si); Y = GetStretchY(si); -#if 0 - // !!! causes flicker -- fix in Murphy.c !!! - GfxGraphic[GetX(si)][GetY(si)] = aniRedDisk; -#else DDSpriteBuffer_BltImg(X, Y, aniRedDisk, 0); -#endif // +++++++++++++++++++++++++++++++++++++++++ RedDiskReleasePhase = RedDiskReleasePhase + 1; @@ -314,7 +297,7 @@ void subRedDiskReleaseExplosion() } } -void subFollowUpExplosions() +void subFollowUpExplosions(void) { int ax, si;