Moved Levelset into it's own class, pass WorldState around instead of PlayerState...
[supertux.git] / src / supertux / game_session.hpp
index af2b778..2d61b0e 100644 (file)
 #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.
@@ -42,7 +43,7 @@ class GameSession : public Screen,
                     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);
@@ -69,9 +70,6 @@ public:
   Level* get_current_level()
   { return level.get(); }
 
-  PlayerStatus* get_player_status()
-  { return player_status; }
-
   void start_sequence(const std::string& sequencename);
 
   /**
@@ -95,6 +93,8 @@ public:
    */
   void force_ghost_mode();
 
+  WorldState& get_world_state() { return m_world_state; }
+
 private:
   void check_end_conditions();
   void process_events();
@@ -134,7 +134,7 @@ private:
   std::string newspawnpoint;
 
   Statistics* best_level_statistics;
-  PlayerStatus* player_status;
+  WorldState& m_world_state;
 
   std::ostream* capture_demo_stream;
   std::string capture_file;