Darker
[supertux.git] / src / sector.hpp
index b08552d..50edf73 100644 (file)
@@ -49,6 +49,7 @@ class SpawnPoint;
 class MovingObject;
 class CollisionHit;
 class Level;
+class Portable;
 
 enum MusicType {
   LEVEL_MUSIC,
@@ -107,10 +108,10 @@ public:
 
   void play_music(MusicType musictype);
   MusicType get_music_type();
-  
+
   bool add_bullet(const Vector& pos, float xm, Direction dir);
   bool add_smoke_cloud(const Vector& pos);
+
   /** get currently activated sector. */
   static Sector* current()
   { return _current; }
@@ -147,14 +148,14 @@ public:
   Rect get_active_region();
 
   /**
-   * returns the width (in tiles) of a sector)
+   * returns the width (in px) of a sector)
    */
-  size_t get_width() const;
-  
+  float get_width() const;
+
   /**
-   * returns the height (in tiles) of a sector)
+   * returns the height (in px) of a sector)
    */
-  size_t get_height() const;
+  float get_height() const;
 
   /**
    * globally changes solid tilemaps' tile ids
@@ -164,6 +165,7 @@ public:
   typedef std::vector<GameObject*> GameObjects;
   typedef std::vector<MovingObject*> MovingObjects;
   typedef std::vector<SpawnPoint*> SpawnPoints;
+  typedef std::vector<Portable*> Portables;
 
 private:
   Level* level; /**< Parent level containing this sector */
@@ -174,12 +176,12 @@ private:
 
   void try_expose(GameObject* object);
   void try_unexpose(GameObject* object);
-  
+
   /** Checks for all possible collisions. And calls the
       collision_handlers, which the collision_objects provide for this
       case (or not). */
   void handle_collisions();
+
   /**
    * Does collision detection between 2 objects and does instant
    * collision response handling in case of a collision
@@ -199,13 +201,13 @@ private:
       const Vector& movement, const Rect& dest, GameObject& object);
 
   void collision_static_constrains(MovingObject& object);
-  
+
   GameObject* parse_object(const std::string& name, const lisp::Lisp& lisp);
 
   void fix_old_tiles();
 
   static Sector* _current;
-  
+
   std::string name;
 
   std::vector<Bullet*> bullets;
@@ -214,7 +216,7 @@ private:
 
   /// container for newly created objects, they'll be added in Sector::update
   GameObjects gameobjects_new;
+
   MusicType currentmusic;
 
   HSQOBJECT sector_table;
@@ -222,14 +224,17 @@ private:
   typedef std::vector<HSQOBJECT> ScriptList;
   ScriptList scripts;
 
+  Color ambient_light;
+
 public: // TODO make this private again
   /// show collision rectangles of moving objects (for debugging)
   static bool show_collrects;
   static bool draw_solids_only;
-  
+
   GameObjects gameobjects;
   MovingObjects moving_objects;
-  SpawnPoints spawnpoints;                       
+  SpawnPoints spawnpoints;
+  Portables portables;
 
   std::string music;
   float gravity;
@@ -242,4 +247,3 @@ public: // TODO make this private again
 };
 
 #endif
-