Core/Players: simplified mount capability update checks and removed a unneeded call uppon changing liquid status

This commit is contained in:
Ovahlord
2020-01-27 09:49:26 +01:00
parent e410c3498b
commit a72411241d
2 changed files with 11 additions and 17 deletions

View File

@@ -18788,21 +18788,19 @@ void Player::UpdateMountCapabilities()
{
if (HasAuraType(SPELL_AURA_MOUNTED))
{
Unit::AuraEffectList const& auraList = GetAuraEffectsByType(SPELL_AURA_MOUNTED);
if (!auraList.empty())
for (AuraEffect* aurEff : GetAuraEffectsByType(SPELL_AURA_MOUNTED))
{
AuraEffect* mountEffect = auraList.front();
if (MountCapabilityEntry const* mountCapability = mountEffect->GetBase()->GetUnitOwner()->GetMountCapability(uint32(mountEffect->GetMiscValueB())))
{
if (mountCapability->ID != uint32(mountEffect->GetAmount()))
{
Unit* target = mountEffect->GetBase()->GetApplicationOfTarget(GetGUID())->GetTarget();
if (MountCapabilityEntry const* oldMountCapability = sMountCapabilityStore.LookupEntry(mountEffect->GetAmount()))
RemoveAurasDueToSpell(oldMountCapability->ModSpellAuraID, target->GetGUID());
MountCapabilityEntry const* capability = GetMountCapability(uint32(aurEff->GetMiscValueB()));
if (!capability)
continue;
CastSpell(target, mountCapability->ModSpellAuraID, true);
mountEffect->SetAmount(mountCapability->ID);
}
if (capability->ID != aurEff->GetAmount())
{
if (MountCapabilityEntry const* oldMountCapability = sMountCapabilityStore.LookupEntry(aurEff->GetAmount()))
RemoveAurasDueToSpell(oldMountCapability->ModSpellAuraID, aurEff->GetCasterGUID());
CastSpell(this, capability->ModSpellAuraID, true);
aurEff->SetAmount(capability->ID);
}
}
}

View File

@@ -3312,10 +3312,6 @@ void Unit::ProcessTerrainStatusUpdate(ZLiquidStatus status, Optional<LiquidData>
if (curLiquid && curLiquid->SpellID && (!player || !player->IsGameMaster()))
CastSpell(this, curLiquid->SpellID, true);
// Update mount capabilities when changing liquidstatus (enabling / disabling flight auras for example)
if (player)
player->UpdateMountCapabilities();
}
}
void Unit::DeMorph()