return;
#if 1
- if (!game_sp_info.LevelSolved)
+ if (!game_sp.LevelSolved)
printf("::: Murphy.c: !!!!!!!!!! LEVEL %d SOLVED !!!!!!!!!!\n",LevelNumber);
#endif
#if 1
- game_sp_info.LevelSolved = TRUE;
+ game_sp.LevelSolved = TRUE;
#endif
subSoundFXExit();
#if 1
// draw new terminal type
+#if 1
+ GfxGraphic[GetX(*si - FieldWidth)][GetY(*si - FieldWidth)] = aniTerminalActive;
+#else
subCopyImageToScreen(*si - FieldWidth, aniTerminalActive);
+#endif
#else
subCopyFieldToScreen(*si - FieldWidth, 0x88); // draw new terminal type
#endif
#if 1
// draw new terminal type
+#if 1
+ GfxGraphic[GetX(*si - 1)][GetY(*si - 1)] = aniTerminalActive;
+#else
subCopyImageToScreen(*si - 1, aniTerminalActive);
+#endif
#else
subCopyFieldToScreen(*si - 1, 0x88); // draw new terminal type
#endif
#if 1
// draw new terminal type
+#if 1
+ GfxGraphic[GetX(*si + FieldWidth)][GetY(*si + FieldWidth)] = aniTerminalActive;
+#else
subCopyImageToScreen(*si + FieldWidth, aniTerminalActive);
+#endif
#else
subCopyFieldToScreen(*si + FieldWidth, 0x88); // draw new terminal type
#endif
#if 1
// draw new terminal type
+#if 1
+ GfxGraphic[GetX(*si + 1)][GetY(*si + 1)] = aniTerminalActive;
+#else
subCopyImageToScreen(*si + 1, aniTerminalActive);
+#endif
#else
subCopyFieldToScreen(*si + 1, 0x88); // draw new terminal type
#endif
MurphyScreenXPos, MurphyScreenYPos, MurphyDX, MurphyDY);
#endif
+#if 0
+ // !!! special two-tile animation currently not used !!!
if (dx2 == fiInfotron) // special case of infotron moving left or right
{
tDeltaX = 0;
tDeltaY = 0;
}
else
+#endif
{
tDeltaX = MurphyDX * LocalStretch * (SeqPos + 1);
tDeltaY = MurphyDY * LocalStretch * (SeqPos + 1);
#if 1
StretchedSprites.BltImg(X, Y, dx1, Tmp);
+ GfxGraphic[GetX(*si)][GetY(*si)] = -1; // (Murphy's position)
+ GfxGraphic[GetX(dxPos)][GetY(dxPos)] = -1; // (snapping position)
// printf("::: Tmp: %d\n", Tmp);
#else
StretchedSprites.BltEx(X, Y, dx[Tmp]);
tPos = dxPos + dx2Step;
X = GetStretchX(tPos);
Y = GetStretchY(tPos);
+#if 0
+ // !!! special two-tile animation currently not used !!!
if (dx2 == fiInfotron) // special case of infotron moving left or right
{
StretchedSprites.BltEx(X, Y, dx[SeqPos] + dx2Step);
}
else // pushing something
+#endif
{
#if 1
// (SeqPos iterates from 0 to 7 while pushing)
tDeltaY = MurphyDY * LocalStretch * (SeqPos + 1);
X = GetStretchX(dxPos) + tDeltaX;
Y = GetStretchY(dxPos) + tDeltaY;
+#if 1
+ StretchedSprites.BltImg(X, Y, dx1, SeqPos); // plot first murphy
+#else
StretchedSprites.BltEx(X, Y, dx[SeqPos]); // plot first murphy
+#endif
tPos = dxPos + dx2Step;
X = GetStretchX(tPos);
Y = GetStretchY(tPos);
+#if 1
+ StretchedSprites.BltImg(X + tDeltaX, Y + tDeltaY, dx1, SeqPos); // plot second murphy
+ StretchedSprites.BltImg(X, Y, fiGraphic[LowByte(PlayField16[tPos])], 0); // replot the port on top
+#else
StretchedSprites.BltEx(X + tDeltaX, Y + tDeltaY, dx[SeqPos]); // plot second murphy
StretchedSprites.BltEx(X, Y, LowByte(PlayField16[tPos])); // replot the port on top
+#endif
// End of split movement (port)
// ------------------------------
} // loc_g_6D1E:'loc_g_6D28:
return subSpPortTest;
} // subSpPortTest
+#if 0
+
void subCopyFieldToScreen(int si, int fi)
{
int X, Y;
// +++++++++++++++++++++++++++++++++++++++++
}
+#endif
+
void subCopyAnimToScreen(int si, int graphic, int sync_frame)
{
int X, Y;