From 803473fb647581319b22cc4461cde36bfb559617 Mon Sep 17 00:00:00 2001 From: joschiwald Date: Sun, 24 Apr 2016 01:15:56 +0200 Subject: Core/Utils: replaced std::random_shuffle with our own implementation using SFMT random generator (cherry picked from commit 9e371b766c75faf899cbbe24515b8b5c01716a50) --- src/common/Utilities/Containers.h | 13 +++++++++++++ .../Northrend/UtgardeKeep/UtgardePinnacle/boss_palehoof.cpp | 4 ++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/src/common/Utilities/Containers.h b/src/common/Utilities/Containers.h index e8a40ede4c7..554dcb1b3de 100644 --- a/src/common/Utilities/Containers.h +++ b/src/common/Utilities/Containers.h @@ -117,6 +117,19 @@ namespace Trinity return SelectRandomWeightedContainerElement(container, weights); } + /** + * @fn void Trinity::Containers::RandomShuffle(C& container) + * + * @brief Reorder the elements of the container randomly. + * + * @param container Container to reorder + */ + template + void RandomShuffle(C& container) + { + std::shuffle(container.begin(), container.end(), SFMTEngine::Instance()); + } + /** * @fn bool Trinity::Containers::Intersects(Iterator first1, Iterator last1, Iterator first2, Iterator last2) * diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_palehoof.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_palehoof.cpp index ee71c696d7c..3dec0c60991 100644 --- a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_palehoof.cpp +++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_palehoof.cpp @@ -102,7 +102,7 @@ public: Sequence[i] = Phase(i); /// This ensures a random order and only executes each phase once. - std::random_shuffle(Sequence, Sequence + PHASE_GORTOK_PALEHOOF); + Trinity::Containers::RandomShuffle(Sequence); uiArcingSmashTimer = 15000; uiImpaleTimer = 12000; @@ -118,7 +118,7 @@ public: uint32 uiWhiteringRoarTimer; Phase currentPhase; uint8 AddCount; - Phase Sequence[4]; + std::array Sequence; void Reset() override { -- cgit v1.2.3