diff options
author | Neil Moore <neil@s-z.org> | 2014-07-21 00:06:37 -0400 |
---|---|---|
committer | Neil Moore <neil@s-z.org> | 2014-07-21 00:06:37 -0400 |
commit | 60945e0518a1a6adaf38d40a858db24643e67323 (patch) | |
tree | 12c90de8683b0f978ef60e70fa2c204b53a2a854 /crawl-ref/source/terrain.cc | |
parent | 63bc4b8c3764250f17a47085a1798413fdf7d587 (diff) | |
download | crawl-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.cc | 21 |
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; |