Fix vec3:set;

This commit is contained in:
bjorn 2019-01-05 00:21:56 -08:00
parent 49b0aaa986
commit c7fa8f8497
3 changed files with 555 additions and 553 deletions

View File

@ -92,7 +92,7 @@ ffi.metatype(vec3, {
set = function(v, x, y, z)
checkvec3(v)
if x == nil or type(x) == 'number' then
v.x, v.y, v.z = x or 0, y or 0, z or 0
v.x, v.y, v.z = x or 0, y or x or 0, z or x or 0
else
checkvec3(x, 1)
v.x, v.y, v.z = x.x, x.y, x.z

File diff suppressed because it is too large Load Diff

View File

@ -66,8 +66,9 @@ static int l_lovrVec3Unpack(lua_State* L) {
int l_lovrVec3Set(lua_State* L) {
vec3 v = luax_checkmathtype(L, 1, MATH_VEC3, NULL);
if (lua_type(L, 2) == LUA_TNUMBER) {
vec3_set(v, luaL_checknumber(L, 2), luaL_checknumber(L, 3), luaL_checknumber(L, 4));
if (lua_isnoneornil(L, 2) || lua_type(L, 2) == LUA_TNUMBER) {
float x = luaL_optnumber(L, 2, 0.);
vec3_set(v, x, luaL_optnumber(L, 3, x), luaL_optnumber(L, 4, x));
} else {
vec3 u = luax_checkmathtype(L, 2, MATH_VEC3, "vec3 or number");
vec3_init(v, u);