summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/terrain.cc
diff options
context:
space:
mode:
authorNeil Moore <neil@s-z.org>2014-07-21 00:06:37 -0400
committerNeil Moore <neil@s-z.org>2014-07-21 00:06:37 -0400
commit60945e0518a1a6adaf38d40a858db24643e67323 (patch)
tree12c90de8683b0f978ef60e70fa2c204b53a2a854 /crawl-ref/source/terrain.cc
parent63bc4b8c3764250f17a47085a1798413fdf7d587 (diff)
downloadcrawl-ref-60945e0518a1a6adaf38d40a858db24643e67323.tar.gz
crawl-ref-60945e0518a1a6adaf38d40a858db24643e67323.zip
Restore colour when a sealed door is opened.
Diffstat (limited to 'crawl-ref/source/terrain.cc')
-rw-r--r--crawl-ref/source/terrain.cc21
1 files changed, 21 insertions, 0 deletions
diff --git a/crawl-ref/source/terrain.cc b/crawl-ref/source/terrain.cc
index eb91c6e0f7..2c37a441da 100644
--- a/crawl-ref/source/terrain.cc
+++ b/crawl-ref/source/terrain.cc
@@ -1716,6 +1716,27 @@ void set_terrain_changed(const coord_def p)
if (grd(p) == DNGN_SLIMY_WALL)
env.level_state |= LSTATE_SLIMY_WALL;
+ else if (grd(p) == DNGN_OPEN_DOOR)
+ {
+ // Restore colour from door-change markers
+ vector<map_marker*> markers = env.markers.get_markers_at(p);
+ for (int i = 0, size = markers.size(); i < size; ++i)
+ {
+ if (markers[i]->get_type() == MAT_TERRAIN_CHANGE)
+ {
+ map_terrain_change_marker* marker =
+ dynamic_cast<map_terrain_change_marker*>(markers[i]);
+
+ if (marker->change_type == TERRAIN_CHANGE_DOOR_SEAL
+ && marker->colour != BLACK)
+ {
+ // Restore the unsealed colour.
+ dgn_set_grid_colour_at(p, marker->colour);
+ break;
+ }
+ }
+ }
+ }
env.map_knowledge(p).flags |= MAP_CHANGED_FLAG;