#include "MainGameLoop.h"
-int GameLoopRunning;
boolean bPlaying;
int LeadOutCounter, EnterRepeatCounter;
-int ForcedExitFlag;
int ExitToMenuFlag;
-int SavedGameFlag;
-boolean UserDragFlag;
boolean AutoScrollFlag;
void subMainGameLoop_Init()
{
- if (DemoFlag != 0)
- {
- // EP set level success byte: demo, not game
- WasDemoFlag = 1;
- EP_GameDemoVar0DAA = 0; // demo
- }
- else // loc_g_1836:
- {
- // EP set level success byte: game, not demo
- WasDemoFlag = 0;
- EP_GameDemoVar0DAA = 1; // game
- }
-
// This was a bug in the original Supaplex: sometimes red disks could not
// be released. This happened if Murphy was killed DURING a red disk release
// and the next try started.
RedDiskReleasePhase = 0; // (re-)enable red disk release
- UpdatedFlag = 0;
- GameLoopRunning = 1;
- LevelStatus = 0;
}
void subMainGameLoop_Main(byte action, boolean warp_mode)
// --------------------- START OF GAME-BUSY LOOP -----------------------------
// ---------------------------------------------------------------------------
- if (EndFlag)
- {
- // (should never happen)
-
- // printf("::: EndFlag == True\n");
-
- goto locExitMainGameLoop;
- }
-
subProcessKeyboardInput(action); // check keyboard, act on keys
// ---------------------------------------------------------------------------
subCalculateScreenScrollPos(); // calculate screen start addrs
- if ((! UserDragFlag) && AutoScrollFlag)
+ if (AutoScrollFlag)
ScrollTowards(ScreenScrollXPos, ScreenScrollYPos);
- if (ForcedExitFlag != 0) // Forced Exit?' yes--exit!
- {
- // (should never happen)
-
- // printf("::: ForcedExitFlag == True\n");
-
- goto locExitMainGameLoop;
- }
-
TimerVar = TimerVar + 1;
#if 1
// lead-out done: exit now
// ---------------------- END OF GAME-BUSY LOOP (including lead-out) ---------
+#if 0
locExitMainGameLoop:
+#endif
#if 1
printf("::: locExitMainGameLoop reached [%d]\n", LeadOutCounter);
}
{
- ax = MainForm.picPane.Width / 2;
- Ay = MainForm.picPane.Height / 2;
+ ax = SXSIZE / 2;
+ Ay = SYSIZE / 2;
}
ScreenScrollXPos = Stretch * (MurphyScreenXPos + TILEX / 2) - ax;