anchor.diff:  function TKMDeposits.TileDepositExists(aMat: TRawDeposit; X,Y: Word) : Boolean;
   begin
     if aMat = rdFish then
  -    Result := fTerrain.TileIsWater(KMPoint(X+1,Y+1))
  +    Result := fTerrain.TileIsWater(KMPoint(X,Y))
     else
       Result := TileDeposit(aMat,X,Y) > 0;
   end;
  
positive.code:     SetLength(AreaPos, fAreaCount[R]);
  
      //Fill array of resource amounts per area
      for I := 0 to fTerrain.MapY - 1 do
      for K := 0 to fTerrain.MapX - 1 do
      if fArea[R, I, K] <> 0 then
      begin
        //Do -1 to make the lists 0 based
  
negative.code:     SetLength(fArea[R], fTerrain.MapY, fTerrain.MapX);
  
      AreaID := 0;
      for I := 1 to fTerrain.MapY - 1 do
      for K := 1 to fTerrain.MapX - 1 do
      if (fArea[R,I,K] = 0) and TileDepositExists(R,K,I) then
      begin
        Inc(AreaID);
  