717 lc_deletegear:= 0 |
717 lc_deletegear:= 0 |
718 end; |
718 end; |
719 |
719 |
720 function lc_addvisualgear(L : Plua_State) : LongInt; Cdecl; |
720 function lc_addvisualgear(L : Plua_State) : LongInt; Cdecl; |
721 var vg : PVisualGear; |
721 var vg : PVisualGear; |
722 x, y, s: LongInt; |
722 x, y, s, n, layer: LongInt; |
723 c: Boolean; |
723 c: Boolean; |
724 vgt: TVisualGearType; |
724 vgt: TVisualGearType; |
725 uid: Longword; |
725 uid: Longword; |
726 const |
726 const |
727 call = 'AddVisualGear'; |
727 call = 'AddVisualGear'; |
728 params = 'x, y, visualGearType, state, critical'; |
728 params = 'x, y, visualGearType, state, critical [, layer]'; |
729 begin |
729 begin |
730 uid:= 0; |
730 uid:= 0; |
731 if CheckLuaParamCount(L, 5, call, params) then |
731 if CheckAndFetchParamCount(L, 5, 6, call, params, n) then |
732 begin |
732 begin |
733 s:= LuaToVisualGearTypeOrd(L, 3, call, params); |
733 s:= LuaToVisualGearTypeOrd(L, 3, call, params); |
734 if s >= 0 then |
734 if s >= 0 then |
735 begin |
735 begin |
736 vgt:= TVisualGearType(s); |
736 vgt:= TVisualGearType(s); |
737 x:= lua_tointeger(L, 1); |
737 x:= lua_tointeger(L, 1); |
738 y:= lua_tointeger(L, 2); |
738 y:= lua_tointeger(L, 2); |
739 s:= lua_tointeger(L, 4); |
739 s:= lua_tointeger(L, 4); |
740 c:= lua_toboolean(L, 5); |
740 c:= lua_toboolean(L, 5); |
741 |
741 |
742 vg:= AddVisualGear(x, y, vgt, s, c); |
742 if n = 6 then |
|
743 begin |
|
744 layer:= lua_tointeger(L, 6); |
|
745 AddVisualGear(x, y, vgt, s, c, layer); |
|
746 end |
|
747 else |
|
748 vg:= AddVisualGear(x, y, vgt, s, c); |
|
749 |
743 if vg <> nil then |
750 if vg <> nil then |
744 begin |
751 begin |
745 lastVisualGearByUID:= vg; |
752 lastVisualGearByUID:= vg; |
746 uid:= vg^.uid; |
753 uid:= vg^.uid; |
747 lua_pushinteger(L, uid); |
754 lua_pushinteger(L, uid); |