- fixed problem with last_menu not being able to handle menues deeper than two submenues
[supertux.git] / src / level.h
index 503a0da..f093683 100644 (file)
@@ -34,7 +34,7 @@ class st_subset
     std::string name;
     std::string title;
     std::string description;
-    texture_type image;
+    Surface* image;
     int levels;
  
   private:
@@ -53,7 +53,7 @@ enum TileMapType {
 class Level 
 {
  public:
-  texture_type img_bkgd;
+  Surface* img_bkgd;
 
   std::string name;
   std::string author;
@@ -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,9 +110,7 @@ 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(texture_type* ptexture, std::string theme, const char * file, int use_alpha);
+  void load_image(Surface** ptexture, std::string theme, const char * file, int use_alpha);
 };
 
 #endif /*SUPERTUX_LEVEL_H*/