anchor.diff:        for I := 0 to fSquads[GT].Count - 1 do
         begin
           Squad := fSquads[GT].Items[I];
  -        if not Squad.InFight then
  +        if not Squad.InFight
  +          AND ((fCompanyMode <> cm_Destruction) OR (Squad.TargetHouse = nil)) then
           begin
             // Make sure that unit will not hunt target over the whole map and better stay inside company
             if (GT <> gt_Ranged) then // ranged units are fixed in Squad class (set / reset target cause that they dont shoot)
  
positive.code:   TARGET_HOUSES: THouseTypeSet = [htBarracks, htStore, htSchool];
    // Houses in SCAN_HOUSES will be destroyed when they are in radius (it should also contain TARGET_HOUSES)
    SCAN_HOUSES: THouseTypeSet = [htWatchTower, htBarracks, htStore, htSchool];
  
  implementation
  uses
  
negative.code:     if (TargetGroup = nil) then
      begin
        if not aAimCivilians then
        begin
          aTargetHouse := gHands.GetClosestHouse(aInitPosition, fOwner, at_Enemy, ALL_HOUSES, True);
          if (aTargetHouse <> nil) then
            fCompanyMode := cm_Destruction;
        end
        else
        begin
          aTargetUnit := gHands.GetClosestUnit(aInitPosition, fOwner, at_Enemy);
          if (aTargetUnit = nil) then
            Exit;
        end;
      end
      else
        aTargetUnit := TargetGroup.GetAliveMember;
  