X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fgame_sp%2FExplosions.c;h=9398d84779d2c8c702f05a54eb984c0c4a10522e;hb=3d7779514ea1fa0a79312ec8e98f08e5b1096fcb;hp=b6b6ca802509e993d7385339c77ce5577c9ded63;hpb=5ba7f2d9a3f07f342afdf215a3307d5487cb6d43;p=rocksndiamonds.git diff --git a/src/game_sp/Explosions.c b/src/game_sp/Explosions.c index b6b6ca80..9398d847 100644 --- a/src/game_sp/Explosions.c +++ b/src/game_sp/Explosions.c @@ -8,7 +8,7 @@ static void LetExplodeFieldSP(int tsi, int cx, int dh); static int subExplodeInfotron(int tsi, int cx); static int subExplodeZonk(int tsi, int cx); -static char *VB_Name = "modExplosions"; +// static char *VB_Name = "modExplosions"; // --- Option Explicit // ========================================================================== @@ -19,7 +19,8 @@ int subAnimateExplosion(int si) { int subAnimateExplosion; - int ax, bx, bl, X, Y; + // int ax, bx, bl, X, Y; + int ax, bl, X, Y; if (LowByte(PlayField16[si]) != fiExplosion) return subAnimateExplosion; @@ -29,6 +30,10 @@ int subAnimateExplosion(int si) return subAnimateExplosion; bl = HighByte(PlayField16[si]); +#if 0 + printf("::: subAnimateExplosion: %d [%d, %d] [%d]\n", + bl, PlayField16[si], si, FrameCounter); +#endif if ((bl & 0x80) != 0) // infotron explosion! goto loc_g_28D0; @@ -37,7 +42,7 @@ int subAnimateExplosion(int si) // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ X = GetStretchX(si); Y = GetStretchY(si); - StretchedSprites.BltEx(X, Y, aniExplosion[bl]); + StretchedSprites.BltEx(X, Y, aniFramesExplosion[bl]); // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ if (bl == 8) { @@ -73,7 +78,8 @@ loc_g_28D0: // explosion produces infotron void ExplodeFieldSP(int si) { - int ax, al, cx, dl, dh; + // int ax, al, cx, dl, dh; + int ax, cx, dl; ax = LowByte(PlayField16[si]); if (ax == fiHardWare) @@ -81,7 +87,13 @@ void ExplodeFieldSP(int si) ExplosionShake = 1; // something explodes if (ax == fiMurphy) + { +#if 1 + printf("::: Explosions.c: ExplodeFieldSP(): killing murphy\n"); +#endif + KillMurphyFlag = 1; + } if (ax == fiElectron) { @@ -104,7 +116,7 @@ void ExplodeFieldSP(int si) LetExplodeFieldSP(si + FieldWidth, cx, dl); LetExplodeFieldSP(si + FieldWidth + 1, cx, dl); -loc_g_2C3B: + // loc_g_2C3B: subSoundFXExplosion(); } // ExplodeFieldSP @@ -116,6 +128,10 @@ static void LetExplodeFieldSP(int tsi, int cx, int dh) return; al = LowByte(PlayField16[tsi]); +#if 0 + printf("::: LetExplodeFieldSP: got %d [%d, %d] [%d]\n", + al, PlayField16[tsi], tsi, FrameCounter); +#endif switch (al) { case fiHardWare: @@ -144,6 +160,11 @@ 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; @@ -153,6 +174,8 @@ static void LetExplodeFieldSP(int tsi, int cx, int dh) PlayField16[tsi] = cx; break; } + + GfxGraphic[GetX(tsi)][GetY(tsi)] = -1; } static int subExplodeZonk(int tsi, int cx) @@ -306,7 +329,7 @@ int subFollowUpExplosions() int ax, si; -locloop_g_2919: + // locloop_g_2919: for (si = 0; si <= LevelMax; si++) { ax = ByteToInt(PlayField8[si]);