From c9afa1a6edba0a8e2f2c8057a435a8ce6f448c9e Mon Sep 17 00:00:00 2001 From: Ovahlord Date: Mon, 21 Sep 2020 14:48:18 +0200 Subject: [PATCH] Core/Units: renamed SetInFront to SetOrientationTowards to clarify its actual functionality and added comments to SetOrientationTowards, SetFacingTo and SetFacingToObject --- src/server/game/Entities/Unit/Unit.cpp | 9 ++++----- src/server/game/Entities/Unit/Unit.h | 5 ++++- src/server/game/Handlers/PetHandler.cpp | 4 ++-- .../MovementGenerators/ChaseMovementGenerator.cpp | 1 - .../MovementGenerators/IdleMovementGenerator.cpp | 3 --- .../EasternKingdoms/SunwellPlateau/boss_brutallus.cpp | 4 ++-- src/server/scripts/Kalimdor/Firelands/boss_alysrazor.cpp | 2 +- src/server/scripts/Kalimdor/zone_azuremyst_isle.cpp | 4 ++-- .../scripts/Northrend/Ulduar/Ulduar/boss_mimiron.cpp | 2 +- src/server/scripts/Northrend/zone_borean_tundra.cpp | 2 +- src/server/scripts/Northrend/zone_zuldrak.cpp | 4 ++-- src/server/scripts/Outland/zone_terokkar_forest.cpp | 2 +- src/server/scripts/World/npcs_special.cpp | 2 +- 13 files changed, 21 insertions(+), 23 deletions(-) diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index e4572c412a..fd4a0531e7 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -472,14 +472,14 @@ void Unit::Update(uint32 p_time) ObjectGuid const channelGuid = GetChannelObjectGuid(); if (!channelGuid.IsEmpty() && channelGuid != GetGUID()) if (WorldObject const* objectTarget = ObjectAccessor::GetWorldObject(*this, channelGuid)) - SetOrientation(GetAngle(objectTarget)); // use SetOrientation instead of SetInFront because channeling may apply no turn unit states. + SetOrientationTowards(objectTarget); } else { ObjectGuid const targetGuid = GetTarget(); if (!targetGuid.IsEmpty() && targetGuid != GetGUID()) if (WorldObject const* objectTarget = ObjectAccessor::GetWorldObject(*this, targetGuid)) - SetInFront(objectTarget); + SetOrientationTowards(objectTarget); } } @@ -13948,10 +13948,9 @@ bool CharmInfo::IsReturning() return _isReturning; } -void Unit::SetInFront(WorldObject const* target) +void Unit::SetOrientationTowards(WorldObject const* target) { - if (!HasUnitState(UNIT_STATE_CANNOT_TURN)) - SetOrientation(GetAngle(target)); + SetOrientation(GetAngle(target)); } void Unit::SetFacingTo(float ori, bool force) diff --git a/src/server/game/Entities/Unit/Unit.h b/src/server/game/Entities/Unit/Unit.h index b1ea0432f2..e3a73492a5 100644 --- a/src/server/game/Entities/Unit/Unit.h +++ b/src/server/game/Entities/Unit/Unit.h @@ -1365,8 +1365,11 @@ class TC_GAME_API Unit : public WorldObject bool SetFeatherFall(bool enable, bool packetOnly = false); virtual bool SetHover(bool enable, bool packetOnly = false, bool updateAnimationTier = true); - void SetInFront(WorldObject const* target); + // Sets the internal orientation value to face the provided target. Does NOT have clientside effects. + void SetOrientationTowards(WorldObject const* target); + // Launches a spline to face the given orientation. void SetFacingTo(float const ori, bool force = true); + // Launches a spline to face the given object void SetFacingToObject(WorldObject const* object, bool force = true); bool IsAlive() const { return (m_deathState == ALIVE); } diff --git a/src/server/game/Handlers/PetHandler.cpp b/src/server/game/Handlers/PetHandler.cpp index 79674ca442..f76ee9ee61 100644 --- a/src/server/game/Handlers/PetHandler.cpp +++ b/src/server/game/Handlers/PetHandler.cpp @@ -345,13 +345,13 @@ void WorldSession::HandlePetActionHelper(Unit* pet, ObjectGuid guid1, uint32 spe { if (unit_target) { - pet->SetInFront(unit_target); + pet->SetOrientationTowards(unit_target); if (Player* player = unit_target->ToPlayer()) pet->SendUpdateToPlayer(player); } else if (Unit* unit_target2 = spell->m_targets.GetUnitTarget()) { - pet->SetInFront(unit_target2); + pet->SetOrientationTowards(unit_target2); if (Player* player = unit_target2->ToPlayer()) pet->SendUpdateToPlayer(player); } diff --git a/src/server/game/Movement/MovementGenerators/ChaseMovementGenerator.cpp b/src/server/game/Movement/MovementGenerators/ChaseMovementGenerator.cpp index 5a75c9fee8..d92789a5d6 100644 --- a/src/server/game/Movement/MovementGenerators/ChaseMovementGenerator.cpp +++ b/src/server/game/Movement/MovementGenerators/ChaseMovementGenerator.cpp @@ -117,7 +117,6 @@ bool ChaseMovementGenerator::Update(Unit* owner, uint32 diff) if (Creature* cOwner = owner->ToCreature()) cOwner->SetCannotReachTarget(false); - owner->SetInFront(target); owner->ClearUnitState(UNIT_STATE_CHASE_MOVE); DoMovementInform(owner, target); return true; diff --git a/src/server/game/Movement/MovementGenerators/IdleMovementGenerator.cpp b/src/server/game/Movement/MovementGenerators/IdleMovementGenerator.cpp index 4363819757..23afc07c8b 100644 --- a/src/server/game/Movement/MovementGenerators/IdleMovementGenerator.cpp +++ b/src/server/game/Movement/MovementGenerators/IdleMovementGenerator.cpp @@ -40,9 +40,6 @@ void RotateMovementGenerator::Initialize(Unit* owner) if (!owner->IsStopped()) owner->StopMoving(); - if (owner->GetVictim()) - owner->SetInFront(owner->GetVictim()); - owner->AddUnitState(UNIT_STATE_ROTATING); owner->AttackStop(); } diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_brutallus.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_brutallus.cpp index c275230404..6823394db6 100644 --- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_brutallus.cpp +++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_brutallus.cpp @@ -197,8 +197,8 @@ public: ++IntroPhase; break; case 1: - me->SetInFront(Madrigosa); - Madrigosa->SetInFront(me); + me->SetOrientationTowards(Madrigosa); + Madrigosa->SetOrientationTowards(me); Madrigosa->AI()->Talk(YELL_MADR_INTRO, me); IntroPhaseTimer = 9000; ++IntroPhase; diff --git a/src/server/scripts/Kalimdor/Firelands/boss_alysrazor.cpp b/src/server/scripts/Kalimdor/Firelands/boss_alysrazor.cpp index be0801f03f..73a8d71627 100644 --- a/src/server/scripts/Kalimdor/Firelands/boss_alysrazor.cpp +++ b/src/server/scripts/Kalimdor/Firelands/boss_alysrazor.cpp @@ -551,7 +551,7 @@ class spell_alysrazor_turn_monstrosity : public SpellScriptLoader float angle = 0.0f; if (Unit* bird = GetCaster()->GetVehicleBase()) { - bird->SetInFront(GetHitUnit()); + bird->SetOrientationTowards(GetHitUnit()); angle = bird->GetOrientation(); } diff --git a/src/server/scripts/Kalimdor/zone_azuremyst_isle.cpp b/src/server/scripts/Kalimdor/zone_azuremyst_isle.cpp index 2965fed641..d875da321f 100644 --- a/src/server/scripts/Kalimdor/zone_azuremyst_isle.cpp +++ b/src/server/scripts/Kalimdor/zone_azuremyst_isle.cpp @@ -532,8 +532,8 @@ public: return 1000; case 2: Talk(GEEZLE_SAY_1, Spark); - Spark->SetInFront(me); - me->SetInFront(Spark); + Spark->SetOrientationTowards(me); + me->SetOrientationTowards(Spark); return 5000; case 3: Spark->AI()->Talk(SPARK_SAY_2); diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_mimiron.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_mimiron.cpp index 0a0cbfbb7c..59e7c1f6ba 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_mimiron.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_mimiron.cpp @@ -2505,7 +2505,7 @@ class spell_mimiron_summon_flames_spread : public SpellScriptLoader void OnHit(SpellEffIndex /*effIndex*/) { - GetCaster()->SetInFront(GetHitUnit()); + GetCaster()->SetOrientationTowards(GetHitUnit()); } void Register() override diff --git a/src/server/scripts/Northrend/zone_borean_tundra.cpp b/src/server/scripts/Northrend/zone_borean_tundra.cpp index 307cddc1d4..052768048d 100644 --- a/src/server/scripts/Northrend/zone_borean_tundra.cpp +++ b/src/server/scripts/Northrend/zone_borean_tundra.cpp @@ -960,7 +960,7 @@ public: case 8: if (arthas && talbot) { - arthas->SetInFront(me); //The client doesen't update with the new orientation :l + arthas->SetOrientationTowards(me); //The client doesen't update with the new orientation :l talbot->SetStandState(UNIT_STAND_STATE_STAND); arthas->AI()->Talk(SAY_LICH_2); } diff --git a/src/server/scripts/Northrend/zone_zuldrak.cpp b/src/server/scripts/Northrend/zone_zuldrak.cpp index c88c0289b7..205e1de80d 100644 --- a/src/server/scripts/Northrend/zone_zuldrak.cpp +++ b/src/server/scripts/Northrend/zone_zuldrak.cpp @@ -70,8 +70,8 @@ public: void LockRageclaw(Creature* rageclaw) { // pointer check not needed - me->SetInFront(rageclaw); - rageclaw->SetInFront(me); + me->SetOrientationTowards(rageclaw); + rageclaw->SetOrientationTowards(me); DoCast(rageclaw, SPELL_LEFT_CHAIN, true); DoCast(rageclaw, SPELL_RIGHT_CHAIN, true); diff --git a/src/server/scripts/Outland/zone_terokkar_forest.cpp b/src/server/scripts/Outland/zone_terokkar_forest.cpp index 12853d49d1..74e33ad424 100644 --- a/src/server/scripts/Outland/zone_terokkar_forest.cpp +++ b/src/server/scripts/Outland/zone_terokkar_forest.cpp @@ -406,7 +406,7 @@ public: player->GroupEventHappens(ESCAPE_FROM_FIREWING_POINT_A, me); else if (player->GetTeam() == HORDE) player->GroupEventHappens(ESCAPE_FROM_FIREWING_POINT_H, me); - me->SetInFront(player); + me->SetOrientationTowards(player); break; case 30: me->HandleEmoteCommand(EMOTE_ONESHOT_WAVE); diff --git a/src/server/scripts/World/npcs_special.cpp b/src/server/scripts/World/npcs_special.cpp index 112feea35f..6aa49381af 100644 --- a/src/server/scripts/World/npcs_special.cpp +++ b/src/server/scripts/World/npcs_special.cpp @@ -361,7 +361,7 @@ public: { if (me->IsWithinLOS(player->GetPositionX(), player->GetPositionY(), player->GetPositionZ()) && me->IsWithinDistInMap(player, 30.0f)) { - me->SetInFront(player); + me->SetOrientationTowards(player); Active = false; switch (emote)