removed duplicate code
[rocksndiamonds.git] / src / game.c
index c6d3a862b4a10a46de412b3059e5a3cb4e848b5f..5a97b201b510b71676ae0f3a64253e5d8a5098ba 100644 (file)
@@ -1096,7 +1096,7 @@ void ContinueMoving(int, int);
 void Bang(int, int);
 void InitMovDir(int, int);
 void InitAmoebaNr(int, int);
-int NewHiScore(void);
+int NewHiScore(int);
 
 void TestIfGoodThingHitsBadThing(int, int, int);
 void TestIfBadThingHitsGoodThing(int, int, int);
@@ -4650,7 +4650,7 @@ void GameWon()
 void GameEnd()
 {
   int hi_pos;
-  boolean raise_level = FALSE;
+  int last_level_nr = level_nr;
 
   local_player->LevelSolved_GameEnd = TRUE;
 
@@ -4693,35 +4693,28 @@ void GameEnd()
 
   if (setup.increment_levels &&
       level_nr < leveldir_current->last_level)
-    raise_level = TRUE;                        /* advance to next level */
+  {
+    level_nr++;                /* advance to next level */
+    TapeErase();       /* start with empty tape */
+  }
+
+  hi_pos = NewHiScore(last_level_nr);
 
-  if ((hi_pos = NewHiScore()) >= 0) 
+  if (hi_pos >= 0)
   {
     SetGameStatus(GAME_MODE_SCORES);
 
-    DrawHallOfFame(hi_pos);
-
-    if (raise_level)
-    {
-      level_nr++;
-      TapeErase();
-    }
+    DrawHallOfFame(last_level_nr, hi_pos);
   }
   else
   {
     SetGameStatus(GAME_MODE_MAIN);
 
-    if (raise_level)
-    {
-      level_nr++;
-      TapeErase();
-    }
-
     DrawMainMenu();
   }
 }
 
-int NewHiScore()
+int NewHiScore(int level_nr)
 {
   int k, l;
   int position = -1;