adg5/Map.h
2025-04-21 15:55:46 +10:00

37 lines
934 B
C++

#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);
};