/* * Generator.h * * Created on: 07.04.2013 * Author: Felix */ #ifndef DG_GENERATOR_H_ #define DG_GENERATOR_H_ #include #include "../sprites/TileManager.h" class Pathfinder; class Generator { public: explicit Generator(); void generateTiles(TileManager& tm, Pathfinder& pathfinder, const sf::IntRect& area); sf::Vector2f getPlayerSpawn() const; private: sf::Vector2i findClosestFloor(const sf::Vector2i& position) const; static void fill(std::vector >& image, const sf::IntRect& area, TileManager::Type value); static void filterWalls(std::vector >& in, std::vector >& out, int x, int y, int longside, int shortside, int subtract); static int countWalls(const sf::IntRect& area, std::vector >& tiles); static void generateAreas(Pathfinder& pathfinder, std::vector >& tiles, const sf::IntRect& area, const sf::Vector2f& offset); private: std::vector > mGenerated; }; #endif /* DG_GENERATOR_H_ */