LastFrame = Clock.TickNow(); // store the frame time
#endif
// never any additional code between here!
+
+
+
+#if 0
if (! NoDisplayFlag) // copy the BackBuffer(=Stage) to visible screen
Stage.Blt();
+#endif
+
+
// FS end of synchronization
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
locExitMainGameLoop:
-#if 0
+#if 1
printf("::: locExitMainGameLoop reached [%d]\n", LeadOutCounter);
+ printf("::: [KillMurphyFlag == %d]\n", KillMurphyFlag);
#endif
-
+#if 1
+ /* if the game is not won when reaching this point, then it is lost */
+ if (!game_sp_info.LevelSolved)
+ game_sp_info.GameOver = TRUE;
+#endif
#if 1
return subMainGameLoop;
int ax, Ay;
+#if 1
+ int jump_pos = TILEX / 2;
+
+ if (MurphyScreenXPos < -jump_pos)
+ {
+ MurphyScreenXPos = FieldWidth * TILEX + MurphyScreenXPos;
+ MurphyScreenYPos -= TILEY;
+ }
+ else if (MurphyScreenXPos >= FieldWidth * TILEX - jump_pos)
+ {
+ MurphyScreenXPos = MurphyScreenXPos - FieldWidth * TILEX;
+ MurphyScreenYPos += TILEY;
+ }
+#endif
+
if (ExplosionShake != 0)
{
subGetRandomNumber();
+
+ // printf("::: ExplosionShake [%d]\n", FrameCounter);
}
{