#include "Infotrons.h"
-static char *VB_Name = "modInfotron";
+// static char *VB_Name = "modInfotron";
+
// --- Option Explicit
// ==========================================================================
int tFld;
// PseudoRegisters:
- int ax, bx, cx, dx, di, X, Y;
- int ah, bh, ch, dh, al, bl, cl, dl;
+ // int ax, bx, cx, dx, di, X, Y;
+ // int ah, bh, ch, dh, al, bl, cl, dl;
+ int ax, bx, dx, X, Y;
+ int al, bl;
tFld = PlayField16[si];
if ((tFld & 0xFF) != fiInfotron)
X = GetStretchX(si);
Y = GetStretchY(si - FieldWidth);
dx = bl & 0x7;
+#if 1
+ StretchedSprites.BltImg(X, Y, aniSpace, 0);
+ StretchedSprites.BltImg(X, Y + TwoPixels * (dx + 1), aniInfotron, dx);
+#else
StretchedSprites.BltEx(X, Y, 0);
StretchedSprites.BltEx(X, Y + TwoPixels * (dx + 1), fiInfotron);
+#endif
// +++++++++++++++++++++++++++++++++++++++++++++++++++++
bl = HighByte(PlayField16[si]) + 1;
if (bl == 0x16)
if (bl == 0x29 || bl == 0x25 || bl == 0x26)
return subAnimateInfotrons;
-
-
-
-
-
-
-
-
-
-
loc_g_1386: // someone dies/explodes immediately
si = si + FieldWidth; // 1 field down
ExplodeFieldSP(si); // Explode
return subAnimateInfotrons;
-
-
-
-
loc_g_138D: // infotron comes rolling from right to left
// To Do: draw infotron rolling from right
// according to position in (bl And &H07)
X = GetStretchX(si + 1);
Y = GetStretchY(si);
dx = (bl & 0x7) + 1;
+#if 1
+ StretchedSprites.BltImg(X, Y, aniSpace, 0);
+ StretchedSprites.BltImg(X - (TwoPixels * dx), Y, aniInfotronRollLeft, dx - 1);
+#else
StretchedSprites.BltEx(X, Y, 0);
- StretchedSprites.BltEx(X - (TwoPixels * dx), Y, aniInfotronRollLeft[dx - 1]);
+ StretchedSprites.BltEx(X - (TwoPixels * dx), Y, aniFramesInfotronRollLeft[dx - 1]);
+#endif
// +++++++++++++++++++++++++++++++++++++++++++++++++++++
bl = HighByte(PlayField16[si]) + 1; // get and increment sequence#
if (bl == 0x24)
X = GetStretchX(si - 1);
Y = GetStretchY(si);
dx = (bl & 0x7) + 1;
+#if 1
+ StretchedSprites.BltImg(X, Y, aniSpace, 0);
+ StretchedSprites.BltImg(X + (TwoPixels * dx), Y, aniInfotronRollRight, dx - 1);
+#else
StretchedSprites.BltEx(X, Y, 0);
- StretchedSprites.BltEx(X + (TwoPixels * dx), Y, aniInfotronRollRight[dx - 1]);
+ StretchedSprites.BltEx(X + (TwoPixels * dx), Y, aniFramesInfotronRollRight[dx - 1]);
+#endif
// +++++++++++++++++++++++++++++++++++++++++++++++++++++
bl = HighByte(PlayField16[si]) + 1;
if (bl == 0x34)
X = GetStretchX(si);
Y = GetStretchY(si);
dx = (bl & 0xF) + 1;
+#if 1
+ StretchedSprites.BltImg(X, Y, aniSpace, 0);
+ StretchedSprites.BltImg(X - (TwoPixels * dx), Y, aniInfotronRollLeft, dx - 1);
+#else
StretchedSprites.BltEx(X, Y, 0);
- StretchedSprites.BltEx(X - (TwoPixels * dx), Y, aniInfotronRollLeft[dx - 1]);
+ StretchedSprites.BltEx(X - (TwoPixels * dx), Y, aniFramesInfotronRollLeft[dx - 1]);
+#endif
// +++++++++++++++++++++++++++++++++++++++++++++++++++++
bl = HighByte(PlayField16[si]) + 1; // retrieve and increment sequence#
if (bl < 0x52)
X = GetStretchX(si);
Y = GetStretchY(si);
dx = (bl & 0x7) + 1;
+#if 1
+ StretchedSprites.BltImg(X, Y, aniSpace, 0);
+ StretchedSprites.BltImg(X + (TwoPixels * dx), Y, aniInfotronRollRight, dx - 1);
+#else
StretchedSprites.BltEx(X, Y, 0);
- StretchedSprites.BltEx(X + (TwoPixels * dx), Y, aniInfotronRollRight[dx - 1]);
+ StretchedSprites.BltEx(X + (TwoPixels * dx), Y, aniFramesInfotronRollRight[dx - 1]);
+#endif
// +++++++++++++++++++++++++++++++++++++++++++++++++++++
bl = HighByte(PlayField16[si]) + 1;
if (bl < 0x62)
return subCleanUpForInfotronsAbove;
} // subCleanUpForInfotronsAbove
-