rnd-20100418-1-src
[rocksndiamonds.git] / src / game_sp / Zonk.c
index 0c00be8e0e6bed064d3f778f2cb3a96359bd6f46..8656bdc85afa883fcd8673159037782ec891f2b8 100644 (file)
@@ -131,9 +131,10 @@ loc_g_0DE8: // zonk comes falling from above
   X = GetStretchX(si);
   Y = GetStretchY(si - FieldWidth);
   dx = bl & 0x7;
-  StretchedSprites.BltEx(X, Y, 0);
-  StretchedSprites.BltEx(X, Y + TwoPixels * (dx + 1), fiZonk);
+  DDSpriteBuffer_BltImg(X, Y, aniSpace, 0);
+  DDSpriteBuffer_BltImg(X, Y + TwoPixels * (dx + 1), aniZonk, dx);
   // +++++++++++++++++++++++++++++++++++++++++++++++++++++
+
   bl = HighByte(PlayField16[si]) + 1;
   if (bl == 0x16)
   {
@@ -178,7 +179,12 @@ loc_g_0DE8: // zonk comes falling from above
   if (ax == fiOrangeDisk) // OrangeDisk explodes 'loc_g_0E95:
     goto loc_g_0F75;
 
+#if 1
+  // play the zonk sound, 'cause zonk hits something "hard"
+  subSoundFX(si, fiZonk, actImpact);
+#else
   subSoundFXZonk(); // play the zonk sound,'cause zonk hits something "hard"
+#endif
 
   if (! (ax == fiZonk || ax == fiInfotron || ax == fiRAM))
     return subAnimateZonks;
@@ -206,7 +212,7 @@ loc_g_0EEA:     // test if zonk may roll left
     goto loc_g_0D4C;
 
   MovHighByte(&PlayField16[si], 0x50); // zonk rolls left
-  Mov(&PlayField16[si - 1], 0x8888); // mark as zonk accessing?
+  PlayField16[si - 1] = 0x8888; // mark as zonk accessing?
   return subAnimateZonks;
 
 loc_g_0F00:     // test if zonk may roll right
@@ -214,7 +220,7 @@ loc_g_0F00:     // test if zonk may roll right
     return subAnimateZonks;
 
   MovHighByte(&PlayField16[si], 0x60); // zonk rolls right
-  Mov(&PlayField16[si + 1], 0x8888); // mark as zonk accessing?
+  PlayField16[si + 1] = 0x8888; // mark as zonk accessing?
   return subAnimateZonks;
 
 loc_g_0F14:     // Murphy dies, but not in any case
@@ -262,9 +268,10 @@ loc_g_0F83: // zonk comes rolling from right to left
   X = GetStretchX(si + 1);
   Y = GetStretchY(si);
   dx = (bl & 0x7) + 1;
-  StretchedSprites.BltEx(X, Y, 0);
-  StretchedSprites.BltEx(X - (TwoPixels * dx), Y, aniFramesZonkRollLeft[dx - 1]);
+  DDSpriteBuffer_BltImg(X, Y, aniSpace, 0);
+  DDSpriteBuffer_BltImg(X - (TwoPixels * dx), Y, aniZonkRollLeft, dx - 1);
   // +++++++++++++++++++++++++++++++++++++++++++++++++++++
+
   bl = HighByte(PlayField16[si]) + 1; // get and increment sequence#
   if (bl == 0x24)
     PlayField16[si + 1] = 0xAAAA;
@@ -294,9 +301,10 @@ loc_g_0FE8: // zonk comes rolling from left to right
   X = GetStretchX(si - 1);
   Y = GetStretchY(si);
   dx = (bl & 0x7) + 1;
-  StretchedSprites.BltEx(X, Y, 0);
-  StretchedSprites.BltEx(X + (TwoPixels * dx), Y, aniFramesZonkRollRight[dx - 1]);
+  DDSpriteBuffer_BltImg(X, Y, aniSpace, 0);
+  DDSpriteBuffer_BltImg(X + (TwoPixels * dx), Y, aniZonkRollRight, dx - 1);
   // +++++++++++++++++++++++++++++++++++++++++++++++++++++
+
   bl = HighByte(PlayField16[si]) + 1;
   if (bl == 0x34)
     PlayField16[si - 1] = 0xAAAA;
@@ -346,9 +354,10 @@ loc_g_107B: // zonk rolls left
   X = GetStretchX(si);
   Y = GetStretchY(si);
   dx = (bl & 0xF) + 1;
-  StretchedSprites.BltEx(X, Y, 0);
-  StretchedSprites.BltEx(X - (TwoPixels * dx), Y, aniFramesZonkRollLeft[dx - 1]);
+  DDSpriteBuffer_BltImg(X, Y, aniSpace, 0);
+  DDSpriteBuffer_BltImg(X - (TwoPixels * dx), Y, aniZonkRollLeft, dx - 1);
   // +++++++++++++++++++++++++++++++++++++++++++++++++++++
+
   bl = HighByte(PlayField16[si]) + 1; // retrieve and increment sequence#
   if (bl < 0x52)
   {
@@ -383,9 +392,10 @@ loc_g_10E9: // zonk rolls right
   X = GetStretchX(si);
   Y = GetStretchY(si);
   dx = (bl & 0x7) + 1;
-  StretchedSprites.BltEx(X, Y, 0);
-  StretchedSprites.BltEx(X + (TwoPixels * dx), Y, aniFramesZonkRollRight[dx - 1]);
+  DDSpriteBuffer_BltImg(X, Y, aniSpace, 0);
+  DDSpriteBuffer_BltImg(X + (TwoPixels * dx), Y, aniZonkRollRight, dx - 1);
   // +++++++++++++++++++++++++++++++++++++++++++++++++++++
+
   bl = HighByte(PlayField16[si]) + 1;
   if (bl < 0x62)
   {
@@ -473,4 +483,3 @@ loc_g_16A7:
 
   return subCleanUpForZonksAbove;
 } // subCleanUpForZonksAbove
-