pingus-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Pingus-CVS] r4164 - branches/pingus-hanusz/src


From: grumbel
Subject: [Pingus-CVS] r4164 - branches/pingus-hanusz/src
Date: Wed, 25 May 2011 16:44:11 +0200

Author: grumbel
Date: 2011-05-25 16:44:10 +0200 (Wed, 25 May 2011)
New Revision: 4164

Modified:
   branches/pingus-hanusz/src/level_menu.cpp
   branches/pingus-hanusz/src/levelset.cpp
   branches/pingus-hanusz/src/levelset.hpp
Log:
Print Game Completed when all levels are solved

Modified: branches/pingus-hanusz/src/level_menu.cpp
===================================================================
--- branches/pingus-hanusz/src/level_menu.cpp   2011-05-25 14:36:51 UTC (rev 
4163)
+++ branches/pingus-hanusz/src/level_menu.cpp   2011-05-25 14:44:10 UTC (rev 
4164)
@@ -231,6 +231,11 @@
     levelset = levelset_;
   }
 
+  Levelset* get_levelset() const
+  {
+    return levelset;
+  }
+
   void on_pointer_move(int x, int y)
   {
     x -= rect.left;
@@ -295,10 +300,19 @@
 
   if (m_mode == kLevelSelector)
   {
-    if (ScreenManager::instance()->time_limit_over())
+    if (level_selector->get_levelset() && 
level_selector->get_levelset()->is_finished())
     {
       // time limit reached
       gc.print_center(Fonts::chalk_large, gc.get_width()/2, gc.get_height()/2 
- 60,
+                      "Game Completed");
+      
+      m_abort_button->show();
+      level_selector->hide();      
+    }
+    else if (ScreenManager::instance()->time_limit_over())
+    {
+      // time limit reached
+      gc.print_center(Fonts::chalk_large, gc.get_width()/2, gc.get_height()/2 
- 60,
                       "Time Out");
       
       m_abort_button->show();

Modified: branches/pingus-hanusz/src/levelset.cpp
===================================================================
--- branches/pingus-hanusz/src/levelset.cpp     2011-05-25 14:36:51 UTC (rev 
4163)
+++ branches/pingus-hanusz/src/levelset.cpp     2011-05-25 14:44:10 UTC (rev 
4164)
@@ -148,4 +148,17 @@
   completion = Math::clamp(0, completion * 100 / int(levels.size()), 100);
 }
 
+bool
+Levelset::is_finished() const
+{
+  for(std::vector<Level*>::const_iterator i = levels.begin(); i != 
levels.end(); ++i)
+  {
+    if (!(*i)->finished)
+    {
+      return false;
+    }
+  }
+  return true;
+}
+
 /* EOF */

Modified: branches/pingus-hanusz/src/levelset.hpp
===================================================================
--- branches/pingus-hanusz/src/levelset.hpp     2011-05-25 14:36:51 UTC (rev 
4163)
+++ branches/pingus-hanusz/src/levelset.hpp     2011-05-25 14:44:10 UTC (rev 
4164)
@@ -63,6 +63,8 @@
   /** Return the number of completed levels */
   int get_completion()  const;
 
+  bool is_finished() const;
+
   void refresh();
 private:
   Levelset (const Levelset&);




reply via email to

[Prev in Thread] Current Thread [Next in Thread]