aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Entities/Object
diff options
context:
space:
mode:
authorfunjoker <funjoker109@gmail.com>2024-04-01 05:42:09 +0200
committerfunjoker <funjoker109@gmail.com>2024-04-01 05:42:09 +0200
commit7d66813175e368fc3bd9cb2e1ee44f7b047827a0 (patch)
tree0a7a8570680a411ee3803c205dc4830effe091cd /src/server/game/Entities/Object
parentc8bb60791f3ff8c98d76a1c5a5aed3611a157427 (diff)
Core: Start updating to 54027
Diffstat (limited to 'src/server/game/Entities/Object')
-rw-r--r--src/server/game/Entities/Object/Object.cpp25
-rw-r--r--src/server/game/Entities/Object/Updates/UpdateFields.cpp8
-rw-r--r--src/server/game/Entities/Object/Updates/UpdateFields.h2
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;