[Top][All Lists]
[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();
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Pingus-CVS] r3922 - in trunk/pingus/src: . screen,
grumbel at BerliOS <=