major cleanup of preprocessor hell
[rocksndiamonds.git] / src / game_sp / Explosions.c
index ea9368c56b2830ca2d1da260756dd0b8f9584921..7729d8448f3dcc7c24e00ff668fad0514298f385 100644 (file)
@@ -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,15 +261,11 @@ 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;
   // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 }
@@ -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
-  StretchedSprites.BltImg(X, Y, aniRedDisk, 0);
-#endif
+  DDSpriteBuffer_BltImg(X, Y, aniRedDisk, 0);
   // +++++++++++++++++++++++++++++++++++++++++
 
   RedDiskReleasePhase = RedDiskReleasePhase + 1;