diff options
author | dshaligram <dshaligram@c06c8d41-db1a-0410-9941-cceddc491573> | 2008-03-31 12:47:08 +0000 |
---|---|---|
committer | dshaligram <dshaligram@c06c8d41-db1a-0410-9941-cceddc491573> | 2008-03-31 12:47:08 +0000 |
commit | 97e66bedd0d8a8d95781f8058b5560768f97a1ea (patch) | |
tree | 4693cb1cc3cd56a3eaf663e5e3ae6487226acd99 /crawl-ref/source/mapmark.cc | |
parent | e815ad3dcd37899ea93e57bef68408ee4e971c87 (diff) | |
download | crawl-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.cc | 14 |
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; |