anchor.diff:  procedure TKMCityPlanner.Save(SaveStream: TKMemoryStream);
   var
     HT: TKMHouseType;
  -  I, K, Len: Integer;
  +  I, Len: Integer;
   begin
     SaveStream.WriteA('CityPlanner');
     SaveStream.Write(fOwner);
  
positive.code:   HMA: THouseMappingArray;
  begin
    HMA := gAIFields.Eye.HousesMapping;
  
    {
    for I := 1 to Length(fPerfArr) - 1 do
      for K := 1 to Length(fPerfArr[I]) - 1 do
        if (fPerfArr[I,K] = fPerfIdx) then
          gRenderAux.Quad(K, I, $60000000 OR COLOR_BLUE);
    //}
  
    // Paint houses
    for HT := HOUSE_MIN to HOUSE_MAX do
  
negative.code:     Bid, BestBid: Single;
      Loc: TKMPoint;
      Locs: TKMPointTagList;
      BuildFF: TKMBuildFF;
    begin
      Output := False;
      BuildFF := gAIFields.Eye.BuildFF;
  
      Locs := gAIFields.Eye.GetMineLocs(aMine);
      try
        if (Locs.Count > 0) then
        begin
          BuildFF.UpdateState(); // Mark walkable area in owner's city
          for I := 0 to Locs.Count - 1 do
            if (BuildFF.VisitIdx = BuildFF.Visited[ Locs.Items[I].Y, Locs.Items[I].X ]) then // Prefer mines in walkable area
              Locs.Tag[I] := 10000 + Locs.Tag[I] - BuildFF.Distance[ Locs.Items[I] ]*10;
          Locs.SortByTag();
          BestBid := BEST_BID;
          BestIdx := 0; // For compiler
  