if (SnikSnaksElectronsFrozen == 1)
return subAnimateSnikSnaks;
+#if 1
+ /* (not sure why this was removed -- this broke several level solutions) */
+ if (LowByte(PlayField16[si]) != fiSnikSnak)
+ return subAnimateSnikSnaks;
+#endif
+
// If LowByte(PlayField16(si)) <> fiSnikSnak Then Exit Function
// Debug.Assert (LowByte(PlayField16[si]) == fiSnikSnak);
bx = HighByte(PlayField16[si]);
static int subSnikSnakTurnLeft;
// int ax, ah, bl, dx, X, Y;
- int ax, ah, bl, X, Y;
+ int ax, ah, bl;
ax = (TimerVar & 3);
if (ax != 0)
return subSnikSnakTurnLeft;
} // loc_g_75E0:
+#if 1
+ subDrawSnikSnakTurnLeft(si, bx);
+#else
// +++++++++++++++++++++++++++++++++++++++++++++++++++++
X = GetStretchX(si);
Y = GetStretchY(si);
- StretchedSprites.BltEx(X, Y, aniSnikSnak[bx]);
+ StretchedSprites.BltEx(X, Y, aniFramesSnikSnak[bx]);
// +++++++++++++++++++++++++++++++++++++++++++++++++++++
+#endif
+
bx = (bx + 1) & 0x7;
MovHighByte(&PlayField16[si], bx);
return subSnikSnakTurnLeft;
static int subSnikSnakTurnRight;
// int ax, ah, bl, dx, X, Y;
- int ax, ah, bl, X, Y;
+ int ax, ah, bl;
ax = (TimerVar & 3);
if (ax != 0)
return subSnikSnakTurnRight;
} // loc_g_76DB:
+#if 1
+ subDrawSnikSnakTurnRight(si, bx);
+#else
// +++++++++++++++++++++++++++++++++++++++++++++++++++++
X = GetStretchX(si);
Y = GetStretchY(si);
- StretchedSprites.BltEx(X, Y, aniSnikSnak[0x10 - bx]);
+ StretchedSprites.BltEx(X, Y, aniFramesSnikSnak[0x10 - bx]);
// +++++++++++++++++++++++++++++++++++++++++++++++++++++
+#endif
+
bx = ((bx + 1) & 0x7) | 8;
MovHighByte(&PlayField16[si], bx);
return subSnikSnakTurnRight;
static int subSnikSnakFromBelow;
// int ax, ah, bl, dx, X, Y;
- int ax, bl, X, Y;
+ int ax, bl;
+#if 1
+ subDrawSnikSnakFromBelow(si, bx);
+ bx = bx - 0xF; // get and increment sequence#
+#else
bx = bx - 0xF; // get and increment sequence#
// +++++++++++++++++++++++++++++++++++++++++++++++++++++
X = GetStretchX(si);
StretchedSprites.BltEx(X, Y, 0);
StretchedSprites.BltEx(X, Y - bx * TwoPixels, aniSnikSnakUp + bx);
// +++++++++++++++++++++++++++++++++++++++++++++++++++++
+#endif
+
bl = LowByte(bx);
if (bl == 7 && LowByte(PlayField16[si + FieldWidth]) != fiExplosion)
{
static int subSnikSnakFromRight;
// int ax, ah, bl, dx, X, Y;
- int ax, bl, X, Y;
+ int ax, bl;
+#if 1
+ subDrawSnikSnakFromRight(si, bx);
+ bx = bx - 0x17; // get and increment sequence#
+#else
bx = bx - 0x17; // get and increment sequence#
// +++++++++++++++++++++++++++++++++++++++++++++++++++++
X = GetStretchX(si + 1);
StretchedSprites.BltEx(X, Y, 0);
StretchedSprites.BltEx(X - bx * TwoPixels, Y, aniSnikSnakLeft + bx);
// +++++++++++++++++++++++++++++++++++++++++++++++++++++
+#endif
+
bl = LowByte(bx);
if (bl == 7 && LowByte(PlayField16[si + 1]) != fiExplosion)
{
static int subSnikSnakFromAbove;
// int ax, ah, bl, dx, X, Y;
- int ax, bl, X, Y;
+ int ax, bl;
+#if 1
+ subDrawSnikSnakFromAbove(si, bx);
+ bx = bx - 0x1F; // get and increment sequence#
+#else
bx = bx - 0x1F; // get and increment sequence#
// +++++++++++++++++++++++++++++++++++++++++++++++++++++
X = GetStretchX(si);
StretchedSprites.BltEx(X, Y, 0);
StretchedSprites.BltEx(X, Y + bx * TwoPixels, aniSnikSnakDown + bx);
// +++++++++++++++++++++++++++++++++++++++++++++++++++++
+#endif
+
bl = LowByte(bx);
if (bl == 7 && LowByte(PlayField16[si - FieldWidth]) != fiExplosion)
{
static int subSnikSnakFromLeft;
// int ax, ah, bl, dx, X, Y;
- int ax, bl, X, Y;
+ int ax, bl;
+#if 1
+ subDrawSnikSnakFromLeft(si, bx);
+ bx = bx - 0x27; // get and increment sequence#
+#else
bx = bx - 0x27; // get and increment sequence#
// +++++++++++++++++++++++++++++++++++++++++++++++++++++
X = GetStretchX(si - 1);
StretchedSprites.BltEx(X, Y, 0);
StretchedSprites.BltEx(X + bx * TwoPixels, Y, aniSnikSnakRight + bx);
// +++++++++++++++++++++++++++++++++++++++++++++++++++++
+#endif
+
bl = LowByte(bx);
if (bl == 7 && LowByte(PlayField16[si - 1]) != fiExplosion)
{
{
static int subDrawSnikSnakTurnLeft;
+#if 1
+ // int pos = bx / 2;
+ int pos = ((bx + 7) % 8) / 2;
+
+ GfxGraphic[GetX(si)][GetY(si)] = aniSnikSnakTurningLeft[pos];
+#else
int X, Y;
// +++++++++++++++++++++++++++++++++++++++++++++++++++++
X = GetStretchX(si);
Y = GetStretchY(si);
- StretchedSprites.BltEx(X, Y, aniSnikSnak[bx]);
+ StretchedSprites.BltEx(X, Y, aniFramesSnikSnak[bx]);
// +++++++++++++++++++++++++++++++++++++++++++++++++++++
+#endif
return subDrawSnikSnakTurnLeft;
}
{
static int subDrawSnikSnakTurnRight;
+#if 1
+ // int pos = (bx - 8) / 2;
+ int pos = ((bx - 1) % 8) / 2;
+
+ GfxGraphic[GetX(si)][GetY(si)] = aniSnikSnakTurningRight[pos];
+#else
int X, Y;
// +++++++++++++++++++++++++++++++++++++++++++++++++++++
X = GetStretchX(si);
Y = GetStretchY(si);
- StretchedSprites.BltEx(X, Y, aniSnikSnak[0x10 - bx]);
+ StretchedSprites.BltEx(X, Y, aniFramesSnikSnak[0x10 - bx]);
// +++++++++++++++++++++++++++++++++++++++++++++++++++++
+#endif
return subDrawSnikSnakTurnRight;
}
// +++++++++++++++++++++++++++++++++++++++++++++++++++++
X = GetStretchX(si);
Y = GetStretchY(si + FieldWidth);
+#if 1
+ StretchedSprites.BltImg(X, Y, aniSpace, 0);
+ StretchedSprites.BltImg(X, Y - bx * TwoPixels, aniSnikSnakUp, bx);
+#else
StretchedSprites.BltEx(X, Y, 0);
StretchedSprites.BltEx(X, Y - bx * TwoPixels, aniSnikSnakUp + bx);
+#endif
// +++++++++++++++++++++++++++++++++++++++++++++++++++++
return subDrawSnikSnakFromBelow;
// +++++++++++++++++++++++++++++++++++++++++++++++++++++
X = GetStretchX(si + 1);
Y = GetStretchY(si);
+#if 1
+ StretchedSprites.BltImg(X, Y, aniSpace, 0);
+ StretchedSprites.BltImg(X - bx * TwoPixels, Y, aniSnikSnakLeft, bx);
+#else
StretchedSprites.BltEx(X, Y, 0);
StretchedSprites.BltEx(X - bx * TwoPixels, Y, aniSnikSnakLeft + bx);
+#endif
// +++++++++++++++++++++++++++++++++++++++++++++++++++++
return subDrawSnikSnakFromRight;
// +++++++++++++++++++++++++++++++++++++++++++++++++++++
X = GetStretchX(si);
Y = GetStretchY(si - FieldWidth);
+#if 1
+ StretchedSprites.BltImg(X, Y, aniSpace, 0);
+ StretchedSprites.BltImg(X, Y + bx * TwoPixels, aniSnikSnakDown, bx);
+#else
StretchedSprites.BltEx(X, Y, 0);
StretchedSprites.BltEx(X, Y + bx * TwoPixels, aniSnikSnakDown + bx);
+#endif
// +++++++++++++++++++++++++++++++++++++++++++++++++++++
return subDrawSnikSnakFromAbove;
// +++++++++++++++++++++++++++++++++++++++++++++++++++++
X = GetStretchX(si - 1);
Y = GetStretchY(si);
+#if 1
+ StretchedSprites.BltImg(X, Y, aniSpace, 0);
+ StretchedSprites.BltImg(X + bx * TwoPixels, Y, aniSnikSnakRight, bx);
+#else
StretchedSprites.BltEx(X, Y, 0);
StretchedSprites.BltEx(X + bx * TwoPixels, Y, aniSnikSnakRight + bx);
+#endif
// +++++++++++++++++++++++++++++++++++++++++++++++++++++
return subDrawSnikSnakFromLeft;