summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/clua.cc
diff options
context:
space:
mode:
authordshaligram <dshaligram@c06c8d41-db1a-0410-9941-cceddc491573>2007-06-27 19:42:23 +0000
committerdshaligram <dshaligram@c06c8d41-db1a-0410-9941-cceddc491573>2007-06-27 19:42:23 +0000
commit9b41135da821d07d54c7a6ee75ed6dcbd19e9322 (patch)
treeb5151b3dd9d18dbfb50646ee91155382b22a2c59 /crawl-ref/source/clua.cc
parent6a2be1555b3d27614a7a5d3a8fd973cebc0865c8 (diff)
downloadcrawl-ref-9b41135da821d07d54c7a6ee75ed6dcbd19e9322.tar.gz
crawl-ref-9b41135da821d07d54c7a6ee75ed6dcbd19e9322.zip
Added glyphs_connected and friends for maps to test connectedness of points
after map transforms are applied. Fixed conflicts in bison grammar. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@1669 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref/source/clua.cc')
-rw-r--r--crawl-ref/source/clua.cc17
1 files changed, 9 insertions, 8 deletions
diff --git a/crawl-ref/source/clua.cc b/crawl-ref/source/clua.cc
index 6a4e54074e..33047c504e 100644
--- a/crawl-ref/source/clua.cc
+++ b/crawl-ref/source/clua.cc
@@ -315,9 +315,7 @@ void CLua::fnreturns(const char *format, ...)
va_list args;
va_start(args, format);
-
vfnreturns(format, args);
-
va_end(args);
}
@@ -367,7 +365,6 @@ void CLua::vfnreturns(const char *format, va_list args)
}
static void push_monster(lua_State *ls, monsters *mons);
-static void push_map(lua_State *ls, map_def *map);
static int push_activity_interrupt(lua_State *ls, activity_interrupt_data *t);
int CLua::push_args(lua_State *ls, const char *format, va_list args,
va_list *targ)
@@ -415,7 +412,7 @@ int CLua::push_args(lua_State *ls, const char *format, va_list args,
lua_pushboolean(ls, va_arg(args, int));
break;
case 'm':
- push_map(ls, va_arg(args, map_def *));
+ clua_push_map(ls, va_arg(args, map_def *));
break;
case 'M':
push_monster(ls, va_arg(args, monsters *));
@@ -583,7 +580,7 @@ void CLua::init_lua()
return;
lua_atpanic(_state, clua_panic);
-
+
luaopen_base(_state);
luaopen_string(_state);
luaopen_table(_state);
@@ -611,6 +608,8 @@ void CLua::init_lua()
execfile("clua/userbase.lua", true, true);
}
+
+ lua_settop(_state, 1);
}
void CLua::load_chooks()
@@ -1830,6 +1829,7 @@ static int crawl_split(lua_State *ls)
}
LUARET1(crawl_game_started, boolean, crawl_state.need_save)
+LUARET1(crawl_random2, number, random2( luaL_checkint(ls, 1) ))
static int crawl_err_trace(lua_State *ls)
{
@@ -1860,14 +1860,15 @@ static int crawl_err_trace(lua_State *ls)
// What's on top should be the error.
lua_error(ls);
}
-
- return (lua_gettop(ls));
+
+ return (lua_gettop(ls));
}
static const struct luaL_reg crawl_lib[] =
{
{ "mpr", crawl_mpr },
{ "mesclr", crawl_mesclr },
+ { "random2", crawl_random2 },
{ "redraw_screen", crawl_redraw_screen },
{ "input_line", crawl_input_line },
{ "c_input_line", crawl_c_input_line},
@@ -2166,7 +2167,7 @@ static void push_monster(lua_State *ls, monsters *mons)
mw->mons = mons;
}
-static void push_map(lua_State *ls, map_def *map)
+void clua_push_map(lua_State *ls, map_def *map)
{
map_def **mapref = clua_new_userdata<map_def *>(ls, MAP_METATABLE);
*mapref = map;