fixed compiler warnings (after adding "-Wstrict-prototypes")
[rocksndiamonds.git] / src / game_sp / InitGameConditions.c
index c23f9d38c197d2ea36a913f2364d61de79411fc5..1641862ff1549041dde23437b1aeb378ce8392f1 100644 (file)
@@ -4,62 +4,36 @@
 
 #include "InitGameConditions.h"
 
-// static char *VB_Name = "modInitGameConditions";
-
-// --- Option Explicit
 
 // ==========================================================================
 //                              SUBROUTINE
 // Init game conditions (variables)
 // ==========================================================================
 
-int subInitGameConditions()
+void subInitGameConditions(void)
 {
-  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
+  ExplosionShakeMurphy = 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
 
+  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,68 +41,46 @@ int subInitGameConditions()
 // Locate Murphy and init location.
 // ==========================================================================
 
-int InitMurphyPos()
+void InitMurphyPos(void)
 {
-  int InitMurphyPos;
-
   int si;
 
-  for (si = 0; si <= LevelMax - 1; si++)
-  {
+  for (si = 0; si < LevelMax; 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;
-
-  MurphyScreenXPos = GetStretchX(si);          // Murphy's screen x-position
-  MurphyScreenYPos = GetStretchY(si);         // Murphy's screen y-position
+  MurphyScreenXPos = MurphyXPos = GetStretchX(si); // Murphy's screen x-position
+  MurphyScreenYPos = MurphyYPos = GetStretchY(si); // Murphy's screen y-position
 
   // To Do: draw Murphy in location ax
-  StretchedSprites.BltEx(MurphyScreenXPos, MurphyScreenYPos, fiMurphy);
-
-  MurphyScreenXPos = MurphyScreenXPos / Stretch;
-  MurphyScreenYPos = MurphyScreenYPos / Stretch;
+  DDSpriteBuffer_BltImg(MurphyScreenXPos, MurphyScreenYPos, aniMurphy, 0);
 
   subCalculateScreenScrollPos();           // calculate screen start addrs
 
   if (AutoScrollFlag)
   {
     if (bPlaying)
-    {
       SoftScrollTo(ScreenScrollXPos, ScreenScrollYPos, 1000, 25);
-    }
     else
-    {
       ScrollTo(ScreenScrollXPos, ScreenScrollYPos);
-    }
   }
+}
 
-  return InitMurphyPosB;
-} // InitMurphyPosB
 
 // ==========================================================================
 //                              SUBROUTINE
 // Convert to easy symbols and reset Infotron count If not ThenVer62
 // ==========================================================================
 
-int subConvertToEasySymbols()
+int subConvertToEasySymbols(void)
 {
-  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;
 
@@ -249,31 +201,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
+}
 
 
 // ==========================================================================
@@ -281,109 +225,35 @@ int ResetInfotronsNeeded(int dx)
 // Fetch and initialize a level
 // ==========================================================================
 
-int subFetchAndInitLevelB()
+void subFetchAndInitLevelB(void)
 {
-  int subFetchAndInitLevelB;
+  subFetchAndInitLevelA();
+}
 
-  boolean UpdatePlayTime;
-
-  MovLowByte(&data_SPtorunavail, 0);   // no SP file
-  data_scr_demo = 0;
-  UpdatePlayTime = (0 == demo_stopped ?  True :  True);
-  demo_stopped = 0;
-  subFetchAndInitLevelA(UpdatePlayTime);
-
-  return subFetchAndInitLevelB;
-} // subFetchAndInitLevelb
-
-int subFetchAndInitLevelA(boolean UpdatePlayTime)
+void subFetchAndInitLevelA(void)
 {
-  int subFetchAndInitLevelA;
-
-  if (UpdatePlayTime && (0 == demo_stopped))
-  {
-    subUpdatePlayingTime();                 // update playing time
-  }
+  GameBusyFlag = 0;                            // restore scissors too
+  subFetchAndInitLevel();                      // fetch and initialize a level
+  GameBusyFlag = 1;                            // no free screen write
 
-  D_ModeFlag = 0; // 1=debug D pressed (CPU use)
-  if (0 != demo_stopped) // 1=demo, 0=game
-    DemoFlag = 1;
+  DemoKeyCode = 0;                             // delete last demo key!
+}
 
-  GameBusyFlag = 0; // restore scissors too
-
-  subFetchAndInitLevel();   // Fetch and initialize a level
-
-  GameBusyFlag = 1; // no free screen write
-
-  if (1 <= demo_stopped)
-  {
-    if (1 == demo_stopped)
-    {
-      DemoFlag = 0; // 1=demo, 0=game
-      demo_stopped = demo_stopped + 1;
-    }
-    else
-    {
-      DemoFlag = 0; // 1=demo, 0=game
-    }
-  }
-
-  DemoKeyCode = 0; // delete last demo key!
-  if (DemoFlag != 0) // don't allow during game! only in Demo
-  {
-    DemoOffset = DemoPointer;           // init demo pointer
-    DemoKeyRepeatCounter = 1;
-    subGetNextDemoKey();                 // get next demo byte
-  }
-
-  return subFetchAndInitLevelA;
-} // subFetchAndInitLevela
-
-int subFetchAndInitLevel()
+void subFetchAndInitLevel(void)
 {
-  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;
+  PrepareLevel();                              // initialize level data
 
-  Trace("modInitGameConditions", "subInitGameConditions");
+  GameBusyFlag = -GameBusyFlag;                        // make != 1
+  InfoCountInLevel = subConvertToEasySymbols();        // convert to easy symbols
+  GameBusyFlag = -GameBusyFlag;                        // restore
 
-  subInitGameConditions();                 // Init game conditions (vars)
+  subDisplayLevel();                           // paint (init) game field
 
-  InitMurphyPos();                 // Locate Murphy + screen pos
+  ResetInfotronsNeeded(InfoCountInLevel);      // and reset Infotron count
 
-  Trace("modInitGameConditions", "<-- subFetchAndInitLevel");
+  subInitGameConditions();                     // init game conditions (vars)
 
-  return subFetchAndInitLevel;
-} // subFetchAndInitLevel
+  InitMurphyPos();                             // locate Murphy + screen pos
+}