#include "util/currenton.hpp"
#include "video/surface.hpp"
+class CodeController;
+class DrawingContext;
class Level;
+class Menu;
+class PlayerStatus;
class Sector;
class Statistics;
-class PlayerStatus;
-class DrawingContext;
-class CodeController;
-class Menu;
+class WorldState;
/**
* Screen that runs a Level, where Players run and jump through Sectors.
public Currenton<GameSession>
{
public:
- GameSession(const std::string& levelfile, PlayerStatus* player_status, Statistics* statistics = NULL);
+ GameSession(const std::string& levelfile, WorldState& world_state, Statistics* statistics = NULL);
~GameSession();
void record_demo(const std::string& filename);
Level* get_current_level()
{ return level.get(); }
- PlayerStatus* get_player_status()
- { return player_status; }
-
void start_sequence(const std::string& sequencename);
/**
*/
void force_ghost_mode();
+ WorldState& get_world_state() { return m_world_state; }
+
private:
void check_end_conditions();
void process_events();
std::string newspawnpoint;
Statistics* best_level_statistics;
- PlayerStatus* player_status;
+ WorldState& m_world_state;
std::ostream* capture_demo_stream;
std::string capture_file;