level work again
[supertux.git] / src / sector.h
index 5f31dc9..464a64f 100644 (file)
 #include <string>
 #include <vector>
 
+#include "direction.h"
 #include "math/vector.h"
 #include "audio/musicref.h"
 #include "video/drawing_context.h"
-#include "defines.h"
 
 using namespace SuperTux;
 
@@ -46,8 +46,9 @@ class TileMap;
 class Bullet;
 class CollisionGrid;
 
-struct SpawnPoint
+class SpawnPoint
 {
+public:
   std::string name;
   Vector pos;
 };
@@ -68,9 +69,8 @@ public:
   void write(lisp::Writer& writer);
 
   /// activates this sector (change music, intialize player class, ...)
-  void activate(const std::string& spawnpoint = "main");
-  /// get best spawn point
-  Vector get_best_spawn_point(Vector pos);
+  void activate(const std::string& spawnpoint);
+  void activate(const Vector& player_pos);
 
   void action(float elapsed_time);
   void update_game_objects();
@@ -100,7 +100,7 @@ public:
   bool add_smoke_cloud(const Vector& pos);
   void add_floating_text(const Vector& pos, const std::string& text);
                                                                                 
-  /** @evil@ but can#t always be avoided in current design... */
+  /** @evil@ but can't always be avoided in current design... */
   static Sector* current()
   { return _current; }
 
@@ -138,6 +138,8 @@ private:
 public: // TODO make this private again
   typedef std::vector<GameObject*> GameObjects;
   GameObjects gameobjects;
+  typedef std::vector<SpawnPoint*> SpawnPoints;
+  SpawnPoints spawnpoints;                       
 
   Rectangle get_active_region();
 
@@ -147,9 +149,6 @@ private:
   /// container for newly created objects, they'll be added in Sector::action
   GameObjects gameobjects_new;
   
-  typedef std::vector<SpawnPoint*> SpawnPoints;
-  SpawnPoints spawnpoints;
-
   int currentmusic;
 
   CollisionGrid* grid;