anchor.diff:    begin
       X := aLoc.X + HMA[aHT].Tiles[I].X;
       Y := aLoc.Y + HMA[aHT].Tiles[I].Y;
  -    Tree := Tree + Byte(gTerrain.ObjectIsChopableTree(X, Y));
  +    Tree := Tree + Byte(gTerrain.ObjectIsChopableTree(KMPoint(X,Y), [caAge1,caAge2,caAge3,caAgeFull]));
       Road := Road + Byte(tpWalkRoad in gTerrain.Land[Y, X].Passability);
     end;
     Result := Tree * GA_PLANNER_ObstaclesInHousePlan_Tree + Road * GA_PLANNER_ObstaclesInHousePlan_Road;
  
positive.code:   end;
  
  const
    DISTANCE_BETWEEN_TOWERS = 6;
  var
    I, K, DefCount: Integer;
    P1,P2: TKMPoint;
  
negative.code:   for I := Low(HMA[aHT].Tiles) to High(HMA[aHT].Tiles) do
    begin
      Point := KMPointAdd( fPlannedHouses[aHT].Plans[aIdx].Loc, HMA[aHT].Tiles[I] );
      if gTerrain.ObjectIsChopableTree(Point, [caAge1,caAge2,caAge3,caAgeFull]) then
        aField.Add(Point);
    end;
    if (aField.Count > 0) then
  