anchor.diff:      for HT := HOUSE_MIN to HOUSE_MAX do
         for I := 0 to fPlannedHouses[HT].Count - 1 do
           if (not aOnlyPlaced OR (fPlannedHouses[HT].Plans[I].Placed))     // Only placed houses?
  -           AND not fPlannedHouses[HT].Plans[I].RemoveTreeInPlanProcedure // Ignore Remove tree in plan procedure because there is not build road
  +           AND not fPlannedHouses[HT].Plans[I].RemoveTreeInPlanProcedure // Ignore Remove tree in plan procedure because there is not builded road
              AND not KMSamePoint(fPlannedHouses[HT].Plans[I].Loc, aNewLoc) // Ignore itself
              AND (not (HT = ht_Woodcutters) OR not fPlannedHouses[HT].Plans[I].ChopOnly) then // Chop only woodcutters are planned without road connection so skip it
           begin
  
positive.code:         if Output AND (I > min(5,Locs.Count-1)) then // Do several points
          begin
            AddPlan(aHT, BestLoc);
            break;
          end;
        end;
  
negative.code:   begin
      if (aIdx >= Count) then
        Exit;
      if not Plans[aIdx].Placed then // Unlock house plan
        gHands[fOwner].AI.CityManagement.Builder.UnLockHouseLoc(aHT, Plans[aIdx].Loc);
      Count := Count - 1;
      Plans[aIdx] := Plans[Count];
    end;
  