summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/view.cc
diff options
context:
space:
mode:
Diffstat (limited to 'crawl-ref/source/view.cc')
-rw-r--r--crawl-ref/source/view.cc13
1 files changed, 13 insertions, 0 deletions
diff --git a/crawl-ref/source/view.cc b/crawl-ref/source/view.cc
index b691992e32..d155f10004 100644
--- a/crawl-ref/source/view.cc
+++ b/crawl-ref/source/view.cc
@@ -5693,6 +5693,19 @@ void crawl_view_geometry::init_view()
set_player_at(you.pos(), true);
}
+void crawl_view_geometry::shift_player_to(const coord_def &c)
+{
+ // Preserve vgrdc offset after moving.
+ const coord_def offset = crawl_view.vgrdc - you.pos();
+ crawl_view.vgrdc = offset + c;
+ last_player_pos = c;
+
+ set_player_at(c);
+
+ ASSERT(crawl_view.vgrdc == offset + c);
+ ASSERT(last_player_pos == c);
+}
+
void crawl_view_geometry::set_player_at(const coord_def &c, bool centre)
{
if (centre)