diff options
author | haranp <haranp@c06c8d41-db1a-0410-9941-cceddc491573> | 2008-12-17 12:10:45 +0000 |
---|---|---|
committer | haranp <haranp@c06c8d41-db1a-0410-9941-cceddc491573> | 2008-12-17 12:10:45 +0000 |
commit | b3f1a22f005bc41969123bad5f4068a94bba1484 (patch) | |
tree | 967929d9e56ac4a8a38446701f47d66bcb315555 /crawl-ref | |
parent | 63da2b2852bedb6369915119feb9f6869aa9d4db (diff) | |
download | crawl-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.cc | 3 | ||||
-rw-r--r-- | crawl-ref/source/misc.cc | 2 |
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() |