diff options
author | Ovahlord <dreadkiller@gmx.de> | 2024-04-26 01:37:27 +0200 |
---|---|---|
committer | Ovahlord <dreadkiller@gmx.de> | 2024-05-28 16:44:55 +0200 |
commit | c4684fb2d6e0228ea8ddfb6e9c1e405ab359e086 (patch) | |
tree | 22e911170ae2bf91286cfcbefd63ca52139fc33f | |
parent | 2a5733d0b10b81e1d201fafa03589d871ce95887 (diff) |
Core/Player: moved the periodic group update mechanic into heartbeat handling
(cherry picked from commit 80d72a2c913657d3bbea538cfb842de3fa55dc50)
-rw-r--r-- | src/server/game/Entities/Player/Player.cpp | 18 | ||||
-rw-r--r-- | src/server/game/Entities/Player/Player.h | 4 |
2 files changed, 10 insertions, 12 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 4d2f56eeaf4..ed2e516718d 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -345,8 +345,6 @@ Player::Player(WorldSession* session) : Unit(true), m_sceneMgr(this) for (uint8 i = 0; i < MAX_CUF_PROFILES; ++i) _CUFProfiles[i] = nullptr; - m_groupUpdateTimer.Reset(5000); - _advancedCombatLoggingEnabled = false; _restMgr = std::make_unique<RestMgr>(this); @@ -1133,14 +1131,6 @@ void Player::Update(uint32 p_time) } } - // group update - m_groupUpdateTimer.Update(p_time); - if (m_groupUpdateTimer.Passed()) - { - SendUpdateToOutOfRangeGroupMembers(); - m_groupUpdateTimer.Reset(5000); - } - Pet* pet = GetPet(); if (pet && !pet->IsWithinDistInMap(this, GetMap()->GetVisibilityRange()) && !pet->isPossessed()) //if (pet && !pet->IsWithinDistInMap(this, GetMap()->GetVisibilityDistance()) && (GetCharmGUID() && (pet->GetGUID() != GetCharmGUID()))) @@ -1164,6 +1154,14 @@ void Player::Update(uint32 p_time) TeleportTo(m_teleport_dest, m_teleport_options); } +void Player::Heartbeat() +{ + Unit::Heartbeat(); + + // Group update + SendUpdateToOutOfRangeGroupMembers(); +} + void Player::setDeathState(DeathState s) { bool oldIsAlive = IsAlive(); diff --git a/src/server/game/Entities/Player/Player.h b/src/server/game/Entities/Player/Player.h index 95e09d1ac73..0fca1f3009b 100644 --- a/src/server/game/Entities/Player/Player.h +++ b/src/server/game/Entities/Player/Player.h @@ -1123,6 +1123,8 @@ class TC_GAME_API Player final : public Unit, public GridObject<Player> void Update(uint32 time) override; + void Heartbeat() override; + bool IsImmunedToSpellEffect(SpellInfo const* spellInfo, SpellEffectInfo const& spellEffectInfo, WorldObject const* caster, bool requireImmunityPurgesEffectAttribute = false) const override; bool IsInAreaTriggerRadius(AreaTriggerEntry const* trigger) const; @@ -3090,8 +3092,6 @@ class TC_GAME_API Player final : public Unit, public GridObject<Player> std::array<std::unique_ptr<CUFProfile>, MAX_CUF_PROFILES> _CUFProfiles; - TimeTracker m_groupUpdateTimer; - private: // internal common parts for CanStore/StoreItem functions InventoryResult CanStoreItem_InSpecificSlot(uint8 bag, uint8 slot, ItemPosCountVec& dest, ItemTemplate const* pProto, uint32& count, bool swap, Item* pSrcItem) const; |