diff options
author | dshaligram <dshaligram@c06c8d41-db1a-0410-9941-cceddc491573> | 2007-06-30 15:49:18 +0000 |
---|---|---|
committer | dshaligram <dshaligram@c06c8d41-db1a-0410-9941-cceddc491573> | 2007-06-30 15:49:18 +0000 |
commit | fd34c17a54e69fa53b0b6ae7123fdbd60e6303f7 (patch) | |
tree | 01846cf5096208daf13e1005b38647afe6676409 /crawl-ref/source/dungeon.h | |
parent | 34cc3ee5d9832be20c635849dc592611c4697f2c (diff) | |
download | crawl-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.h | 43 |
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> |