- Change ScriptInterpreter to a gameobject, so we can now have several script
[supertux.git] / src / sector.h
index 464a64f..ad735f4 100644 (file)
@@ -16,7 +16,6 @@
 //  You should have received a copy of the GNU General Public License
 //  along with this program; if not, write to the Free Software
 //  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
-
 #ifndef SUPERTUX_SECTOR_H
 #define SUPERTUX_SECTOR_H
 
 #include "audio/musicref.h"
 #include "video/drawing_context.h"
 
-using namespace SuperTux;
-
-namespace SuperTux {
-class GameObject;
-class Sprite;
-class Rectangle;
-}
 namespace lisp {
 class Lisp;
 class Writer;
 }
 
+class Rect;
+class Sprite;
+class GameObject;
 class Player;
 class Camera;
 class TileMap;
 class Bullet;
 class CollisionGrid;
+class ScriptInterpreter;
 
 class SpawnPoint
 {
@@ -53,6 +49,11 @@ public:
   Vector pos;
 };
 
+enum MusicType {
+  LEVEL_MUSIC,
+  HERRING_MUSIC
+};
+
 /** This class holds a sector (a part of a level) and all the game objects
  * (badguys, player, background, tilemap, ...)
  */
@@ -86,10 +87,10 @@ public:
   { return name; }
 
   /// tests if a given rectangle is inside the sector
-  bool inside(const Rectangle& rectangle) const;
+  bool inside(const Rect& rectangle) const;
 
-  void play_music(int musictype);
-  int get_music_type();
+  void play_music(MusicType musictype);
+  MusicType get_music_type();
   
   /** Checks for all possible collisions. And calls the
       collision_handlers, which the collision_objects provide for this
@@ -121,7 +122,6 @@ private:
   std::string name;
 
   MusicRef level_song;
-  MusicRef level_song_fast;
 
 public:
   std::string song_title;
@@ -135,21 +135,23 @@ public:
 private:
   std::vector<Bullet*> bullets;
 
+  std::string init_script;
+
 public: // TODO make this private again
   typedef std::vector<GameObject*> GameObjects;
   GameObjects gameobjects;
   typedef std::vector<SpawnPoint*> SpawnPoints;
   SpawnPoints spawnpoints;                       
 
-  Rectangle get_active_region();
+  Rect get_active_region();
 
 private:
   void fix_old_tiles();
   
   /// container for newly created objects, they'll be added in Sector::action
   GameObjects gameobjects_new;
-  
-  int currentmusic;
+  MusicType currentmusic;
 
   CollisionGrid* grid;
 };