anchor.diff:  
     //Apply change
     //UpdatePassability and UpdateWalkConnect is used in SetField so that we only use it in trees and other objects
  -  Land[Y, X].Obj := aObject;
     case aObject of
   
       55..58: // Wine in different stages
  -      if CanAddField(X, Y, ft_Wine) then
  +      if CanAddField(X, Y, ft_Wine) and (TileIsCoal(X, Y) <= 0) then // TileGoodForField does not check for coal deposit and puts a field there, we do not want this
         begin
  +         Land[Y, X].Obj := aObject;
            SetField(KMPoint(X, Y), -1, ft_Wine);
            Result := True;
         end
         else
           Result := False;
       59..63: // Corn in different stages
  -      if CanAddField(X, Y, ft_Corn) then
  +      if CanAddField(X, Y, ft_Corn) and (TileIsCoal(X, Y) <= 0) then  // TileGoodForField does not check for coal deposit and puts a field there, we do not want this
         begin
  +        Land[Y, X].Obj := aObject;
           SetField(KMPoint(X, Y), -1, ft_Corn);
           Result := True;
         end
  
positive.code:     88..124, // Trees - 125 is mushroom
      126..172:
      begin
        if ObjectIsChopableTree(KMPoint(X,Y), caAge1) then Land[Y,X].TreeAge := 1;
        if ObjectIsChopableTree(KMPoint(X,Y), caAge2) then Land[Y,X].TreeAge := TREE_AGE_1;
        if ObjectIsChopableTree(KMPoint(X,Y), caAge3) then Land[Y,X].TreeAge := TREE_AGE_2;
  
negative.code:     end
      else // Other objects
      begin
        Land[Y, X].Obj := aObject;
        UpdatePassability(KMRect(X, Y, X, Y)); //When using KMRect map bounds are checked by UpdatePassability
        UpdateWalkConnect([wcWalk, wcRoad, wcWork], KMRectGrowTopLeft(KMRect(X, Y, X, Y)), DiagonalChanged);
        Result := True;
  