pingus-cvs
[Top][All Lists]
Advanced

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

[Pingus-CVS] r3922 - in trunk/pingus/src: . screen


From: grumbel at BerliOS
Subject: [Pingus-CVS] r3922 - in trunk/pingus/src: . screen
Date: Sun, 27 Jul 2008 22:50:06 +0200

Author: grumbel
Date: 2008-07-27 22:50:05 +0200 (Sun, 27 Jul 2008)
New Revision: 3922

Modified:
   trunk/pingus/src/game_session.cpp
   trunk/pingus/src/game_session.hpp
   trunk/pingus/src/screen/screen.hpp
   trunk/pingus/src/screen/screen_manager.cpp
Log:
Removed on_shutdown() and fixed issue with ScreenPtr being 0 in update()

Modified: trunk/pingus/src/game_session.cpp
===================================================================
--- trunk/pingus/src/game_session.cpp   2008-07-27 17:10:13 UTC (rev 3921)
+++ trunk/pingus/src/game_session.cpp   2008-07-27 20:50:05 UTC (rev 3922)
@@ -331,11 +331,6 @@
     }
 }
 
-void
-GameSession::on_shutdown ()
-{
-}
-
 Actions::ActionName
 GameSession::get_action_name() const
 {

Modified: trunk/pingus/src/game_session.hpp
===================================================================
--- trunk/pingus/src/game_session.hpp   2008-07-27 17:10:13 UTC (rev 3921)
+++ trunk/pingus/src/game_session.hpp   2008-07-27 20:50:05 UTC (rev 3922)
@@ -93,7 +93,6 @@
 
   // Overloaded GUIScreen stuff
   void on_startup ();
-  void on_shutdown ();
 
   void on_pause_press ();
   void on_fast_forward_press ();

Modified: trunk/pingus/src/screen/screen.hpp
===================================================================
--- trunk/pingus/src/screen/screen.hpp  2008-07-27 17:10:13 UTC (rev 3921)
+++ trunk/pingus/src/screen/screen.hpp  2008-07-27 20:50:05 UTC (rev 3922)
@@ -50,10 +50,6 @@
       screen */
   virtual void on_startup () {}
 
-  /** Called once the screen gets replaced or poped or shadowed by a
-      newly pushed screen */
-  virtual void on_shutdown () {}
-
   virtual void resize(const Size& s) { size = s; }
 
   virtual Size get_size() const { return size; }

Modified: trunk/pingus/src/screen/screen_manager.cpp
===================================================================
--- trunk/pingus/src/screen/screen_manager.cpp  2008-07-27 17:10:13 UTC (rev 
3921)
+++ trunk/pingus/src/screen/screen_manager.cpp  2008-07-27 20:50:05 UTC (rev 
3922)
@@ -240,7 +240,11 @@
 ScreenManager::update(float delta, const std::vector<Input::Event>& events)
 {
   ScreenPtr last_screen = get_current_screen();
-  
+
+  // Will be triggered when pop_all_screens() is called by pressing window 
close button
+  if (!last_screen)
+    return;
+
   for(std::vector<Input::Event>::const_iterator i = events.begin(); i != 
events.end(); ++i)
     {
       if (i->type == Input::POINTER_EVENT_TYPE && i->pointer.name == 
Input::STANDARD_POINTER)
@@ -248,6 +252,7 @@
                              static_cast<int>(i->pointer.y)); 
 
       last_screen->update(*i);
+
       if (last_screen != get_current_screen())
         {
           fade_over(last_screen, get_current_screen());
@@ -299,18 +304,13 @@
 void
 ScreenManager::push_screen (Screen* screen)
 { 
-  if (!screens.empty())
-    screens.back()->on_shutdown();
-
   screens.push_back(ScreenPtr(screen));
   screen->on_startup();
 }
 void
 ScreenManager::pop_screen()
 {
-  ScreenPtr back = screens.back();
   screens.pop_back();
-  back->on_shutdown();
 
   if (!screens.empty())
     {
@@ -323,21 +323,17 @@
 void
 ScreenManager::pop_all_screens()
 {
-  ScreenPtr back = screens.back();
-  screens.pop_back();
-  back->on_shutdown();
-
   screens.clear();
 }
 
 void
 ScreenManager::replace_screen (Screen* screen)
 {
-  screens.back()->on_shutdown();
   screens.back() = ScreenPtr(screen);
 
   if (screens.back()->get_size() != Display::get_size())
     screens.back()->resize(Display::get_size());
+
   screens.back()->on_startup();
 
 }





reply via email to

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