From babd5e5596cefc7b2e15825976e084591f275d6f Mon Sep 17 00:00:00 2001 From: Clyne Sullivan Date: Thu, 28 Sep 2017 17:28:59 -0400 Subject: lua - references --- src/systems/lua.cpp | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'src/systems/lua.cpp') diff --git a/src/systems/lua.cpp b/src/systems/lua.cpp index b093aff..fa1e93e 100644 --- a/src/systems/lua.cpp +++ b/src/systems/lua.cpp @@ -1,2 +1,25 @@ #include +void LuaScript::setGlobal(const LuaVariable& nv) +{ + lua_pushnumber(state, std::get(nv)); + lua_setglobal(state, std::get(nv).c_str()); +} + +void LuaScript::operator()(std::vector vars) +{ + for (auto& v : vars) + setGlobal(v); + (*this)(); + for (auto& v : vars) { + lua_getglobal(state, std::get(v).c_str()); + std::get(v) = lua_tonumber(state, -1); + } +} + +void LuaScript::operator()(void) +{ + lua_getglobal(state, "update"); + lua_pcall(state, 0, LUA_MULTRET, 0); +} + -- cgit v1.2.3