- fixed problem with last_menu not being able to handle menues deeper than two submenues
[supertux.git] / src / level.h
index 389555a..f093683 100644 (file)
@@ -61,22 +61,24 @@ class Level
   std::string song_title;
   std::string bkgd_image;
   std::string particle_system;
-  unsigned int* bg_tiles[15]; /* Tiles in the background */
-  unsigned int* ia_tiles[15]; /* Tiles which can interact in the game (solids for example)*/
-  unsigned int* fg_tiles[15]; /* Tiles in the foreground */
+  std::vector<unsigned int> bg_tiles[15]; /* Tiles in the background */
+  std::vector<unsigned int> ia_tiles[15]; /* Tiles which can interact in the game (solids for example)*/
+  std::vector<unsigned int> fg_tiles[15]; /* Tiles in the foreground */
   int time_left;
-  int bkgd_top_red;
-  int bkgd_top_green;
-  int bkgd_top_blue;
-  int bkgd_bottom_red;
-  int bkgd_bottom_green;
-  int bkgd_bottom_blue;
+  Color bkgd_top;
+  Color bkgd_bottom;
   int width;
+  int start_pos_x;
+  int start_pos_y;
   int  endpos;
   float gravity;
 
   std::vector<BadGuyData> badguy_data;
  public:
+  Level();
+  Level(const std::string& subset, int level);
+  Level(const std::string& filename);
+
   /** Will the Level structure with default values */
   void init_defaults();
   
@@ -92,6 +94,7 @@ class Level
   int  load(const std::string& filename);
 
   void load_gfx();
+  void free_gfx();
   
   void load_song();
   void free_song();
@@ -107,8 +110,6 @@ class Level
   /** Return the id of the tile at position x/y */
   unsigned int gettileid(float x, float y);
 
-  void free_gfx();
-
   void load_image(Surface** ptexture, std::string theme, const char * file, int use_alpha);
 };