rnd-20100317-1-src
[rocksndiamonds.git] / src / game_sp / InitGameConditions.c
index 73c6ec11d23522ef0f3e4894a508bf02ccfd4fc5..dd210b1c144001b3db9184fdab8e361152907ecc 100644 (file)
@@ -27,7 +27,6 @@ void subInitGameConditions()
 
   TimerVar = 0;
 
-  EnterRepeatCounter = 0;              // restart Enter repeat counter
   SnikSnaksElectronsFrozen = 0;                // Snik-Snaks and Electrons move!
 
   SplitMoveFlag = 0;                   // Reset Split-through-ports
@@ -45,7 +44,7 @@ void InitMurphyPos()
 {
   int si;
 
-  for (si = 0; si <= LevelMax - 1; si++)
+  for (si = 0; si < LevelMax; si++)
     if (PlayField16[si] == fiMurphy)
       break;
 
@@ -56,18 +55,12 @@ void InitMurphyPos()
 
 void InitMurphyPosB(int si)
 {
-  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
   DDSpriteBuffer_BltImg(MurphyScreenXPos, MurphyScreenYPos, aniMurphy, 0);
 
-  MurphyScreenXPos = MurphyScreenXPos / Stretch;
-  MurphyScreenYPos = MurphyScreenYPos / Stretch;
-
   subCalculateScreenScrollPos();           // calculate screen start addrs
 
   if (AutoScrollFlag)
@@ -238,32 +231,28 @@ void subFetchAndInitLevelB()
 
 void subFetchAndInitLevelA()
 {
-  GameBusyFlag = 0; // restore scissors too
-
-  subFetchAndInitLevel();   // Fetch and initialize a level
+  GameBusyFlag = 0;                            // restore scissors too
+  subFetchAndInitLevel();                      // fetch and initialize a level
+  GameBusyFlag = 1;                            // no free screen write
 
-  GameBusyFlag = 1; // no free screen write
-
-  DemoKeyCode = 0; // delete last demo key!
+  DemoKeyCode = 0;                             // delete last demo key!
 }
 
 void subFetchAndInitLevel()
 {
   int InfoCountInLevel;
 
-  ReadLevel();                   // Read LEVELS.DAT
-
-  GameBusyFlag = -GameBusyFlag;   // make <>1
-
-  InfoCountInLevel = subConvertToEasySymbols(); // Convert to easy symbols
+  PrepareLevel();                              // initialize level data
 
-  GameBusyFlag = -GameBusyFlag;     // restore
+  GameBusyFlag = -GameBusyFlag;                        // make != 1
+  InfoCountInLevel = subConvertToEasySymbols();        // convert to easy symbols
+  GameBusyFlag = -GameBusyFlag;                        // restore
 
-  subDisplayLevel();               // Paint (Init) game field
+  subDisplayLevel();                           // paint (init) game field
 
-  ResetInfotronsNeeded(InfoCountInLevel);  // and reset Infotron count
+  ResetInfotronsNeeded(InfoCountInLevel);      // and reset Infotron count
 
-  subInitGameConditions();                 // Init game conditions (vars)
+  subInitGameConditions();                     // init game conditions (vars)
 
-  InitMurphyPos();                 // Locate Murphy + screen pos
+  InitMurphyPos();                             // locate Murphy + screen pos
 }