diff -r 102728b20c4d -r 941da059472b hedgewars/uLand.pas --- a/hedgewars/uLand.pas Mon Jun 20 19:00:19 2011 -0400 +++ b/hedgewars/uLand.pas Mon Jun 20 20:46:27 2011 -0400 @@ -1062,35 +1062,40 @@ LandSurface2LandPixels(tmpsurf); SDL_FreeSurface(tmpsurf); - if (cReducedQuality and rqBlurryLand) = 0 then - for x:= leftX+2 to rightX-2 do - for y:= topY+2 to LAND_HEIGHT-3 do - if (Land[y, x] = 0) and - (((Land[y, x-1] = lfBasic) and ((Land[y+1,x] = lfBasic)) or (Land[y-1,x] = lfBasic)) or - ((Land[y, x+1] = lfBasic) and ((Land[y-1,x] = lfBasic) or (Land[y+1,x] = lfBasic)))) then - begin + for x:= leftX+2 to rightX-2 do + for y:= topY+2 to LAND_HEIGHT-3 do + if (Land[y, x] = 0) and + (((Land[y, x-1] = lfBasic) and ((Land[y+1,x] = lfBasic)) or (Land[y-1,x] = lfBasic)) or + ((Land[y, x+1] = lfBasic) and ((Land[y-1,x] = lfBasic) or (Land[y+1,x] = lfBasic)))) then + begin + if (cReducedQuality and rqBlurryLand) = 0 then + begin if Land[y, x-1] = lfBasic then LandPixels[y, x]:= LandPixels[y, x-1] else if Land[y, x+1] = lfBasic then LandPixels[y, x]:= LandPixels[y, x+1]; - LandPixels[y,x]:= (LandPixels[y,x] and not AMask) or (128 shl AShift); - Land[y,x]:= lfObject - end - else if (Land[y, x] = 0) and - (((Land[y, x-1] = lfBasic) and (Land[y+1,x-1] = lfBasic) and (Land[y+2,x] = lfBasic)) or - ((Land[y, x-1] = lfBasic) and (Land[y-1,x-1] = lfBasic) and (Land[y-2,x] = lfBasic)) or - ((Land[y, x+1] = lfBasic) and (Land[y+1,x+1] = lfBasic) and (Land[y+2,x] = lfBasic)) or - ((Land[y, x+1] = lfBasic) and (Land[y-1,x+1] = lfBasic) and (Land[y-2,x] = lfBasic)) or - ((Land[y+1, x] = lfBasic) and (Land[y+1,x+1] = lfBasic) and (Land[y,x+2] = lfBasic)) or - ((Land[y-1, x] = lfBasic) and (Land[y-1,x+1] = lfBasic) and (Land[y,x+2] = lfBasic)) or - ((Land[y+1, x] = lfBasic) and (Land[y+1,x-1] = lfBasic) and (Land[y,x-2] = lfBasic)) or - ((Land[y-1, x] = lfBasic) and (Land[y-1,x-1] = lfBasic) and (Land[y,x-2] = lfBasic))) then - begin + LandPixels[y,x]:= (LandPixels[y,x] and not AMask) or (128 shl AShift) + end; + Land[y,x]:= lfObject + end + else if (Land[y, x] = 0) and + (((Land[y, x-1] = lfBasic) and (Land[y+1,x-1] = lfBasic) and (Land[y+2,x] = lfBasic)) or + ((Land[y, x-1] = lfBasic) and (Land[y-1,x-1] = lfBasic) and (Land[y-2,x] = lfBasic)) or + ((Land[y, x+1] = lfBasic) and (Land[y+1,x+1] = lfBasic) and (Land[y+2,x] = lfBasic)) or + ((Land[y, x+1] = lfBasic) and (Land[y-1,x+1] = lfBasic) and (Land[y-2,x] = lfBasic)) or + ((Land[y+1, x] = lfBasic) and (Land[y+1,x+1] = lfBasic) and (Land[y,x+2] = lfBasic)) or + ((Land[y-1, x] = lfBasic) and (Land[y-1,x+1] = lfBasic) and (Land[y,x+2] = lfBasic)) or + ((Land[y+1, x] = lfBasic) and (Land[y+1,x-1] = lfBasic) and (Land[y,x-2] = lfBasic)) or + ((Land[y-1, x] = lfBasic) and (Land[y-1,x-1] = lfBasic) and (Land[y,x-2] = lfBasic))) then + begin + if (cReducedQuality and rqBlurryLand) = 0 then + begin if Land[y, x-1] = lfBasic then LandPixels[y, x]:= LandPixels[y, x-1] else if Land[y, x+1] = lfBasic then LandPixels[y, x]:= LandPixels[y, x+1] else if Land[y+1, x] = lfBasic then LandPixels[y, x]:= LandPixels[y+1, x] else if Land[y-1, x] = lfBasic then LandPixels[y, x]:= LandPixels[y-1, x]; - LandPixels[y,x]:= (LandPixels[y,x] and not AMask) or (64 shl AShift); - Land[y,x]:= lfObject - end; + LandPixels[y,x]:= (LandPixels[y,x] and not AMask) or (64 shl AShift) + end; + Land[y,x]:= lfObject + end; AddProgress(); end;