aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Handlers/MovementHandler.cpp
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2023-01-06 16:55:25 +0100
committerShauren <shauren.trinity@gmail.com>2023-01-06 16:55:25 +0100
commit1afec8be634fc3fd09fc5ea38ba71f0cc9259c7e (patch)
treed04f50be3a1844d498e802e412d8c8f2f856ee9f /src/server/game/Handlers/MovementHandler.cpp
parent280d83ecc7326cd91a6d714c37f26db8ea21e8c6 (diff)
Core/Misc: Use boost/circular_buffer forward declaration headers in our headers
Diffstat (limited to 'src/server/game/Handlers/MovementHandler.cpp')
-rw-r--r--src/server/game/Handlers/MovementHandler.cpp18
1 files changed, 8 insertions, 10 deletions
diff --git a/src/server/game/Handlers/MovementHandler.cpp b/src/server/game/Handlers/MovementHandler.cpp
index b28f83e03dc..629967e4543 100644
--- a/src/server/game/Handlers/MovementHandler.cpp
+++ b/src/server/game/Handlers/MovementHandler.cpp
@@ -40,6 +40,7 @@
#include <boost/accumulators/statistics/variance.hpp>
#include <boost/accumulators/accumulators.hpp>
#include <boost/accumulators/statistics.hpp>
+#include <boost/circular_buffer.hpp>
void WorldSession::HandleMoveWorldportAckOpcode(WorldPackets::Movement::WorldPortResponse& /*packet*/)
{
@@ -757,7 +758,7 @@ void WorldSession::HandleTimeSyncResponse(WorldPackets::Misc::TimeSyncResponse&
serverTime = clockDelta + clientTime
*/
int64 clockDelta = (int64)serverTimeAtSent + (int64)lagDelay - (int64)timeSyncResponse.ClientTime;
- _timeSyncClockDeltaQueue.push_back(std::pair<int64, uint32>(clockDelta, roundTripDuration));
+ _timeSyncClockDeltaQueue->push_back(std::pair<int64, uint32>(clockDelta, roundTripDuration));
ComputeNewClockDelta();
}
@@ -770,18 +771,18 @@ void WorldSession::ComputeNewClockDelta()
accumulator_set<uint32, features<tag::mean, tag::median, tag::variance(lazy)> > latencyAccumulator;
- for (auto pair : _timeSyncClockDeltaQueue)
- latencyAccumulator(pair.second);
+ for (auto [_, roundTripDuration] : *_timeSyncClockDeltaQueue)
+ latencyAccumulator(roundTripDuration);
uint32 latencyMedian = static_cast<uint32>(std::round(median(latencyAccumulator)));
uint32 latencyStandardDeviation = static_cast<uint32>(std::round(sqrt(variance(latencyAccumulator))));
accumulator_set<int64, features<tag::mean> > clockDeltasAfterFiltering;
uint32 sampleSizeAfterFiltering = 0;
- for (auto pair : _timeSyncClockDeltaQueue)
+ for (auto [clockDelta, roundTripDuration] : *_timeSyncClockDeltaQueue)
{
- if (pair.second < latencyStandardDeviation + latencyMedian) {
- clockDeltasAfterFiltering(pair.first);
+ if (roundTripDuration < latencyStandardDeviation + latencyMedian) {
+ clockDeltasAfterFiltering(clockDelta);
sampleSizeAfterFiltering++;
}
}
@@ -793,10 +794,7 @@ void WorldSession::ComputeNewClockDelta()
_timeSyncClockDelta = meanClockDelta;
}
else if (_timeSyncClockDelta == 0)
- {
- std::pair<int64, uint32> back = _timeSyncClockDeltaQueue.back();
- _timeSyncClockDelta = back.first;
- }
+ _timeSyncClockDelta = _timeSyncClockDeltaQueue->back().first;
}
void WorldSession::HandleMoveInitActiveMoverComplete(WorldPackets::Movement::MoveInitActiveMoverComplete& moveInitActiveMoverComplete)