anchor.diff:    begin
       if (aIdx >= Count) then
         Exit;
  -    gHands[fOwner].AI.CityManagement.Builder.UnLockHouseLoc(aHT, Plans[aIdx].Loc);
  +    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;
  
positive.code:     if ((aCenter.Y <= BestLoc.Y) AND (aCenter.Y >= BestLoc.Y-1)) AND ((aCenter.X <= BestLoc.X) AND (aCenter.X >= BestLoc.X-2)) then
        aCenter := KMPoint(BestLoc.X-1, BestLoc.Y+1);
      AddPlan(ht_Woodcutters, BestLoc, aCenter, aChopOnly);
    end;
    Result := Output;
  end;
  
negative.code:             OR (gTerrain.Land[aToY, aToX].TileLock = tlRoadWork);                                // Road under construction
  
    if not IsRoad then
      //Building roads over fields is discouraged unless unavoidable
      case AvoidBuilding of
        AVOID_BUILDING_HOUSE_OUTSIDE_LOCK: begin Inc(Result, 5); end; // 1 tile from future house
        AVOID_BUILDING_NODE_LOCK_FIELD: Inc(Result, 75); // Corn / wine field
        //AVOID_BUILDING_HOUSE_INSIDE_LOCK: begin end; // Tiles inside future house (forbiden)
        //AVOID_BUILDING_NODE_LOCK_ROAD: begin end; // This will not occur
        //AVOID_BUILDING_COAL_TILE: begin end;
        //AVOID_BUILDING_FOREST_MINIMUM: begin end;
        else
        begin
          // Snap to no-build areas (1 tile from house)
          if not (tpBuild in gTerrain.Land[aToY,aToX].Passability) then
            Inc(Result, 5)
          else if (AvoidBuilding > 0) then // Forest or coal etc.
            Inc(Result, 20)
          else
            Inc(Result, 10);
        end;
      end;
  end;
  
  
  