diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/game/GroupHandler.cpp | 10 | ||||
-rw-r--r-- | src/game/SpellAuras.cpp | 4 | ||||
-rw-r--r-- | src/game/Unit.cpp | 12 | ||||
-rw-r--r-- | src/game/Unit.h | 2 |
4 files changed, 14 insertions, 14 deletions
diff --git a/src/game/GroupHandler.cpp b/src/game/GroupHandler.cpp index 3890a9f77a6..e2a575162f6 100644 --- a/src/game/GroupHandler.cpp +++ b/src/game/GroupHandler.cpp @@ -720,8 +720,11 @@ void WorldSession::BuildPartyMemberStatsChangedPacket(Player *player, WorldPacke { if(auramask & (uint64(1) << i)) { - *data << uint16(player->GetUInt32Value(UNIT_FIELD_AURA + i)); + uint32 updatedAura=player->GetUInt32Value(UNIT_FIELD_AURA + i); + *data << uint16(updatedAura); *data << uint8(1); + if(!updatedAura) + player->UnsetAuraUpdateMask(i); } } } @@ -801,8 +804,11 @@ void WorldSession::BuildPartyMemberStatsChangedPacket(Player *player, WorldPacke { if(auramask & (uint64(1) << i)) { - *data << uint16(pet->GetUInt32Value(UNIT_FIELD_AURA + i)); + uint32 updatedAura=pet->GetUInt32Value(UNIT_FIELD_AURA + i); + *data << uint16(updatedAura); *data << uint8(1); + if(!updatedAura) + pet->UnsetAuraUpdateMask(i); } } } diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp index d22266f2e15..36e62831f61 100644 --- a/src/game/SpellAuras.cpp +++ b/src/game/SpellAuras.cpp @@ -886,7 +886,7 @@ void Aura::_AddAura() UpdateAuraCharges(); // update for out of range group members - m_target->UpdateAuraForGroup(slot, true); + m_target->UpdateAuraForGroup(slot); } } else // use found slot @@ -973,7 +973,7 @@ void Aura::_RemoveAura() SetAuraApplication(slot, 0); // update for out of range group members - m_target->UpdateAuraForGroup(slot, false); + m_target->UpdateAuraForGroup(slot); if( IsSealSpell(GetSpellProto()) ) m_target->ModifyAuraState(AURA_STATE_JUDGEMENT,false); diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index b830b7b4c7e..3f8eb4ac447 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -12286,7 +12286,7 @@ uint32 Unit::GetCastingTimeForBonus( SpellEntry const *spellProto, DamageEffectT return CastingTime; } -void Unit::UpdateAuraForGroup(uint8 slot, bool apply) +void Unit::UpdateAuraForGroup(uint8 slot) { if(GetTypeId() == TYPEID_PLAYER) { @@ -12294,10 +12294,7 @@ void Unit::UpdateAuraForGroup(uint8 slot, bool apply) if(player->GetGroup()) { player->SetGroupUpdateFlag(GROUP_UPDATE_FLAG_AURAS); - if(apply) - player->SetAuraUpdateMask(slot); - else - player->UnsetAuraUpdateMask(slot); + player->SetAuraUpdateMask(slot); } } else if(GetTypeId() == TYPEID_UNIT && ((Creature*)this)->isPet()) @@ -12309,10 +12306,7 @@ void Unit::UpdateAuraForGroup(uint8 slot, bool apply) if(owner && (owner->GetTypeId() == TYPEID_PLAYER) && ((Player*)owner)->GetGroup()) { ((Player*)owner)->SetGroupUpdateFlag(GROUP_UPDATE_FLAG_PET_AURAS); - if(apply) - pet->SetAuraUpdateMask(slot); - else - pet->UnsetAuraUpdateMask(slot); + pet->SetAuraUpdateMask(slot); } } } diff --git a/src/game/Unit.h b/src/game/Unit.h index 2f1af0c32d8..c3f5be3adb1 100644 --- a/src/game/Unit.h +++ b/src/game/Unit.h @@ -1392,7 +1392,7 @@ class TRINITY_DLL_SPEC Unit : public WorldObject void UpdateReactives(uint32 p_time); // group updates - void UpdateAuraForGroup(uint8 slot, bool apply); + void UpdateAuraForGroup(uint8 slot); // pet auras typedef std::set<PetAura const*> PetAuraSet; |