aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Entities
diff options
context:
space:
mode:
authorChaouki Dhib <chaodhib@gmail.com>2019-04-15 23:31:25 +0200
committerShauren <shauren.trinity@gmail.com>2021-11-30 22:11:36 +0100
commitc19a4db1c12b8864d6c486ee8e2f0e058fb4155a (patch)
tree1976d6734054eb05eb03322be9d76da9a0c1840c /src/server/game/Entities
parent2f6f1c708960bfb23a0d69ce967b67b38e72b3fa (diff)
Core/Movement: Add time synchronisation (#18189)
(cherry picked from commit 975f1e364a6a68be2beca261a64ea8aecc16f6f6)
Diffstat (limited to 'src/server/game/Entities')
-rw-r--r--src/server/game/Entities/Player/Player.cpp40
-rw-r--r--src/server/game/Entities/Player/Player.h8
2 files changed, 2 insertions, 46 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index e633754a955..f24f12540e4 100644
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -322,10 +322,6 @@ Player::Player(WorldSession* session) : Unit(true), m_sceneMgr(this)
m_ChampioningFaction = 0;
- m_timeSyncTimer = 0;
- m_timeSyncClient = 0;
- m_timeSyncServer = GameTime::GetGameTimeMS();
-
for (uint8 i = 0; i < MAX_POWERS_PER_CLASS; ++i)
m_powerFraction[i] = 0;
@@ -1132,14 +1128,6 @@ void Player::Update(uint32 p_time)
m_zoneUpdateTimer -= p_time;
}
- if (m_timeSyncTimer > 0 && !IsBeingTeleportedFar())
- {
- if (p_time >= m_timeSyncTimer)
- SendTimeSync();
- else
- m_timeSyncTimer -= p_time;
- }
-
if (IsAlive())
{
m_regenTimer += p_time;
@@ -24295,10 +24283,10 @@ void Player::SendInitialPacketsBeforeAddToMap()
if (!(m_teleport_options & TELE_TO_SEAMLESS))
{
m_movementCounter = 0;
- ResetTimeSync();
+ GetSession()->ResetTimeSync();
}
- SendTimeSync();
+ GetSession()->SendTimeSync();
/// Pass 'this' as argument because we're not stored in ObjectAccessor yet
GetSocial()->SendSocialList(this, SOCIAL_FLAG_ALL);
@@ -27802,30 +27790,6 @@ void Player::LoadActions(PreparedQueryResult result)
SendActionButtons(1);
}
-void Player::ResetTimeSync()
-{
- m_timeSyncTimer = 0;
- m_timeSyncClient = 0;
- m_timeSyncServer = GameTime::GetGameTimeMS();
-}
-
-void Player::SendTimeSync()
-{
- m_timeSyncQueue.push(m_movementCounter++);
-
- WorldPackets::Misc::TimeSyncRequest packet;
- packet.SequenceIndex = m_timeSyncQueue.back();
- SendDirectMessage(packet.Write());
-
- // Schedule next sync in 10 sec
- m_timeSyncTimer = 10000;
- m_timeSyncServer = GameTime::GetGameTimeMS();
-
- if (m_timeSyncQueue.size() > 3)
- TC_LOG_ERROR("network", "Player::SendTimeSync: Did not receive CMSG_TIME_SYNC_RESP for over 30 seconds from '%s' (%s), possible cheater",
- GetName().c_str(), GetGUID().ToString().c_str());
-}
-
void Player::SetReputation(uint32 factionentry, int32 value)
{
GetReputationMgr().SetReputation(sFactionStore.LookupEntry(factionentry), value);
diff --git a/src/server/game/Entities/Player/Player.h b/src/server/game/Entities/Player/Player.h
index 9774f6a9b69..53507fd4182 100644
--- a/src/server/game/Entities/Player/Player.h
+++ b/src/server/game/Entities/Player/Player.h
@@ -2933,9 +2933,6 @@ class TC_GAME_API Player : public Unit, public GridObject<Player>
ItemDurationList m_itemDuration;
GuidUnorderedSet m_itemSoulboundTradeable;
- void ResetTimeSync();
- void SendTimeSync();
-
std::unique_ptr<ResurrectionData> _resurrectionData;
WorldSession* m_session;
@@ -3063,11 +3060,6 @@ class TC_GAME_API Player : public Unit, public GridObject<Player>
uint32 m_ChampioningFaction;
- std::queue<uint32> m_timeSyncQueue;
- uint32 m_timeSyncTimer;
- uint32 m_timeSyncClient;
- uint32 m_timeSyncServer;
-
InstanceTimeMap _instanceResetTimes;
uint32 _pendingBindId;
uint32 _pendingBindTimer;