rnd-20100315-3-src
[rocksndiamonds.git] / src / game_sp / InitGameConditions.c
index 0afc9fa3e8e199486ccdf3a2ce29b19f234c728f..ef5ce12c1a71f18c11a18d9cd6133bbe29359ee1 100644 (file)
@@ -4,62 +4,38 @@
 
 #include "InitGameConditions.h"
 
-// static char *VB_Name = "modInitGameConditions";
-
-// --- Option Explicit
 
 // ==========================================================================
 //                              SUBROUTINE
 // Init game conditions (variables)
 // ==========================================================================
 
-int subInitGameConditions()
+void subInitGameConditions()
 {
-  int subInitGameConditions;
-
   bCapturePane = False;
 
-  MurphyVar0DAC = MurphyYPos;
-  MurphyVar0DAE = MurphyXPos;
   MurphyVarFaceLeft = 0;
-  KillMurphyFlag = 0;            // no "kill Murphy"
+  KillMurphyFlag = 0;                  // no "kill Murphy"
   ExitToMenuFlag = 0;
-  LeadOutCounter = 0;           // quit flag: lead-out counter
-  RedDiskCount = 0; // Red disk counter
-  ShowRedDiskCounter = 0; // show-red-disk time-out
-
-  YawnSleepCounter = 0; // Wake up sleeping Murphy
-
-  data_h_0DA7 = 0xFF;
-  data_h_0DA8 = 0xFF;
-  data_h_0DA9 = 0xFF;
-  data_h_0D9E = 1;
-  data_h_0D9F = 0;
-  data_h_0DA0 = 0;
-  data_h_0DA1 = 0;
-  data_h_0DA2 = 0;
-  data_h_0DA4 = 0;
-  data_h_0DA5 = 0;
-  data_h_0DA6 = 0;
-
-  ExplosionShake = 0; // Force explosion flag off
+  LeadOutCounter = 0;                  // quit flag: lead-out counter
+  RedDiskCount = 0;                    // Red disk counter
+
+  YawnSleepCounter = 0;                        // Wake up sleeping Murphy
+
+  ExplosionShake = 0;                  // Force explosion flag off
 
   TerminalMaxCycles = 0x7F;
   YellowDisksExploded = 0;
 
   TimerVar = 0;
-  // ShowPanel = 1 ' Force Panel on
-  // MainForm.PanelVisible = True;
-  EnterRepeatCounter = 0; // restart Enter repeat counter
-  SnikSnaksElectronsFrozen = 0; // Snik-Snaks and Electr. move!
-
-  SplitMoveFlag = 0; // Reset Split-through-ports
-  RedDiskReleasePhase = 0; // (re-)enable red disk release
-  RedDiskReleaseMurphyPos = 0; // Red disk was released here
 
+  EnterRepeatCounter = 0;              // restart Enter repeat counter
+  SnikSnaksElectronsFrozen = 0;                // Snik-Snaks and Electrons move!
 
-  return subInitGameConditions;
-} // subInitGameConditions
+  SplitMoveFlag = 0;                   // Reset Split-through-ports
+  RedDiskReleasePhase = 0;             // (re-)enable red disk release
+  RedDiskReleaseMurphyPos = 0;         // Red disk was released here
+}
 
 
 // ==========================================================================
@@ -67,28 +43,21 @@ int subInitGameConditions()
 // Locate Murphy and init location.
 // ==========================================================================
 
-int InitMurphyPos()
+void InitMurphyPos()
 {
-  int InitMurphyPos;
-
   int si;
 
   for (si = 0; si <= LevelMax - 1; si++)
-  {
     if (PlayField16[si] == fiMurphy)
       break;
-  }
 
   InitMurphyPosB(si);
-  MurphyPosIndex = si;
 
-  return InitMurphyPos;
-} // InitMurphyPos
+  MurphyPosIndex = si;
+}
 
-int InitMurphyPosB(int si)
+void InitMurphyPosB(int si)
 {
-  int InitMurphyPosB;
-
   MurphyYPos = GetStretchY(si) / Stretch;
   MurphyXPos = GetStretchX(si) / Stretch;
 
@@ -96,47 +65,22 @@ int InitMurphyPosB(int si)
   MurphyScreenYPos = GetStretchY(si);         // Murphy's screen y-position
 
   // To Do: draw Murphy in location ax
-#if 1
   StretchedSprites.BltImg(MurphyScreenXPos, MurphyScreenYPos, aniMurphy, 0);
-#else
-  StretchedSprites.BltEx(MurphyScreenXPos, MurphyScreenYPos, fiMurphy);
-#endif
 
   MurphyScreenXPos = MurphyScreenXPos / Stretch;
   MurphyScreenYPos = MurphyScreenYPos / Stretch;
 
   subCalculateScreenScrollPos();           // calculate screen start addrs
 
-#if 0
-  printf(":1: %d, %d [%d, %d] [%d, %d] [%d, %d]\n",
-        mScrollX, mScrollY,
-        mScrollX_last, mScrollY_last,
-        ScreenScrollXPos, ScreenScrollYPos,
-        ScrollX, ScrollY);
-#endif
-
   if (AutoScrollFlag)
   {
     if (bPlaying)
-    {
       SoftScrollTo(ScreenScrollXPos, ScreenScrollYPos, 1000, 25);
-    }
     else
-    {
       ScrollTo(ScreenScrollXPos, ScreenScrollYPos);
-    }
   }
+}
 
