anchor.diff:        end;
       if (ExpectedCnt - Cnt > 1) then
       begin
  -      PlanFields(ExpectedCnt-Cnt, Center, FieldType, aNodeList, fFields.UpdateIdx, Cnt);
  -      aFieldType := FieldType;
  +      PlanFields(ExpectedCnt - Cnt, Center, FldType, aNodeList, fFields.UpdateIdx, Cnt);
  +      aFieldType := FldType;
       end;
     end;
   
  
positive.code:   begin
      if not FieldAvailable then
        Exit;
      ExpectedCnt := FIELDS_PER_FARM * Byte(FieldType = ftCorn) + FIELDS_PER_WINE * Byte(FieldType = ftWine);
      Cnt := ExpectedCnt;
      for K := ExpectedCnt - 1 downto Low(Points) do
        if KMSamePoint(Points[K],KMPoint_ZERO) OR ((FieldType = ftWine) AND not IsWine(Points[K])) OR ((FieldType = ftCorn) AND not IsField(Points[K])) then
        begin
          Cnt := Cnt - 1;
          Points[K] := Points[Cnt];
  
negative.code:   end;
  var
    K,Cnt,ExpectedCnt: Integer;
    FldType: TKMFieldType;
  begin
    Result := False;
    if (fFields.Count <= 0) then
  