fixed that points aren't reset when gameover
authorMatthias Braun <matze@braunis.de>
Sun, 2 May 2004 16:08:22 +0000 (16:08 +0000)
committerMatthias Braun <matze@braunis.de>
Sun, 2 May 2004 16:08:22 +0000 (16:08 +0000)
SVN-Revision: 920

TODO
src/leveleditor.cpp
src/scene.cpp
src/scene.h
src/title.cpp
src/worldmap.cpp

diff --git a/TODO b/TODO
index be70411..7326d48 100644 (file)
--- a/TODO
+++ b/TODO
@@ -17,7 +17,6 @@ Todo
   a timer that is started when up is pressed, when you then land and the timer
   is below a certain time, you can do the jump.
 - when bumping a special with 2 blocks at once, it won't change direction
-- points aren't reset when gameover
 
 - leveleditor lacks enemies support (will be fixed soon by Tobias)
 - sometimes you die after being in pause modus and unpausing - still true?
@@ -26,6 +25,7 @@ Todo
 Fixed
 -----
 
+- points aren't reset when gameover
 - when jumping into the exit with a star, the endgame music will change back to
   levelmusic after a short time
 - when jupming against the 2nd multiple coin block in a level only 1 coin will
index a773718..dac8b28 100644 (file)
@@ -1225,6 +1225,7 @@ void le_testlevel()
   
   GameSession session("test",le_level, ST_GL_TEST);
   session.run();
+  player_status.reset();
 
   music_manager->halt_music();
 
index c75f02d..d7034a9 100644 (file)
@@ -32,6 +32,15 @@ PlayerStatus::PlayerStatus()
 {
 }
 
+void PlayerStatus::reset()
+{
+  score = 0;
+  distros = 0;
+  lives = START_LIVES;
+  bonus = NO_BONUS;
+  score_multiplier = 1;
+}
+
 std::string bonus_to_string(PlayerStatus::BonusType b)
 {
   switch (b)
index 3b60112..6beaeb6 100644 (file)
@@ -37,6 +37,8 @@ struct PlayerStatus
   int  score_multiplier;
 
   PlayerStatus();
+
+  void reset();
 };
 
 std::string bonus_to_string(PlayerStatus::BonusType b);
index ec5618a..e758c75 100644 (file)
@@ -150,6 +150,7 @@ void check_contrib_subset_menu()
           std::cout << "Sarting level: " << index << std::endl;
           GameSession session(current_contrib_subset, index, ST_GL_PLAY);
           session.run();
+          player_status.reset();
           Menu::set_current(main_menu);
         }
     }  
index fbe34c9..cd91cb2 100644 (file)
@@ -706,7 +706,7 @@ WorldMap::update(float delta)
                   break;
                 case GameSession::GAME_OVER:
                   quit = true;
-                  player_status.bonus = PlayerStatus::NO_BONUS;
+                  player_status.reset();
                   break;
                 case GameSession::NONE:
                   // Should never be reached