aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Entities/Player
diff options
context:
space:
mode:
authorTreeston <treeston.mmoc@gmail.com>2019-06-23 16:44:37 +0200
committerShauren <shauren.trinity@gmail.com>2021-12-12 01:26:41 +0100
commitedc75831194bc2419e3abada47121fadf4b2aa8d (patch)
tree9791827b1de920d98fd333f570bf4e3e9c31f7bf /src/server/game/Entities/Player
parent06823f19cdc08937a28b618c63e645851bbf80fb (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.cpp18
-rw-r--r--src/server/game/Entities/Player/Player.h3
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;