diff --git a/projects/mtg/src/MTGGameZones.cpp b/projects/mtg/src/MTGGameZones.cpp index dc52b2c78..d3378d341 100644 --- a/projects/mtg/src/MTGGameZones.cpp +++ b/projects/mtg/src/MTGGameZones.cpp @@ -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) diff --git a/projects/mtg/src/WDataSrc.cpp b/projects/mtg/src/WDataSrc.cpp index a2999d110..096cc6fe8 100644 --- a/projects/mtg/src/WDataSrc.cpp +++ b/projects/mtg/src/WDataSrc.cpp @@ -284,30 +284,7 @@ bool WSrcCards::setOffset(int pos) void WSrcCards::Shuffle() { - vector a; - MTGCard * temp; - vector::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(); }