Replaced unnecessary custom shuffle methods with std::random_shuffle<>.
This commit is contained in:
@@ -574,14 +574,7 @@ void MTGGameZone::cleanupPhase()
|
|||||||
|
|
||||||
void MTGGameZone::shuffle()
|
void MTGGameZone::shuffle()
|
||||||
{
|
{
|
||||||
int i;
|
std::random_shuffle(cards.begin(), cards.end());
|
||||||
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;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void MTGGameZone::addCard(MTGCardInstance * card)
|
void MTGGameZone::addCard(MTGCardInstance * card)
|
||||||
|
|||||||
@@ -284,30 +284,7 @@ bool WSrcCards::setOffset(int pos)
|
|||||||
|
|
||||||
void WSrcCards::Shuffle()
|
void WSrcCards::Shuffle()
|
||||||
{
|
{
|
||||||
vector<MTGCard*> a;
|
std::random_shuffle(cards.begin(), cards.end());
|
||||||
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
|
|
||||||
validate();
|
validate();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user