hedgewars/uScript.pas
changeset 10346 dd22bcf08e4f
parent 10312 eda8d563f677
child 10347 fd80921a8f81
equal deleted inserted replaced
10345:2b264d67fac3 10346:dd22bcf08e4f
   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);