Make calling ScriptContext::run nicer

This commit is contained in:
Matthias Schiffer 2015-02-14 23:44:20 +01:00
parent 969de84c13
commit f41fc40995
2 changed files with 26 additions and 7 deletions

View file

@ -87,8 +87,7 @@ void MapContext::interact(uint64_t time) {
if (interactScript.first.empty())
return;
Model::ScriptNumber scriptTime(time);
scriptContext->run(interactScript.first, interactScript.second, nullptr, &scriptTime);
scriptContext->run(interactScript.first, interactScript.second, nullptr, time);
}
void MapContext::keyPressed(uint16_t key, uint64_t time) {

View file

@ -59,12 +59,32 @@ private:
}
template<typename... Args>
size_t pushArgs(Model::ScriptValue *v, Args ...args) {
if (v)
v->push(L);
else
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;
}