Replaced unnecessary custom shuffle methods with std::random_shuffle<>.
This commit is contained in:
@@ -574,14 +574,7 @@ void MTGGameZone::cleanupPhase()
|
||||
|
||||
void MTGGameZone::shuffle()
|
||||
{
|
||||
int i;
|
||||
for (i = 0; i < (nb_cards); i++)
|
||||
{
|
||||
int r = i + (WRand() % (nb_cards - i)); // Random remaining position.
|
||||
MTGCardInstance * temp = cards[i];
|
||||
cards[i] = cards[r];
|
||||
cards[r] = temp;
|
||||
}
|
||||
std::random_shuffle(cards.begin(), cards.end());
|
||||
}
|
||||
|
||||
void MTGGameZone::addCard(MTGCardInstance * card)
|
||||
|
||||
@@ -284,30 +284,7 @@ bool WSrcCards::setOffset(int pos)
|
||||
|
||||
void WSrcCards::Shuffle()
|
||||
{
|
||||
vector<MTGCard*> a;
|
||||
MTGCard * temp;
|
||||
vector<MTGCard*>::iterator k;
|
||||
|
||||
while (cards.size())
|
||||
{
|
||||
k = cards.begin();
|
||||
k += rand() % cards.size();
|
||||
temp = *k;
|
||||
cards.erase(k);
|
||||
a.push_back(temp);
|
||||
}
|
||||
#if defined WIN32 || defined LINUX //PC performs a double shuffle for less streaking.
|
||||
while(a.size())
|
||||
{
|
||||
k = a.begin();
|
||||
k += rand() % a.size();
|
||||
temp = *k;
|
||||
a.erase(k);
|
||||
cards.push_back(temp);
|
||||
}
|
||||
#else //PSP does a straight swap for speed.
|
||||
cards.swap(a);
|
||||
#endif
|
||||
std::random_shuffle(cards.begin(), cards.end());
|
||||
validate();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user