Core/Spells: Added option to override orientation for target types using spell_target_position table (#29551)

This commit is contained in:
ModoX
2024-01-08 21:19:44 +01:00
committed by GitHub
parent 277b72ec31
commit e8849ca5a1
2 changed files with 12 additions and 6 deletions

View File

@@ -0,0 +1 @@
ALTER TABLE `spell_target_position` ADD COLUMN `Orientation` float NULL AFTER `PositionZ`;

View File

@@ -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)
{