#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 PlayerStatus;
class World;
/**
class TitleScreen : public Screen
{
public:
- static std::string get_level_name(const std::string& levelfile);
-
-public:
- TitleScreen();
+ TitleScreen(PlayerStatus* player_status);
virtual ~TitleScreen();
virtual void setup();
virtual void update(float elapsed_time);
private:
- void start_game();
void make_tux_jump();
- void generate_main_menu();
- void check_levels_contrib_menu();
private:
- std::auto_ptr<MainMenu> main_menu;
- std::auto_ptr<ContribMenu> contrib_menu;
- std::auto_ptr<ContribWorldMenu> contrib_world_menu;
- std::auto_ptr<AddonMenu> addons_menu;
-
- std::auto_ptr<World> main_world;
- std::vector<World*> contrib_worlds;
- World* current_world;
-
- std::auto_ptr<Surface> frame;
- std::auto_ptr<CodeController> controller;
- std::auto_ptr<GameSession> titlesession;
+ SurfacePtr frame;
+ std::unique_ptr<CodeController> controller;
+ std::unique_ptr<GameSession> titlesession;
+ std::string copyright_text;
private:
TitleScreen(const TitleScreen&);