anchor.diff:    begin
       Result:=true;
       if not TileInMapCoords(Loc2.X,Loc2.Y) then exit;
  -    if ((Land[Loc.Y,Loc.X].Terrain in [59..63]) and (Land[Loc2.Y,Loc2.X].Terrain in [59..63]))or //Both are Corn
  -      ((Land[Loc.Y,Loc.X].Terrain = 55) and (Land[Loc2.Y,Loc2.X].Terrain = 55))or //Both are Wine
  +    if (TileIsCornField(Loc) and TileIsCornField(Loc2))or //Both are Corn
  +       (TileIsWineField(Loc) and TileIsWineField(Loc2))or //Both are Wine
         ((Land[Loc.Y,Loc.X].Markup in [mu_HousePlan, mu_HouseFence]) and (Land[Loc.Y,Loc.X].Markup=Land[Loc2.Y,Loc2.X].Markup)) then //Both are same mu_House****
         Result:=false;
       //TO FIX: Don't have fences if road has been built over field
  
positive.code: procedure TTerrain.UpdateBorders(Loc:TKMPoint; CheckSurrounding:boolean=true);
    function GetBorderType:TBorderType;
    begin
      if Land[Loc.Y,Loc.X].Terrain in [59..63] then Result:=bt_Field
      else
      if Land[Loc.Y,Loc.X].Terrain = 55 then Result:=bt_Wine
      else
      if Land[Loc.Y,Loc.X].Markup=mu_HousePlan then Result:=bt_HousePlan
      else
  
negative.code:   for h:=1 to 8 do
      if Land[i,k].FogOfWar[h] > TERRAIN_FOG_OF_WAR_MIN then dec(Land[i,k].FogOfWar[h]);
  
      if InRange(Land[i,k].FieldAge,1,65534) then
      begin       
        inc(Land[i,k].FieldAge);
        if TileIsCornField(KMPoint(k,i)) then
          case Land[i,k].FieldAge of
             45: SetLand(k,i,61,255);  //Numbers are measured from KaM, ~195sec
            240: SetLand(k,i,59,255);
            435: SetLand(k,i,60,58);
            630: SetLand(k,i,60,59);
            650: Land[i,k].FieldAge:=65535; //Skip to the end
          end
        else
        if TileIsWineField(KMPoint(k,i)) then
          case Land[i,k].FieldAge of
            45: SetLand(k,i,55,54);
           240: SetLand(k,i,55,55);
           435: SetLand(k,i,55,56);
           630: SetLand(k,i,55,57);
           650: Land[i,k].FieldAge:=65535; //Skip to the end
          end;
      end;
  
      if InRange(Land[i,k].TreeAge,1,65534) then
      begin
        inc(Land[i,k].TreeAge);
        if (Land[i,k].TreeAge=45)or(Land[i,k].TreeAge=240)or(Land[i,k].TreeAge=435)or(Land[i,k].TreeAge=630) then //Speedup
        for h:=1 to length(ChopableTrees) do
          for j:=1 to 3 do
            if Land[i,k].Obj=ChopableTrees[h,j] then
              case Land[i,k].TreeAge of
                45: Land[i,k].Obj:=ChopableTrees[h,2];
               240: Land[i,k].Obj:=ChopableTrees[h,3];
               435: Land[i,k].Obj:=ChopableTrees[h,4];
               630: Land[i,k].TreeAge:=65535; //Skip to the end
              end;
      end;
  
    end;
  end;
  