-#if 0
-  printf(":2: %d, %d [%d, %d] [%d, %d] [%d, %d]\n",
-        mScrollX, mScrollY,
-        mScrollX_last, mScrollY_last,
-        ScreenScrollXPos, ScreenScrollYPos,
-        ScrollX, ScrollY);
-#endif
-
-  return InitMurphyPosB;
-} // InitMurphyPosB
 
 // ==========================================================================
 //                              SUBROUTINE
@@ -145,10 +89,6 @@ int InitMurphyPosB(int si)
 
 int subConvertToEasySymbols()
 {
-  int subConvertToEasySymbols;
-
-  // int ax, bx, cx, dx, di, X, Y, i;
-  // int ah, bh, ch, dh, al, bl, cl, dl, ZF;
   int ax, bx, cx, dx, i;
   int al;
 
@@ -269,31 +209,23 @@ loc_g_2778:
   if (0 < cx) // Until all done 'loc_g_2782:
     goto loc_g_26C9;
 
-  subConvertToEasySymbols = dx; // return InfotronCount
+  return dx;   // return InfotronCount
+}
 
-  return subConvertToEasySymbols;
-} // subConvertToEasySymbols
 
 // ==========================================================================
 //                              SUBROUTINE
 // Reset Infotron count.  Call immediately after subConvertToEasySymbols
 // ==========================================================================
 
-int ResetInfotronsNeeded(int dx)
+void ResetInfotronsNeeded(int dx)
 {
-  int ResetInfotronsNeeded;
-
-  if (LInfo.InfotronsNeeded != 0) // Jump If equal (autodetect)
-  {
+  if (LInfo.InfotronsNeeded != 0)              // Jump If equal (autodetect)
     dx = LInfo.InfotronsNeeded;
-  }                            // loc_g_278D:
 
-  InfotronsNeeded = LowByte(dx);           // Remaining Infotrons needed
-  TotalInfotronsNeeded = InfotronsNeeded;          // Number of Infotrons needed
-  subDisplayInfotronsNeeded();
-
-  return ResetInfotronsNeeded;
-} // ResetInfotronsNeeded
+  InfotronsNeeded = LowByte(dx);               // Remaining Infotrons needed
+  TotalInfotronsNeeded = InfotronsNeeded;      // Number of Infotrons needed
+}
 
 
 // ==========================================================================
@@ -301,30 +233,19 @@ int ResetInfotronsNeeded(int dx)
 // Fetch and initialize a level
 // ==========================================================================
 
-int subFetchAndInitLevelB()
+void subFetchAndInitLevelB()
 {
-  int subFetchAndInitLevelB;
-
   boolean UpdatePlayTime;
 
-  MovLowByte(&data_SPtorunavail, 0);   // no SP file
   data_scr_demo = 0;
   UpdatePlayTime = (0 == demo_stopped ? True : False);
   demo_stopped = 0;
-  subFetchAndInitLevelA(UpdatePlayTime);
 
-  return subFetchAndInitLevelB;
-} // subFetchAndInitLevelb
+  subFetchAndInitLevelA(UpdatePlayTime);
+}
 
-int subFetchAndInitLevelA(boolean UpdatePlayTime)
+void subFetchAndInitLevelA(boolean UpdatePlayTime)
 {
-  int subFetchAndInitLevelA;
-
-  if (UpdatePlayTime && (0 == demo_stopped))
-  {
-    subUpdatePlayingTime();                 // update playing time
-  }
-
   D_ModeFlag = 0; // 1=debug D pressed (CPU use)
   if (0 != demo_stopped) // 1=demo, 0=game
     DemoFlag = 1;
@@ -355,55 +276,27 @@ int subFetchAndInitLevelA(boolean UpdatePlayTime)
     DemoKeyRepeatCounter = 1;
     subGetNextDemoKey();                 // get next demo byte
   }
+}
 
-  return subFetchAndInitLevelA;
-} // subFetchAndInitLevela
-
-int subFetchAndInitLevel()
+void subFetchAndInitLevel()
 {
-  int subFetchAndInitLevel;
-
   int InfoCountInLevel;
 
-  Trace("modInitGameConditions", "--> subFetchAndInitLevel");
-  Trace("modInitGameConditions", "Call ReadLevel");
-
   ReadLevel();                   // Read LEVELS.DAT
 
-  Trace("modInitGameConditions", "ReadLevel return subFetchAndInitLeveled");
-
   if (RecordDemoFlag == 1)
-  {
     RecDemoRandomSeed = RandomSeed;
-    // Debug.Print "FetchRec: " & Hex(RandomSeed)
-  }
 
-  //  If DemoFlag = 1 Then
-  // Debug.Print "FetchPlay: " & Hex(RandomSeed)
-  //  End If
   GameBusyFlag = -GameBusyFlag;   // make <>1
 
-  Trace("modInitGameConditions", "subConvertToEasySymbols");
-
   InfoCountInLevel = subConvertToEasySymbols(); // Convert to easy symbols
   GameBusyFlag = -GameBusyFlag;     // restore
 
-  Trace("modInitGameConditions", "subDisplayLevel");
-
   subDisplayLevel();               // Paint (Init) game field
-  subDisplayPanel();                 // Paint (Init) Panel
 
   ResetInfotronsNeeded(InfoCountInLevel);  // and reset Infotron count
 
-  Data_SubRstFlg = 1;
-
-  Trace("modInitGameConditions", "subInitGameConditions");
-
   subInitGameConditions();                 // Init game conditions (vars)
 
   InitMurphyPos();                 // Locate Murphy + screen pos
-
-  Trace("modInitGameConditions", "<-- subFetchAndInitLevel");
-
-  return subFetchAndInitLevel;
-} // subFetchAndInitLevel
+}