diff options
author | Matthias Schiffer <mschiffer@universe-factory.net> | 2015-02-14 23:44:20 +0100 |
---|---|---|
committer | Matthias Schiffer <mschiffer@universe-factory.net> | 2015-02-14 23:44:20 +0100 |
commit | f41fc409959c5c050c3774c654e655589e744e22 (patch) | |
tree | f17ae2a95c112f96961502ac61dc4ea3fbca1c52 /src/control/ScriptContext.hpp | |
parent | 969de84c135ed73db31aa96ef12fe1d589460aed (diff) | |
download | rpgedit-f41fc409959c5c050c3774c654e655589e744e22.tar rpgedit-f41fc409959c5c050c3774c654e655589e744e22.zip |
Make calling ScriptContext::run nicer
Diffstat (limited to 'src/control/ScriptContext.hpp')
-rw-r--r-- | src/control/ScriptContext.hpp | 30 |
1 files changed, 25 insertions, 5 deletions
diff --git a/src/control/ScriptContext.hpp b/src/control/ScriptContext.hpp index 9416d0e..13279ec 100644 --- a/src/control/ScriptContext.hpp +++ b/src/control/ScriptContext.hpp @@ -59,12 +59,32 @@ private: } template<typename... Args> - size_t pushArgs(Model::ScriptValue *v, Args ...args) { - if (v) - v->push(L); - else - lua_pushnil(L); + size_t pushArgs(std::nullptr_t __attribute__((unused)) v, Args ...args) { + lua_pushnil(L); + return pushArgs(args...) + 1; + } + + template<typename... Args> + size_t pushArgs(const std::string &v, Args ...args) { + lua_pushstring(L, v.c_str()); + return pushArgs(args...) + 1; + } + + template<typename T, typename... Args> + size_t pushArgs(T v, Args ...args) { + lua_pushnumber(L, v); + return pushArgs(args...) + 1; + } + template<typename... Args> + size_t pushArgs(bool v, Args ...args) { + lua_pushboolean(L, v); + return pushArgs(args...) + 1; + } + + template<typename... Args> + size_t pushArgs(Model::ScriptValue &v, Args ...args) { + v.push(L); return pushArgs(args...) + 1; } |