rnd-20100218-1-src
[rocksndiamonds.git] / src / game_sp / Explosions.c
index 6855088d326adc00b07b6f91a3fc43d0deff057a..9398d84779d2c8c702f05a54eb984c0c4a10522e 100644 (file)
@@ -30,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;
 
@@ -38,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)
   {
@@ -83,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)
   {
@@ -118,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:
@@ -146,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;
@@ -155,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)