summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/travel.cc
diff options
context:
space:
mode:
authordshaligram <dshaligram@c06c8d41-db1a-0410-9941-cceddc491573>2007-06-03 09:59:15 +0000
committerdshaligram <dshaligram@c06c8d41-db1a-0410-9941-cceddc491573>2007-06-03 09:59:15 +0000
commit6133f1e422db46410fd624c4be2b3dc2e82fdacd (patch)
tree617b4b340fe57175d000b8eeac0f378a3cdc1767 /crawl-ref/source/travel.cc
parent84a6e8527deb1305ce0ed6124bfc0e9513c0900b (diff)
downloadcrawl-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.cc16
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;