private DVector determineAllSortedScores(boolean faceUpOnly)
	{
		final DVector unsortedScores=new DVector(2);
		for(int p=0;p<pot.size();p++)
		{
			final MOB mob=(MOB)pot.elementAt(p,1);
			HandOfCards hand=theDeck().getPlayerHand(mob);
			if(hand==null) continue;

			// if only the face cards count, we will pull them out,
			// put them in their own hand, generate a score for them
			// and use their score
			if(faceUpOnly)
			{
				final HandOfCards faceUpHand=((HandOfCards)CMClass.getMiscMagic("StdHandOfCards")).createEmptyHand(null);
				final List<Item> handContents=hand.getContents();
				for(int h=0;h<handContents.size();h++)
				{
					PlayingCard card=(PlayingCard)handContents.get(h);
					if(card.isFaceUp())
					{
						card=(PlayingCard)card.copyOf();
						faceUpHand.addCard(card);
					}
				}
				hand=faceUpHand;
			}
			final int score=determineHand(hand);
			if(score<0) continue;
			unsortedScores.addElement(mob,Integer.valueOf(score));
		}

		// now we have the scores, so sort them
		final DVector sortedScores=new DVector(2);
		while(unsortedScores.size()>0)
		{
			int topNum=0;
			for(int i=1;i<unsortedScores.size();i++)
				if(((Integer)unsortedScores.elementAt(i,2)).intValue()<=((Integer)unsortedScores.elementAt(topNum,2)).intValue())
					topNum=i;
			sortedScores.addElement(unsortedScores.elementAt(topNum,1),unsortedScores.elementAt(topNum,2));
			unsortedScores.removeElementAt(topNum);
		}
		return sortedScores;
	}