|
|
|
@@ -110,7 +110,7 @@ bool Condition::Meets(Player * player, Unit* invoker)
|
|
|
|
|
condMeets = !player->HasAuraEffect(mConditionValue1, mConditionValue2);
|
|
|
|
|
break;
|
|
|
|
|
case CONDITION_ACTIVE_EVENT:
|
|
|
|
|
condMeets = sGameEventMgr.IsActiveEvent(mConditionValue1);
|
|
|
|
|
condMeets = sGameEventMgr->IsActiveEvent(mConditionValue1);
|
|
|
|
|
break;
|
|
|
|
|
case CONDITION_INSTANCE_DATA:
|
|
|
|
|
{
|
|
|
|
@@ -219,8 +219,8 @@ bool Condition::Meets(Player * player, Unit* invoker)
|
|
|
|
|
bool refMeets = false;
|
|
|
|
|
if (condMeets && refId)//only have to check references if 'this' is met
|
|
|
|
|
{
|
|
|
|
|
ConditionList ref = sConditionMgr.GetConditionReferences(refId);
|
|
|
|
|
refMeets = sConditionMgr.IsPlayerMeetToConditions(player, ref);
|
|
|
|
|
ConditionList ref = sConditionMgr->GetConditionReferences(refId);
|
|
|
|
|
refMeets = sConditionMgr->IsPlayerMeetToConditions(player, ref);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
refMeets = true;
|
|
|
|
@@ -228,7 +228,7 @@ bool Condition::Meets(Player * player, Unit* invoker)
|
|
|
|
|
if (sendErrorMsg && ErrorTextd && (!condMeets || !refMeets))//send special error from DB
|
|
|
|
|
player->m_ConditionErrorMsgId = ErrorTextd;
|
|
|
|
|
|
|
|
|
|
bool script = sScriptMgr.OnConditionCheck(this, player, invoker); // Returns true by default.
|
|
|
|
|
bool script = sScriptMgr->OnConditionCheck(this, player, invoker); // Returns true by default.
|
|
|
|
|
return condMeets && refMeets && script;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@@ -369,10 +369,10 @@ void ConditionMgr::LoadConditions(bool isReload)
|
|
|
|
|
LootTemplates_Spell.ResetConditions();
|
|
|
|
|
|
|
|
|
|
sLog.outString("Re-Loading `gossip_menu` Table for Conditions!");
|
|
|
|
|
sObjectMgr.LoadGossipMenu();
|
|
|
|
|
sObjectMgr->LoadGossipMenu();
|
|
|
|
|
|
|
|
|
|
sLog.outString("Re-Loading `gossip_menu_option` Table for Conditions!");
|
|
|
|
|
sObjectMgr.LoadGossipMenuItems();
|
|
|
|
|
sObjectMgr->LoadGossipMenuItems();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@@ -403,7 +403,7 @@ void ConditionMgr::LoadConditions(bool isReload)
|
|
|
|
|
cond->mConditionValue2 = fields[6].GetUInt32();
|
|
|
|
|
cond->mConditionValue3 = fields[7].GetUInt32();
|
|
|
|
|
cond->ErrorTextd = fields[8].GetUInt32();
|
|
|
|
|
cond->mScriptId = sObjectMgr.GetScriptId(fields[9].GetCString());
|
|
|
|
|
cond->mScriptId = sObjectMgr->GetScriptId(fields[9].GetCString());
|
|
|
|
|
|
|
|
|
|
if (iConditionTypeOrReference >= 0)
|
|
|
|
|
cond->mConditionType = ConditionType(iConditionTypeOrReference);
|
|
|
|
@@ -594,7 +594,7 @@ bool ConditionMgr::addToLootTemplate(Condition* cond, LootTemplate* loot)
|
|
|
|
|
|
|
|
|
|
bool ConditionMgr::addToGossipMenus(Condition* cond)
|
|
|
|
|
{
|
|
|
|
|
GossipMenusMapBoundsNonConst pMenuBounds = sObjectMgr.GetGossipMenusMapBoundsNonConst(cond->mSourceGroup);
|
|
|
|
|
GossipMenusMapBoundsNonConst pMenuBounds = sObjectMgr->GetGossipMenusMapBoundsNonConst(cond->mSourceGroup);
|
|
|
|
|
|
|
|
|
|
if (pMenuBounds.first != pMenuBounds.second)
|
|
|
|
|
{
|
|
|
|
@@ -614,7 +614,7 @@ bool ConditionMgr::addToGossipMenus(Condition* cond)
|
|
|
|
|
|
|
|
|
|
bool ConditionMgr::addToGossipMenuItems(Condition* cond)
|
|
|
|
|
{
|
|
|
|
|
GossipMenuItemsMapBoundsNonConst pMenuItemBounds = sObjectMgr.GetGossipMenuItemsMapBoundsNonConst(cond->mSourceGroup);
|
|
|
|
|
GossipMenuItemsMapBoundsNonConst pMenuItemBounds = sObjectMgr->GetGossipMenuItemsMapBoundsNonConst(cond->mSourceGroup);
|
|
|
|
|
if (pMenuItemBounds.first != pMenuItemBounds.second)
|
|
|
|
|
{
|
|
|
|
|
for (GossipMenuItemsMap::iterator itr = pMenuItemBounds.first; itr != pMenuItemBounds.second; ++itr)
|
|
|
|
@@ -947,7 +947,7 @@ bool ConditionMgr::isSourceTypeValid(Condition* cond)
|
|
|
|
|
if (pItemProto->Spells[i].SpellTrigger == ITEM_SPELLTRIGGER_ON_USE ||
|
|
|
|
|
pItemProto->Spells[i].SpellTrigger == ITEM_SPELLTRIGGER_ON_NO_DELAY_USE)
|
|
|
|
|
{
|
|
|
|
|
ConditionList conditions = sConditionMgr.GetConditionsForNotGroupedEntry(CONDITION_SOURCE_TYPE_SPELL_SCRIPT_TARGET, pSpellInfo->Id);//script loading is done before item target loading
|
|
|
|
|
ConditionList conditions = sConditionMgr->GetConditionsForNotGroupedEntry(CONDITION_SOURCE_TYPE_SPELL_SCRIPT_TARGET, pSpellInfo->Id);//script loading is done before item target loading
|
|
|
|
|
if (!conditions.empty())
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
@@ -979,7 +979,7 @@ bool ConditionMgr::isSourceTypeValid(Condition* cond)
|
|
|
|
|
}
|
|
|
|
|
case CONDITION_SOURCE_TYPE_QUEST_ACCEPT:
|
|
|
|
|
{
|
|
|
|
|
Quest const *Quest = sObjectMgr.GetQuestTemplate(cond->mSourceEntry);
|
|
|
|
|
Quest const *Quest = sObjectMgr->GetQuestTemplate(cond->mSourceEntry);
|
|
|
|
|
if (!Quest)
|
|
|
|
|
{
|
|
|
|
|
sLog.outErrorDb("CONDITION_SOURCE_TYPE_QUEST_ACCEPT specifies non-existing quest (%u), skipped", cond->mSourceEntry);
|
|
|
|
@@ -989,7 +989,7 @@ bool ConditionMgr::isSourceTypeValid(Condition* cond)
|
|
|
|
|
break;
|
|
|
|
|
case CONDITION_SOURCE_TYPE_QUEST_SHOW_MARK:
|
|
|
|
|
{
|
|
|
|
|
Quest const *Quest = sObjectMgr.GetQuestTemplate(cond->mSourceEntry);
|
|
|
|
|
Quest const *Quest = sObjectMgr->GetQuestTemplate(cond->mSourceEntry);
|
|
|
|
|
if (!Quest)
|
|
|
|
|
{
|
|
|
|
|
sLog.outErrorDb("CONDITION_SOURCE_TYPE_QUEST_SHOW_MARK specifies non-existing quest (%u), skipped", cond->mSourceEntry);
|
|
|
|
@@ -1137,7 +1137,7 @@ bool ConditionMgr::isConditionTypeValid(Condition* cond)
|
|
|
|
|
case CONDITION_QUEST_NONE:
|
|
|
|
|
case CONDITION_QUEST_COMPLETE:
|
|
|
|
|
{
|
|
|
|
|
Quest const *Quest = sObjectMgr.GetQuestTemplate(cond->mConditionValue1);
|
|
|
|
|
Quest const *Quest = sObjectMgr->GetQuestTemplate(cond->mConditionValue1);
|
|
|
|
|
if (!Quest)
|
|
|
|
|
{
|
|
|
|
|
sLog.outErrorDb("Quest condition specifies non-existing quest (%u), skipped", cond->mConditionValue1);
|
|
|
|
@@ -1165,7 +1165,7 @@ bool ConditionMgr::isConditionTypeValid(Condition* cond)
|
|
|
|
|
}
|
|
|
|
|
case CONDITION_ACTIVE_EVENT:
|
|
|
|
|
{
|
|
|
|
|
GameEventMgr::GameEventDataMap const& events = sGameEventMgr.GetEventMap();
|
|
|
|
|
GameEventMgr::GameEventDataMap const& events = sGameEventMgr->GetEventMap();
|
|
|
|
|
if (cond->mConditionValue1 >=events.size() || !events[cond->mConditionValue1].isValid())
|
|
|
|
|
{
|
|
|
|
|
sLog.outErrorDb("Active event condition has non existing event id (%u), skipped", cond->mConditionValue1);
|
|
|
|
|