#ifndef LEVEL_H
#define LEVEL_H

class Level
{
	public:
		Level();
		~Level();
		bool loadLevel(const char *levelfile);
		enum TileTypes
		{
			invalid,
			ground,
			wall,
			bridge,
			space,
			itemScree,
			itemBomb,
			itemLive,
			itemPower,
			itemGrail,
			itemSpeed,
			itemInvisible,
			itemFlash
		};
		int width();
		int height();
		int tile(int x, int y);
		void setTile(int x, int y, int tiletype);
		int value(int x, int y);
		void addValue(int x, int y, int value);
		void clearValues();
		int condition(int x, int y);
		void setCondition(int x, int y, int cond);

	private:
		int **m_field;
		int **m_values;
		int **m_conditions;
		int m_width, m_height;
};

#endif

