diff options
| author | Shauren <shauren.trinity@gmail.com> | 2013-06-18 18:15:33 +0200 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2013-06-18 18:15:33 +0200 |
| commit | 89ec90753914ae89b2dbbc7a343cd8a667410af3 (patch) | |
| tree | 4e6ce6db829b74c80633c5535490677044b2eea6 /src/server/game/Entities/Object | |
| parent | 47ea7943e5dcd77305631bc453c52c31646be2ea (diff) | |
Core/Objects: Refactored MovementInfo structure
Diffstat (limited to 'src/server/game/Entities/Object')
| -rw-r--r-- | src/server/game/Entities/Object/Object.cpp | 18 | ||||
| -rw-r--r-- | src/server/game/Entities/Object/Object.h | 59 |
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(); }; |
