aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Entities/Object
diff options
context:
space:
mode:
authorjackpoz <giacomopoz@gmail.com>2014-04-25 21:19:30 +0200
committerjackpoz <giacomopoz@gmail.com>2014-04-25 21:19:30 +0200
commit2585e799f95f259dd4b422daf15ef7963173c408 (patch)
tree96335cb3da64afc64af4ad3c3e994f441059832d /src/server/game/Entities/Object
parentdc8a7a6fa5a3afb8f95958db2bdc0888361e56f8 (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.cpp19
-rw-r--r--src/server/game/Entities/Object/Object.h20
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; }