rnd-20090730-1-src
[rocksndiamonds.git] / src / game_sp / MainGameLoop.c
index 2852dd0639494e48b662ddb0b8f50c4adbadb4d4..ddf3d4e236b9317f80918bb03c2ae2645984a8d1 100644 (file)
@@ -28,17 +28,27 @@ int subMainGameLoop()
 
   // int al, bx;
   int bx;
+#if 0
   TickCountObject Clock;
   currency LastFrame;
+#endif
 
   if (DemoFlag != 0)
   {
+#if 1
+    printf("::: playing demo ...\n");
+#endif
+
     // EP set level success byte: demo, not game
     WasDemoFlag = 1;
     EP_GameDemoVar0DAA = 0; // demo
   }
   else // loc_g_1836:
   {
+#if 1
+    printf("::: playing game ...\n");
+#endif
+
     // EP set level success byte: game, not demo
     WasDemoFlag = 0;
     EP_GameDemoVar0DAA = 1; // game
@@ -86,10 +96,16 @@ locRepeatMainGameLoop:                           // start repeating game loop
   {
     DoEvents(); // user may klick on menus or move the window here ...
   }
+#if 1
+  while (0);
+#else
   while (Clock.TickDiffUS(LastFrame) < DeltaT); // wait till its time for the next frame
+#endif
 
   //   never any additional code between here!
-  LastFrame = Clock.TickNow; // store the frame time
+#if 0
+  LastFrame = Clock.TickNow(); // store the frame time
+#endif
   //   never any additional code between here!
   if (! NoDisplayFlag) // copy the BackBuffer(=Stage) to visible screen
     Stage.Blt();
@@ -130,8 +146,16 @@ locRepeatMainGameLoop:                           // start repeating game loop
   // ----------------------------------------------------------------------------
   //
 
+#if 0
+  printf("::: >>>>>>>>>> MainGameLoop.c: subDoGameStuff() START\n");
+#endif
+
   subDoGameStuff();                 // do all game stuff
 
+#if 0
+  printf("::: <<<<<<<<<< MainGameLoop.c: subDoGameStuff() END\n");
+#endif
+
   //
   // ----------------------------------------------------------------------------
 
@@ -150,7 +174,13 @@ locRepeatMainGameLoop:                           // start repeating game loop
   data_h_Ytmp = ScreenScrollYPos; // copy Y for next soft scroll
   data_h_Xtmp = ScreenScrollXPos; // copy X for next soft scroll
   if ((! UserDragFlag) && AutoScrollFlag)
+  {
+#if 0
+    printf("::: MainGameLoop.c: subMainGameLoop(): %d, %d\n", ScreenScrollXPos, ScreenScrollYPos);
+#endif
+
     ScrollTowards(ScreenScrollXPos, ScreenScrollYPos);
+  }
 
   if (ForcedExitFlag != 0) // Forced Exit?' yes--exit!
     goto locExitMainGameLoop;
@@ -189,7 +219,11 @@ locExitMainGameLoop:
   {
     DoEvents(); // user may klick on menus or move the window here ...
   }
+#if 1
+  while (0);
+#else
   while (Clock.TickDiffUS(LastFrame) < DeltaT); // wait till its time for the next frame
+#endif
 
   Stage.Blt(); // blit the last frame
   GameLoopRunning = 0;
@@ -236,9 +270,21 @@ int subCalculateScreenScrollPos()
     ax = MainForm.picPane.Width / 2;
     Ay = MainForm.picPane.Height / 2;
   }
+
+#if 1
+  ScreenScrollXPos = Stretch * (MurphyScreenXPos + 16) - ax;
+  ScreenScrollYPos = Stretch * (MurphyScreenYPos + 16) - Ay;
+#else
   ScreenScrollXPos = Stretch * (MurphyScreenXPos + 8) - ax;
   ScreenScrollYPos = Stretch * (MurphyScreenYPos + 8) - Ay;
+#endif
+
+#if 0
+  printf("::: MainGameLoop.c: subCalculateScreenScrollPos(): %d, %d [%d, %d] -> %d, %d\n",
+        MainForm.picPane.Width, MainForm.picPane.Height,
+        MurphyScreenXPos, MurphyScreenYPos,
+        ScreenScrollXPos, ScreenScrollYPos);
+#endif
 
   return subCalculateScreenScrollPos;
 }
-