Skip to content

Commit a435d8a

Browse files
committed
Core/Objects: Add ignoreNestedChangesMask argument to BuildValuesUpdateForPlayerWithMask functions
1 parent e50e3c5 commit a435d8a

File tree

24 files changed

+101
-82
lines changed

24 files changed

+101
-82
lines changed

src/server/game/Entities/AreaTrigger/AreaTrigger.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1517,7 +1517,7 @@ void AreaTrigger::BuildValuesUpdate(UF::UpdateFieldFlag flags, ByteBuffer& data,
15171517
}
15181518

15191519
void AreaTrigger::BuildValuesUpdateForPlayerWithMask(UpdateData* data, UF::ObjectData::Mask const& requestedObjectMask,
1520-
UF::AreaTriggerData::Mask const& requestedAreaTriggerMask, Player const* target) const
1520+
UF::AreaTriggerData::Mask const& requestedAreaTriggerMask, Player const* target, bool ignoreNestedChangesMask) const
15211521
{
15221522
UF::UpdateFieldFlag flags = GetUpdateFieldFlagsFor(target);
15231523
UpdateMask<NUM_CLIENT_OBJECT_TYPES> valuesMask;
@@ -1534,10 +1534,10 @@ void AreaTrigger::BuildValuesUpdateForPlayerWithMask(UpdateData* data, UF::Objec
15341534
buffer << uint32(valuesMask.GetBlock(0));
15351535

15361536
if (valuesMask[TYPEID_OBJECT])
1537-
m_objectData->WriteUpdate(requestedObjectMask, buffer, target, this, true);
1537+
m_objectData->WriteUpdate(requestedObjectMask, buffer, target, this, ignoreNestedChangesMask);
15381538

15391539
if (valuesMask[TYPEID_AREATRIGGER])
1540-
m_areaTriggerData->WriteUpdate(requestedAreaTriggerMask, buffer, target, this, true);
1540+
m_areaTriggerData->WriteUpdate(requestedAreaTriggerMask, buffer, target, this, ignoreNestedChangesMask);
15411541

15421542
buffer.put<uint32>(sizePos, buffer.wpos() - sizePos - 4);
15431543

@@ -1549,7 +1549,7 @@ void AreaTrigger::ValuesUpdateForPlayerWithMaskSender::operator()(Player const*
15491549
UpdateData udata(Owner->GetMapId());
15501550
WorldPacket packet;
15511551

1552-
Owner->BuildValuesUpdateForPlayerWithMask(&udata, ObjectMask.GetChangesMask(), AreaTriggerMask.GetChangesMask(), player);
1552+
Owner->BuildValuesUpdateForPlayerWithMask(&udata, ObjectMask.GetChangesMask(), AreaTriggerMask.GetChangesMask(), player, IgnoreNestedChangesMask);
15531553

15541554
udata.BuildPacket(&packet);
15551555
player->SendDirectMessage(&packet);

src/server/game/Entities/AreaTrigger/AreaTrigger.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -84,15 +84,16 @@ class TC_GAME_API AreaTrigger final : public WorldObject, public GridObject<Area
8484

8585
public:
8686
void BuildValuesUpdateForPlayerWithMask(UpdateData* data, UF::ObjectData::Mask const& requestedObjectMask,
87-
UF::AreaTriggerData::Mask const& requestedAreaTriggerMask, Player const* target) const;
87+
UF::AreaTriggerData::Mask const& requestedAreaTriggerMask, Player const* target, bool ignoreNestedChangesMask) const;
8888

8989
struct ValuesUpdateForPlayerWithMaskSender // sender compatible with MessageDistDeliverer
9090
{
91-
explicit ValuesUpdateForPlayerWithMaskSender(AreaTrigger const* owner) : Owner(owner) { }
91+
explicit ValuesUpdateForPlayerWithMaskSender(AreaTrigger const* owner) : Owner(owner), IgnoreNestedChangesMask(false) { }
9292

9393
AreaTrigger const* Owner;
9494
UF::ObjectData::Base ObjectMask;
9595
UF::AreaTriggerData::Base AreaTriggerMask;
96+
bool IgnoreNestedChangesMask;
9697

9798
void operator()(Player const* player) const;
9899
};

src/server/game/Entities/Conversation/Conversation.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -388,7 +388,7 @@ void Conversation::BuildValuesUpdate(UF::UpdateFieldFlag flags, ByteBuffer& data
388388
}
389389

390390
void Conversation::BuildValuesUpdateForPlayerWithMask(UpdateData* data, UF::ObjectData::Mask const& requestedObjectMask,
391-
UF::ConversationData::Mask const& requestedConversationMask, Player const* target) const
391+
UF::ConversationData::Mask const& requestedConversationMask, Player const* target, bool ignoreNestedChangesMask) const
392392
{
393393
UF::UpdateFieldFlag flags = GetUpdateFieldFlagsFor(target);
394394
UpdateMask<NUM_CLIENT_OBJECT_TYPES> valuesMask;
@@ -405,10 +405,10 @@ void Conversation::BuildValuesUpdateForPlayerWithMask(UpdateData* data, UF::Obje
405405
buffer << uint32(valuesMask.GetBlock(0));
406406

407407
if (valuesMask[TYPEID_OBJECT])
408-
m_objectData->WriteUpdate(requestedObjectMask, buffer, target, this, true);
408+
m_objectData->WriteUpdate(requestedObjectMask, buffer, target, this, ignoreNestedChangesMask);
409409

410410
if (valuesMask[TYPEID_CONVERSATION])
411-
m_conversationData->WriteUpdate(requestedConversationMask, buffer, target, this, true);
411+
m_conversationData->WriteUpdate(requestedConversationMask, buffer, target, this, ignoreNestedChangesMask);
412412

413413
buffer.put<uint32>(sizePos, buffer.wpos() - sizePos - 4);
414414

@@ -420,7 +420,7 @@ void Conversation::ValuesUpdateForPlayerWithMaskSender::operator()(Player const*
420420
UpdateData udata(Owner->GetMapId());
421421
WorldPacket packet;
422422

423-
Owner->BuildValuesUpdateForPlayerWithMask(&udata, ObjectMask.GetChangesMask(), ConversationMask.GetChangesMask(), player);
423+
Owner->BuildValuesUpdateForPlayerWithMask(&udata, ObjectMask.GetChangesMask(), ConversationMask.GetChangesMask(), player, IgnoreNestedChangesMask);
424424

425425
udata.BuildPacket(&packet);
426426
player->SendDirectMessage(&packet);

src/server/game/Entities/Conversation/Conversation.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,15 +39,16 @@ class TC_GAME_API Conversation final : public WorldObject, public GridObject<Con
3939

4040
public:
4141
void BuildValuesUpdateForPlayerWithMask(UpdateData* data, UF::ObjectData::Mask const& requestedObjectMask,
42-
UF::ConversationData::Mask const& requestedConversationMask, Player const* target) const;
42+
UF::ConversationData::Mask const& requestedConversationMask, Player const* target, bool ignoreNestedChangesMask) const;
4343

4444
struct ValuesUpdateForPlayerWithMaskSender // sender compatible with MessageDistDeliverer
4545
{
46-
explicit ValuesUpdateForPlayerWithMaskSender(Conversation const* owner) : Owner(owner) { }
46+
explicit ValuesUpdateForPlayerWithMaskSender(Conversation const* owner) : Owner(owner), IgnoreNestedChangesMask(false) { }
4747

4848
Conversation const* Owner;
4949
UF::ObjectData::Base ObjectMask;
5050
UF::ConversationData::Base ConversationMask;
51+
bool IgnoreNestedChangesMask;
5152

5253
void operator()(Player const* player) const;
5354
};

src/server/game/Entities/Corpse/Corpse.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -258,7 +258,7 @@ void Corpse::BuildValuesUpdate(UF::UpdateFieldFlag flags, ByteBuffer& data, Play
258258
}
259259

260260
void Corpse::BuildValuesUpdateForPlayerWithMask(UpdateData* data, UF::ObjectData::Mask const& requestedObjectMask,
261-
UF::CorpseData::Mask const& requestedCorpseMask, Player const* target) const
261+
UF::CorpseData::Mask const& requestedCorpseMask, Player const* target, bool ignoreNestedChangesMask) const
262262
{
263263
UF::UpdateFieldFlag flags = GetUpdateFieldFlagsFor(target);
264264
UpdateMask<NUM_CLIENT_OBJECT_TYPES> valuesMask;
@@ -275,10 +275,10 @@ void Corpse::BuildValuesUpdateForPlayerWithMask(UpdateData* data, UF::ObjectData
275275
buffer << uint32(valuesMask.GetBlock(0));
276276

277277
if (valuesMask[TYPEID_OBJECT])
278-
m_objectData->WriteUpdate(requestedObjectMask, buffer, target, this, true);
278+
m_objectData->WriteUpdate(requestedObjectMask, buffer, target, this, ignoreNestedChangesMask);
279279

280280
if (valuesMask[TYPEID_CORPSE])
281-
m_corpseData->WriteUpdate(requestedCorpseMask, buffer, target, this, true);
281+
m_corpseData->WriteUpdate(requestedCorpseMask, buffer, target, this, ignoreNestedChangesMask);
282282

283283
buffer.put<uint32>(sizePos, buffer.wpos() - sizePos - 4);
284284

@@ -290,7 +290,7 @@ void Corpse::ValuesUpdateForPlayerWithMaskSender::operator()(Player const* playe
290290
UpdateData udata(Owner->GetMapId());
291291
WorldPacket packet;
292292

293-
Owner->BuildValuesUpdateForPlayerWithMask(&udata, ObjectMask.GetChangesMask(), CorpseMask.GetChangesMask(), player);
293+
Owner->BuildValuesUpdateForPlayerWithMask(&udata, ObjectMask.GetChangesMask(), CorpseMask.GetChangesMask(), player, IgnoreNestedChangesMask);
294294

295295
udata.BuildPacket(&packet);
296296
player->SendDirectMessage(&packet);

src/server/game/Entities/Corpse/Corpse.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,15 +62,16 @@ class TC_GAME_API Corpse final : public WorldObject, public GridObject<Corpse>
6262

6363
public:
6464
void BuildValuesUpdateForPlayerWithMask(UpdateData* data, UF::ObjectData::Mask const& requestedObjectMask,
65-
UF::CorpseData::Mask const& requestedCorpseMask, Player const* target) const;
65+
UF::CorpseData::Mask const& requestedCorpseMask, Player const* target, bool ignoreNestedChangesMask) const;
6666

6767
struct ValuesUpdateForPlayerWithMaskSender // sender compatible with MessageDistDeliverer
6868
{
69-
explicit ValuesUpdateForPlayerWithMaskSender(Corpse const* owner) : Owner(owner) { }
69+
explicit ValuesUpdateForPlayerWithMaskSender(Corpse const* owner) : Owner(owner), IgnoreNestedChangesMask(false) { }
7070

7171
Corpse const* Owner;
7272
UF::ObjectData::Base ObjectMask;
7373
UF::CorpseData::Base CorpseMask;
74+
bool IgnoreNestedChangesMask;
7475

7576
void operator()(Player const* player) const;
7677
};

src/server/game/Entities/Creature/Creature.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3908,7 +3908,7 @@ void Creature::BuildValuesUpdateWithFlag(UF::UpdateFieldFlag flags, ByteBuffer&
39083908
}
39093909

39103910
void Creature::BuildValuesUpdateForPlayerWithMask(UpdateData* data, UF::ObjectData::Mask const& requestedObjectMask,
3911-
UF::UnitData::Mask const& requestedUnitMask, Player const* target) const
3911+
UF::UnitData::Mask const& requestedUnitMask, Player const* target, bool ignoreNestedChangesMask) const
39123912
{
39133913
UF::UpdateFieldFlag flags = GetUpdateFieldFlagsFor(target);
39143914
UpdateMask<NUM_CLIENT_OBJECT_TYPES> valuesMask;
@@ -3927,10 +3927,10 @@ void Creature::BuildValuesUpdateForPlayerWithMask(UpdateData* data, UF::ObjectDa
39273927
buffer << uint32(valuesMask.GetBlock(0));
39283928

39293929
if (valuesMask[TYPEID_OBJECT])
3930-
m_objectData->WriteUpdate(requestedObjectMask, buffer, target, this, true);
3930+
m_objectData->WriteUpdate(requestedObjectMask, buffer, target, this, ignoreNestedChangesMask);
39313931

39323932
if (valuesMask[TYPEID_UNIT])
3933-
m_unitData->WriteUpdate(unitMask, buffer, target, this, true);
3933+
m_unitData->WriteUpdate(unitMask, buffer, target, this, ignoreNestedChangesMask);
39343934

39353935
buffer.put<uint32>(sizePos, buffer.wpos() - sizePos - 4);
39363936

@@ -3942,7 +3942,7 @@ void Creature::ValuesUpdateForPlayerWithMaskSender::operator()(Player const* pla
39423942
UpdateData udata(Owner->GetMapId());
39433943
WorldPacket packet;
39443944

3945-
Owner->BuildValuesUpdateForPlayerWithMask(&udata, ObjectMask.GetChangesMask(), UnitMask.GetChangesMask(), player);
3945+
Owner->BuildValuesUpdateForPlayerWithMask(&udata, ObjectMask.GetChangesMask(), UnitMask.GetChangesMask(), player, IgnoreNestedChangesMask);
39463946

39473947
udata.BuildPacket(&packet);
39483948
player->SendDirectMessage(&packet);

src/server/game/Entities/Creature/Creature.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -498,15 +498,16 @@ class TC_GAME_API Creature : public Unit, public GridObject<Creature>, public Ma
498498
public:
499499
void BuildValuesUpdateWithFlag(UF::UpdateFieldFlag flags, ByteBuffer& data, Player const* target) const override;
500500
void BuildValuesUpdateForPlayerWithMask(UpdateData* data, UF::ObjectData::Mask const& requestedObjectMask,
501-
UF::UnitData::Mask const& requestedUnitMask, Player const* target) const;
501+
UF::UnitData::Mask const& requestedUnitMask, Player const* target, bool ignoreNestedChangesMask) const;
502502

503503
struct ValuesUpdateForPlayerWithMaskSender // sender compatible with MessageDistDeliverer
504504
{
505-
explicit ValuesUpdateForPlayerWithMaskSender(Creature const* owner) : Owner(owner) { }
505+
explicit ValuesUpdateForPlayerWithMaskSender(Creature const* owner) : Owner(owner), IgnoreNestedChangesMask(false) { }
506506

507507
Creature const* Owner;
508508
UF::ObjectData::Base ObjectMask;
509509
UF::UnitData::Base UnitMask;
510+
bool IgnoreNestedChangesMask;
510511

511512
void operator()(Player const* player) const;
512513
};

src/server/game/Entities/DynamicObject/DynamicObject.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -267,7 +267,7 @@ void DynamicObject::BuildValuesUpdate(UF::UpdateFieldFlag flags, ByteBuffer& dat
267267
}
268268

269269
void DynamicObject::BuildValuesUpdateForPlayerWithMask(UpdateData* data, UF::ObjectData::Mask const& requestedObjectMask,
270-
UF::DynamicObjectData::Mask const& requestedDynamicObjectMask, Player const* target) const
270+
UF::DynamicObjectData::Mask const& requestedDynamicObjectMask, Player const* target, bool ignoreNestedChangesMask) const
271271
{
272272
UF::UpdateFieldFlag flags = GetUpdateFieldFlagsFor(target);
273273
UpdateMask<NUM_CLIENT_OBJECT_TYPES> valuesMask;
@@ -284,10 +284,10 @@ void DynamicObject::BuildValuesUpdateForPlayerWithMask(UpdateData* data, UF::Obj
284284
buffer << uint32(valuesMask.GetBlock(0));
285285

286286
if (valuesMask[TYPEID_OBJECT])
287-
m_objectData->WriteUpdate(requestedObjectMask, buffer, target, this, true);
287+
m_objectData->WriteUpdate(requestedObjectMask, buffer, target, this, ignoreNestedChangesMask);
288288

289289
if (valuesMask[TYPEID_DYNAMICOBJECT])
290-
m_dynamicObjectData->WriteUpdate(requestedDynamicObjectMask, buffer, target, this, true);
290+
m_dynamicObjectData->WriteUpdate(requestedDynamicObjectMask, buffer, target, this, ignoreNestedChangesMask);
291291

292292
buffer.put<uint32>(sizePos, buffer.wpos() - sizePos - 4);
293293

@@ -299,7 +299,7 @@ void DynamicObject::ValuesUpdateForPlayerWithMaskSender::operator()(Player const
299299
UpdateData udata(Owner->GetMapId());
300300
WorldPacket packet;
301301

302-
Owner->BuildValuesUpdateForPlayerWithMask(&udata, ObjectMask.GetChangesMask(), DynamicObjectMask.GetChangesMask(), player);
302+
Owner->BuildValuesUpdateForPlayerWithMask(&udata, ObjectMask.GetChangesMask(), DynamicObjectMask.GetChangesMask(), player, IgnoreNestedChangesMask);
303303

304304
udata.BuildPacket(&packet);
305305
player->SendDirectMessage(&packet);

src/server/game/Entities/DynamicObject/DynamicObject.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,15 +46,16 @@ class TC_GAME_API DynamicObject final : public WorldObject, public GridObject<Dy
4646

4747
public:
4848
void BuildValuesUpdateForPlayerWithMask(UpdateData* data, UF::ObjectData::Mask const& requestedObjectMask,
49-
UF::DynamicObjectData::Mask const& requestedDynamicObjectMask, Player const* target) const;
49+
UF::DynamicObjectData::Mask const& requestedDynamicObjectMask, Player const* target, bool ignoreNestedChangesMask) const;
5050

5151
struct ValuesUpdateForPlayerWithMaskSender // sender compatible with MessageDistDeliverer
5252
{
53-
explicit ValuesUpdateForPlayerWithMaskSender(DynamicObject const* owner) : Owner(owner) { }
53+
explicit ValuesUpdateForPlayerWithMaskSender(DynamicObject const* owner) : Owner(owner), IgnoreNestedChangesMask(false) { }
5454

5555
DynamicObject const* Owner;
5656
UF::ObjectData::Base ObjectMask;
5757
UF::DynamicObjectData::Base DynamicObjectMask;
58+
bool IgnoreNestedChangesMask;
5859

5960
void operator()(Player const* player) const;
6061
};

0 commit comments

Comments
 (0)