2 more evil mainloops are gone
[supertux.git] / src / mainloop.hpp
index dfb2f9e..5e51d2d 100644 (file)
@@ -24,6 +24,7 @@
 
 class Screen;
 class Console;
+class ScreenFade;
 class DrawingContext;
 
 class MainLoop
@@ -33,22 +34,24 @@ public:
   ~MainLoop();
   
   void run();
-  void exit_screen();
-  void quit();
+  void exit_screen(ScreenFade* fade = NULL);
+  void quit(ScreenFade* fade = NULL);
   void set_speed(float speed);
 
   // push new screen on screen_stack
-  void push_screen(Screen* screen);
+  void push_screen(Screen* screen, ScreenFade* fade = NULL);
+  void set_screen_fade(ScreenFade* fade);
 
 private:
   void draw_fps(DrawingContext& context, float fps);
   
   bool running;
   float speed;
-  bool nextpush;
+  bool nextpop;
   std::auto_ptr<Screen> next_screen;
   std::auto_ptr<Screen> current_screen;
   std::auto_ptr<Console> console;
+  std::auto_ptr<ScreenFade> screen_fade;
   std::vector<Screen*> screen_stack;
 };