Added a common set of bridge funcs for Leveleditor and Sector to create game objects.
[supertux.git] / src / level.h
index c955c5f..7eb0248 100644 (file)
 #include <map>
 #include <string>
 
+using namespace SuperTux;
+
 class Sector;
-class LispReader;
+
+namespace lisp {
+class Lisp;
+}
 
 class Level
 {
 public:
+  enum EndSequenceType{
+    NONE_ENDSEQ_ANIM,
+    FIREWORKS_ENDSEQ_ANIM
+  };
+
   std::string name;
   std::string author;
-  int time_left;
+  int timelimit;
   typedef std::map<std::string, Sector*> Sectors;
   Sectors sectors;
+  EndSequenceType end_sequence_type;
 
 public:
   Level();
   ~Level();
 
+  // loads a levelfile
   void load(const std::string& filename);
   void save(const std::string& filename);
 
+  EndSequenceType get_end_sequence_type() const
+  { return end_sequence_type; }
+
   const std::string& get_name() const
   { return name; }
 
@@ -53,8 +68,16 @@ public:
 
   Sector* get_sector(const std::string& name);
 
+  Sector* get_next_sector(const Sector* sector);
+  Sector* get_previous_sector(const Sector* sector);
+
+  int get_total_sectors();
+
+  int get_total_badguys();
+  int get_total_coins();
+
 private:
-  void load_old_format(LispReader& reader);
+  void load_old_format(const lisp::Lisp& reader);
 };
 
 #endif /*SUPERTUX_LEVEL_H*/