diff options
author | Shauren <shauren.trinity@gmail.com> | 2025-05-22 13:46:45 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2025-05-22 13:46:45 +0200 |
commit | b7122c2f6a0c6eef9d58439aac4090ddcee24a2e (patch) | |
tree | 3e0ae343ab01f36887c28a7274ae2cfc24167697 /src/server/game/Phasing/PhasingHandler.cpp | |
parent | eb032a30731fc833836ca7fcff8b538bdf74196e (diff) |
Core/PacketIO: Migration to PacketUtilities bit/string operations part 3
Diffstat (limited to 'src/server/game/Phasing/PhasingHandler.cpp')
-rw-r--r-- | src/server/game/Phasing/PhasingHandler.cpp | 34 |
1 files changed, 18 insertions, 16 deletions
diff --git a/src/server/game/Phasing/PhasingHandler.cpp b/src/server/game/Phasing/PhasingHandler.cpp index d3f187f4a69..274884442ab 100644 --- a/src/server/game/Phasing/PhasingHandler.cpp +++ b/src/server/game/Phasing/PhasingHandler.cpp @@ -23,6 +23,7 @@ #include "DisableMgr.h" #include "Language.h" #include "Map.h" +#include "MapUtils.h" #include "MiscPackets.h" #include "ObjectAccessor.h" #include "ObjectMgr.h" @@ -84,8 +85,8 @@ public: func(summon); if (Vehicle const* vehicle = unit->GetVehicleKit()) - for (auto seat = vehicle->Seats.begin(); seat != vehicle->Seats.end(); ++seat) - if (Unit* passenger = ObjectAccessor::GetUnit(*unit, seat->second.Passenger.Guid); passenger && passenger != unit) + for (auto const& [_, seat] : vehicle->Seats) + if (Unit* passenger = ObjectAccessor::GetUnit(*unit, seat.Passenger.Guid); passenger && passenger != unit) if (_visited.insert(passenger).second) func(passenger); } @@ -315,7 +316,7 @@ void PhasingHandler::OnAreaChange(WorldObject* object) { for (PhaseAreaInfo const& phaseArea : *newAreaPhases) { - if (phaseArea.SubAreaExclusions.find(areaId) != phaseArea.SubAreaExclusions.end()) + if (phaseArea.SubAreaExclusions.contains(areaId)) continue; uint32 phaseId = phaseArea.PhaseInfo->Id; @@ -492,15 +493,16 @@ void PhasingHandler::SendToPlayer(Player const* player, PhaseShift const& phaseS phaseShiftChange.Client = player->GetGUID(); phaseShiftChange.Phaseshift.PhaseShiftFlags = phaseShift.Flags.AsUnderlyingType(); phaseShiftChange.Phaseshift.PersonalGUID = phaseShift.PersonalGuid; - phaseShiftChange.Phaseshift.Phases.reserve(phaseShift.Phases.size()); - std::transform(phaseShift.Phases.begin(), phaseShift.Phases.end(), std::back_inserter(phaseShiftChange.Phaseshift.Phases), - [](PhaseShift::PhaseRef const& phase) -> WorldPackets::Misc::PhaseShiftDataPhase { return { phase.Flags.AsUnderlyingType(), phase.Id }; }); - phaseShiftChange.VisibleMapIDs.reserve(phaseShift.VisibleMapIds.size()); - std::transform(phaseShift.VisibleMapIds.begin(), phaseShift.VisibleMapIds.end(), std::back_inserter(phaseShiftChange.VisibleMapIDs), - [](PhaseShift::VisibleMapIdContainer::value_type const& visibleMapId) { return visibleMapId.first; }); - phaseShiftChange.UiMapPhaseIDs.reserve(phaseShift.UiMapPhaseIds.size()); - std::transform(phaseShift.UiMapPhaseIds.begin(), phaseShift.UiMapPhaseIds.end(), std::back_inserter(phaseShiftChange.UiMapPhaseIDs), - [](PhaseShift::UiMapPhaseIdContainer::value_type const& uiWorldMapAreaIdSwap) { return uiWorldMapAreaIdSwap.first; }); + + phaseShiftChange.Phaseshift.Phases.resize(phaseShift.Phases.size()); + std::ranges::transform(phaseShift.Phases, phaseShiftChange.Phaseshift.Phases.begin(), + [](PhaseShift::PhaseRef const& phase) { return WorldPackets::Misc::PhaseShiftDataPhase{ .PhaseFlags = phase.Flags.AsUnderlyingType(), .Id = phase.Id }; }); + + phaseShiftChange.VisibleMapIDs.resize(phaseShift.VisibleMapIds.size()); + std::ranges::transform(phaseShift.VisibleMapIds, phaseShiftChange.VisibleMapIDs.begin(), Trinity::Containers::MapKey); + + phaseShiftChange.UiMapPhaseIDs.resize(phaseShift.UiMapPhaseIds.size()); + std::ranges::transform(phaseShift.UiMapPhaseIds, phaseShiftChange.UiMapPhaseIDs.begin(), Trinity::Containers::MapKey); player->SendDirectMessage(phaseShiftChange.Write()); } @@ -514,9 +516,9 @@ void PhasingHandler::FillPartyMemberPhase(WorldPackets::Party::PartyMemberPhaseS { partyMemberPhases->PhaseShiftFlags = phaseShift.Flags.AsUnderlyingType(); partyMemberPhases->PersonalGUID = phaseShift.PersonalGuid; - partyMemberPhases->List.reserve(phaseShift.Phases.size()); - std::transform(phaseShift.Phases.begin(), phaseShift.Phases.end(), std::back_inserter(partyMemberPhases->List), - [](PhaseShift::PhaseRef const& phase) -> WorldPackets::Party::PartyMemberPhase { return { phase.Flags.AsUnderlyingType(), phase.Id }; }); + partyMemberPhases->List.resize(phaseShift.Phases.size()); + std::ranges::transform(phaseShift.Phases, partyMemberPhases->List.begin(), + [](PhaseShift::PhaseRef const& phase) { return WorldPackets::Party::PartyMemberPhase{ .Flags = phase.Flags.AsUnderlyingType(), .Id = phase.Id }; }); } PhaseShift const& PhasingHandler::GetEmptyPhaseShift() @@ -678,7 +680,7 @@ std::string PhasingHandler::FormatPhases(PhaseShift const& phaseShift) for (PhaseShift::PhaseRef const& phase : phaseShift.Phases) phases << phase.Id << ','; - return phases.str(); + return std::move(phases).str(); } bool PhasingHandler::IsPersonalPhase(uint32 phaseId) |