Add class vector. Change probe_lua_call to handle multiple return values.

This commit is contained in:
2025-02-26 16:45:11 -05:00
parent 23f6401a93
commit 3da5e7534a
5 changed files with 73 additions and 9 deletions

View File

@@ -0,0 +1,41 @@
#include "luastack.hpp"
LuaDefine(vec, "(x, y, z)",
"|Create a vector."
"|"
"|The function 'vec' is shorthand for vector.create."
"|") {
LuaRet result;
LuaArg lx, ly, lz;
LuaVar vclass;
LuaDefStack LS(L, result, lx, ly, lz, vclass);
double x = LS.cknumber(lx);
double y = LS.cknumber(ly);
double z = LS.cknumber(lz);
LS.createtable(result, 3, 0);
LS.rawset(result, 1, x);
LS.rawset(result, 2, y);
LS.rawset(result, 3, z);
LS.getclass(vclass, "vector");
LS.setmetatable(result, vclass);
return LS.result();
}
LuaDefine(vector_create, "(x, y, z)",
"|Create a vector."
"|") {
LuaRet result;
LuaArg lx, ly, lz;
LuaVar vclass;
LuaDefStack LS(L, result, lx, ly, lz, vclass);
double x = LS.cknumber(lx);
double y = LS.cknumber(ly);
double z = LS.cknumber(lz);
LS.createtable(result, 3, 0);
LS.rawset(result, 1, x);
LS.rawset(result, 2, y);
LS.rawset(result, 3, z);
LS.getclass(vclass, "vector");
LS.setmetatable(result, vclass);
return LS.result();
}