diff options
| author | jackpoz <giacomopoz@gmail.com> | 2014-04-25 21:19:30 +0200 |
|---|---|---|
| committer | jackpoz <giacomopoz@gmail.com> | 2014-04-25 21:19:30 +0200 |
| commit | 2585e799f95f259dd4b422daf15ef7963173c408 (patch) | |
| tree | 96335cb3da64afc64af4ad3c3e994f441059832d /src/server/game/Entities/Object | |
| parent | dc8a7a6fa5a3afb8f95958db2bdc0888361e56f8 (diff) | |
Core/Misc: Change how Position struct is retrieved
Update Position::GetPosition() and similar methods signatures to reflect 2a4c9bcaf910430cdf3070987ce085da3c2666da changes by return a Position object instead of accepting a Position parameter by reference.
Diffstat (limited to 'src/server/game/Entities/Object')
| -rw-r--r-- | src/server/game/Entities/Object/Object.cpp | 19 | ||||
| -rw-r--r-- | src/server/game/Entities/Object/Object.h | 20 |
2 files changed, 24 insertions, 15 deletions
diff --git a/src/server/game/Entities/Object/Object.cpp b/src/server/game/Entities/Object/Object.cpp index c0a54060298..9827babddd7 100644 --- a/src/server/game/Entities/Object/Object.cpp +++ b/src/server/game/Entities/Object/Object.cpp @@ -1555,11 +1555,11 @@ void WorldObject::GetRandomPoint(const Position &pos, float distance, float &ran UpdateGroundPositionZ(rand_x, rand_y, rand_z); // update to LOS height if available } -void WorldObject::GetRandomPoint(const Position &srcPos, float distance, Position &pos) const +Position WorldObject::GetRandomPoint(const Position &srcPos, float distance) const { float x, y, z; GetRandomPoint(srcPos, distance, x, y, z); - pos.Relocate(x, y, z, GetOrientation()); + return Position(x, y, z, GetOrientation()); } void WorldObject::UpdateGroundPositionZ(float x, float y, float &z) const @@ -2527,22 +2527,25 @@ void WorldObject::GetClosePoint(float &x, float &y, float &z, float size, float GetNearPoint(NULL, x, y, z, size, distance2d, GetOrientation() + angle); } -void WorldObject::GetNearPosition(Position &pos, float dist, float angle) +Position WorldObject::GetNearPosition(float dist, float angle) { - GetPosition(&pos); + Position pos = GetPosition(); MovePosition(pos, dist, angle); + return pos; } -void WorldObject::GetFirstCollisionPosition(Position &pos, float dist, float angle) +Position WorldObject::GetFirstCollisionPosition(float dist, float angle) { - GetPosition(&pos); + Position pos = GetPosition(); MovePositionToFirstCollision(pos, dist, angle); + return pos; } -void WorldObject::GetRandomNearPosition(Position &pos, float radius) +Position WorldObject::GetRandomNearPosition(float radius) { - GetPosition(&pos); + Position pos = GetPosition(); MovePosition(pos, radius * (float)rand_norm(), (float)rand_norm() * static_cast<float>(2 * M_PI)); + return pos; } void WorldObject::GetContactPoint(const WorldObject* obj, float &x, float &y, float &z, float distance2d /*= CONTACT_DISTANCE*/) const diff --git a/src/server/game/Entities/Object/Object.h b/src/server/game/Entities/Object/Object.h index 208077e51cb..3d308ee88c1 100644 --- a/src/server/game/Entities/Object/Object.h +++ b/src/server/game/Entities/Object/Object.h @@ -331,10 +331,10 @@ struct Position { x = m_positionX; y = m_positionY; z = m_positionZ; } void GetPosition(float &x, float &y, float &z, float &o) const { x = m_positionX; y = m_positionY; z = m_positionZ; o = m_orientation; } - void GetPosition(Position* pos) const + + Position GetPosition() const { - if (pos) - pos->Relocate(m_positionX, m_positionY, m_positionZ, m_orientation); + return *this; } Position::PositionXYZStreamer PositionXYZStream() @@ -489,6 +489,12 @@ class WorldLocation : public Position void WorldRelocate(const WorldLocation &loc) { m_mapId = loc.GetMapId(); Relocate(loc); } + + WorldLocation GetWorldLocation() const + { + return *this; + } + uint32 GetMapId() const { return m_mapId; } uint32 m_mapId; @@ -579,10 +585,10 @@ class WorldObject : public Object, public WorldLocation void GetNearPoint(WorldObject const* searcher, float &x, float &y, float &z, float searcher_size, float distance2d, float absAngle) const; void GetClosePoint(float &x, float &y, float &z, float size, float distance2d = 0, float angle = 0) const; void MovePosition(Position &pos, float dist, float angle); - void GetNearPosition(Position &pos, float dist, float angle); + Position GetNearPosition(float dist, float angle); void MovePositionToFirstCollision(Position &pos, float dist, float angle); - void GetFirstCollisionPosition(Position &pos, float dist, float angle); - void GetRandomNearPosition(Position &pos, float radius); + Position GetFirstCollisionPosition(float dist, float angle); + Position GetRandomNearPosition(float radius); void GetContactPoint(WorldObject const* obj, float &x, float &y, float &z, float distance2d = CONTACT_DISTANCE) const; float GetObjectSize() const; @@ -590,7 +596,7 @@ class WorldObject : public Object, public WorldLocation void UpdateAllowedPositionZ(float x, float y, float &z) const; void GetRandomPoint(Position const &srcPos, float distance, float &rand_x, float &rand_y, float &rand_z) const; - void GetRandomPoint(Position const &srcPos, float distance, Position &pos) const; + Position GetRandomPoint(Position const &srcPos, float distance) const; uint32 GetInstanceId() const { return m_InstanceId; } |
