summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/mapmark.cc
diff options
context:
space:
mode:
Diffstat (limited to 'crawl-ref/source/mapmark.cc')
-rw-r--r--crawl-ref/source/mapmark.cc7
1 files changed, 7 insertions, 0 deletions
diff --git a/crawl-ref/source/mapmark.cc b/crawl-ref/source/mapmark.cc
index e7d3abf65a..b0f27d40b6 100644
--- a/crawl-ref/source/mapmark.cc
+++ b/crawl-ref/source/mapmark.cc
@@ -596,11 +596,18 @@ void map_markers::init_from(const map_markers &c)
void map_markers::activate_all(bool verbose)
{
+ std::vector<map_marker*> to_remove;
+
for (dgn_marker_map::iterator i = markers.begin();
i != markers.end(); ++i)
{
i->second->activate(verbose);
+ if (i->second->property("post_activate_remove") != "")
+ to_remove.push_back(i->second);
}
+
+ for (unsigned int i = 0; i < to_remove.size(); i++)
+ remove(to_remove[i]);
}
void map_markers::add(map_marker *marker)