diff options
Diffstat (limited to 'crawl-ref/source/view.cc')
-rw-r--r-- | crawl-ref/source/view.cc | 13 |
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) |