anchor.diff:    for I := 0 to gHands[fOwner].Houses.Count - 1 do
     begin
       H := gHands[fOwner].Houses[I];
  -    if (H.HouseType in SCANNED_HOUSES) AND not H.IsDestroyed AND H.IsComplete then
  +    if (H <> nil) AND not H.IsDestroyed AND H.IsComplete AND (H.HouseType in SCANNED_HOUSES) then
       begin
         Result[Cnt] := KMPointBelow(H.Entrance);
         Cnt := Cnt + 1;
  
positive.code:   InitQueue(True);
    for I := 0 to Length(InitPointsArr) - 1 do
      with InitPointsArr[I] do
      begin
        if not CanBeVisited(X,Y,Y*fMapX + X, True) then
          FML();
        MarkAsVisited(X,Y, InsertInQueue(Y*fMapX + X), 0);
      end;
  
    HouseFF();
  end;
  
negative.code:   Result := False;
  
    // The loc is out of map or in inaccessible area
    if not gTerrain.TileInMapCoords(aLoc.X, aLoc.Y, 1) then
      //OR (gAIFields.Influences.AvoidBuilding[aLoc.Y,aLoc.X] = AVOID_BUILDING_INACCESSIBLE_TILES) then // Use only with old placing algorithm without flood fill
      Exit;
  
    // Check if we can place house on terrain, this also makes sure the house is
  