anchor.diff:      fMapX := NewX;
       fMapY := NewY;
   
  -    SetLength(fMapPreview, fMapX * fMapY + 1);
  -    for I := 1 to fMapX * fMapY do
  +    SetLength(fMapPreview, fMapX * fMapY);
  +    for I := 0 to fMapX * fMapY - 1 do
       begin
         S.Read(fMapPreview[I].TileID);
         S.Seek(1, soFromCurrent);
  
positive.code:     for I := Max(Y-Radius,1) to Min(Y+Radius,fMapY) do
      for K := Max(X-Radius,1) to Min(X+Radius,fMapX) do
      if (Sqr(X-K) + Sqr(Y-I)) <= Sqr(Radius) then
        fMapPreview[(I-1)*fMapX + K].Revealed := True;
    end;
  
  var
  
negative.code:                           if (P[0] = 255) then
                            begin
                              if RevealForPlayer(fLastHand) then
                                for I := 0 to fMapX * fMapY - 1 do
                                  fMapPreview[I].Revealed := True;
                            end
                            else
  