diff options
-rw-r--r-- | crawl-ref/source/cluautil.cc | 23 | ||||
-rw-r--r-- | crawl-ref/source/cluautil.h | 2 | ||||
-rw-r--r-- | crawl-ref/source/dlua.cc | 22 | ||||
-rw-r--r-- | crawl-ref/source/dlua.h | 2 |
4 files changed, 25 insertions, 24 deletions
diff --git a/crawl-ref/source/cluautil.cc b/crawl-ref/source/cluautil.cc index fe0ba1cd93..2a9cfe47bb 100644 --- a/crawl-ref/source/cluautil.cc +++ b/crawl-ref/source/cluautil.cc @@ -98,3 +98,26 @@ void clua_register_metatable(lua_State *ls, const char *tn, luaL_openlib(ls, NULL, lr, 0); } } + + +template <typename list, typename lpush> +static int dlua_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); +} + +inline static void dlua_pushcxxstring(lua_State *ls, const std::string &s) +{ + lua_pushstring(ls, s.c_str()); +} + +int dlua_stringtable(lua_State *ls, const std::vector<std::string> &s) +{ + return dlua_gentable(ls, s, dlua_pushcxxstring); +} diff --git a/crawl-ref/source/cluautil.h b/crawl-ref/source/cluautil.h index 8e322bc584..2acbcf18f6 100644 --- a/crawl-ref/source/cluautil.h +++ b/crawl-ref/source/cluautil.h @@ -57,6 +57,8 @@ 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); + /* * User-data templates. * TODO: Consolidate these. diff --git a/crawl-ref/source/dlua.cc b/crawl-ref/source/dlua.cc index 5aae875edc..cac5941566 100644 --- a/crawl-ref/source/dlua.cc +++ b/crawl-ref/source/dlua.cc @@ -13,28 +13,6 @@ #include "tags.h" -template <typename list, typename lpush> -static int dlua_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); -} - -inline static void dlua_pushcxxstring(lua_State *ls, const std::string &s) -{ - lua_pushstring(ls, s.c_str()); -} - -int dlua_stringtable(lua_State *ls, const std::vector<std::string> &s) -{ - return dlua_gentable(ls, s, dlua_pushcxxstring); -} - static int dlua_compiled_chunk_writer(lua_State *ls, const void *p, size_t sz, void *ud) { diff --git a/crawl-ref/source/dlua.h b/crawl-ref/source/dlua.h index 8df5841da2..24fe334453 100644 --- a/crawl-ref/source/dlua.h +++ b/crawl-ref/source/dlua.h @@ -72,8 +72,6 @@ public: void init_dungeon_lua(); -int dlua_stringtable(lua_State *ls, const std::vector<std::string> &s); - void print_dlua_stack(); ////////////////////////////////////////////////////////////////////////// |