Split particlesystem_interactive.?pp into separate files
[supertux.git] / src / supertux / title_screen.hpp
index ef4a5d0..33964fa 100644 (file)
 #ifndef HEADER_SUPERTUX_SUPERTUX_TITLE_HPP
 #define HEADER_SUPERTUX_SUPERTUX_TITLE_HPP
 
-#include "addon/addon.hpp"
 #include "supertux/game_session.hpp"
 
+class AddonMenu;
+class CodeController;
+class ContribMenu;
+class ContribWorldMenu;
+class MainMenu;
 class Menu;
 class World;
-class CodeController;
 
 /**
  * Screen that displays the SuperTux logo, lets players start a new game, etc.
@@ -44,29 +47,15 @@ public:
 
   virtual void update(float elapsed_time);
 
+public:
+  static void start_game(World* world);
+
 private:
-  void start_game();
   void make_tux_jump();
-  void update_load_game_menu();
   void generate_main_menu();
-  void generate_contrib_menu();
-  void check_levels_contrib_menu();
-  void check_contrib_world_menu();
-  void free_contrib_menu();
-  void generate_addons_menu();
-  void check_addons_menu();
-  void free_addons_menu();
-
+  
 private:
-  std::auto_ptr<Menu> main_menu;
-  std::auto_ptr<Menu> contrib_menu;
-  std::auto_ptr<Menu> contrib_world_menu;
-  std::auto_ptr<World> main_world;
-  std::vector<World*> contrib_worlds;
-  std::auto_ptr<Menu> addons_menu;
-  std::vector<Addon*> addons; /**< shown list of Add-ons */
-  World* current_world;
-
+  std::auto_ptr<MainMenu> main_menu;
   std::auto_ptr<Surface> frame;
   std::auto_ptr<CodeController> controller;
   std::auto_ptr<GameSession> titlesession;