anchor.diff:    else
     begin
       FinPos := FinalPosition.Loc;
  -    if PlanPath(ActPos, FinPos, False) then
  +    if PlanPath(ActPos, FinPos, False, False) then
         Group.OrderWalk(FinPos, True, wtokAISquad, FinalPosition.Dir)
       else if not KMSamePoint(Group.Position, FinalPosition.Loc) then // Dont repeat order and let archers fire
         Group.OrderWalk(FinalPosition.Loc, True, wtokAISquad, FinalPosition.Dir);
  
positive.code:         for K := 0 to Length(HA) - 1 do
            if (
                 (HA[K].HouseType <> htWatchTower)
                 OR ( KMDistanceAbs(AvailableSquads[GT].Squads[I].Position, HA[K].GetPosition) < ATTACK_WATCHTOWER_WITH_CLOSE_COMBAT_DIST)
               )
              AND (GroupAttackCnt[K] < MAX_SOLDIERS_VS_HOUSE) then
            begin
  
negative.code:   else if (fTargetHouse <> nil) then
    begin
      FinPos := fTargetHouse.GetPosition;
      if PlanPath(ActPos, FinPos, False, True) then
        Group.OrderWalk(FinPos, True, wtokAISquad, FinalPosition.Dir)
      else if fTargetChanged OR (fAttackTimeLimit < aTick) then
      begin
  