diff options
| author | funjoker <funjoker109@gmail.com> | 2024-04-01 05:42:09 +0200 |
|---|---|---|
| committer | funjoker <funjoker109@gmail.com> | 2024-04-01 05:42:09 +0200 |
| commit | 7d66813175e368fc3bd9cb2e1ee44f7b047827a0 (patch) | |
| tree | 0a7a8570680a411ee3803c205dc4830effe091cd /src/server/game/Entities/Object | |
| parent | c8bb60791f3ff8c98d76a1c5a5aed3611a157427 (diff) | |
Core: Start updating to 54027
Diffstat (limited to 'src/server/game/Entities/Object')
| -rw-r--r-- | src/server/game/Entities/Object/Object.cpp | 25 | ||||
| -rw-r--r-- | src/server/game/Entities/Object/Updates/UpdateFields.cpp | 8 | ||||
| -rw-r--r-- | src/server/game/Entities/Object/Updates/UpdateFields.h | 2 |
3 files changed, 31 insertions, 4 deletions
diff --git a/src/server/game/Entities/Object/Object.cpp b/src/server/game/Entities/Object/Object.cpp index 2906899aaaa..6794ad6a21e 100644 --- a/src/server/game/Entities/Object/Object.cpp +++ b/src/server/game/Entities/Object/Object.cpp @@ -466,6 +466,10 @@ void Object::BuildMovementUpdate(ByteBuffer* data, CreateObjectBits flags, Playe bool hasMorphCurveID = createProperties && createProperties->MorphCurveId != 0; bool hasFacingCurveID = createProperties && createProperties->FacingCurveId != 0; bool hasMoveCurveID = createProperties && createProperties->MoveCurveId != 0; + bool hasAnimation = createProperties && createProperties->AnimId; + bool hasUnk3 = createProperties && createProperties->Flags.HasFlag(AreaTriggerCreatePropertiesFlag::Unk3); + bool hasAnimKitID = createProperties && createProperties->AnimKitId; + bool hasAnimProgress = false; bool hasAreaTriggerSphere = shape.IsSphere(); bool hasAreaTriggerBox = shape.IsBox(); bool hasAreaTriggerPolygon = shape.IsPolygon(); @@ -475,6 +479,7 @@ void Object::BuildMovementUpdate(ByteBuffer* data, CreateObjectBits flags, Playe bool hasAreaTriggerSpline = areaTrigger->HasSplines(); bool hasOrbit = areaTrigger->HasOrbit(); bool hasMovementScript = false; + bool hasPositionalSoundKitID = false; data->WriteBit(hasAbsoluteOrientation); data->WriteBit(hasDynamicShape); @@ -488,6 +493,11 @@ void Object::BuildMovementUpdate(ByteBuffer* data, CreateObjectBits flags, Playe data->WriteBit(hasMorphCurveID); data->WriteBit(hasFacingCurveID); data->WriteBit(hasMoveCurveID); + data->WriteBit(hasPositionalSoundKitID); + data->WriteBit(hasAnimation); + data->WriteBit(hasAnimKitID); + data->WriteBit(hasUnk3); + data->WriteBit(hasAnimProgress); data->WriteBit(hasAreaTriggerSphere); data->WriteBit(hasAreaTriggerBox); data->WriteBit(hasAreaTriggerPolygon); @@ -498,6 +508,9 @@ void Object::BuildMovementUpdate(ByteBuffer* data, CreateObjectBits flags, Playe data->WriteBit(hasOrbit); data->WriteBit(hasMovementScript); + if (hasUnk3) + data->WriteBit(false); + data->FlushBits(); if (hasAreaTriggerSpline) @@ -523,6 +536,18 @@ void Object::BuildMovementUpdate(ByteBuffer* data, CreateObjectBits flags, Playe if (hasMoveCurveID) *data << uint32(createProperties->MoveCurveId); + if (hasPositionalSoundKitID) + *data << uint32(0); + + if (hasAnimation) + *data << int32(createProperties->AnimId); + + if (hasAnimKitID) + *data << int32(createProperties->AnimKitId); + + if (hasAnimProgress) + *data << uint32(0); + if (hasAreaTriggerSphere) { *data << float(shape.SphereDatas.Radius); diff --git a/src/server/game/Entities/Object/Updates/UpdateFields.cpp b/src/server/game/Entities/Object/Updates/UpdateFields.cpp index 195a6019d1b..412e5d416ea 100644 --- a/src/server/game/Entities/Object/Updates/UpdateFields.cpp +++ b/src/server/game/Entities/Object/Updates/UpdateFields.cpp @@ -3219,7 +3219,7 @@ void ActivePlayerData::WriteCreate(ByteBuffer& data, EnumFlag<UpdateFieldFlag> f data << uint32(GlyphSlots[i]); data << uint32(Glyphs[i]); } - data << uint8(GlyphsEnabled); + data << uint16(GlyphsEnabled); data << uint8(LfgRoles); data << uint32(CategoryCooldownMods.size()); data << uint32(WeeklySpellUses.size()); @@ -4114,7 +4114,7 @@ void ActivePlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bo } if (changesMask[122]) { - data << uint8(GlyphsEnabled); + data << uint16(GlyphsEnabled); } if (changesMask[123]) { @@ -4738,7 +4738,9 @@ void CorpseData::WriteUpdate(ByteBuffer& data, EnumFlag<UpdateFieldFlag> fieldVi void CorpseData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool ignoreNestedChangesMask, Corpse const* owner, Player const* receiver) const { - data.WriteBits(changesMask.GetBlock(0), 32); + data.WriteBits(changesMask.GetBlocksMask(0), 1); + if (changesMask.GetBlock(0)) + data.WriteBits(changesMask.GetBlock(0), 32); if (changesMask[0]) { diff --git a/src/server/game/Entities/Object/Updates/UpdateFields.h b/src/server/game/Entities/Object/Updates/UpdateFields.h index d9543196a31..fa28a3d8119 100644 --- a/src/server/game/Entities/Object/Updates/UpdateFields.h +++ b/src/server/game/Entities/Object/Updates/UpdateFields.h @@ -761,7 +761,7 @@ struct ActivePlayerData : public IsUpdateFieldStructureTag, public HasChangesMas UpdateField<WorldPackets::PerksProgram::PerksVendorItem, 104, 119> FrozenPerksVendorItem; UpdateField<int32, 104, 120> TransportServerTime; UpdateField<uint32, 104, 121> ActiveCombatTraitConfigID; - UpdateField<uint8, 104, 122> GlyphsEnabled; + UpdateField<uint16, 104, 122> GlyphsEnabled; UpdateField<uint8, 104, 123> LfgRoles; OptionalUpdateField<UF::StableInfo, 104, 124> PetStable; UpdateField<uint8, 104, 125> NumStableSlots; |
