diff options
| author | Shauren <shauren.trinity@gmail.com> | 2021-05-01 20:16:10 +0200 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2021-05-01 20:16:10 +0200 |
| commit | fb66575d38d2ba7ffc24c29824fa75d7019de549 (patch) | |
| tree | 9b263e8914862f92d5e6f2fc23450a2f973df461 /src/server/game/Entities | |
| parent | d6dfb6c54c3296461ec73ea5d969f7a5a704541b (diff) | |
Core/Grids: Move packet sending functionality out of MessageDistDeliverer and into separate, customizable class and unify LocalizedPacketDo, LocalizedPacketListDo as generic localizable action
Diffstat (limited to 'src/server/game/Entities')
| -rw-r--r-- | src/server/game/Entities/Object/Object.cpp | 6 | ||||
| -rw-r--r-- | src/server/game/Entities/Player/Player.cpp | 9 | ||||
| -rw-r--r-- | src/server/game/Entities/Unit/Unit.cpp | 16 |
3 files changed, 18 insertions, 13 deletions
diff --git a/src/server/game/Entities/Object/Object.cpp b/src/server/game/Entities/Object/Object.cpp index d1634c70148..44e63f22155 100644 --- a/src/server/game/Entities/Object/Object.cpp +++ b/src/server/game/Entities/Object/Object.cpp @@ -1657,13 +1657,15 @@ void WorldObject::SendMessageToSet(WorldPacket const* data, bool self) const void WorldObject::SendMessageToSetInRange(WorldPacket const* data, float dist, bool /*self*/) const { - Trinity::MessageDistDeliverer<> notifier(this, data, dist); + Trinity::PacketSenderRef sender(data); + Trinity::MessageDistDeliverer<Trinity::PacketSenderRef> notifier(this, sender, dist); Cell::VisitWorldObjects(this, notifier, dist); } void WorldObject::SendMessageToSet(WorldPacket const* data, Player const* skipped_rcvr) const { - Trinity::MessageDistDeliverer<> notifier(this, data, GetVisibilityRange(), false, skipped_rcvr); + Trinity::PacketSenderRef sender(data); + Trinity::MessageDistDeliverer<Trinity::PacketSenderRef> notifier(this, sender, GetVisibilityRange(), false, skipped_rcvr); Cell::VisitWorldObjects(this, notifier, GetVisibilityRange()); } diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 5581fdd8e4f..8a8ec028fa1 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -6094,7 +6094,8 @@ void Player::SendMessageToSetInRange(WorldPacket const* data, float dist, bool s if (self) SendDirectMessage(data); - Trinity::MessageDistDeliverer<> notifier(this, data, dist); + Trinity::PacketSenderRef sender(data); + Trinity::MessageDistDeliverer<Trinity::PacketSenderRef> notifier(this, sender, dist); Cell::VisitWorldObjects(this, notifier, dist); } @@ -6103,7 +6104,8 @@ void Player::SendMessageToSetInRange(WorldPacket const* data, float dist, bool s if (self) SendDirectMessage(data); - Trinity::MessageDistDeliverer<> notifier(this, data, dist, own_team_only); + Trinity::PacketSenderRef sender(data); + Trinity::MessageDistDeliverer<Trinity::PacketSenderRef> notifier(this, sender, dist, own_team_only); Cell::VisitWorldObjects(this, notifier, dist); } @@ -6114,7 +6116,8 @@ void Player::SendMessageToSet(WorldPacket const* data, Player const* skipped_rcv // we use World::GetMaxVisibleDistance() because i cannot see why not use a distance // update: replaced by GetMap()->GetVisibilityDistance() - Trinity::MessageDistDeliverer<> notifier(this, data, GetVisibilityRange(), false, skipped_rcvr); + Trinity::PacketSenderRef sender(data); + Trinity::MessageDistDeliverer<Trinity::PacketSenderRef> notifier(this, sender, GetVisibilityRange(), false, skipped_rcvr); Cell::VisitWorldObjects(this, notifier, GetVisibilityRange()); } diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index 88ebe46999a..93c2e725fca 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -14356,8 +14356,8 @@ bool Unit::IsHighestExclusiveAura(Aura const* aura, bool removeOtherAuraApplicat void Unit::Talk(std::string const& text, ChatMsg msgType, Language language, float textRange, WorldObject const* target) { Trinity::CustomChatTextBuilder builder(this, msgType, text, language, target); - Trinity::LocalizedPacketDo<Trinity::CustomChatTextBuilder> localizer(builder); - Trinity::PlayerDistWorker<Trinity::LocalizedPacketDo<Trinity::CustomChatTextBuilder> > worker(this, textRange, localizer); + Trinity::LocalizedDo<Trinity::CustomChatTextBuilder> localizer(builder); + Trinity::PlayerDistWorker<Trinity::LocalizedDo<Trinity::CustomChatTextBuilder> > worker(this, textRange, localizer); Cell::VisitWorldObjects(this, worker, textRange); } @@ -14423,8 +14423,8 @@ void Unit::Talk(uint32 textId, ChatMsg msgType, float textRange, WorldObject con } Trinity::BroadcastTextBuilder builder(this, msgType, textId, getGender(), target); - Trinity::LocalizedPacketDo<Trinity::BroadcastTextBuilder> localizer(builder); - Trinity::PlayerDistWorker<Trinity::LocalizedPacketDo<Trinity::BroadcastTextBuilder> > worker(this, textRange, localizer); + Trinity::LocalizedDo<Trinity::BroadcastTextBuilder> localizer(builder); + Trinity::PlayerDistWorker<Trinity::LocalizedDo<Trinity::BroadcastTextBuilder> > worker(this, textRange, localizer); Cell::VisitWorldObjects(this, worker, textRange); } @@ -14513,19 +14513,19 @@ struct CombatLogSender msg->Write(); } - WorldPacket const* operator()(Player* player) const + void operator()(Player const* player) const { if (player->IsAdvancedCombatLoggingEnabled()) - return i_message->GetFullLogPacket(); + player->SendDirectMessage(i_message->GetFullLogPacket()); else - return i_message->GetBasicLogPacket(); + player->SendDirectMessage(i_message->GetBasicLogPacket()); } }; void Unit::SendCombatLogMessage(WorldPackets::CombatLog::CombatLogServerPacket* combatLog) const { CombatLogSender combatLogCustomizer(combatLog); - Trinity::MessageDistDeliverer<CombatLogSender> notifier(this, std::move(combatLogCustomizer), GetVisibilityRange()); + Trinity::MessageDistDeliverer<CombatLogSender> notifier(this, combatLogCustomizer, GetVisibilityRange()); Cell::VisitWorldObjects(this, notifier, GetVisibilityRange()); } |
