From b239afb0ef3086020637f43c8a48a38eef6b9fee Mon Sep 17 00:00:00 2001 From: ariel- Date: Sat, 3 Sep 2016 22:30:51 +0200 Subject: 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) --- src/server/scripts/Commands/cs_gobject.cpp | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'src/server/scripts/Commands') diff --git a/src/server/scripts/Commands/cs_gobject.cpp b/src/server/scripts/Commands/cs_gobject.cpp index 2f72e6477e2..c0d0ae92efb 100644 --- a/src/server/scripts/Commands/cs_gobject.cpp +++ b/src/server/scripts/Commands/cs_gobject.cpp @@ -118,10 +118,9 @@ public: if (!objectId) return false; - char* spawntimeSecs = strtok(NULL, " "); - - const GameObjectTemplate* objectInfo = sObjectMgr->GetGameObjectTemplate(objectId); + char* spawntimeSecs = strtok(nullptr, " "); + GameObjectTemplate const* objectInfo = sObjectMgr->GetGameObjectTemplate(objectId); if (!objectInfo) { handler->PSendSysMessage(LANG_GAMEOBJECT_NOT_EXIST, objectId); @@ -141,8 +140,10 @@ public: Player* player = handler->GetSession()->GetPlayer(); Map* map = player->GetMap(); - GameObject* object = new GameObject; - if (!object->Create(objectInfo->entry, map, 0, *player, G3D::Quat(), 255, GO_STATE_READY)) + GameObject* object = new GameObject(); + + G3D::Quat rot = G3D::Matrix3::fromEulerAnglesZYX(player->GetOrientation(), 0.f, 0.f); + if (!object->Create(objectInfo->entry, map, 0, *player, rot, 255, GO_STATE_READY)) { delete object; return false; -- cgit v1.2.3