aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/AI/SmartScripts
diff options
context:
space:
mode:
authorariel- <ariel-@users.noreply.github.com>2016-09-03 22:30:51 +0200
committerjoschiwald <joschiwald.trinity@gmail.com>2017-02-19 15:34:57 +0100
commitb239afb0ef3086020637f43c8a48a38eef6b9fee (patch)
tree28374e0ed9a7d739be78a94045ff5e00ffb15336 /src/server/game/AI/SmartScripts
parentdd0df772df4603b95dc133dc9b896e5fc8e3bdf8 (diff)
Core/Misc: calculate rotation fields from orientation in some places it's impossible to get:
- SmartScripts: SMART_ACTION_SUMMON_GO - Spell Effects: * SPELL_EFFECT_DUEL * SPELL_EFFECT_SUMMON_OBJECT_WILD * SPELL_EFFECT_SUMMON_OBJECT_SLOT1 * SPELL_EFFECT_SUMMON_OBJECT_SLOT2 * SPELL_EFFECT_SUMMON_OBJECT_SLOT3 * SPELL_EFFECT_SUMMON_OBJECT_SLOT4 - Command Scripts: .gobject add Closes #17891 (cherry picked from commit 14445d2202de1b58dcb04c5457be682b8e7075ca)
Diffstat (limited to 'src/server/game/AI/SmartScripts')
-rw-r--r--src/server/game/AI/SmartScripts/SmartScript.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/server/game/AI/SmartScripts/SmartScript.cpp b/src/server/game/AI/SmartScripts/SmartScript.cpp
index cad5eb63cbc..c21c3b8fe45 100644
--- a/src/server/game/AI/SmartScripts/SmartScript.cpp
+++ b/src/server/game/AI/SmartScripts/SmartScript.cpp
@@ -1305,7 +1305,8 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u
continue;
Position pos = (*itr)->GetPositionWithOffset(Position(e.target.x, e.target.y, e.target.z, e.target.o));
- GetBaseObject()->SummonGameObject(e.action.summonGO.entry, pos, G3D::Quat(), e.action.summonGO.despawnTime);
+ G3D::Quat rot = G3D::Matrix3::fromEulerAnglesZYX(pos.GetOrientation(), 0.f, 0.f);
+ GetBaseObject()->SummonGameObject(e.action.summonGO.entry, pos, rot, e.action.summonGO.despawnTime);
}
delete targets;
@@ -1314,7 +1315,8 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u
if (e.GetTargetType() != SMART_TARGET_POSITION)
break;
- GetBaseObject()->SummonGameObject(e.action.summonGO.entry, Position(e.target.x, e.target.y, e.target.z, e.target.o), G3D::Quat(), e.action.summonGO.despawnTime);
+ G3D::Quat rot = G3D::Matrix3::fromEulerAnglesZYX(e.target.o, 0.f, 0.f);
+ GetBaseObject()->SummonGameObject(e.action.summonGO.entry, Position(e.target.x, e.target.y, e.target.z, e.target.o), rot, e.action.summonGO.despawnTime);
break;
}
case SMART_ACTION_KILL_UNIT: