diff options
author | dshaligram <dshaligram@c06c8d41-db1a-0410-9941-cceddc491573> | 2007-06-03 09:59:15 +0000 |
---|---|---|
committer | dshaligram <dshaligram@c06c8d41-db1a-0410-9941-cceddc491573> | 2007-06-03 09:59:15 +0000 |
commit | 6133f1e422db46410fd624c4be2b3dc2e82fdacd (patch) | |
tree | 617b4b340fe57175d000b8eeac0f378a3cdc1767 /crawl-ref/source/travel.cc | |
parent | 84a6e8527deb1305ce0ed6124bfc0e9513c0900b (diff) | |
download | crawl-ref-6133f1e422db46410fd624c4be2b3dc2e82fdacd.tar.gz crawl-ref-6133f1e422db46410fd624c4be2b3dc2e82fdacd.zip |
$ in the interlevel travel depth prompt changes the default to the deepest
visited level in the branch.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@1516 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref/source/travel.cc')
-rw-r--r-- | crawl-ref/source/travel.cc | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/crawl-ref/source/travel.cc b/crawl-ref/source/travel.cc index 796df67a74..9cb7bec3bc 100644 --- a/crawl-ref/source/travel.cc +++ b/crawl-ref/source/travel.cc @@ -1960,6 +1960,17 @@ static level_id find_down_level(level_id curr) return (curr); } +static level_id find_deepest_explored(level_id curr) +{ + for (int i = branches[curr.branch].depth; i > 0; --i) + { + const level_id lid(curr.branch, i); + if (travel_cache.find_level_info(lid)) + return (lid); + } + return (curr); +} + static level_id find_down_level() { return (find_down_level(level_id::current())); @@ -1975,6 +1986,8 @@ static int travel_depth_keyfilter(int &c) case CONTROL('P'): case 'p': c = '-'; // Make uniform. return (-1); + case '$': + return (-1); default: return (1); } @@ -1998,6 +2011,9 @@ static void travel_depth_munge(int munge_method, branch_type *br, int *depth) case '-': lid = find_up_level(lid, true); break; + case '$': + lid = find_deepest_explored(lid); + break; } *br = lid.branch; *depth = lid.depth; |