270 begin |
270 begin |
271 x:= lua_tointeger(L, 1); |
271 x:= lua_tointeger(L, 1); |
272 y:= lua_tointeger(L, 2); |
272 y:= lua_tointeger(L, 2); |
273 gt:= TGearType(lua_tointeger(L, 3)); |
273 gt:= TGearType(lua_tointeger(L, 3)); |
274 s:= lua_tointeger(L, 4); |
274 s:= lua_tointeger(L, 4); |
275 dx:= int2hwFloat(lua_tointeger(L, 5)) / 100000; |
275 dx:= int2hwFloat(lua_tointeger(L, 5)) / 1000000; |
276 dy:= int2hwFloat(lua_tointeger(L, 6)) / 100000; |
276 dy:= int2hwFloat(lua_tointeger(L, 6)) / 1000000; |
277 t:= lua_tointeger(L, 7); |
277 t:= lua_tointeger(L, 7); |
278 |
278 |
279 gear:= AddGear(x, y, gt, s, dx, dy, t); |
279 gear:= AddGear(x, y, gt, s, dx, dy, t); |
280 lastGearByUID:= gear; |
280 lastGearByUID:= gear; |
281 lua_pushinteger(L, gear^.uid) |
281 lua_pushinteger(L, gear^.uid) |
357 vg:= VisualGearByUID(lua_tointeger(L, 1)); |
357 vg:= VisualGearByUID(lua_tointeger(L, 1)); |
358 if vg <> nil then |
358 if vg <> nil then |
359 begin |
359 begin |
360 lua_pushinteger(L, round(vg^.X)); |
360 lua_pushinteger(L, round(vg^.X)); |
361 lua_pushinteger(L, round(vg^.Y)); |
361 lua_pushinteger(L, round(vg^.Y)); |
362 lua_pushnumber(L, vg^.dX * 100000); |
362 lua_pushnumber(L, vg^.dX * 1000000); |
363 lua_pushnumber(L, vg^.dY * 100000); |
363 lua_pushnumber(L, vg^.dY * 1000000); |
364 lua_pushnumber(L, vg^.Angle); |
364 lua_pushnumber(L, vg^.Angle); |
365 lua_pushinteger(L, vg^.Frame); |
365 lua_pushinteger(L, vg^.Frame); |
366 lua_pushinteger(L, vg^.FrameTicks); |
366 lua_pushinteger(L, vg^.FrameTicks); |
367 lua_pushinteger(L, vg^.State); |
367 lua_pushinteger(L, vg^.State); |
368 lua_pushinteger(L, vg^.Timer); |
368 lua_pushinteger(L, vg^.Timer); |
390 vg:= VisualGearByUID(lua_tointeger(L, 1)); |
390 vg:= VisualGearByUID(lua_tointeger(L, 1)); |
391 if vg <> nil then |
391 if vg <> nil then |
392 begin |
392 begin |
393 vg^.X:= lua_tointeger(L, 2); |
393 vg^.X:= lua_tointeger(L, 2); |
394 vg^.Y:= lua_tointeger(L, 3); |
394 vg^.Y:= lua_tointeger(L, 3); |
395 vg^.dX:= lua_tonumber(L, 4) / 100000; // divide by 100,000 just for consistency |
395 vg^.dX:= lua_tonumber(L, 4) / 1000000; // divide by 100,000 just for consistency |
396 vg^.dY:= lua_tonumber(L, 5) / 100000; |
396 vg^.dY:= lua_tonumber(L, 5) / 1000000; |
397 vg^.Angle:= lua_tonumber(L, 6); |
397 vg^.Angle:= lua_tonumber(L, 6); |
398 vg^.Frame:= lua_tointeger(L, 7); |
398 vg^.Frame:= lua_tointeger(L, 7); |
399 if lua_tointeger(L, 8) <> 0 then vg^.FrameTicks:= lua_tointeger(L, 8); // find a better way to do this. maybe need to break all these up. |
399 if lua_tointeger(L, 8) <> 0 then vg^.FrameTicks:= lua_tointeger(L, 8); // find a better way to do this. maybe need to break all these up. |
400 vg^.State:= lua_tointeger(L, 9); |
400 vg^.State:= lua_tointeger(L, 9); |
401 vg^.Timer:= lua_tointeger(L, 10); |
401 vg^.Timer:= lua_tointeger(L, 10); |
1094 else |
1094 else |
1095 begin |
1095 begin |
1096 gear:= GearByUID(lua_tointeger(L, 1)); |
1096 gear:= GearByUID(lua_tointeger(L, 1)); |
1097 if gear <> nil then |
1097 if gear <> nil then |
1098 begin |
1098 begin |
1099 lua_pushinteger(L, hwRound(gear^.dX * 100000)); |
1099 lua_pushinteger(L, hwRound(gear^.dX * 1000000)); |
1100 lua_pushinteger(L, hwRound(gear^.dY * 100000)) |
1100 lua_pushinteger(L, hwRound(gear^.dY * 1000000)) |
1101 end |
1101 end |
1102 end; |
1102 end; |
1103 lc_getgearvelocity:= 2; |
1103 lc_getgearvelocity:= 2; |
1104 end; |
1104 end; |
1105 |
1105 |
1111 else |
1111 else |
1112 begin |
1112 begin |
1113 gear:= GearByUID(lua_tointeger(L, 1)); |
1113 gear:= GearByUID(lua_tointeger(L, 1)); |
1114 if gear <> nil then |
1114 if gear <> nil then |
1115 begin |
1115 begin |
1116 gear^.dX:= int2hwFloat(lua_tointeger(L, 2)) / 100000; |
1116 gear^.dX:= int2hwFloat(lua_tointeger(L, 2)) / 1000000; |
1117 gear^.dY:= int2hwFloat(lua_tointeger(L, 3)) / 100000; |
1117 gear^.dY:= int2hwFloat(lua_tointeger(L, 3)) / 1000000; |
1118 SetAllToActive; |
1118 SetAllToActive; |
1119 end |
1119 end |
1120 end; |
1120 end; |
1121 lc_setgearvelocity:= 0 |
1121 lc_setgearvelocity:= 0 |
1122 end; |
1122 end; |