- /** Will the Level structure with default values */
- void init_defaults();
-
- /** Cleanup the level struct from allocated tile data and such */
- void cleanup();
-
- /** Load data for this level:
- Returns -1, if the loading of the level failed.
- XXX the world parameter is a temporary hack
- */
- int load(const std::string& subset, int level, World* world);
-
- /** Load data for this level:
- Returns -1, if the loading of the level failed.
- XXX the world parameter is a temporary hack
- */
- int load(const std::string& filename, World* world);
-
- void load_gfx();
-
- void load_song();
- void free_song();
- MusicRef get_level_music();
- MusicRef get_level_music_fast();
-
- // XXX the world parameter is a temporary hack
- void save(const std::string& subset, int level, World* world);
-
- /** Edit a piece of the map! */
- void change(float x, float y, int tm, unsigned int c);
-
- /** Resize the level to a new width/height */
- void resize(int new_width, int new_height);
-
- /* Draw background */
- void draw_bg();
-
- /** Return the id of the tile at position x/y */
- unsigned int gettileid(float x, float y) const;
- /** returns the id of the tile at position x,y
- * (these are logical and not pixel coordinates)
- */
- unsigned int get_tile_at(int x, int y) const;
-
- void load_image(Surface** ptexture, std::string theme, const char * file, int use_alpha);
+ void load(const std::string& filename);
+ void save(const std::string& filename);
+ static void create(const std::string& filename);
+
+ EndSequenceType get_end_sequence_type() const
+ { return end_sequence_type; }
+
+ 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();
+
+ int get_total_badguys();
+ int get_total_coins();
+
+private:
+ void load_old_format(LispReader& reader);