diff options
author | Dmitry Marakasov <amdmi3@FreeBSD.org> | 2021-04-22 15:05:40 +0300 |
---|---|---|
committer | Dmitry Marakasov <amdmi3@FreeBSD.org> | 2022-02-25 22:12:28 +0300 |
commit | 33c9707d8b57fab77399b00747f04e3478770167 (patch) | |
tree | f7d28e4508e0a333e84901580f637972a8e774b8 /games/spring/files/patch-rts_Sim_Projectiles_ProjectileHandler.cpp | |
parent | databases/postgis32: Update to 3.2 (diff) |
games/spring: update to 105.0.1
PR: 254732
Diffstat (limited to 'games/spring/files/patch-rts_Sim_Projectiles_ProjectileHandler.cpp')
-rw-r--r-- | games/spring/files/patch-rts_Sim_Projectiles_ProjectileHandler.cpp | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/games/spring/files/patch-rts_Sim_Projectiles_ProjectileHandler.cpp b/games/spring/files/patch-rts_Sim_Projectiles_ProjectileHandler.cpp new file mode 100644 index 000000000000..1bed456ac445 --- /dev/null +++ b/games/spring/files/patch-rts_Sim_Projectiles_ProjectileHandler.cpp @@ -0,0 +1,41 @@ +--- rts/Sim/Projectiles/ProjectileHandler.cpp.orig 2020-12-26 12:45:43 UTC ++++ rts/Sim/Projectiles/ProjectileHandler.cpp +@@ -66,6 +66,18 @@ ProjMemPool projMemPool; + CProjectileHandler projectileHandler; + + ++namespace { ++ template<class RandomIt, class RandomFunc> ++ void random_shuffle(RandomIt first, RandomIt last, RandomFunc&& r) ++ { ++ typename std::iterator_traits<RandomIt>::difference_type i, n; ++ n = last - first; ++ for (i = n-1; i > 0; --i) { ++ using std::swap; ++ swap(first[i], first[r(i+1)]); ++ } ++ } ++} + + void CProjectileHandler::Init() + { +@@ -106,8 +118,8 @@ void CProjectileHandler::Init() + freeProjectileIDs[false].push_back(i); + } + +- std::random_shuffle(freeProjectileIDs[ true].begin(), freeProjectileIDs[ true].end(), gsRNG); +- std::random_shuffle(freeProjectileIDs[false].begin(), freeProjectileIDs[false].end(), guRNG); ++ ::random_shuffle(freeProjectileIDs[ true].begin(), freeProjectileIDs[ true].end(), gsRNG); ++ ::random_shuffle(freeProjectileIDs[false].begin(), freeProjectileIDs[false].end(), guRNG); + } + + for (int modelType = 0; modelType < MODELTYPE_OTHER; ++modelType) { +@@ -395,7 +407,7 @@ void CProjectileHandler::AddProjectile(CProjectile* p) + + // generate (newSize - oldSize) new id's starting from oldSize + std::for_each(freeIDs.begin(), freeIDs.end(), [k = oldSize](int& id) mutable { id = k++; }); +- std::random_shuffle(freeIDs.begin(), freeIDs.end(), rngFunc); ++ ::random_shuffle(freeIDs.begin(), freeIDs.end(), rngFunc); + } + + |