diff options
Diffstat (limited to 'src')
| -rwxr-xr-x | src/server/game/Entities/Object/Object.cpp | 21 | ||||
| -rwxr-xr-x | src/server/game/Entities/Object/Object.h | 2 |
2 files changed, 6 insertions, 17 deletions
diff --git a/src/server/game/Entities/Object/Object.cpp b/src/server/game/Entities/Object/Object.cpp index 6271af99fcd..8b22a48522d 100755 --- a/src/server/game/Entities/Object/Object.cpp +++ b/src/server/game/Entities/Object/Object.cpp @@ -138,20 +138,7 @@ void Object::_Create(uint32 guidlow, uint32 entry, HighGuid guidhigh) uint64 guid = MAKE_NEW_GUID(guidlow, entry, guidhigh); SetUInt64Value(OBJECT_FIELD_GUID, guid); - uint32 type = 0; - switch (m_objectType) - { - //case TYPEID_ITEM: type = 3; break; - //case TYPEID_CONTAINER: type = 7; break; //+4 - //case TYPEID_UNIT: type = 9; break; //+2 - //case TYPEID_PLAYER: type = 25; break; //+16 - //case TYPEID_GAMEOBJECT: type = 33; break; //+8 - case TYPEID_DYNAMICOBJECT: type = 65; break; //+32 - //case TYPEID_CORPSE: type = 129; break; //+64 - default: type = m_objectType; break; - } - SetUInt32Value(OBJECT_FIELD_TYPE, type); - //SetUInt32Value(OBJECT_FIELD_TYPE, m_objectType); + SetUInt16Value(OBJECT_FIELD_TYPE, 0, m_objectType); m_PackGUID.wpos(0); m_PackGUID.appendPackGUID(GetGUID()); } @@ -324,7 +311,7 @@ void Object::_BuildMovementUpdate(ByteBuffer* data, uint16 flags) const uint16 movementFlagsExtra = self->m_movementInfo.GetExtraMovementFlags(); data->WriteBit(!movementFlags); - data->WriteBit(0); // Has Orientation + data->WriteBit(G3D::fuzzyEq(self->GetOrientation(), 0.0f)); // Has Orientation data->WriteBit(guid[7]); data->WriteBit(guid[3]); data->WriteBit(guid[2]); @@ -491,7 +478,9 @@ void Object::_BuildMovementUpdate(ByteBuffer* data, uint16 flags) const *data << self->GetSpeed(MOVE_FLIGHT_BACK); data->WriteByteSeq(guid[6]); *data << self->GetSpeed(MOVE_TURN_RATE); - *data << float(self->GetOrientation()); + if (!G3D::fuzzyEq(self->GetOrientation(), 0.0f)) + *data << float(self->GetOrientation()); + *data << self->GetSpeed(MOVE_RUN); if ((movementFlags & (MOVEMENTFLAG_SWIMMING | MOVEMENTFLAG_FLYING)) || (movementFlagsExtra & MOVEMENTFLAG2_ALWAYS_ALLOW_PITCHING)) diff --git a/src/server/game/Entities/Object/Object.h b/src/server/game/Entities/Object/Object.h index 3e00e775b4b..e417b3bdc2d 100755 --- a/src/server/game/Entities/Object/Object.h +++ b/src/server/game/Entities/Object/Object.h @@ -935,7 +935,7 @@ class WorldObject : public Object, public WorldLocation virtual bool _IsWithinDist(WorldObject const* obj, float dist2compare, bool is3D) const; - bool CanNeverSee(WorldObject const* obj) const { return GetMap() != obj->GetMap() || !InSamePhase(obj); } + bool CanNeverSee(WorldObject const* obj) const { return !IsInMap(obj) || !InSamePhase(obj); } virtual bool CanAlwaysSee(WorldObject const* /*obj*/) const { return false; } bool CanDetect(WorldObject const* obj, bool ignoreStealth) const; bool CanDetectInvisibilityOf(WorldObject const* obj) const; |
