diff options
Diffstat (limited to 'crawl-ref/source/cluautil.h')
-rw-r--r-- | crawl-ref/source/cluautil.h | 18 |
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 |