@@ -225,6 +225,44 @@ v3f check_v3f(lua_State *L, int index)
225
225
return pos;
226
226
}
227
227
228
+ v3d read_v3d (lua_State *L, int index)
229
+ {
230
+ v3d pos;
231
+ CHECK_POS_TAB (index );
232
+ lua_getfield (L, index , " x" );
233
+ pos.X = lua_tonumber (L, -1 );
234
+ lua_pop (L, 1 );
235
+ lua_getfield (L, index , " y" );
236
+ pos.Y = lua_tonumber (L, -1 );
237
+ lua_pop (L, 1 );
238
+ lua_getfield (L, index , " z" );
239
+ pos.Z = lua_tonumber (L, -1 );
240
+ lua_pop (L, 1 );
241
+ return pos;
242
+ }
243
+
244
+ v3d check_v3d (lua_State *L, int index)
245
+ {
246
+ v3d pos;
247
+ CHECK_POS_TAB (index );
248
+ lua_getfield (L, index , " x" );
249
+ CHECK_POS_COORD (" x" );
250
+ pos.X = lua_tonumber (L, -1 );
251
+ CHECK_FLOAT_RANGE (pos.X , " x" )
252
+ lua_pop (L, 1 );
253
+ lua_getfield (L, index , " y" );
254
+ CHECK_POS_COORD (" y" );
255
+ pos.Y = lua_tonumber (L, -1 );
256
+ CHECK_FLOAT_RANGE (pos.Y , " y" )
257
+ lua_pop (L, 1 );
258
+ lua_getfield (L, index , " z" );
259
+ CHECK_POS_COORD (" z" );
260
+ pos.Z = lua_tonumber (L, -1 );
261
+ CHECK_FLOAT_RANGE (pos.Z , " z" )
262
+ lua_pop (L, 1 );
263
+ return pos;
264
+ }
265
+
228
266
void push_ARGB8 (lua_State *L, video::SColor color)
229
267
{
230
268
lua_newtable (L);
@@ -263,15 +301,15 @@ void push_v3s16(lua_State *L, v3s16 p)
263
301
v3s16 read_v3s16 (lua_State *L, int index)
264
302
{
265
303
// Correct rounding at <0
266
- v3f pf = read_v3f (L, index );
267
- return floatToInt (pf, 1.0 );
304
+ v3d pf = read_v3d (L, index );
305
+ return doubleToInt (pf, 1.0 );
268
306
}
269
307
270
308
v3s16 check_v3s16 (lua_State *L, int index)
271
309
{
272
310
// Correct rounding at <0
273
- v3f pf = check_v3f (L, index );
274
- return floatToInt (pf, 1.0 );
311
+ v3d pf = check_v3d (L, index );
312
+ return doubleToInt (pf, 1.0 );
275
313
}
276
314
277
315
bool read_color (lua_State *L, int index, video::SColor *color)
0 commit comments