summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/l_dgnlvl.cc
diff options
context:
space:
mode:
authorSteve Melenchuk <smelenchuk@gmail.com>2012-07-26 11:02:26 -0600
committerSteve Melenchuk <smelenchuk@gmail.com>2012-07-26 11:05:51 -0600
commite094a25a100afbc2302b7bb30796b6aee9507ffa (patch)
tree28a2dd0b4fe68209fcacb0972a20149bbf8b1c0f /crawl-ref/source/l_dgnlvl.cc
parent9de211e512f9214464c13f6134fe540690c44d4b (diff)
downloadcrawl-ref-e094a25a100afbc2302b7bb30796b6aee9507ffa.tar.gz
crawl-ref-e094a25a100afbc2302b7bb30796b6aee9507ffa.zip
Lua function: dgn.br_entrance.
This returns a level ID signifying where the entrance to a branch is (if not specified, it uses the current branch). Its primary use would be in the context, "you.where() == dgn.level_name(dgn.br_entrance("<branch>"))" to determine if a branch entrance needs to be placed in an encompass vault or a layout.
Diffstat (limited to 'crawl-ref/source/l_dgnlvl.cc')
-rw-r--r--crawl-ref/source/l_dgnlvl.cc18
1 files changed, 18 insertions, 0 deletions
diff --git a/crawl-ref/source/l_dgnlvl.cc b/crawl-ref/source/l_dgnlvl.cc
index ceb461c2a2..9b32ed0215 100644
--- a/crawl-ref/source/l_dgnlvl.cc
+++ b/crawl-ref/source/l_dgnlvl.cc
@@ -72,6 +72,23 @@ static void _push_level_id(lua_State *ls, const level_id &lid)
new (nlev) level_id(lid);
}
+LUAFN(dgn_br_entrance)
+{
+ const int nargs = lua_gettop(ls);
+ branch_type brn = you.where_are_you;
+ if (nargs == 1)
+ {
+ const char *branch_name = luaL_checkstring(ls, 1);
+ brn = str_to_branch(branch_name);
+ if (brn == NUM_BRANCHES)
+ luaL_argerror(ls, 1, "No such branch");
+ }
+
+ _push_level_id(ls, level_id(branches[brn].parent_branch,
+ startdepth[brn]));
+ return 1;
+}
+
level_id dlua_level_id(lua_State *ls, int ndx)
{
if (lua_isstring(ls, ndx))
@@ -122,6 +139,7 @@ const struct luaL_reg dgn_level_dlib[] =
{ "br_parent_branch", dgn_br_parent_branch },
{ "br_depth", dgn_br_depth },
{ "br_exists", dgn_br_exists },
+{ "br_entrance", dgn_br_entrance },
{ "level_id", dgn_level_id },
{ "level_name", dgn_level_name },