diff options
| author | Shauren <shauren.trinity@gmail.com> | 2012-08-10 14:10:57 +0200 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2012-08-10 14:10:57 +0200 |
| commit | 9538fb6d5a508adbebc9dd94ce25cbca6bd48789 (patch) | |
| tree | e604080395845db3826549230689c299b83824c0 /src/server/game/Entities/Creature | |
| parent | 5e1e9bb4dd10979c3bdf8debafc4e669355d4586 (diff) | |
Core/Movement: Ensured object orientation is always within 0-2pi range, this fixes movement.
Diffstat (limited to 'src/server/game/Entities/Creature')
| -rwxr-xr-x | src/server/game/Entities/Creature/Creature.cpp | 2 | ||||
| -rwxr-xr-x | src/server/game/Entities/Creature/Creature.h | 4 |
2 files changed, 4 insertions, 2 deletions
diff --git a/src/server/game/Entities/Creature/Creature.cpp b/src/server/game/Entities/Creature/Creature.cpp index c46fc0d91d5..de5d0a0303c 100755 --- a/src/server/game/Entities/Creature/Creature.cpp +++ b/src/server/game/Entities/Creature/Creature.cpp @@ -249,6 +249,7 @@ void Creature::RemoveCorpse(bool setSpawnTime) float x, y, z, o; GetRespawnPosition(x, y, z, &o); + o = MapManager::NormalizeOrientation(o); SetHomePosition(x, y, z, o); GetMap()->CreatureRelocation(this, x, y, z, o); } @@ -2464,6 +2465,7 @@ void Creature::SetPosition(float x, float y, float z, float o) return; } + o = MapManager::NormalizeOrientation(o); GetMap()->CreatureRelocation(ToCreature(), x, y, z, o); if (IsVehicle()) GetVehicleKit()->RelocatePassengers(x, y, z, o); diff --git a/src/server/game/Entities/Creature/Creature.h b/src/server/game/Entities/Creature/Creature.h index f58e49b9e14..5f933bc6ca1 100755 --- a/src/server/game/Entities/Creature/Creature.h +++ b/src/server/game/Entities/Creature/Creature.h @@ -673,8 +673,8 @@ class Creature : public Unit, public GridObject<Creature>, public MapCreature void SetHomePosition(float x, float y, float z, float o) { m_homePosition.Relocate(x, y, z, o); } void SetHomePosition(const Position &pos) { m_homePosition.Relocate(pos); } - void GetHomePosition(float &x, float &y, float &z, float &ori) { m_homePosition.GetPosition(x, y, z, ori); } - Position GetHomePosition() { return m_homePosition; } + void GetHomePosition(float &x, float &y, float &z, float &ori) const { m_homePosition.GetPosition(x, y, z, ori); } + Position GetHomePosition() const { return m_homePosition; } void SetTransportHomePosition(float x, float y, float z, float o) { m_transportHomePosition.Relocate(x, y, z, o); } void SetTransportHomePosition(const Position &pos) { m_transportHomePosition.Relocate(pos); } |
