anchor.diff:  end;
   
   
  +procedure TKMCityPlanner.ClearPerfArr();
  +var
  +  X,Y: Integer;
  +begin
  +  fPerfIdx := 0;
  +  for Y := 0 to Length(fPerfArr) - 1 do
  +    for X := 0 to Length(fPerfArr[Y]) - 1 do
  +      fPerfArr[Y,X] := 0;
  +end;
  +
  +
   // Faster method for placing house (old in at the end of this file)
   //{
   function TKMCityPlanner.FindPlaceForHouse(aUnlockProcedure: Boolean; aHT: TKMHouseType; out aBestLocs: TKMPointArray): Byte;
  
positive.code:   Count: Word;
    CityCenter: TKMPoint;
    BestBidArr: array[0..BEST_PLANS_CNT-1] of Double;
  
    procedure ClearPerfArr();
    var
      X,Y: Integer;
    begin
      fPerfIdx := 0;
      for Y := 0 to Length(fPerfArr) - 1 do
        for X := 0 to Length(fPerfArr[Y]) - 1 do
          fPerfArr[Y,X] := 0;
    end;
  
    function EvalFreeEntrance(aLoc: TKMPoint): Single;
    const
  
negative.code:             Coal := CoalUnderPlan(Locs.Items[I]);
              if (Coal = 0) then
                continue;
              Bid := + (Locs.Tag[I] shr 3)
                     + DistCrit(htCoalMine, Locs.Items[I])
                     + CoalUnderPlan(Locs.Items[I])
                     + SnapCrit(htCoalMine, Locs.Items[I])
                     - ObstaclesInHousePlan(htCoalMine, Locs.Items[I])
                     - gAIFields.Influences.GetOtherOwnerships(fOwner, Locs.Items[I].X, Locs.Items[I].Y);
              if (Bid > BestBid) then
              begin
                BestIdx := I;
  