diff options
| author | Treeston <treeston.mmoc@gmail.com> | 2019-06-23 16:44:37 +0200 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2021-12-12 01:26:41 +0100 |
| commit | edc75831194bc2419e3abada47121fadf4b2aa8d (patch) | |
| tree | 9791827b1de920d98fd333f570bf4e3e9c31f7bf /src/server/game/Entities/Player | |
| parent | 06823f19cdc08937a28b618c63e645851bbf80fb (diff) | |
Entities/Unit: Cleanup all the direct accesses to m_unitMovedByMe. Refactor the field to be protected. Add assertions to catch dangling pointers.
(cherry picked from commit 396f87c30dff1b50f1eb0d924778a7fbab7e8d11)
Diffstat (limited to 'src/server/game/Entities/Player')
| -rw-r--r-- | src/server/game/Entities/Player/Player.cpp | 18 | ||||
| -rw-r--r-- | src/server/game/Entities/Player/Player.h | 3 |
2 files changed, 3 insertions, 18 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 2d2443edcf9..a4043aa6747 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -23990,7 +23990,7 @@ bool Player::IsNeverVisibleFor(WorldObject const* seer) const bool Player::CanAlwaysSee(WorldObject const* obj) const { // Always can see self - if (m_unitMovedByMe == obj) + if (GetUnitBeingMoved() == obj) return true; ObjectGuid guid = m_activePlayerData->FarsightObject; @@ -24431,7 +24431,7 @@ void Player::SendInitialPacketsBeforeAddToMap() initialSetup.ServerExpansionLevel = sWorld->getIntConfig(CONFIG_EXPANSION); SendDirectMessage(initialSetup.Write()); - SetMover(this); + SetMovedUnit(this); } void Player::SendInitialPacketsAfterAddToMap() @@ -25748,19 +25748,7 @@ void Player::SetClientControl(Unit* target, bool allowMove) SetViewpoint(target, allowMove); if (allowMove) - SetMover(target); -} - -void Player::SetMover(Unit* target) -{ - m_unitMovedByMe->m_playerMovingMe = nullptr; - - m_unitMovedByMe = target; - m_unitMovedByMe->m_playerMovingMe = this; - - WorldPackets::Movement::MoveSetActiveMover packet; - packet.MoverGUID = target->GetGUID(); - SendDirectMessage(packet.Write()); + SetMovedUnit(target); } void Player::UpdateZoneDependentAuras(uint32 newZone) diff --git a/src/server/game/Entities/Player/Player.h b/src/server/game/Entities/Player/Player.h index 37c89b30800..ad773d6878b 100644 --- a/src/server/game/Entities/Player/Player.h +++ b/src/server/game/Entities/Player/Player.h @@ -2369,15 +2369,12 @@ class TC_GAME_API Player : public Unit, public GridObject<Player> /*********************************************************/ void UpdateFallInformationIfNeed(MovementInfo const& minfo, uint16 opcode); // only changed for direct client control (possess, vehicle etc.), not stuff you control using pet commands - Unit* m_unitMovedByMe; WorldObject* m_seer; void SetFallInformation(uint32 time, float z); void HandleFall(MovementInfo const& movementInfo); void SetClientControl(Unit* target, bool allowMove); - void SetMover(Unit* target); - void SetSeer(WorldObject* target) { m_seer = target; } void SetViewpoint(WorldObject* target, bool apply); WorldObject* GetViewpoint() const; |
