summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/mapmark.cc
diff options
context:
space:
mode:
authordshaligram <dshaligram@c06c8d41-db1a-0410-9941-cceddc491573>2008-03-31 12:47:08 +0000
committerdshaligram <dshaligram@c06c8d41-db1a-0410-9941-cceddc491573>2008-03-31 12:47:08 +0000
commit97e66bedd0d8a8d95781f8058b5560768f97a1ea (patch)
tree4693cb1cc3cd56a3eaf663e5e3ae6487226acd99 /crawl-ref/source/mapmark.cc
parente815ad3dcd37899ea93e57bef68408ee4e971c87 (diff)
downloadcrawl-ref-97e66bedd0d8a8d95781f8058b5560768f97a1ea.tar.gz
crawl-ref-97e66bedd0d8a8d95781f8058b5560768f97a1ea.zip
[1923246] Item pickup marker moves itself when the item it's guarding is apported.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@3976 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref/source/mapmark.cc')
-rw-r--r--crawl-ref/source/mapmark.cc14
1 files changed, 13 insertions, 1 deletions
diff --git a/crawl-ref/source/mapmark.cc b/crawl-ref/source/mapmark.cc
index 90a5dadf48..4cf22b4057 100644
--- a/crawl-ref/source/mapmark.cc
+++ b/crawl-ref/source/mapmark.cc
@@ -583,7 +583,7 @@ void map_markers::add(map_marker *marker)
markers.insert(dgn_pos_marker(marker->pos, marker));
}
-void map_markers::remove(map_marker *marker)
+void map_markers::unlink_marker(const map_marker *marker)
{
std::pair<dgn_marker_map::iterator, dgn_marker_map::iterator>
els = markers.equal_range(marker->pos);
@@ -595,6 +595,11 @@ void map_markers::remove(map_marker *marker)
break;
}
}
+}
+
+void map_markers::remove(map_marker *marker)
+{
+ unlink_marker(marker);
delete marker;
}
@@ -656,6 +661,13 @@ void map_markers::move(const coord_def &from, const coord_def &to)
}
}
+void map_markers::move_marker(map_marker *marker, const coord_def &to)
+{
+ unlink_marker(marker);
+ marker->pos = to;
+ add(marker);
+}
+
std::vector<map_marker*> map_markers::get_all(map_marker_type mat)
{
std::vector<map_marker*> rmarkers;