// MAP CLASS, CONTAINS ALL LOGIC AND WINNING/LOSING TESTS #ifndef MAP_H #define MAP_H class Tile; class Map { private: Tile* m_Layout; int m_SizeX; int m_SizeY; int m_numOfBombs; int m_PlacesLeft; bool m_MapDone; void DecrementFreePlaces(); public: Map(int sizeX, int sizeY, int numBombs); ~Map(); void Render(); // render to window inline bool IsMapWon() { return m_PlacesLeft == 0; } inline bool IsMapDone() { return m_MapDone; } void WinMap(); void LoseMap(); // generate map depending on amount of parameters void Generate(); void GenerateFrom(int x, int y); bool GenerateFromClick(int mouseX, int mouseY); // process input void ClickAt(int mouseX, int mouseY); void RightClickAt(int mouseX, int mouseY); void Reveal(int indexX, int indexY); }; #endif