aboutsummaryrefslogtreecommitdiff
path: root/src/server/scripts/Commands
diff options
context:
space:
mode:
authorariel- <ariel.silva305@gmail.com>2016-07-30 11:34:02 +0200
committerShauren <shauren.trinity@gmail.com>2016-07-30 11:36:18 +0200
commit2967bf59b4a47837b85c995b732a6761c9c35f7e (patch)
tree58a617b694033317d816106186036cdfb564886d /src/server/scripts/Commands
parentc271e196c8bb02705d8a3e4a7432bbc2959f0b1a (diff)
Core/GameObjects: Gameobject rotation (from cmangos/mangos-wotlk@2bcbc0f) (#14146)
cmangos/mangos-wotlk@0fe88f35dfb: [11531] Normalize gameobject's quaternion, thanks to zergtmn for pointing cmangos/mangos-wotlk@060dfb791b: [11667] Implement transport path rotation cmangos/mangos-wotlk@565f52c6c1: [11806] A bit gameobject code refactoring cmangos/mangos-wotlk@6874951: [11807] Add gameobject_addon table Closes #14146
Diffstat (limited to 'src/server/scripts/Commands')
-rw-r--r--src/server/scripts/Commands/cs_gobject.cpp24
1 files changed, 17 insertions, 7 deletions
diff --git a/src/server/scripts/Commands/cs_gobject.cpp b/src/server/scripts/Commands/cs_gobject.cpp
index 729dac0ad6f..bb36dcf1326 100644
--- a/src/server/scripts/Commands/cs_gobject.cpp
+++ b/src/server/scripts/Commands/cs_gobject.cpp
@@ -148,7 +148,7 @@ public:
GameObject* object = new GameObject;
ObjectGuid::LowType guidLow = map->GenerateLowGuid<HighGuid::GameObject>();
- if (!object->Create(guidLow, objectInfo->entry, map, player->GetPhaseMaskForSpawn(), x, y, z, o, 0.0f, 0.0f, 0.0f, 0.0f, 0, GO_STATE_READY))
+ if (!object->Create(guidLow, objectInfo->entry, map, player->GetPhaseMaskForSpawn(), x, y, z, o, G3D::Quat(), 0, GO_STATE_READY))
{
delete object;
return false;
@@ -415,20 +415,30 @@ public:
}
char* orientation = strtok(NULL, " ");
- float o;
+ float oz = 0.f, oy = 0.f, ox = 0.f;
if (orientation)
- o = (float)atof(orientation);
+ {
+ oz = float(atof(orientation));
+
+ orientation = strtok(NULL, " ");
+ if (orientation)
+ {
+ oy = float(atof(orientation));
+ orientation = strtok(NULL, " ");
+ if (orientation)
+ ox = float(atof(orientation));
+ }
+ }
else
{
Player* player = handler->GetSession()->GetPlayer();
- o = player->GetOrientation();
+ oz = player->GetOrientation();
}
Map* map = object->GetMap();
-
- object->Relocate(object->GetPositionX(), object->GetPositionY(), object->GetPositionZ(), o);
- object->UpdateRotationFields();
+ object->Relocate(object->GetPositionX(), object->GetPositionY(), object->GetPositionZ());
+ object->SetWorldRotationAngles(oz, oy, ox);
object->SaveToDB();
// Generate a completely new spawn with new guid