From 83555367a786230fcd5ed3672e1ff3eac42c6f68 Mon Sep 17 00:00:00 2001 From: Shauren Date: Tue, 26 Jul 2016 20:55:24 +0200 Subject: Core/Auras: Visibility changes * Changed max visible aura amount to 255 * All auras are now sent to clients, many passives that client needed to see were incorrectly hidden (also client properly filters aura bar by itself) --- src/server/game/Server/Packets/PartyPackets.cpp | 64 +++++++++++-------------- 1 file changed, 29 insertions(+), 35 deletions(-) (limited to 'src/server/game/Server') diff --git a/src/server/game/Server/Packets/PartyPackets.cpp b/src/server/game/Server/Packets/PartyPackets.cpp index 91b6ca4e18d..686123de4d6 100644 --- a/src/server/game/Server/Packets/PartyPackets.cpp +++ b/src/server/game/Server/Packets/PartyPackets.cpp @@ -600,30 +600,27 @@ void WorldPackets::Party::PartyMemberState::Initialize(Player const* player) MemberStats.VehicleSeat = player->GetVehicle()->GetVehicleInfo()->SeatID[player->m_movementInfo.transport.seat]; // Auras - for (uint8 i = 0; i < MAX_AURAS; ++i) + for (AuraApplication const* aurApp : player->GetVisibleAuras()) { - if (AuraApplication const* aurApp = player->GetVisibleAura(i)) - { - WorldPackets::Party::PartyMemberAuraStates aura; + WorldPackets::Party::PartyMemberAuraStates aura; - aura.SpellID = aurApp->GetBase()->GetId(); - aura.ActiveFlags = aurApp->GetEffectMask(); - aura.Flags = aurApp->GetFlags(); + aura.SpellID = aurApp->GetBase()->GetId(); + aura.ActiveFlags = aurApp->GetEffectMask(); + aura.Flags = aurApp->GetFlags(); - if (aurApp->GetFlags() & AFLAG_SCALABLE) + if (aurApp->GetFlags() & AFLAG_SCALABLE) + { + for (AuraEffect const* aurEff : aurApp->GetBase()->GetAuraEffects()) { - for (AuraEffect const* aurEff : aurApp->GetBase()->GetAuraEffects()) - { - if (!aurEff) - continue; + if (!aurEff) + continue; - if (aurApp->HasEffect(aurEff->GetEffIndex())) - aura.Points.push_back(float(aurEff->GetAmount())); - } + if (aurApp->HasEffect(aurEff->GetEffIndex())) + aura.Points.push_back(float(aurEff->GetAmount())); } - - MemberStats.Auras.push_back(aura); } + + MemberStats.Auras.push_back(aura); } // Phases @@ -652,30 +649,27 @@ void WorldPackets::Party::PartyMemberState::Initialize(Player const* player) MemberStats.PetStats->CurrentHealth = pet->GetHealth(); MemberStats.PetStats->MaxHealth = pet->GetMaxHealth(); - for (uint8 i = 0; i < MAX_AURAS; ++i) + for (AuraApplication const* aurApp : pet->GetVisibleAuras()) { - if (AuraApplication const* aurApp = pet->GetVisibleAura(i)) - { - WorldPackets::Party::PartyMemberAuraStates aura; + WorldPackets::Party::PartyMemberAuraStates aura; - aura.SpellID = aurApp->GetBase()->GetId(); - aura.ActiveFlags = aurApp->GetEffectMask(); - aura.Flags = aurApp->GetFlags(); + aura.SpellID = aurApp->GetBase()->GetId(); + aura.ActiveFlags = aurApp->GetEffectMask(); + aura.Flags = aurApp->GetFlags(); - if (aurApp->GetFlags() & AFLAG_SCALABLE) + if (aurApp->GetFlags() & AFLAG_SCALABLE) + { + for (AuraEffect const* aurEff : aurApp->GetBase()->GetAuraEffects()) { - for (AuraEffect const* aurEff : aurApp->GetBase()->GetAuraEffects()) - { - if (!aurEff) - continue; - - if (aurApp->HasEffect(aurEff->GetEffIndex())) - aura.Points.push_back(float(aurEff->GetAmount())); - } - } + if (!aurEff) + continue; - MemberStats.PetStats->Auras.push_back(aura); + if (aurApp->HasEffect(aurEff->GetEffIndex())) + aura.Points.push_back(float(aurEff->GetAmount())); + } } + + MemberStats.PetStats->Auras.push_back(aura); } } } -- cgit v1.2.3