- Added images for ducking big Super Tux.
[supertux.git] / src / level_subset.h
index 45be7ae..b4f64f6 100644 (file)
 #ifndef SUPERTUX_LEVEL_SUBSET_H
 #define SUPERTUX_LEVEL_SUBSET_H
 
+#include <vector>
 #include <string>
-#include "lispreader.h"
+#include "utils/lispreader.h"
 
+using namespace SuperTux;
+
+namespace SuperTux {
 class Surface;
+};
 
 /** This type holds meta-information about a level-subset. 
     It could be extended to handle manipulation of subsets. */
 class LevelSubset
 {
+private:
+  /** Directory in which the level subset is stored */
+  std::string directory;
+
+  /** Level filenames without the leading path ("level1.stl",
+      "level3.stl", ...) */
+  std::vector<std::string> levels;
+
 public:
   LevelSubset();
   ~LevelSubset();
@@ -38,16 +51,18 @@ public:
   void load(const char* subset);
   void save();
 
+  void add_level(const std::string& name);
+
   std::string get_level_filename(unsigned int i);
+  int get_num_levels() const;
 
   std::string name;
   std::string title;
   std::string description;
   Surface* image;
-  int levels;
+
 private:
-  void parse(lisp_object_t* cursor);
+  void read_info_file(const std::string& info_file);
 };
 
 #endif