aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Entities/Object
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2013-06-18 18:15:33 +0200
committerShauren <shauren.trinity@gmail.com>2013-06-18 18:15:33 +0200
commit89ec90753914ae89b2dbbc7a343cd8a667410af3 (patch)
tree4e6ce6db829b74c80633c5535490677044b2eea6 /src/server/game/Entities/Object
parent47ea7943e5dcd77305631bc453c52c31646be2ea (diff)
Core/Objects: Refactored MovementInfo structure
Diffstat (limited to 'src/server/game/Entities/Object')
-rw-r--r--src/server/game/Entities/Object/Object.cpp18
-rw-r--r--src/server/game/Entities/Object/Object.h59
2 files changed, 48 insertions, 29 deletions
diff --git a/src/server/game/Entities/Object/Object.cpp b/src/server/game/Entities/Object/Object.cpp
index 5ddc632e573..ec6a3e518c4 100644
--- a/src/server/game/Entities/Object/Object.cpp
+++ b/src/server/game/Entities/Object/Object.cpp
@@ -1078,12 +1078,12 @@ void MovementInfo::OutDebug()
if (flags & MOVEMENTFLAG_ONTRANSPORT)
{
TC_LOG_INFO(LOG_FILTER_GENERAL, "TRANSPORT:");
- TC_LOG_INFO(LOG_FILTER_GENERAL, "guid: " UI64FMTD, t_guid);
- TC_LOG_INFO(LOG_FILTER_GENERAL, "position: `%s`", t_pos.ToString().c_str());
- TC_LOG_INFO(LOG_FILTER_GENERAL, "seat: %i", t_seat);
- TC_LOG_INFO(LOG_FILTER_GENERAL, "time: %u", t_time);
+ TC_LOG_INFO(LOG_FILTER_GENERAL, "guid: " UI64FMTD, transport.guid);
+ TC_LOG_INFO(LOG_FILTER_GENERAL, "position: `%s`", transport.pos.ToString().c_str());
+ TC_LOG_INFO(LOG_FILTER_GENERAL, "seat: %i", transport.seat);
+ TC_LOG_INFO(LOG_FILTER_GENERAL, "time: %u", transport.time);
if (flags2 & MOVEMENTFLAG2_INTERPOLATED_MOVEMENT)
- TC_LOG_INFO(LOG_FILTER_GENERAL, "time2: %u", t_time2);
+ TC_LOG_INFO(LOG_FILTER_GENERAL, "time2: %u", transport.time2);
}
if ((flags & (MOVEMENTFLAG_SWIMMING | MOVEMENTFLAG_FLYING)) || (flags2 & MOVEMENTFLAG2_ALWAYS_ALLOW_PITCHING))
@@ -1091,7 +1091,7 @@ void MovementInfo::OutDebug()
TC_LOG_INFO(LOG_FILTER_GENERAL, "fallTime: %u", fallTime);
if (flags & MOVEMENTFLAG_FALLING)
- TC_LOG_INFO(LOG_FILTER_GENERAL, "j_zspeed: %f j_sinAngle: %f j_cosAngle: %f j_xyspeed: %f", j_zspeed, j_sinAngle, j_cosAngle, j_xyspeed);
+ TC_LOG_INFO(LOG_FILTER_GENERAL, "j_zspeed: %f j_sinAngle: %f j_cosAngle: %f j_xyspeed: %f", jump.zspeed, jump.sinAngle, jump.cosAngle, jump.xyspeed);
if (flags & MOVEMENTFLAG_SPLINE_ELEVATION)
TC_LOG_INFO(LOG_FILTER_GENERAL, "splineElevation: %f", splineElevation);
@@ -1216,12 +1216,12 @@ bool WorldObject::_IsWithinDist(WorldObject const* obj, float dist2compare, bool
if (m_transport && obj->GetTransport() && obj->GetTransport()->GetGUIDLow() == m_transport->GetGUIDLow())
{
- float dtx = m_movementInfo.t_pos.m_positionX - obj->m_movementInfo.t_pos.m_positionX;
- float dty = m_movementInfo.t_pos.m_positionY - obj->m_movementInfo.t_pos.m_positionY;
+ float dtx = m_movementInfo.transport.pos.m_positionX - obj->m_movementInfo.transport.pos.m_positionX;
+ float dty = m_movementInfo.transport.pos.m_positionY - obj->m_movementInfo.transport.pos.m_positionY;
float disttsq = dtx * dtx + dty * dty;
if (is3D)
{
- float dtz = m_movementInfo.t_pos.m_positionZ - obj->m_movementInfo.t_pos.m_positionZ;
+ float dtz = m_movementInfo.transport.pos.m_positionZ - obj->m_movementInfo.transport.pos.m_positionZ;
disttsq += dtz * dtz;
}
return disttsq < (maxdist * maxdist);
diff --git a/src/server/game/Entities/Object/Object.h b/src/server/game/Entities/Object/Object.h
index 25f71deabe9..2bfb9633066 100644
--- a/src/server/game/Entities/Object/Object.h
+++ b/src/server/game/Entities/Object/Object.h
@@ -407,26 +407,54 @@ struct MovementInfo
uint16 flags2;
Position pos;
uint32 time;
+
// transport
- uint64 t_guid;
- Position t_pos;
- int8 t_seat;
- uint32 t_time;
- uint32 t_time2;
+ struct TransportInfo
+ {
+ void Reset()
+ {
+ guid = 0;
+ pos.Relocate(0.0f, 0.0f, 0.0f, 0.0f);
+ seat = -1;
+ time = 0;
+ time2 = 0;
+ }
+
+ uint64 guid;
+ Position pos;
+ int8 seat;
+ uint32 time;
+ uint32 time2;
+ } transport;
+
// swimming/flying
float pitch;
+
// falling
uint32 fallTime;
- // jumping
- float j_zspeed, j_sinAngle, j_cosAngle, j_xyspeed;
+
+ // jumping
+ struct JumpInfo
+ {
+ void Reset()
+ {
+ zspeed = sinAngle = cosAngle = xyspeed = 0.0f;
+ }
+
+ float zspeed, sinAngle, cosAngle, xyspeed;
+
+ } jump;
+
// spline
float splineElevation;
MovementInfo() :
- guid(), flags(), flags2(), pos(), time(), t_guid(), t_pos(),
- t_seat(-1), t_time(), t_time2(), pitch(), fallTime(),
- j_zspeed(), j_sinAngle(), j_cosAngle(), j_xyspeed()
- { }
+ guid(0), flags(0), flags2(0), time(0), pitch(0.0f)
+ {
+ pos.Relocate(0.0f, 0.0f, 0.0f, 0.0f);
+ transport.Reset();
+ jump.Reset();
+ }
uint32 GetMovementFlags() const { return flags; }
void SetMovementFlags(uint32 flag) { flags = flag; }
@@ -440,15 +468,6 @@ struct MovementInfo
void SetFallTime(uint32 time) { fallTime = time; }
- void ClearTransport()
- {
- t_guid = 0;
- t_pos.Relocate(0.0f, 0.0f, 0.0f, 0.0f);
- t_seat = -1;
- t_time = 0;
- t_time2 = 0;
- }
-
void OutDebug();
};