aboutsummaryrefslogtreecommitdiff
path: root/src/server/scripts/Commands
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/scripts/Commands
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/scripts/Commands')
-rw-r--r--src/server/scripts/Commands/cs_gobject.cpp11
1 files changed, 6 insertions, 5 deletions
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;