aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorccrs <ccrs@users.noreply.github.com>2017-04-27 14:55:06 +0200
committerfunjoker <funjoker109@gmail.com>2020-04-28 17:42:26 +0200
commit2d4549023a6655d19671f7f7e6b4f7c9b71ae632 (patch)
tree57c2cffc36dd483d876b496d67f3a429701fe246
parentd1bdb8bdd3e90fc435094a8615a0cbcbf472079a (diff)
Core/Unit: 2170541a51 followup
use true as default value since pretty much all the script calls will expect that (cherry picked from commit c7a57e2a093ada2ece7a01eac2f627aeb26b08d5)
-rw-r--r--src/server/game/AI/CreatureAI.cpp4
-rw-r--r--src/server/game/Entities/Creature/Creature.cpp12
-rw-r--r--src/server/game/Entities/Unit/Unit.cpp9
-rw-r--r--src/server/game/Entities/Unit/Unit.h4
-rw-r--r--src/server/game/Spells/SpellEffects.cpp6
-rw-r--r--src/server/scripts/EasternKingdoms/Karazhan/boss_nightbane.cpp2
-rw-r--r--src/server/scripts/Kalimdor/BlackfathomDeeps/blackfathom_deeps.cpp2
-rw-r--r--src/server/scripts/Kalimdor/OnyxiasLair/boss_onyxia.cpp2
-rw-r--r--src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/boss_devourer_of_souls.cpp2
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp4
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp4
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_algalon_the_observer.cpp2
-rw-r--r--src/server/scripts/Northrend/VioletHold/boss_erekem.cpp2
-rw-r--r--src/server/scripts/Northrend/zone_dragonblight.cpp2
-rw-r--r--src/server/scripts/Outland/BlackTemple/boss_illidan.cpp6
-rw-r--r--src/server/scripts/Outland/BlackTemple/boss_shade_of_akama.cpp2
-rw-r--r--src/server/scripts/Outland/TempestKeep/Eye/boss_kaelthas.cpp2
-rw-r--r--src/server/scripts/Outland/zone_hellfire_peninsula.cpp2
18 files changed, 35 insertions, 34 deletions
diff --git a/src/server/game/AI/CreatureAI.cpp b/src/server/game/AI/CreatureAI.cpp
index 7d1aaca570e..3c65160aaf6 100644
--- a/src/server/game/AI/CreatureAI.cpp
+++ b/src/server/game/AI/CreatureAI.cpp
@@ -173,9 +173,9 @@ void CreatureAI::TriggerAlert(Unit const* who) const
me->SendAIReaction(AI_REACTION_ALERT);
// Face the unit (stealthed player) and set distracted state for 5 seconds
- me->SetFacingTo(me->GetAngle(who->GetPositionX(), who->GetPositionY()), true);
- me->StopMoving();
me->GetMotionMaster()->MoveDistract(5 * IN_MILLISECONDS);
+ me->StopMoving();
+ me->SetFacingTo(me->GetAngle(who));
}
void CreatureAI::EnterEvadeMode(EvadeReason why)
diff --git a/src/server/game/Entities/Creature/Creature.cpp b/src/server/game/Entities/Creature/Creature.cpp
index bf309ee0089..c844767b6ba 100644
--- a/src/server/game/Entities/Creature/Creature.cpp
+++ b/src/server/game/Entities/Creature/Creature.cpp
@@ -681,10 +681,10 @@ void Creature::Update(uint32 diff)
if (!m_suppressedTarget.IsEmpty())
{
if (WorldObject const* objTarget = ObjectAccessor::GetWorldObject(*this, m_suppressedTarget))
- SetFacingToObject(objTarget);
+ SetFacingToObject(objTarget, false);
}
else
- SetFacingTo(m_suppressedOrientation);
+ SetFacingTo(m_suppressedOrientation, false);
m_shouldReacquireTarget = false;
}
@@ -3088,10 +3088,10 @@ void Creature::FocusTarget(Spell const* focusSpell, WorldObject const* target)
bool const canTurnDuringCast = !spellInfo->HasAttribute(SPELL_ATTR5_DONT_TURN_DURING_CAST);
// Face the target - we need to do this before the unit state is modified for no-turn spells
if (target)
- SetFacingToObject(target);
+ SetFacingToObject(target, false);
else if (!canTurnDuringCast)
if (Unit* victim = GetVictim())
- SetFacingToObject(victim); // ensure orientation is correct at beginning of cast
+ SetFacingToObject(victim, false); // ensure orientation is correct at beginning of cast
if (!canTurnDuringCast)
AddUnitState(UNIT_STATE_CANNOT_TURN);
@@ -3137,10 +3137,10 @@ void Creature::ReleaseFocus(Spell const* focusSpell, bool withDelay)
if (!m_suppressedTarget.IsEmpty())
{
if (WorldObject const* objTarget = ObjectAccessor::GetWorldObject(*this, m_suppressedTarget))
- SetFacingToObject(objTarget);
+ SetFacingToObject(objTarget, false);
}
else
- SetFacingTo(m_suppressedOrientation);
+ SetFacingTo(m_suppressedOrientation, false);
}
else
// tell the creature that it should reacquire its actual target after the delay expires (this is handled in ::Update)
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp
index 4c0d1ef81bd..815ef9a4a62 100644
--- a/src/server/game/Entities/Unit/Unit.cpp
+++ b/src/server/game/Entities/Unit/Unit.cpp
@@ -2027,7 +2027,7 @@ void Unit::AttackerStateUpdate(Unit* victim, WeaponAttackType attType, bool extr
return; // ignore ranged case
if (GetTypeId() == TYPEID_UNIT && !HasUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED))
- SetFacingToObject(victim); // update client side facing to face the target (prevents visual glitches when casting untargeted spells)
+ SetFacingToObject(victim, false); // update client side facing to face the target (prevents visual glitches when casting untargeted spells)
// melee attack spell cast at main hand attack only - no normal melee dmg dealt
if (attType == BASE_ATTACK && m_currentSpells[CURRENT_MELEE_SPELL] && !extra)
@@ -2108,7 +2108,7 @@ void Unit::FakeAttackerStateUpdate(Unit* victim, WeaponAttackType attType /*= BA
return; // ignore ranged case
if (GetTypeId() == TYPEID_UNIT && !HasUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED))
- SetFacingToObject(victim); // update client side facing to face the target (prevents visual glitches when casting untargeted spells)
+ SetFacingToObject(victim, false); // update client side facing to face the target (prevents visual glitches when casting untargeted spells)
CalcDamageInfo damageInfo;
damageInfo.attacker = this;
@@ -13645,7 +13645,8 @@ void Unit::SetInFront(WorldObject const* target)
void Unit::SetFacingTo(float ori, bool force)
{
- if (!force && !IsStopped())
+ // do not face when already moving
+ if (!force && (!IsStopped() || !movespline->Finalized()))
return;
Movement::MoveSplineInit init(this);
@@ -13659,7 +13660,7 @@ void Unit::SetFacingTo(float ori, bool force)
void Unit::SetFacingToObject(WorldObject const* object, bool force)
{
// do not face when already moving
- if (!force && !IsStopped())
+ if (!force && (!IsStopped() || !movespline->Finalized()))
return;
/// @todo figure out under what conditions creature will move towards object instead of facing it where it currently is.
diff --git a/src/server/game/Entities/Unit/Unit.h b/src/server/game/Entities/Unit/Unit.h
index e098542216c..83f631311d2 100644
--- a/src/server/game/Entities/Unit/Unit.h
+++ b/src/server/game/Entities/Unit/Unit.h
@@ -1383,8 +1383,8 @@ class TC_GAME_API Unit : public WorldObject
void UpdateMovementForcesModMagnitude();
void SetInFront(WorldObject const* target);
- void SetFacingTo(float ori, bool force = false);
- void SetFacingToObject(WorldObject const* object, bool force = false);
+ void SetFacingTo(float const ori, bool force = true);
+ void SetFacingToObject(WorldObject const* object, bool force = true);
void SendChangeCurrentVictimOpcode(HostileReference* pHostileReference);
void SendClearThreatListOpcode();
diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp
index 56a050eea65..8f77c39afe2 100644
--- a/src/server/game/Spells/SpellEffects.cpp
+++ b/src/server/game/Spells/SpellEffects.cpp
@@ -2232,11 +2232,11 @@ void Spell::EffectDistract(SpellEffIndex /*effIndex*/)
if (unitTarget->HasUnitState(UNIT_STATE_CONFUSED | UNIT_STATE_STUNNED | UNIT_STATE_FLEEING))
return;
- unitTarget->SetFacingTo(unitTarget->GetAngle(destTarget));
- unitTarget->ClearUnitState(UNIT_STATE_MOVING);
-
if (unitTarget->GetTypeId() == TYPEID_UNIT)
unitTarget->GetMotionMaster()->MoveDistract(damage * IN_MILLISECONDS);
+
+ unitTarget->StopMoving();
+ unitTarget->SetFacingTo(unitTarget->GetAngle(destTarget));
}
void Spell::EffectPickPocket(SpellEffIndex /*effIndex*/)
diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_nightbane.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_nightbane.cpp
index da6aebea818..c5366285de7 100644
--- a/src/server/scripts/EasternKingdoms/Karazhan/boss_nightbane.cpp
+++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_nightbane.cpp
@@ -328,7 +328,7 @@ public:
DoResetThreat();
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 0.0f, true))
{
- me->SetFacingToObject(target, true);
+ me->SetFacingToObject(target);
DoCast(target, SPELL_RAIN_OF_BONES);
}
break;
diff --git a/src/server/scripts/Kalimdor/BlackfathomDeeps/blackfathom_deeps.cpp b/src/server/scripts/Kalimdor/BlackfathomDeeps/blackfathom_deeps.cpp
index 607a89fabb7..334e3ebb26c 100644
--- a/src/server/scripts/Kalimdor/BlackfathomDeeps/blackfathom_deeps.cpp
+++ b/src/server/scripts/Kalimdor/BlackfathomDeeps/blackfathom_deeps.cpp
@@ -199,7 +199,7 @@ public:
{
case 4:
SetEscortPaused(true);
- me->SetFacingTo(1.775791f, true);
+ me->SetFacingTo(1.775791f);
me->AddNpcFlag(UNIT_NPC_FLAG_GOSSIP);
Talk(SAY_MORRIDUNE_2);
break;
diff --git a/src/server/scripts/Kalimdor/OnyxiasLair/boss_onyxia.cpp b/src/server/scripts/Kalimdor/OnyxiasLair/boss_onyxia.cpp
index a7daac95144..2deec5fa15e 100644
--- a/src/server/scripts/Kalimdor/OnyxiasLair/boss_onyxia.cpp
+++ b/src/server/scripts/Kalimdor/OnyxiasLair/boss_onyxia.cpp
@@ -249,7 +249,7 @@ public:
me->SetCanFly(true);
me->SetDisableGravity(true);
me->SetAnimTier(UnitBytes1_Flags(UNIT_BYTE1_FLAG_ALWAYS_STAND | UNIT_BYTE1_FLAG_HOVER), false);
- me->SetFacingTo(me->GetOrientation() + float(M_PI), true);
+ me->SetFacingTo(me->GetOrientation() + float(M_PI));
if (Creature * trigger = me->SummonCreature(NPC_TRIGGER, MiddleRoomLocation, TEMPSUMMON_CORPSE_DESPAWN))
triggerGUID = trigger->GetGUID();
me->GetMotionMaster()->MoveTakeoff(11, Phase2Floating);
diff --git a/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/boss_devourer_of_souls.cpp b/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/boss_devourer_of_souls.cpp
index 5a4532be849..265db80d353 100644
--- a/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/boss_devourer_of_souls.cpp
+++ b/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/boss_devourer_of_souls.cpp
@@ -309,7 +309,7 @@ class boss_devourer_of_souls : public CreatureScript
case EVENT_WAILING_SOULS_TICK:
beamAngle += beamAngleDiff;
- me->SetFacingTo(beamAngle, true);
+ me->SetFacingTo(beamAngle);
me->StopMoving();
DoCast(me, SPELL_WAILING_SOULS);
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp
index 590291c6e30..e1cc3c12f54 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp
@@ -735,7 +735,7 @@ class npc_spinestalker : public CreatureScript
me->SetDisableGravity(false);
me->SetAnimTier(UNIT_BYTE1_FLAG_NONE, false);
me->SetHomePosition(SpinestalkerLandPos);
- me->SetFacingTo(SpinestalkerLandPos.GetOrientation(), true);
+ me->SetFacingTo(SpinestalkerLandPos.GetOrientation());
me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
me->SetReactState(REACT_AGGRESSIVE);
}
@@ -872,7 +872,7 @@ class npc_rimefang : public CreatureScript
me->SetDisableGravity(false);
me->SetAnimTier(UNIT_BYTE1_FLAG_NONE, false);
me->SetHomePosition(RimefangLandPos);
- me->SetFacingTo(RimefangLandPos.GetOrientation(), true);
+ me->SetFacingTo(RimefangLandPos.GetOrientation());
me->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC);
me->SetReactState(REACT_AGGRESSIVE);
}
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp
index 73877fa1ac9..7f6b970e42e 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp
@@ -819,7 +819,7 @@ class boss_the_lich_king : public CreatureScript
events.ScheduleEvent(EVENT_INTRO_TALK_1, 9000, 0, PHASE_INTRO);
break;
case POINT_CENTER_1:
- me->SetFacingTo(0.0f, true);
+ me->SetFacingTo(0.0f);
Talk(SAY_LK_REMORSELESS_WINTER);
me->GetMap()->SetZoneMusic(AREA_ICECROWN_CITADEL, MUSIC_SPECIAL);
DoCast(me, SPELL_REMORSELESS_WINTER_1);
@@ -835,7 +835,7 @@ class boss_the_lich_king : public CreatureScript
events.ScheduleEvent(EVENT_SOUL_REAPER, 94000, 0, PHASE_TWO);
break;
case POINT_CENTER_2:
- me->SetFacingTo(0.0f, true);
+ me->SetFacingTo(0.0f);
Talk(SAY_LK_REMORSELESS_WINTER);
me->GetMap()->SetZoneMusic(AREA_ICECROWN_CITADEL, MUSIC_SPECIAL);
DoCast(me, SPELL_REMORSELESS_WINTER_2);
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_algalon_the_observer.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_algalon_the_observer.cpp
index 1884efd8916..e70769ffd11 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_algalon_the_observer.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_algalon_the_observer.cpp
@@ -444,7 +444,7 @@ class boss_algalon_the_observer : public CreatureScript
me->SetDisableGravity(false);
else if (pointId == POINT_ALGALON_OUTRO)
{
- me->SetFacingTo(1.605703f, true);
+ me->SetFacingTo(1.605703f);
events.ScheduleEvent(EVENT_OUTRO_3, 1200);
events.ScheduleEvent(EVENT_OUTRO_4, 2400);
events.ScheduleEvent(EVENT_OUTRO_5, 8500);
diff --git a/src/server/scripts/Northrend/VioletHold/boss_erekem.cpp b/src/server/scripts/Northrend/VioletHold/boss_erekem.cpp
index 5a4c90451f4..5b7eabe4f00 100644
--- a/src/server/scripts/Northrend/VioletHold/boss_erekem.cpp
+++ b/src/server/scripts/Northrend/VioletHold/boss_erekem.cpp
@@ -78,7 +78,7 @@ class boss_erekem : public CreatureScript
void MovementInform(uint32 type, uint32 pointId) override
{
if (type == EFFECT_MOTION_TYPE && pointId == POINT_INTRO)
- me->SetFacingTo(4.921828f, true);
+ me->SetFacingTo(4.921828f);
}
void JustReachedHome() override
diff --git a/src/server/scripts/Northrend/zone_dragonblight.cpp b/src/server/scripts/Northrend/zone_dragonblight.cpp
index 74d5af9f484..f2c59c76c1d 100644
--- a/src/server/scripts/Northrend/zone_dragonblight.cpp
+++ b/src/server/scripts/Northrend/zone_dragonblight.cpp
@@ -174,7 +174,7 @@ class npc_commander_eligor_dawnbringer : public CreatureScript
{
if (id == 1)
{
- me->SetFacingTo(PosTalkLocations[talkWing].GetOrientation(), true);
+ me->SetFacingTo(PosTalkLocations[talkWing].GetOrientation());
TurnAudience();
switch (talkWing)
diff --git a/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp b/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp
index e66584c802e..c92e304152c 100644
--- a/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp
+++ b/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp
@@ -865,7 +865,7 @@ public:
events.ScheduleEvent(EVENT_FLY_TO_RANDOM_PILLAR, Seconds(2), GROUP_PHASE_ALL);
break;
case EVENT_CHANGE_ORIENTATION:
- me->SetFacingTo(_orientation, true);
+ me->SetFacingTo(_orientation);
break;
case EVENT_FLY:
ChangeOrientation(3.137039f);
@@ -882,7 +882,7 @@ public:
case EVENT_FACE_MIDDLE:
{
float angle = me->GetAngle(IllidanMiddlePoint);
- me->SetFacingTo(angle, true);
+ me->SetFacingTo(angle);
break;
}
case EVENT_EYE_BLAST:
@@ -1299,7 +1299,7 @@ public:
me->SetEmoteState(EMOTE_STATE_READY1H);
break;
case EVENT_CHANGE_ORIENTATION:
- me->SetFacingTo(_orientation, true);
+ me->SetFacingTo(_orientation);
break;
case EVENT_HEALING_POTION:
if (me->HealthBelowPct(20))
diff --git a/src/server/scripts/Outland/BlackTemple/boss_shade_of_akama.cpp b/src/server/scripts/Outland/BlackTemple/boss_shade_of_akama.cpp
index 4a868084e41..610d12a377b 100644
--- a/src/server/scripts/Outland/BlackTemple/boss_shade_of_akama.cpp
+++ b/src/server/scripts/Outland/BlackTemple/boss_shade_of_akama.cpp
@@ -499,7 +499,7 @@ public:
_events.Repeat(Seconds(3), Seconds(7));
break;
case EVENT_START_SOUL_RETRIEVE:
- me->SetFacingTo(FACE_THE_DOOR, true);
+ me->SetFacingTo(FACE_THE_DOOR);
DoCast(SPELL_AKAMA_SOUL_RETRIEVE);
_events.ScheduleEvent(EVENT_START_BROKEN_FREE, Seconds(15));
break;
diff --git a/src/server/scripts/Outland/TempestKeep/Eye/boss_kaelthas.cpp b/src/server/scripts/Outland/TempestKeep/Eye/boss_kaelthas.cpp
index 9ba6a1cefc9..e08071fc475 100644
--- a/src/server/scripts/Outland/TempestKeep/Eye/boss_kaelthas.cpp
+++ b/src/server/scripts/Outland/TempestKeep/Eye/boss_kaelthas.cpp
@@ -597,7 +597,7 @@ class boss_kaelthas : public CreatureScript
events.ScheduleEvent(EVENT_TRANSITION_1, 1000);
break;
case POINT_TRANSITION_CENTER_ASCENDING:
- me->SetFacingTo(float(M_PI), true);
+ me->SetFacingTo(float(M_PI));
Talk(SAY_PHASE5_NUTS);
me->AddUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
me->SetDisableGravity(true);
diff --git a/src/server/scripts/Outland/zone_hellfire_peninsula.cpp b/src/server/scripts/Outland/zone_hellfire_peninsula.cpp
index b69d42244b0..3a3902a5668 100644
--- a/src/server/scripts/Outland/zone_hellfire_peninsula.cpp
+++ b/src/server/scripts/Outland/zone_hellfire_peninsula.cpp
@@ -957,7 +957,7 @@ public:
void StartFight(Player* player)
{
me->Dismount();
- me->SetFacingToObject(player, true);
+ me->SetFacingToObject(player);
me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP);
_playerGUID = player->GetGUID();
_events.ScheduleEvent(EVENT_TALK, Seconds(2));