summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/dungeon.h
diff options
context:
space:
mode:
authordshaligram <dshaligram@c06c8d41-db1a-0410-9941-cceddc491573>2007-06-30 15:49:18 +0000
committerdshaligram <dshaligram@c06c8d41-db1a-0410-9941-cceddc491573>2007-06-30 15:49:18 +0000
commitfd34c17a54e69fa53b0b6ae7123fdbd60e6303f7 (patch)
tree01846cf5096208daf13e1005b38647afe6676409 /crawl-ref/source/dungeon.h
parent34cc3ee5d9832be20c635849dc592611c4697f2c (diff)
downloadcrawl-ref-fd34c17a54e69fa53b0b6ae7123fdbd60e6303f7.tar.gz
crawl-ref-fd34c17a54e69fa53b0b6ae7123fdbd60e6303f7.zip
[1742338] Fixed Hell portals not being revealed correctly when the horn is
sounded. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@1701 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref/source/dungeon.h')
-rw-r--r--crawl-ref/source/dungeon.h43
1 files changed, 43 insertions, 0 deletions
diff --git a/crawl-ref/source/dungeon.h b/crawl-ref/source/dungeon.h
index 1ba0aaf3df..34fd78690c 100644
--- a/crawl-ref/source/dungeon.h
+++ b/crawl-ref/source/dungeon.h
@@ -99,6 +99,49 @@ void place_spec_shop(int level_number, int shop_x, int shop_y,
int force_s_type, bool representative = false);
bool unforbidden(const coord_def &c, const dgn_region_list &forbidden);
+//////////////////////////////////////////////////////////////////////////
+// Map markers
+
+class map_marker
+{
+public:
+ map_marker(map_marker_type type, const coord_def &pos);
+ virtual ~map_marker();
+
+ map_marker_type get_type() const { return type; }
+
+ virtual void write(tagHeader &) const;
+ virtual void read(tagHeader &);
+ virtual map_marker *clone() const = 0;
+ virtual std::string describe() const = 0;
+
+ static map_marker *read_marker(tagHeader&);
+
+public:
+ coord_def pos;
+
+protected:
+ map_marker_type type;
+
+ typedef map_marker *(*marker_reader)(tagHeader &, map_marker_type);
+ static marker_reader readers[NUM_MAP_MARKER_TYPES];
+};
+
+class map_feature_marker : public map_marker
+{
+public:
+ map_feature_marker(const coord_def &pos = coord_def(0, 0),
+ dungeon_feature_type feat = DNGN_UNSEEN);
+ map_feature_marker(const map_feature_marker &other);
+ void write(tagHeader &) const;
+ void read(tagHeader &);
+ map_marker *clone() const;
+ std::string describe() const;
+ static map_marker *read(tagHeader &, map_marker_type);
+
+public:
+ dungeon_feature_type feat;
+};
//////////////////////////////////////////////////////////////////////////
template <typename fgrd, typename bound_check>