#ifndef HEADER_SUPERTUX_SUPERTUX_TITLE_HPP
#define HEADER_SUPERTUX_SUPERTUX_TITLE_HPP
-#include "addon/addon.hpp"
#include "supertux/game_session.hpp"
-class Menu;
+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.
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 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<ContribWorldMenu> 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;