anchor.diff:  begin
     Result := fAreaLoc[aMat, aIndex];
   end;
  -
  +//Check whether deposit exist and do proper action
  +//TileIsWater is used to make an area from whole water body - not only connected fish
  +function TKMDeposits.TileDepositExist(aMat: TRawDeposit; X,Y: Word) : Boolean;
  +begin
  +            if aMat = rdFish then
  +            Result := fTerrain.TileIsWater(X+1,Y+1)
  +            else
  +            Result := TileDeposit(aMat,X,Y) > 0;
  +end;
   
   //Get tile resource deposit
   function TKMDeposits.TileDeposit(aMat: TRawDeposit; X,Y: Word): Byte;
  
positive.code:   procedure FillArea(X,Y: Word);
    begin
      //Untested area that matches passability
      if (fArea[R,Y,X] = 0) and (TileDeposit(R,X,Y) > 0) then
      begin
        fArea[R,Y,X] := AreaID;
        Inc(Count);
  
negative.code:     function GetCount(aMat: TRawDeposit): Integer;
      function GetAmount(aMat: TRawDeposit; aIndex: Integer): Integer;
      function GetLocation(aMat: TRawDeposit; aIndex: Integer): TKMPointF;
      function TileDepositExist(aMat: TRawDeposit; X,Y: Word): Boolean;
      function TileDeposit(aMat: TRawDeposit; X,Y: Word): Byte;
      procedure FloodFill(const aMat: array of TRawDeposit);
      procedure RecalcAmounts(const aMat: array of TRawDeposit);
  