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:     function GetCount(aMat: TRawDeposit): Integer;
      function GetAmount(aMat: TRawDeposit; aIndex: Integer): Integer;
      function GetLocation(aMat: TRawDeposit; aIndex: Integer): TKMPointF;
      function TileDeposit(aMat: TRawDeposit; X,Y: Word): Byte;
      procedure FloodFill(const aMat: array of TRawDeposit);
      procedure RecalcAmounts(const aMat: array of TRawDeposit);
  
negative.code:     rdIron:  Result := fTerrain.TileIsIron(X+1, Y+1);
      rdGold:  Result := fTerrain.TileIsGold(X+1, Y+1);
      rdFish:  begin
                   curUnit := fTerrain.Land[Y + 1, X + 1].IsUnit;
                   if (curUnit <> nil) and (curUnit is TKMUnitAnimal) then
                       Result := TKMUnitAnimal(curUnit).FishCount
                   else
  