#pragma once #include "libtcod.hpp" #include "Persistance.h" struct Tile { bool explored; // has the player already seen this tile ? Tile() : explored(false) {} }; class Map : public Persistent { public: int width, height; Map(int width, int height); ~Map(); void init(bool withActors); bool canWalk(int x, int y) const; bool isWall(int x, int y) const; bool isInFov(int x, int y) const; bool isExplored(int x, int y) const; void computeFov(); void render(TCOD_Console& cons) const; void addItem(int x, int y); long seed; TCODRandom* rng; void load(TCODZip& zip); void save(TCODZip& zip); protected: Tile* tiles; friend class BspListener; TCODMap* map; void dig(int x1, int y1, int x2, int y2); void createRoom(bool first, int x1, int y1, int x2, int y2, bool withActors); void addMonster(int x, int y); void setWall(int x, int y); };