diff -r bce67defd804 -r 8ea636ce120a hedgewars/uScript.pas --- a/hedgewars/uScript.pas Sun Apr 05 16:41:39 2015 -0400 +++ b/hedgewars/uScript.pas Wed Apr 08 15:04:48 2015 -0400 @@ -2202,19 +2202,29 @@ function lc_placesprite(L : Plua_State) : LongInt; Cdecl; var spr : TSprite; lf : Word; + tint : LongWord; i, n : LongInt; - placed: boolean; + placed, behind, flipHoriz, flipVert : boolean; const call = 'PlaceSprite'; - params = 'x, y, sprite, frameIdx [, landFlag, ... ]'; + params = 'x, y, sprite, frameIdx, tint, behind, flipHoriz, flipVert, [, landFlag, ... ]'; begin placed:= false; if CheckAndFetchLuaParamMinCount(L, 4, call, params, n) then begin + if not lua_isnoneornil(L, 5) then + tint := lua_tointeger(L, 5) + else tint := $FFFFFFFF; + if not lua_isnoneornil(L, 6) then + flipHoriz := lua_toboolean(L, 6) + else flipHoriz := false; + if not lua_isnoneornil(L, 6) then + flipVert := lua_toboolean(L, 6) + else flipVert := false; lf:= 0; - // accept any amount of landflags, loop is never executed if n>5 - for i:= 5 to n do + // accept any amount of landflags, loop is never executed if n>6 + for i:= 6 to n do lf:= lf or lua_tointeger(L, i); n:= LuaToSpriteOrd(L, 3, call, params); @@ -2227,7 +2237,7 @@ placed:= ForcePlaceOnLand( lua_tointeger(L, 1) - SpritesData[spr].Width div 2, lua_tointeger(L, 2) - SpritesData[spr].Height div 2, - spr, lua_tointeger(L, 4), lf); + spr, lua_tointeger(L, 4), lf, tint, behind, flipHoriz, flipVert); end; end;