#ifndef SUPERTUX_LEVEL_H
#define SUPERTUX_LEVEL_H
-#include <map>
+#include <vector>
#include <string>
-using namespace SuperTux;
-
class Sector;
-namespace SuperTux {
-class LispReader;
+namespace lisp {
+class Lisp;
}
class Level
public:
std::string name;
std::string author;
- int time_left;
- typedef std::map<std::string, Sector*> Sectors;
+ int timelimit;
+ typedef std::vector<Sector*> Sectors;
Sectors sectors;
public:
Level();
~Level();
+ // loads a levelfile
void load(const std::string& filename);
void save(const std::string& filename);
- static void create(const std::string& filename);
const std::string& get_name() const
{ return name; }
const std::string& get_author() const
{ return author; }
- /** Flips the level vertically */
- void do_vertical_flip();
-
void add_sector(Sector* sector);
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();
+ size_t get_sector_count();
+ Sector* get_sector(size_t num);
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*/