#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();
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