Revert "fix(Core/Spells): Forward core changes (#8841)" (#9631)

This reverts commit 85d2c39a48.
This commit is contained in:
Skjalf
2021-12-10 11:31:48 -03:00
committed by GitHub
parent 8b200fae91
commit 2d55974c0c
14 changed files with 140 additions and 233 deletions

View File

@@ -1473,7 +1473,7 @@ public:
[[nodiscard]] bool HasQuestForItem(uint32 itemId, uint32 excludeQuestId = 0, bool turnIn = false, bool* showInLoot = nullptr) const;
[[nodiscard]] bool HasQuestForGO(int32 GOId) const;
[[nodiscard]] bool HasQuest(uint32 questId) const;
void UpdateVisibleGameobjectsOrSpellClicks();
void UpdateForQuestWorldObjects();
[[nodiscard]] bool CanShareQuest(uint32 quest_id) const;
void SendQuestComplete(uint32 quest_id);

View File

@@ -1548,7 +1548,7 @@ void Player::SendQuestUpdate(uint32 questId)
RemoveAurasDueToSpell(oldSpellId);
}
UpdateVisibleGameobjectsOrSpellClicks();
UpdateForQuestWorldObjects();
}
QuestGiverStatus Player::GetQuestDialogStatus(Object* questgiver)
@@ -1809,7 +1809,7 @@ void Player::ItemAddedQuestCheck(uint32 entry, uint32 count)
}
}
}
UpdateVisibleGameobjectsOrSpellClicks();
UpdateForQuestWorldObjects();
}
void Player::ItemRemovedQuestCheck(uint32 entry, uint32 count)
@@ -1850,7 +1850,7 @@ void Player::ItemRemovedQuestCheck(uint32 entry, uint32 count)
}
}
}
UpdateVisibleGameobjectsOrSpellClicks();
UpdateForQuestWorldObjects();
}
void Player::KilledMonster(CreatureTemplate const* cInfo, ObjectGuid guid)

View File

@@ -2848,7 +2848,7 @@ Item* Player::EquipItem(uint16 pos, Item* pItem, bool update)
UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_EQUIP_EPIC_ITEM, pItem->GetEntry(), slot);
sScriptMgr->OnEquip(this, pItem, bag, slot, update);
UpdateVisibleGameobjectsOrSpellClicks();
UpdateForQuestWorldObjects();
return pItem;
}

View File

@@ -1829,7 +1829,7 @@ void Player::UpdateTriggerVisibility()
GetSession()->SendPacket(&packet);
}
void Player::UpdateVisibleGameobjectsOrSpellClicks()
void Player::UpdateForQuestWorldObjects()
{
if (m_clientGUIDs.empty())
return;
@@ -1856,9 +1856,19 @@ void Player::UpdateVisibleGameobjectsOrSpellClicks()
SpellClickInfoMapBounds clickPair = sObjectMgr->GetSpellClickInfoMapBounds(obj->GetEntry());
for (SpellClickInfoContainer::const_iterator _itr = clickPair.first; _itr != clickPair.second; ++_itr)
{
//! This code doesn't look right, but it was logically converted to condition system to do the exact
//! same thing it did before. It definitely needs to be overlooked for intended functionality.
ConditionList conds = sConditionMgr->GetConditionsForSpellClickEvent(obj->GetEntry(), _itr->second.spellId);
obj->BuildValuesUpdateBlockForPlayer(&udata, this);
break;
bool buildUpdateBlock = false;
for (ConditionList::const_iterator jtr = conds.begin(); jtr != conds.end() && !buildUpdateBlock; ++jtr)
if ((*jtr)->ConditionType == CONDITION_QUESTREWARDED || (*jtr)->ConditionType == CONDITION_QUESTTAKEN)
buildUpdateBlock = true;
if (buildUpdateBlock)
{
obj->BuildValuesUpdateBlockForPlayer(&udata, this);
break;
}
}
}
}

View File

@@ -4081,14 +4081,6 @@ void Unit::_ApplyAura(AuraApplication* aurApp, uint8 effMask)
if (effMask & 1 << i && (!aurApp->GetRemoveMode()))
aurApp->_HandleEffect(i, true);
}
if (Player* player = ToPlayer())
{
if (sConditionMgr->IsSpellUsedInSpellClickConditions(aurApp->GetBase()->GetId()))
{
player->UpdateVisibleGameobjectsOrSpellClicks();
}
}
}
// removes aura application from lists and unapplies effects
@@ -4167,14 +4159,6 @@ void Unit::_UnapplyAura(AuraApplicationMap::iterator& i, AuraRemoveMode removeMo
aura->HandleAuraSpecificMods(aurApp, caster, false, false);
if (Player* player = ToPlayer())
{
if (sConditionMgr->IsSpellUsedInSpellClickConditions(aurApp->GetBase()->GetId()))
{
player->UpdateVisibleGameobjectsOrSpellClicks();
}
}
// only way correctly remove all auras from list
//if (removedAuras != m_removedAurasCount) new aura may be added
i = m_appliedAuras.begin();