diff options
| author | Treeston <treeston.mmoc@gmail.com> | 2016-08-20 12:43:04 +0200 |
|---|---|---|
| committer | joschiwald <joschiwald.trinity@gmail.com> | 2017-02-12 16:24:25 +0100 |
| commit | 346e4824beee7e23c5e93d94c72f38ec1cd06dbc (patch) | |
| tree | 230102f9e28c8e46a385359b6e45047fac4c14e5 /src | |
| parent | 1091174f0363f730bc720185999edf120e92c50e (diff) | |
Entities/Unit: Cleanup refactor. Changes: (#17819)
+ Unit::m_movedPlayer -> Unit::m_playerMovingMe
+ Player::m_mover -> Player::m_unitMovedByMe
+ Unit::GetMover() -> Unit::GetUnitBeingMoved()
+ Unit::GetPlayerMover() -> Unit::GetPlayerBeingMoved()
+ NEW: Unit::GetClientControllingPlayer()
(cherry picked from commit 8deda7ed7f18615937ec5db2d30a6badc3b157c1)
# Conflicts:
# src/server/game/Entities/Player/Player.cpp
# src/server/game/Entities/Unit/Unit.cpp
# src/server/game/Handlers/MiscHandler.cpp
# src/server/game/Handlers/MovementHandler.cpp
# src/server/game/Handlers/SpellHandler.cpp
# src/server/game/Server/WorldSession.cpp
# src/server/game/Spells/SpellEffects.cpp
# src/server/game/Spells/SpellInfo.cpp
Diffstat (limited to 'src')
| -rw-r--r-- | src/server/game/Entities/Creature/Creature.cpp | 2 | ||||
| -rw-r--r-- | src/server/game/Entities/Player/Player.cpp | 16 | ||||
| -rw-r--r-- | src/server/game/Entities/Player/Player.h | 3 | ||||
| -rw-r--r-- | src/server/game/Entities/Unit/Unit.cpp | 38 | ||||
| -rw-r--r-- | src/server/game/Entities/Unit/Unit.h | 11 | ||||
| -rw-r--r-- | src/server/game/Handlers/MovementHandler.cpp | 10 | ||||
| -rw-r--r-- | src/server/game/Handlers/SpellHandler.cpp | 16 | ||||
| -rw-r--r-- | src/server/game/Spells/Spell.cpp | 8 | ||||
| -rw-r--r-- | src/server/game/Spells/SpellEffects.cpp | 4 | ||||
| -rw-r--r-- | src/server/game/Spells/SpellInfo.cpp | 4 |
10 files changed, 59 insertions, 53 deletions
diff --git a/src/server/game/Entities/Creature/Creature.cpp b/src/server/game/Entities/Creature/Creature.cpp index b1225d1be5d..620b7bb83ab 100644 --- a/src/server/game/Entities/Creature/Creature.cpp +++ b/src/server/game/Entities/Creature/Creature.cpp @@ -2658,7 +2658,7 @@ Unit* Creature::SelectNearestHostileUnitInAggroRange(bool useLOS) const void Creature::UpdateMovementFlags() { // Do not update movement flags if creature is controlled by a player (charm/vehicle) - if (m_movedPlayer) + if (m_playerMovingMe) return; // Set the movement flags if the creature is in that mode. (Only fly if actually in air, only swim if in water, etc) diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index e628768cb7e..4e0f3caf8e5 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -284,8 +284,8 @@ Player::Player(WorldSession* session) : Unit(true), m_sceneMgr(this) // Player summoning m_summon_expire = 0; - m_mover = this; - m_movedPlayer = this; + m_unitMovedByMe = this; + m_playerMovingMe = this; m_seer = this; m_homebindMapId = 0; @@ -22811,7 +22811,7 @@ bool Player::IsNeverVisible() const bool Player::CanAlwaysSee(WorldObject const* obj) const { // Always can see self - if (m_mover == obj) + if (m_unitMovedByMe == obj) return true; ObjectGuid guid = GetGuidValue(PLAYER_FARSIGHT); @@ -24533,9 +24533,9 @@ void Player::SetClientControl(Unit* target, bool allowMove) void Player::SetMover(Unit* target) { - m_mover->m_movedPlayer = nullptr; - m_mover = target; - m_mover->m_movedPlayer = this; + m_unitMovedByMe->m_playerMovingMe = nullptr; + m_unitMovedByMe = target; + m_unitMovedByMe->m_playerMovingMe = this; WorldPackets::Movement::MoveSetActiveMover packet; packet.MoverGUID = target->GetGUID(); @@ -27033,8 +27033,8 @@ void Player::ValidateMovementInfo(MovementInfo* mi) */ REMOVE_VIOLATING_FLAGS(mi->HasMovementFlag(MOVEMENTFLAG_FLYING | MOVEMENTFLAG_CAN_FLY) && GetSession()->GetSecurity() == SEC_PLAYER && - !m_mover->HasAuraType(SPELL_AURA_FLY) && - !m_mover->HasAuraType(SPELL_AURA_MOD_INCREASE_MOUNTED_FLIGHT_SPEED), + !m_unitMovedByMe->HasAuraType(SPELL_AURA_FLY) && + !m_unitMovedByMe->HasAuraType(SPELL_AURA_MOD_INCREASE_MOUNTED_FLIGHT_SPEED), MOVEMENTFLAG_FLYING | MOVEMENTFLAG_CAN_FLY); REMOVE_VIOLATING_FLAGS(mi->HasMovementFlag(MOVEMENTFLAG_DISABLE_GRAVITY | MOVEMENTFLAG_CAN_FLY) && mi->HasMovementFlag(MOVEMENTFLAG_FALLING), diff --git a/src/server/game/Entities/Player/Player.h b/src/server/game/Entities/Player/Player.h index 1c0c02808da..60361dd319b 100644 --- a/src/server/game/Entities/Player/Player.h +++ b/src/server/game/Entities/Player/Player.h @@ -2286,7 +2286,8 @@ class TC_GAME_API Player : public Unit, public GridObject<Player> /*** VARIOUS SYSTEMS ***/ /*********************************************************/ void UpdateFallInformationIfNeed(MovementInfo const& minfo, uint16 opcode); - Unit* m_mover; + // 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); diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index abee8b5a8e1..97cb5288102 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -195,7 +195,7 @@ SpellSchoolMask ProcEventInfo::GetSchoolMask() const } Unit::Unit(bool isWorldObject) : - WorldObject(isWorldObject), m_movedPlayer(NULL), m_lastSanctuaryTime(0), + WorldObject(isWorldObject), m_playerMovingMe(NULL), m_lastSanctuaryTime(0), IsAIEnabled(false), NeedChangeAI(false), LastCharmerGUID(), m_ControlledByPlayer(false), movespline(new Movement::MoveSpline()), i_AI(NULL), i_disabledAI(NULL), m_AutoRepeatFirstCast(false), m_procDeep(0), @@ -9876,7 +9876,7 @@ void Unit::SetSpeedRate(UnitMoveType mtype, float rate) pet->SetSpeedRate(mtype, m_speed_rate[mtype]); } - if (Player* playerMover = GetPlayerMover()) // unit controlled by a player. + if (Player* playerMover = GetPlayerBeingMoved()) // unit controlled by a player. { // Send notification to self WorldPackets::Movement::MoveSetSpeed selfpacket(moveTypeToOpcode[mtype][1]); @@ -10249,7 +10249,7 @@ int32 Unit::CalculateSpellDamage(Unit const* target, SpellInfo const* spellProto int32 Unit::CalcSpellDuration(SpellInfo const* spellProto) { - uint32 comboPoints = m_movedPlayer ? m_movedPlayer->GetComboPoints() : 0; + uint32 comboPoints = m_playerMovingMe ? m_playerMovingMe->GetComboPoints() : 0; int32 minduration = spellProto->GetDuration(); int32 maxduration = spellProto->GetMaxDuration(); @@ -11433,16 +11433,16 @@ void CharmInfo::SetSpellAutocast(SpellInfo const* spellInfo, bool state) } } -Unit* Unit::GetMover() const +Unit* Unit::GetUnitBeingMoved() const { if (Player const* player = ToPlayer()) - return player->m_mover; + return player->m_unitMovedByMe; return nullptr; } -Player* Unit::GetPlayerMover() const +Player* Unit::GetPlayerBeingMoved() const { - if (Unit* mover = GetMover()) + if (Unit* mover = GetUnitBeingMoved()) return mover->ToPlayer(); return nullptr; } @@ -13368,7 +13368,7 @@ void Unit::SetRooted(bool apply, bool packetOnly /*= false*/) { SMSG_MOVE_SPLINE_ROOT, SMSG_MOVE_ROOT } }; - if (Player* playerMover = GetPlayerMover()) // unit controlled by a player. + if (Player* playerMover = GetPlayerBeingMoved()) // unit controlled by a player. { WorldPackets::Movement::MoveSetFlag packet(rootOpcodeTable[apply][1]); packet.MoverGUID = GetGUID(); @@ -14097,7 +14097,7 @@ void Unit::KnockbackFrom(float x, float y, float speedXY, float speedZ) if (Unit* charmer = GetCharmer()) { player = charmer->ToPlayer(); - if (player && player->m_mover != this) + if (player && player->m_unitMovedByMe != this) player = NULL; } } @@ -14942,7 +14942,7 @@ void Unit::SendTeleportPacket(Position& pos) moveUpdateTeleport.movementInfo = &m_movementInfo; Unit* broadcastSource = this; - if (Player* playerMover = GetPlayerMover()) + if (Player* playerMover = GetPlayerBeingMoved()) { WorldPackets::Movement::MoveTeleport moveTeleport; moveTeleport.MoverGUID = GetGUID(); @@ -15339,7 +15339,7 @@ bool Unit::SetDisableGravity(bool disable) { SMSG_MOVE_SPLINE_DISABLE_GRAVITY, SMSG_MOVE_DISABLE_GRAVITY } }; - if (Player* playerMover = GetPlayerMover()) + if (Player* playerMover = GetPlayerBeingMoved()) { WorldPackets::Movement::MoveSetFlag packet(gravityOpcodeTable[disable][1]); packet.MoverGUID = GetGUID(); @@ -15417,7 +15417,7 @@ bool Unit::SetCanFly(bool enable) if (!enable && GetTypeId() == TYPEID_PLAYER) ToPlayer()->SetFallInformation(0, GetPositionZ()); - if (Player* playerMover = GetPlayerMover()) + if (Player* playerMover = GetPlayerBeingMoved()) { WorldPackets::Movement::MoveSetFlag packet(flyOpcodeTable[enable][1]); packet.MoverGUID = GetGUID(); @@ -15454,7 +15454,7 @@ bool Unit::SetWaterWalking(bool enable) { SMSG_MOVE_SPLINE_SET_WATER_WALK, SMSG_MOVE_SET_WATER_WALK } }; - if (Player* playerMover = GetPlayerMover()) + if (Player* playerMover = GetPlayerBeingMoved()) { WorldPackets::Movement::MoveSetFlag packet(waterWalkingOpcodeTable[enable][1]); packet.MoverGUID = GetGUID(); @@ -15491,7 +15491,7 @@ bool Unit::SetFeatherFall(bool enable) { SMSG_MOVE_SPLINE_SET_FEATHER_FALL, SMSG_MOVE_SET_FEATHER_FALL } }; - if (Player* playerMover = GetPlayerMover()) + if (Player* playerMover = GetPlayerBeingMoved()) { WorldPackets::Movement::MoveSetFlag packet(featherFallOpcodeTable[enable][1]); packet.MoverGUID = GetGUID(); @@ -15543,7 +15543,7 @@ bool Unit::SetHover(bool enable) { SMSG_MOVE_SPLINE_SET_HOVER, SMSG_MOVE_SET_HOVERING } }; - if (Player* playerMover = GetPlayerMover()) + if (Player* playerMover = GetPlayerBeingMoved()) { WorldPackets::Movement::MoveSetFlag packet(hoverOpcodeTable[enable][1]); packet.MoverGUID = GetGUID(); @@ -15580,7 +15580,7 @@ bool Unit::SetCollision(bool disable) { SMSG_MOVE_SPLINE_DISABLE_COLLISION, SMSG_MOVE_DISABLE_COLLISION } }; - if (Player* playerMover = GetPlayerMover()) + if (Player* playerMover = GetPlayerBeingMoved()) { WorldPackets::Movement::MoveSetFlag packet(collisionOpcodeTable[disable][1]); packet.MoverGUID = GetGUID(); @@ -15620,7 +15620,7 @@ bool Unit::SetCanTransitionBetweenSwimAndFly(bool enable) SMSG_MOVE_ENABLE_TRANSITION_BETWEEN_SWIM_AND_FLY }; - if (Player* playerMover = GetPlayerMover()) + if (Player* playerMover = GetPlayerBeingMoved()) { WorldPackets::Movement::MoveSetFlag packet(swimToFlyTransOpcodeTable[enable]); packet.MoverGUID = GetGUID(); @@ -15651,7 +15651,7 @@ bool Unit::SetCanTurnWhileFalling(bool enable) SMSG_MOVE_SET_CAN_TURN_WHILE_FALLING }; - if (Player* playerMover = GetPlayerMover()) + if (Player* playerMover = GetPlayerBeingMoved()) { WorldPackets::Movement::MoveSetFlag packet(canTurnWhileFallingOpcodeTable[enable]); packet.MoverGUID = GetGUID(); @@ -15682,7 +15682,7 @@ bool Unit::SetDoubleJump(bool enable) SMSG_MOVE_ENABLE_DOUBLE_JUMP }; - if (Player* playerMover = GetPlayerMover()) + if (Player* playerMover = GetPlayerBeingMoved()) { WorldPackets::Movement::MoveSetFlag packet(doubleJumpOpcodeTable[enable]); packet.MoverGUID = GetGUID(); diff --git a/src/server/game/Entities/Unit/Unit.h b/src/server/game/Entities/Unit/Unit.h index 0f379a7326a..e85dbe3ce54 100644 --- a/src/server/game/Entities/Unit/Unit.h +++ b/src/server/game/Entities/Unit/Unit.h @@ -1780,9 +1780,14 @@ class TC_GAME_API Unit : public WorldObject CharmInfo* InitCharmInfo(); void DeleteCharmInfo(); void UpdateCharmAI(); - Unit* GetMover() const; - Player* GetPlayerMover() const; - Player* m_movedPlayer; + // returns the unit that this player IS CONTROLLING + Unit* GetUnitBeingMoved() const; + // returns the player that this player IS CONTROLLING + Player* GetPlayerBeingMoved() const; + // returns the player that this unit is BEING CONTROLLED BY + Player* GetPlayerMovingMe() const { return m_playerMovingMe; } + // only set for direct client control (possess effects, vehicles and similar) + Player* m_playerMovingMe; SharedVisionList const& GetSharedVisionList() { return m_sharedVision; } void AddPlayerToVision(Player* player); void RemovePlayerFromVision(Player* player); diff --git a/src/server/game/Handlers/MovementHandler.cpp b/src/server/game/Handlers/MovementHandler.cpp index 0d2325c691d..14b60e99d72 100644 --- a/src/server/game/Handlers/MovementHandler.cpp +++ b/src/server/game/Handlers/MovementHandler.cpp @@ -248,7 +248,7 @@ void WorldSession::HandleMoveTeleportAck(WorldPackets::Movement::MoveTeleportAck { TC_LOG_DEBUG("network", "CMSG_MOVE_TELEPORT_ACK: Guid: %s, Sequence: %u, Time: %u", packet.MoverGUID.ToString().c_str(), packet.AckIndex, packet.MoveTime); - Player* plMover = _player->m_mover->ToPlayer(); + Player* plMover = _player->m_unitMovedByMe->ToPlayer(); if (!plMover || !plMover->IsBeingTeleportedNear()) return; @@ -291,7 +291,7 @@ void WorldSession::HandleMovementOpcodes(WorldPackets::Movement::ClientPlayerMov { OpcodeClient opcode = packet.GetOpcode(); - Unit* mover = _player->m_mover; + Unit* mover = _player->m_unitMovedByMe; ASSERT(mover != nullptr); // there must always be a mover @@ -515,15 +515,15 @@ void WorldSession::HandleForceSpeedChangeAck(WorldPackets::Movement::MovementSpe void WorldSession::HandleSetActiveMoverOpcode(WorldPackets::Movement::SetActiveMover& packet) { if (GetPlayer()->IsInWorld()) - if (_player->m_mover->GetGUID() != packet.ActiveMover) - TC_LOG_DEBUG("network", "HandleSetActiveMoverOpcode: incorrect mover guid: mover is %s and should be %s" , packet.ActiveMover.ToString().c_str(), _player->m_mover->GetGUID().ToString().c_str()); + if (_player->m_unitMovedByMe->GetGUID() != packet.ActiveMover) + TC_LOG_DEBUG("network", "HandleSetActiveMoverOpcode: incorrect mover guid: mover is %s and should be %s" , packet.ActiveMover.ToString().c_str(), _player->m_unitMovedByMe->GetGUID().ToString().c_str()); } void WorldSession::HandleMoveKnockBackAck(WorldPackets::Movement::MovementAckMessage& movementAck) { GetPlayer()->ValidateMovementInfo(&movementAck.Ack.movementInfo); - if (_player->m_mover->GetGUID() != movementAck.Ack.movementInfo.guid) + if (_player->m_unitMovedByMe->GetGUID() != movementAck.Ack.movementInfo.guid) return; _player->m_movementInfo = movementAck.Ack.movementInfo; diff --git a/src/server/game/Handlers/SpellHandler.cpp b/src/server/game/Handlers/SpellHandler.cpp index 207f86fb74e..d4ed883e680 100644 --- a/src/server/game/Handlers/SpellHandler.cpp +++ b/src/server/game/Handlers/SpellHandler.cpp @@ -39,7 +39,7 @@ void WorldSession::HandleUseItemOpcode(WorldPackets::Spells::UseItem& packet) Player* user = _player; // ignore for remote control state - if (user->m_mover != user) + if (user->m_unitMovedByMe != user) return; Item* item = user->GetUseableItemByPos(packet.PackSlot, packet.Slot); @@ -131,7 +131,7 @@ void WorldSession::HandleOpenItemOpcode(WorldPackets::Spells::OpenItem& packet) Player* player = _player; // ignore for remote control state - if (player->m_mover != player) + if (player->m_unitMovedByMe != player) return; TC_LOG_INFO("network", "bagIndex: %u, slot: %u", packet.Slot, packet.PackSlot); @@ -220,8 +220,8 @@ void WorldSession::HandleGameObjectUseOpcode(WorldPackets::GameObject::GameObjUs if (GameObject* obj = GetPlayer()->GetGameObjectIfCanInteractWith(packet.Guid)) { // ignore for remote control state - if (GetPlayer()->m_mover != GetPlayer()) - if (!(GetPlayer()->IsOnVehicle(GetPlayer()->m_mover) || GetPlayer()->IsMounted()) && !obj->GetGOInfo()->IsUsableMounted()) + if (GetPlayer()->m_unitMovedByMe != GetPlayer()) + if (!(GetPlayer()->IsOnVehicle(GetPlayer()->m_unitMovedByMe) || GetPlayer()->IsMounted()) && !obj->GetGOInfo()->IsUsableMounted()) return; obj->Use(GetPlayer()); @@ -231,7 +231,7 @@ void WorldSession::HandleGameObjectUseOpcode(WorldPackets::GameObject::GameObjUs void WorldSession::HandleGameobjectReportUse(WorldPackets::GameObject::GameObjReportUse& packet) { // ignore for remote control state - if (_player->m_mover != _player) + if (_player->m_unitMovedByMe != _player) return; if (GameObject* go = GetPlayer()->GetGameObjectIfCanInteractWith(packet.Guid)) @@ -246,7 +246,7 @@ void WorldSession::HandleGameobjectReportUse(WorldPackets::GameObject::GameObjRe void WorldSession::HandleCastSpellOpcode(WorldPackets::Spells::CastSpell& cast) { // ignore for remote control state (for player case) - Unit* mover = _player->m_mover; + Unit* mover = _player->m_unitMovedByMe; if (mover != _player && mover->GetTypeId() == TYPEID_PLAYER) return; @@ -427,7 +427,7 @@ void WorldSession::HandleCancelAutoRepeatSpellOpcode(WorldPackets::Spells::Cance void WorldSession::HandleCancelChanneling(WorldPackets::Spells::CancelChannelling& /*cancelChanneling*/) { // ignore for remote control state (for player case) - Unit* mover = _player->m_mover; + Unit* mover = _player->m_unitMovedByMe; if (mover != _player && mover->GetTypeId() == TYPEID_PLAYER) return; @@ -437,7 +437,7 @@ void WorldSession::HandleCancelChanneling(WorldPackets::Spells::CancelChannellin void WorldSession::HandleTotemDestroyed(WorldPackets::Totem::TotemDestroyed& totemDestroyed) { // ignore for remote control state - if (_player->m_mover != _player) + if (_player->m_unitMovedByMe != _player) return; uint8 slotId = totemDestroyed.Slot; diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp index 0f5d7a13ce2..0c55e133264 100644 --- a/src/server/game/Spells/Spell.cpp +++ b/src/server/game/Spells/Spell.cpp @@ -2972,7 +2972,7 @@ void Spell::prepare(SpellCastTargets const* targets, AuraEffect const* triggered m_caster->ToPlayer()->SetSpellModTakingSpell(this, false); // Set combo point requirement - if ((_triggeredCastFlags & TRIGGERED_IGNORE_COMBO_POINTS) || m_CastItem || !m_caster->m_movedPlayer) + if ((_triggeredCastFlags & TRIGGERED_IGNORE_COMBO_POINTS) || m_CastItem || !m_caster->m_playerMovingMe) m_needComboPoints = false; SpellCastResult result = CheckCast(true); @@ -3552,15 +3552,15 @@ void Spell::_handle_immediate_phase() void Spell::_handle_finish_phase() { - if (m_caster->m_movedPlayer) + if (m_caster->m_playerMovingMe) { // Take for real after all targets are processed if (m_needComboPoints) - m_caster->m_movedPlayer->ClearComboPoints(); + m_caster->m_playerMovingMe->ClearComboPoints(); // Real add combo points from effects if (m_comboPointGain) - m_caster->m_movedPlayer->GainSpellComboPoints(m_comboPointGain); + m_caster->m_playerMovingMe->GainSpellComboPoints(m_comboPointGain); } if (m_caster->m_extraAttacks && HasEffect(SPELL_EFFECT_ADD_EXTRA_ATTACKS)) diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp index 6e4db4650cc..a73155985f2 100644 --- a/src/server/game/Spells/SpellEffects.cpp +++ b/src/server/game/Spells/SpellEffects.cpp @@ -3735,13 +3735,13 @@ void Spell::EffectAddComboPoints(SpellEffIndex /*effIndex*/) if (!unitTarget) return; - if (!m_caster->m_movedPlayer) + if (!m_caster->m_playerMovingMe) return; if (damage <= 0) return; - m_caster->m_movedPlayer->AddComboPoints(damage, this); + m_caster->m_playerMovingMe->AddComboPoints(damage, this); } void Spell::EffectDuel(SpellEffIndex effIndex) diff --git a/src/server/game/Spells/SpellInfo.cpp b/src/server/game/Spells/SpellInfo.cpp index 2ddd12fc376..370cea97be1 100644 --- a/src/server/game/Spells/SpellInfo.cpp +++ b/src/server/game/Spells/SpellInfo.cpp @@ -555,8 +555,8 @@ int32 SpellEffectInfo::CalcValue(Unit const* caster /*= nullptr*/, int32 const* if (caster) { // bonus amount from combo points - if (caster->m_movedPlayer && comboDamage) - if (uint32 comboPoints = caster->m_movedPlayer->GetComboPoints()) + if (caster->m_playerMovingMe && comboDamage) + if (uint32 comboPoints = caster->m_playerMovingMe->GetComboPoints()) value += comboDamage * comboPoints; value = caster->ApplyEffectModifiers(_spellInfo, EffectIndex, value); |
