summaryrefslogtreecommitdiffstats
path: root/crawl-ref
diff options
context:
space:
mode:
authorharanp <haranp@c06c8d41-db1a-0410-9941-cceddc491573>2008-12-17 12:10:45 +0000
committerharanp <haranp@c06c8d41-db1a-0410-9941-cceddc491573>2008-12-17 12:10:45 +0000
commitb3f1a22f005bc41969123bad5f4068a94bba1484 (patch)
tree967929d9e56ac4a8a38446701f47d66bcb315555 /crawl-ref
parent63da2b2852bedb6369915119feb9f6869aa9d4db (diff)
downloadcrawl-ref-b3f1a22f005bc41969123bad5f4068a94bba1484.tar.gz
crawl-ref-b3f1a22f005bc41969123bad5f4068a94bba1484.zip
Fix _restore_level() mishandling non-Dungeon levels. This is hack;
improvements welcome. Fixes 2434656. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@7856 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref')
-rw-r--r--crawl-ref/source/files.cc3
-rw-r--r--crawl-ref/source/misc.cc2
2 files changed, 4 insertions, 1 deletions
diff --git a/crawl-ref/source/files.cc b/crawl-ref/source/files.cc
index 17aa7aaece..691840293a 100644
--- a/crawl-ref/source/files.cc
+++ b/crawl-ref/source/files.cc
@@ -1737,6 +1737,7 @@ bool apply_to_level(const level_id &level, bool preserve_current,
bool apply_to_all_dungeons(bool (*applicator)())
{
const level_id original = level_id::current();
+ const int your_old_level = you.your_level;
// Apply to current level, then save it out.
bool success = applicator();
@@ -1760,6 +1761,8 @@ bool apply_to_all_dungeons(bool (*applicator)())
}
_restore_level(original);
+ if (you.level_type != LEVEL_DUNGEON)
+ you.your_level = your_old_level;
return (success);
}
diff --git a/crawl-ref/source/misc.cc b/crawl-ref/source/misc.cc
index 3906b0646d..bcfa786c16 100644
--- a/crawl-ref/source/misc.cc
+++ b/crawl-ref/source/misc.cc
@@ -1563,7 +1563,7 @@ static void _player_change_level_reset()
if (you.pet_target != MHITYOU)
you.pet_target = MHITNOT;
- you.prev_grd_targ = coord_def(0, 0);
+ you.prev_grd_targ.reset();
}
static level_id _stair_destination_override()