aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Entities/Creature
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2012-08-10 14:10:57 +0200
committerShauren <shauren.trinity@gmail.com>2012-08-10 14:10:57 +0200
commit9538fb6d5a508adbebc9dd94ce25cbca6bd48789 (patch)
treee604080395845db3826549230689c299b83824c0 /src/server/game/Entities/Creature
parent5e1e9bb4dd10979c3bdf8debafc4e669355d4586 (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-xsrc/server/game/Entities/Creature/Creature.cpp2
-rwxr-xr-xsrc/server/game/Entities/Creature/Creature.h4
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); }