X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Flevel.h;h=dfb1c1e09b2a62cc8afd677fa7a8727e98cc5a49;hb=aadd77c676baae31db931c8e64cd1713c24289d5;hp=8c48f8490747251654d2aa2ea12ed42f5349fa99;hpb=c4183c0332f8e09dffc70f135689853fb2e3728a;p=supertux.git diff --git a/src/level.h b/src/level.h index 8c48f8490..dfb1c1e09 100644 --- a/src/level.h +++ b/src/level.h @@ -50,14 +50,11 @@ enum TileMapType { TM_FG }; -extern texture_type img_bkgd; -extern texture_type img_bkgd_tile[2][4]; -extern texture_type img_solid[4]; -extern texture_type img_brick[2]; - -class st_level +class Level { public: + texture_type img_bkgd; + std::string name; std::string theme; std::string song_title; @@ -81,30 +78,34 @@ class st_level /** Cleanup the level struct from allocated tile data and such */ void cleanup(); - int load(const char * subset, int level); - int load(const char* filename); - + /** Load data for this level: + Returns -1, if the loading of the level failed. */ + int load(const char* subset, int level); + + /** Load data for this level: + Returns -1, if the loading of the level failed. */ + int load(const std::string& filename); + + void load_gfx(); + + void load_song(); + void free_song(); + + void save(const char* subset, int level); + + /** Edit a piece of the map! */ + void change(float x, float y, int tm, unsigned int c); + + /** Resize the level to a new width */ + void change_size (int new_width); + + /** 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 level_save (st_level* plevel, const char * subset, int level); -void level_load_gfx (st_level* plevel); -void level_change (st_level* plevel, float x, float y, int tm, unsigned int c); -void level_change_size (st_level* plevel, int new_width); -void level_load_song(st_level* plevel); -void level_free_gfx(); -void level_load_image(texture_type* ptexture, std::string theme, const char * file, int use_alpha); -void level_free_song(void); - -/** Return the id of the tile at the given x/y coordinates */ -unsigned int gettileid(float x, float y); - -/** Return a pointer to the tile at the given x/y coordinates */ -Tile* gettile(float x, float y); - -// Some little helper function to check for tile properties -bool issolid(float x, float y); -bool isbrick(float x, float y); -bool isice(float x, float y); -bool isfullbox(float x, float y); #endif /*SUPERTUX_LEVEL_H*/