summaryrefslogtreecommitdiffstats
path: root/src/Bindings/gen_LuaState_Call.lua
diff options
context:
space:
mode:
authorTycho <work.tycho+git@gmail.com>2014-09-05 16:26:30 +0200
committerTycho <work.tycho+git@gmail.com>2014-09-05 16:26:30 +0200
commitaa2495e3867e87ea37729b58b0df3f2ce940dbb6 (patch)
tree9f71b03f914cd7b077f6c13cd2b6ae2f691c5c66 /src/Bindings/gen_LuaState_Call.lua
parentMoved to passing pointers instead of passing by reference. (diff)
parentMerge pull request #1375 from mc-server/EntitiesInBox (diff)
downloadcuberite-aa2495e3867e87ea37729b58b0df3f2ce940dbb6.tar
cuberite-aa2495e3867e87ea37729b58b0df3f2ce940dbb6.tar.gz
cuberite-aa2495e3867e87ea37729b58b0df3f2ce940dbb6.tar.bz2
cuberite-aa2495e3867e87ea37729b58b0df3f2ce940dbb6.tar.lz
cuberite-aa2495e3867e87ea37729b58b0df3f2ce940dbb6.tar.xz
cuberite-aa2495e3867e87ea37729b58b0df3f2ce940dbb6.tar.zst
cuberite-aa2495e3867e87ea37729b58b0df3f2ce940dbb6.zip
Diffstat (limited to 'src/Bindings/gen_LuaState_Call.lua')
-rw-r--r--src/Bindings/gen_LuaState_Call.lua30
1 files changed, 29 insertions, 1 deletions
diff --git a/src/Bindings/gen_LuaState_Call.lua b/src/Bindings/gen_LuaState_Call.lua
index 17bae82b3..7f62573c7 100644
--- a/src/Bindings/gen_LuaState_Call.lua
+++ b/src/Bindings/gen_LuaState_Call.lua
@@ -54,6 +54,7 @@ local Combinations =
{9, 2},
-- Special combinations:
+ {5, 5},
{7, 3},
{8, 3},
{9, 5},
@@ -108,7 +109,7 @@ local function WriteOverload(f, a_NumParams, a_NumReturns)
-- Write the function signature:
f:write("bool Call(")
- f:write("FnT a_Function")
+ f:write("const FnT & a_Function")
for i = 1, a_NumParams do
f:write(", ParamT", i, " a_Param", i)
end
@@ -182,6 +183,33 @@ for _, combination in ipairs(Combinations) do
WriteOverload(f, combination[1], combination[2])
end
+-- Generate the cLuaState::GetStackValues() multi-param templates:
+for i = 2, 6 do
+ f:write("/** Reads ", i, " consecutive values off the stack */\ntemplate <\n")
+
+ -- Write the template function header:
+ local txt = {}
+ for idx = 1, i do
+ table.insert(txt, "\ttypename ArgT" .. idx)
+ end
+ f:write(table.concat(txt, ",\n"))
+
+ -- Write the argument declarations:
+ txt = {}
+ f:write("\n>\nvoid GetStackValues(\n\tint a_BeginPos,\n")
+ for idx = 1, i do
+ table.insert(txt, "\tArgT" .. idx .. " & Arg" .. idx)
+ end
+ f:write(table.concat(txt, ",\n"))
+
+ -- Write the function body:
+ f:write("\n)\n{\n")
+ for idx = 1, i do
+ f:write("\tGetStackValue(a_BeginPos + ", idx - 1, ", Arg", idx, ");\n")
+ end
+ f:write("}\n\n\n\n\n\n")
+end
+
-- Close the generated file
f:close()