[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Pingus-CVS] CVS: Games/Pingus/src/gui screen_manager.cxx,1.2,1.3 screen
From: |
grumbel |
Subject: |
[Pingus-CVS] CVS: Games/Pingus/src/gui screen_manager.cxx,1.2,1.3 screen_manager.hxx,1.1,1.2 |
Date: |
22 Mar 2003 23:28:53 -0000 |
Update of /var/lib/cvs/Games/Pingus/src/gui
In directory dark:/tmp/cvs-serv8487/gui
Modified Files:
screen_manager.cxx screen_manager.hxx
Log Message:
reactivated fadeovers
Index: screen_manager.cxx
===================================================================
RCS file: /var/lib/cvs/Games/Pingus/src/gui/screen_manager.cxx,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- screen_manager.cxx 19 Feb 2003 17:17:00 -0000 1.2
+++ screen_manager.cxx 22 Mar 2003 23:28:51 -0000 1.3
@@ -85,6 +85,10 @@
real_replace_screen (replace_screen_arg);
cached_action = none;
}
+ else
+ {
+ cached_action = none;
+ }
// FIXME: is there a more gentel way to do that instead of spreading the
checks all around here?
// Last screen has poped, so we are going to end here
@@ -100,18 +104,15 @@
else
{
//std::cout << "ScreenManager: fading screens" << std::endl;
- //fade_over (last_screen, get_current_screen());
+ fade_over (last_screen, get_current_screen());
}
// Stupid hack to make this thing take less CPU
CL_System::sleep (0);
-
- /** Delete all screens that are no longer needed */
- delete_screens.clear();
}
}
-ScreenPtr
+ScreenPtr&
ScreenManager::get_current_screen()
{
assert(!screens.empty());
@@ -130,11 +131,8 @@
void
ScreenManager::push_screen (Screen* screen, bool delete_screen)
{
- std::cout << "XXXXXXXX ScreenManager::push_screen" << std::endl;
-
if (!screens.empty())
{
- std::cout << "ScreenManager::push_screen" << std::endl;
screens.back ()->on_shutdown ();
}
@@ -160,12 +158,7 @@
void
ScreenManager::real_replace_screen (const ScreenPtr& ptr)
{
- std::cout << "XXXXXXXX ScreenManager::replace_screen" << std::endl;
-
screens.back ()->on_shutdown ();
-
- delete_screens.push_back(screens.back ());
-
screens.back () = ptr;
screens.back ()->on_startup ();
}
@@ -173,13 +166,8 @@
void
ScreenManager::real_pop_screen ()
{
- std::cout << "XXXXXXXX ScreenManager::pop_screen" << std::endl;
-
screens.back ()->on_shutdown ();
- delete_screens.push_back(screens.back ());
-
- std::cout << "ScreenManager::real_pop_screen ()" << std::endl;
screens.pop_back ();
if (!screens.empty ())
@@ -195,45 +183,47 @@
}
void
-ScreenManager::fade_over (const ScreenPtr& old_screen, const ScreenPtr&
new_screen)
+ScreenManager::fade_over (ScreenPtr& old_screen, ScreenPtr& new_screen)
{
+#if 0
FadeOut::fade_to_black();
UNUSED_ARG(old_screen);
UNUSED_ARG(new_screen);
-
-#if 0
+#else
DeltaManager delta_manager;
float passed_time = 0;
+ Input::EventLst events;
- std::list<Input::Event*> events;
- while (passed_time < 2.0f)
+ float progress = 0.0f;
+ while (progress <= 1.0f)
{
float time_delta = delta_manager.getset ();
passed_time += time_delta;
+
+ int border_x = int((CL_Display::get_width ()/2) * (1.0f - progress));
+ int border_y = int((CL_Display::get_height ()/2) * (1.0f - progress));
- int border_x = int((CL_Display::get_width ()/2) * passed_time/2.0f);
- int border_y = int((CL_Display::get_height ()/2) * passed_time/2.0f);
-
- //std::cout << "FadeOver: " << border_x << " " << border_y << std::endl;
-
- new_screen->draw (display_gc);
-
+ old_screen->draw (display_gc);
CL_Display::push_clip_rect(CL_ClipRect (0 + border_x,
0 + border_y,
CL_Display::get_width () -
border_x,
CL_Display::get_height () -
border_y));
- old_screen->draw (display_gc);
+ new_screen->draw (display_gc);
- GameDelta delta (time_delta, events);
- new_screen->update (delta);
- old_screen->update (delta);
+ //GameDelta delta (time_delta, CL_System::get_time(), events);
+ // FIXME: Animation looks nifty but doesn't work all that good
+ //new_screen->update (delta);
+ //old_screen->update (delta);
CL_Display::pop_clip_rect ();
Display::flip_display ();
CL_System::keep_alive ();
+
+ progress = passed_time/1.0f;
}
+
#endif
}
Index: screen_manager.hxx
===================================================================
RCS file: /var/lib/cvs/Games/Pingus/src/gui/screen_manager.hxx,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- screen_manager.hxx 19 Feb 2003 09:51:44 -0000 1.1
+++ screen_manager.hxx 22 Mar 2003 23:28:51 -0000 1.2
@@ -40,11 +40,6 @@
or replaced) */
std::vector<ScreenPtr> screens;
- /** Screens in this vector will be deleted at the end of the
- main-loop. Its really more a keep alive vector, than a deleting
- one, but well... */
- std::vector<ScreenPtr> delete_screens;
-
/** the screen that was used in the last update() */
ScreenPtr last_screen;
@@ -80,10 +75,10 @@
void real_pop_screen ();
/** FadeOver test*/
- void fade_over (const ScreenPtr& old_screen, const ScreenPtr& new_screen);
+ void fade_over (ScreenPtr& old_screen, ScreenPtr& new_screen);
/** @return a pointer to the current Screen */
- ScreenPtr get_current_screen();
+ ScreenPtr& get_current_screen();
public:
static ScreenManager* instance ();
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Pingus-CVS] CVS: Games/Pingus/src/gui screen_manager.cxx,1.2,1.3 screen_manager.hxx,1.1,1.2,
grumbel <=
- Prev by Date:
[Pingus-CVS] CVS: Games/Pingus/src/worldmap level_dot.cxx,1.11,1.12
- Next by Date:
[Pingus-CVS] CVS: Games/Pingus/src story_screen.cxx,1.2,1.3 story_screen.hxx,1.1,1.2
- Previous by thread:
[Pingus-CVS] CVS: Games/Pingus/src/worldmap level_dot.cxx,1.11,1.12
- Next by thread:
[Pingus-CVS] CVS: Games/Pingus/src story_screen.cxx,1.2,1.3 story_screen.hxx,1.1,1.2
- Index(es):