aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorModoX <moardox@gmail.com>2024-01-08 21:19:44 +0100
committerfunjoker <funjoker109@gmail.com>2024-01-09 20:44:00 +0100
commit82b605645b96722b92b8200ed90503cb87bf7aa7 (patch)
treeae85ce8389e99459d4805ab3e0bbe280f9f0eb35 /src
parent071b04e987dbb7c51357c4f080145ba1537205db (diff)
Core/Spells: Added option to override orientation for target types using spell_target_position table (#29551)
(cherry picked from commit e8849ca5a14719e7d395db7907bac26705f25dbf)
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Spells/SpellMgr.cpp17
1 files changed, 11 insertions, 6 deletions
diff --git a/src/server/game/Spells/SpellMgr.cpp b/src/server/game/Spells/SpellMgr.cpp
index 0d7f7ddf240..a2b42cebc22 100644
--- a/src/server/game/Spells/SpellMgr.cpp
+++ b/src/server/game/Spells/SpellMgr.cpp
@@ -1144,8 +1144,8 @@ void SpellMgr::LoadSpellTargetPositions()
mSpellTargetPositions.clear(); // need for reload case
- // 0 1 2 3 4 5
- QueryResult result = WorldDatabase.Query("SELECT ID, EffectIndex, MapID, PositionX, PositionY, PositionZ FROM spell_target_position");
+ // 0 1 2 3 4 5 6
+ QueryResult result = WorldDatabase.Query("SELECT ID, EffectIndex, MapID, PositionX, PositionY, PositionZ, Orientation FROM spell_target_position");
if (!result)
{
TC_LOG_INFO("server.loading", ">> Loaded 0 spell target coordinates. DB table `spell_target_position` is empty.");
@@ -1193,11 +1193,16 @@ void SpellMgr::LoadSpellTargetPositions()
continue;
}
- // target facing is in degrees for 6484 & 9268... (blizz sucks)
- if (spellInfo->GetEffect(effIndex).PositionFacing > 2 * M_PI)
- st.target_Orientation = spellInfo->GetEffect(effIndex).PositionFacing * float(M_PI) / 180;
+ if (!fields[6].IsNull())
+ st.target_Orientation = fields[6].GetFloat();
else
- st.target_Orientation = spellInfo->GetEffect(effIndex).PositionFacing;
+ {
+ // target facing is in degrees for 6484 & 9268... (blizz sucks)
+ if (spellInfo->GetEffect(effIndex).PositionFacing > 2 * float(M_PI))
+ st.target_Orientation = spellInfo->GetEffect(effIndex).PositionFacing * float(M_PI) / 180;
+ else
+ st.target_Orientation = spellInfo->GetEffect(effIndex).PositionFacing;
+ }
auto hasTarget = [&](Targets target)
{