summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--crawl-ref/source/travel.cc16
1 files changed, 10 insertions, 6 deletions
diff --git a/crawl-ref/source/travel.cc b/crawl-ref/source/travel.cc
index 0c756a7d9c..a3f19fa946 100644
--- a/crawl-ref/source/travel.cc
+++ b/crawl-ref/source/travel.cc
@@ -2333,16 +2333,20 @@ void start_translevel_travel(const travel_target &pos)
level_target = pos;
- if (pos.p.id != level_id::current())
+ // Check that it's level + position, not just level.
+ if (pos.p.is_valid())
{
- if (!_loadlev_populate_stair_distances(pos.p))
+ if (pos.p.id != level_id::current())
{
- mpr("Level memory is imperfect, aborting.");
- return ;
+ if (!_loadlev_populate_stair_distances(pos.p))
+ {
+ mpr("Level memory is imperfect, aborting.");
+ return ;
+ }
}
+ else
+ _populate_stair_distances(pos.p);
}
- else
- _populate_stair_distances(pos.p);
trans_travel_dest = get_trans_travel_dest(level_target);
_start_translevel_travel();