anchor.diff:  var
     I, K: Word;
     I1, I2, K1, K2: Word;
  +  SqrRadius: Integer;
   begin
     //Avoid repeated computing (+2% performance)
     I1 := max(Pos.Y-Radius, 0);
     I2 := min(Pos.Y+Radius, MapY-1);
     K1 := max(Pos.X-Radius, 0);
     K2 := min(Pos.X+Radius, MapX-1);
  +  SqrRadius := sqr(Radius);
   
     //Inline maths here to gain performance
     for I := I1 to I2 do for K := K1 to K2 do
  -  if (sqr(Pos.X - K) + sqr(Pos.Y - I)) <= sqr(Radius) then
  +  if (sqr(Pos.X - K) + sqr(Pos.Y - I)) <= SqrRadius then
       Revelation[I,K] := 0;
  +
  +  CoverHasBeenCalled := True;
   end;
   
   
  
positive.code: begin
    for I := TL.Y to BR.Y do for K := TL.X to BR.X do
      Revelation[I,K] := 0;
  end;
  
  
  
negative.code: 
  
  implementation
  
  
  { TKMFogOfWar }
  