summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/cluautil.h
diff options
context:
space:
mode:
Diffstat (limited to 'crawl-ref/source/cluautil.h')
-rw-r--r--crawl-ref/source/cluautil.h18
1 files changed, 17 insertions, 1 deletions
diff --git a/crawl-ref/source/cluautil.h b/crawl-ref/source/cluautil.h
index 8ea98028ee..0f02555750 100644
--- a/crawl-ref/source/cluautil.h
+++ b/crawl-ref/source/cluautil.h
@@ -57,7 +57,7 @@ void clua_register_metatable(lua_State *ls, const char *tn,
const luaL_reg *lr,
int (*gcfn)(lua_State *ls) = NULL);
-int dlua_stringtable(lua_State *ls, const std::vector<std::string> &s);
+int clua_stringtable(lua_State *ls, const std::vector<std::string> &s);
/*
* User-data templates.
@@ -175,4 +175,20 @@ dgn_event *var = *(dgn_event **) luaL_checkudata(ls, n, DEVENT_METATABLE)
#define MAPMARKER(ls, n, var) \
map_marker *var = *(map_marker **) luaL_checkudata(ls, n, MAPMARK_METATABLE)
+
+template <typename list, typename lpush>
+static int clua_gentable(lua_State *ls, const list &strings, lpush push)
+{
+ lua_newtable(ls);
+ for (int i = 0, size = strings.size(); i < size; ++i)
+ {
+ push(ls, strings[i]);
+ lua_rawseti(ls, -2, i + 1);
+ }
+ return (1);
+}
+
+int clua_pushcxxstring(lua_State *ls, const std::string &s);
+int clua_pushpoint(lua_State *ls, const coord_def &pos);
+
#endif