Removed a global variable
[supertux.git] / src / sector.hpp
index 67efe38..12a1682 100644 (file)
@@ -1,7 +1,7 @@
 //  $Id$
 //
 //  SuperTux -  A Jump'n Run
-//  Copyright (C) 2004 Matthias Braun <matze@braunis.de
+//  Copyright (C) 2006 Matthias Braun <matze@braunis.de>
 //
 //  This program is free software; you can redistribute it and/or
 //  modify it under the terms of the GNU General Public License
@@ -28,6 +28,7 @@
 #include "script_manager.hpp"
 #include "math/vector.hpp"
 #include "video/drawing_context.hpp"
+#include "level.hpp"
 
 namespace lisp {
 class Lisp;
@@ -49,7 +50,8 @@ class CollisionHit;
 
 enum MusicType {
   LEVEL_MUSIC,
-  HERRING_MUSIC
+  HERRING_MUSIC,
+  HERRING_WARNING_MUSIC
 };
 
 /**
@@ -59,9 +61,12 @@ enum MusicType {
 class Sector
 {
 public:
-  Sector();
+  Sector(Level* parent);
   ~Sector();
 
+  /// get parent level
+  Level* get_level();
+
   /// read sector from lisp file
   void parse(const lisp::Lisp& lisp);
   void parse_old_format(const lisp::Lisp& lisp);
@@ -92,7 +97,10 @@ public:
   const std::string& get_name() const
   { return name; }
 
-  /// tests if a given rectangle is inside the sector
+  /**
+   * tests if a given rectangle is inside the sector
+   * (a rectangle that is on top of the sector is considered inside)
+   */
   bool inside(const Rect& rectangle) const;
 
   void play_music(MusicType musictype);
@@ -125,7 +133,12 @@ public:
 
   Rect get_active_region();
 
+  typedef std::vector<GameObject*> GameObjects;
+  typedef std::vector<MovingObject*> MovingObjects;
+  typedef std::vector<SpawnPoint*> SpawnPoints;
+
 private:
+  Level* level; /**< Parent level containing this sector */
   uint32_t collision_tile_attributes(const Rect& dest) const;
 
   void before_object_remove(GameObject* object);
@@ -146,10 +159,6 @@ private:
 
   void fix_old_tiles();
 
-  typedef std::vector<GameObject*> GameObjects;
-  typedef std::vector<MovingObject*> MovingObjects;
-  typedef std::vector<SpawnPoint*> SpawnPoints;
-
   static Sector* _current;
   
   std::string name;
@@ -170,6 +179,10 @@ private:
   std::auto_ptr<ScriptManager> script_manager;
 
 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;