7 // Author: Tobias Glaesser <tobi.web@gmx.de>, (C) 2003
9 // Copyright: See COPYING file that comes with this distribution
13 #ifndef SUPERTUX_LEVEL_H
14 #define SUPERTUX_LEVEL_H
19 #include "lispreader.h"
21 /* This type holds meta-information about a level-subset. */
22 /* It could be extended to handle manipulation of subsets. */
27 static void create(const std::string& subset_name);
28 void load(char *subset);
34 std::string description;
39 void parse(lisp_object_t* cursor);
42 #define LEVEL_NAME_MAX 20
51 extern texture_type img_bkgd;
52 extern texture_type img_bkgd_tile[2][4];
53 extern texture_type img_solid[4];
54 extern texture_type img_brick[2];
61 std::string song_title;
62 std::string bkgd_image;
63 std::string particle_system;
64 unsigned int* bg_tiles[15]; /* Tiles in the background */
65 unsigned int* ia_tiles[15]; /* Tiles which can interact in the game (solids for example)*/
66 unsigned int* fg_tiles[15]; /* Tiles in the foreground */
74 std::vector<BadGuyData> badguy_data;
78 void level_default (st_level* plevel);
79 int level_load (st_level* plevel, const char * subset, int level);
80 void level_parse (st_level* plevel, lisp_object_t* cursor);
81 int level_load (st_level* plevel, const char* filename);
82 void level_save (st_level* plevel, const char * subset, int level);
83 void level_free (st_level* plevel);
84 void level_load_gfx (st_level* plevel);
85 void level_change (st_level* plevel, float x, float y, int tm, unsigned int c);
86 void level_change_size (st_level* plevel, int new_width);
87 void level_load_song(st_level* plevel);
88 void level_free_gfx();
89 void level_load_image(texture_type* ptexture, std::string theme, const char * file, int use_alpha);
90 void level_free_song(void);
92 #endif /*SUPERTUX_LEVEL_H*/