diff -r b9aed3de7c27 -r 272ed78e59a7 hedgewars/uLand.pas --- a/hedgewars/uLand.pas Thu Aug 04 17:41:07 2011 +0200 +++ b/hedgewars/uLand.pas Thu Aug 04 17:44:55 2011 +0200 @@ -1096,6 +1096,7 @@ end; Land[y,x]:= lfObject end; + AddProgress(); end; @@ -1314,6 +1315,32 @@ FreeLandObjects; +if cGrayScale then + begin + if (cReducedQuality and rqBlurryLand) = 0 then + for x:= leftX to rightX do + for y:= topY to LAND_HEIGHT-1 do + begin + w:= LandPixels[y,x]; + w:= round(((w shr RShift and $FF) * RGB_LUMINANCE_RED + + (w shr BShift and $FF) * RGB_LUMINANCE_GREEN + + (w shr GShift and $FF) * RGB_LUMINANCE_BLUE)); + if w > 255 then w:= 255; + w:= (w and $FF shl RShift) or (w and $FF shl BShift) or (w and $FF shl GShift) or (LandPixels[y,x] and AMask); + LandPixels[y,x]:= w or (LandPixels[y, x] and AMask) + end + else + for x:= leftX div 2 to rightX div 2 do + for y:= topY div 2 to LAND_HEIGHT-1 div 2 do + begin + w:= LandPixels[y div 2,x div 2]; + w:= ((w shr RShift and $FF) + (w shr BShift and $FF) + (w shr GShift and $FF)) div 3; + if w > 255 then w:= 255; + w:= (w and $FF shl RShift) or (w and $FF shl BShift) or (w and $FF shl GShift) or (LandPixels[y div 2,x div 2] and AMask); + LandPixels[y,x]:= w or (LandPixels[y div 2, x div 2] and AMask) + end + end; + UpdateLandTexture(0, LAND_WIDTH, 0, LAND_HEIGHT); end;