anchor.diff:      Result := Output AND ( (initHT = aHT) OR (gHands[fOwner].Stats.GetHouseTotal(aHT) = 0) );
     end;
   
  -  function AddToConstruction(aHT: THouseType; aUnlockProcedureRequired: Boolean = False): Boolean;
  +
  +  function AddToConstruction(aHT: THouseType; aUnlockProcedureRequired: Boolean = False): TConstructionState;
     var
  -    Output, UnlockProcedure: Boolean;
  +    UnlockProcedure: Boolean;
       FollowingHouse: THouseType;
  -  begin
  -    Output := False;
  +    Output: TConstructionState;
  +  begin
  +    Output := cs_CannotPlaceHouse;
       UnlockProcedure := aUnlockProcedureRequired; // Unlock procedure = build house as soon as possible -> avoid to build house plan inside of tree (remove tree will take time)
       // Check if AI can build house (if is house blocked [by script] ignore it)
       if GetHouseToUnlock(UnlockProcedure, aHT, FollowingHouse) then
  
positive.code:   Loc: TKMPoint;
    HPlan: TKMHousePlan;
  begin
    Output := False;
    FieldList := TKMPointList.Create;
    try
  
negative.code: 
      procedure UpdateBuildNode(var aNode: TBuildNode);
  
      function BuildHouse(aUnlockProcedure, aHouseReservation: Boolean; aHT: THouseType): TConstructionState;
      function BuildHouse_GA_MODE(aHT: THouseType): TConstructionState;
      procedure LockNode(var aNode: TBuildNode);
      procedure UnlockPointOfNode(aPoint: TKMPoint); inline;
      procedure UnlockNode(var aNode: TBuildNode);
  