diff options
| author | ariel- <ariel-@users.noreply.github.com> | 2016-09-03 17:30:51 -0300 |
|---|---|---|
| committer | ariel- <ariel-@users.noreply.github.com> | 2016-09-03 17:31:29 -0300 |
| commit | 14445d2202de1b58dcb04c5457be682b8e7075ca (patch) | |
| tree | 36ea2a96f62bc01450769890812d64a12ceb9e80 /src/server/game/AI | |
| parent | 7026c7ed7a39ae258eb0ba01f6946c8bc1594ce0 (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
Diffstat (limited to 'src/server/game/AI')
| -rw-r--r-- | src/server/game/AI/SmartScripts/SmartScript.cpp | 6 |
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 fd7cbe8c947..24f920f8c42 100644 --- a/src/server/game/AI/SmartScripts/SmartScript.cpp +++ b/src/server/game/AI/SmartScripts/SmartScript.cpp @@ -1272,7 +1272,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; @@ -1281,7 +1282,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: |
