#ifndef _LEVEL_H_ #define _LEVEL_H_ #include enum TileType { TILE_GRASS, TILE_MUD, TILE_WATER, TILE_COUNT }; enum TileSide { SIDE_TOP, SIDE_LEFT, SIDE_RIGHT }; namespace wgd { class Sprite; class Camera2D; }; class Bunny; class Layer; class Object; class Level { public: Level(); ~Level(); void load(const char* filename); void reset(); void update(float timeStep); int getLevelWidth() { return width; } int getLevelHeight() { return height; } Layer* getCurLayer() { return layers[curLayer]; } static wgd::Sprite* getTileSprite(TileType type, TileSide side); private: static wgd::Sprite* tiles[TILE_COUNT * 3]; void changeLayer(int toLayer); int width, height; int curLayer; Bunny* bunny; void loadTileType(TileType type, const char* filePrefix); wgd::Camera2D* camera; std::vector layers; }; #endif