hedgewars/uLandGraphics.pas
changeset 6130 026fd01a5e2c
parent 6097 db10abae541f
child 6132 6384c502795f
equal deleted inserted replaced
6129:d1e37b104683 6130:026fd01a5e2c
   836         if (Land[y, x-1] = lfObject) then Land[y, x]:= lfObject
   836         if (Land[y, x-1] = lfObject) then Land[y, x]:= lfObject
   837         else if (Land[y, x+1] = lfObject) then Land[y, x]:= lfObject
   837         else if (Land[y, x+1] = lfObject) then Land[y, x]:= lfObject
   838         else if (Land[y+1, x] = lfObject) then Land[y, x]:= lfObject
   838         else if (Land[y+1, x] = lfObject) then Land[y, x]:= lfObject
   839         else if (Land[y-1, x] = lfObject) then Land[y, x]:= lfObject
   839         else if (Land[y-1, x] = lfObject) then Land[y, x]:= lfObject
   840         else Land[y,x]:= lfBasic
   840         else Land[y,x]:= lfBasic
       
   841         end
       
   842     end
       
   843 else if ((cReducedQuality and rqBlurryLand) = 0) and 
       
   844     ((Land[Y, X] and (lfDamaged or lfBasic) = lfBasic) or (Land[Y, X] and (lfDamaged or lfBasic) = lfBasic)) and 
       
   845     (Y > LongInt(topY) + 1) and (Y < LAND_HEIGHT-2) and (X > LongInt(leftX) + 1) and (X < LongInt(rightX) - 1) then
       
   846     begin
       
   847     if ((((Land[y, x-1] and lfDamaged) <> 0) and (((Land[y+1,x] and lfDamaged) <> 0)) or ((Land[y-1,x] and lfDamaged) <> 0)) or
       
   848        (((Land[y, x+1] and lfDamaged) <> 0) and (((Land[y-1,x] and lfDamaged) <> 0) or ((Land[y+1,x] and lfDamaged) <> 0)))) then
       
   849         begin
       
   850         LandPixels[y,x]:=
       
   851                         (((((LandPixels[y,x] and RMask shr RShift) div 2)+((cExplosionBorderColor and RMask) shr RShift) div 2) and $FF) shl RShift) or
       
   852                         (((((LandPixels[y,x] and GMask shr GShift) div 2)+((cExplosionBorderColor and GMask) shr GShift) div 2) and $FF) shl GShift) or
       
   853                         (((((LandPixels[y,x] and BMask shr BShift) div 2)+((cExplosionBorderColor and BMask) shr BShift) div 2) and $FF) shl BShift) or ($FF shl AShift)
       
   854         end
       
   855     else if ((((Land[y, x-1] and lfDamaged) <> 0) and ((Land[y+1,x-1] and lfDamaged) <> 0) and ((Land[y+2,x] and lfDamaged) <> 0)) or
       
   856             (((Land[y, x-1] and lfDamaged) <> 0) and ((Land[y-1,x-1] and lfDamaged) <> 0) and ((Land[y-2,x] and lfDamaged) <> 0)) or
       
   857             (((Land[y, x+1] and lfDamaged) <> 0) and ((Land[y+1,x+1] and lfDamaged) <> 0) and ((Land[y+2,x] and lfDamaged) <> 0)) or
       
   858             (((Land[y, x+1] and lfDamaged) <> 0) and ((Land[y-1,x+1] and lfDamaged) <> 0) and ((Land[y-2,x] and lfDamaged) <> 0)) or
       
   859             (((Land[y+1, x] and lfDamaged) <> 0) and ((Land[y+1,x+1] and lfDamaged) <> 0) and ((Land[y,x+2] and lfDamaged) <> 0)) or
       
   860             (((Land[y-1, x] and lfDamaged) <> 0) and ((Land[y-1,x+1] and lfDamaged) <> 0) and ((Land[y,x+2] and lfDamaged) <> 0)) or
       
   861             (((Land[y+1, x] and lfDamaged) <> 0) and ((Land[y+1,x-1] and lfDamaged) <> 0) and ((Land[y,x-2] and lfDamaged) <> 0)) or
       
   862             (((Land[y-1, x] and lfDamaged) <> 0) and ((Land[y-1,x-1] and lfDamaged) <> 0) and ((Land[y,x-2] and lfDamaged) <> 0))) then
       
   863         begin
       
   864         LandPixels[y,x]:=
       
   865                         (((((LandPixels[y,x] and RMask shr RShift) * 3 div 4)+((cExplosionBorderColor and RMask) shr RShift) div 4) and $FF) shl RShift) or
       
   866                         (((((LandPixels[y,x] and GMask shr GShift) * 3 div 4)+((cExplosionBorderColor and GMask) shr GShift) div 4) and $FF) shl GShift) or
       
   867                         (((((LandPixels[y,x] and BMask shr BShift) * 3 div 4)+((cExplosionBorderColor and BMask) shr BShift) div 4) and $FF) shl BShift) or ($FF shl AShift)
   841         end
   868         end
   842     end
   869     end
   843 end;
   870 end;
   844 
   871 
   845 function SweepDirty: boolean;
   872 function SweepDirty: boolean;