diff options
Diffstat (limited to 'src/server/game/Globals/ObjectMgr.cpp')
-rw-r--r-- | src/server/game/Globals/ObjectMgr.cpp | 51 |
1 files changed, 5 insertions, 46 deletions
diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp index 71cd4c46b80..b07c9ecc0f5 100644 --- a/src/server/game/Globals/ObjectMgr.cpp +++ b/src/server/game/Globals/ObjectMgr.cpp @@ -45,6 +45,7 @@ #include "GossipDef.h" #include "Vehicle.h" #include "AchievementMgr.h" +#include "DisableMgr.h" ScriptMapMap sQuestEndScripts; ScriptMapMap sQuestStartScripts; @@ -3701,6 +3702,10 @@ void ObjectMgr::LoadQuests() // Post processing for (QuestMap::iterator iter = mQuestTemplates.begin(); iter != mQuestTemplates.end(); ++iter) { + // skip post-loading checks for disabled quests + if (sDisableMgr.IsDisabledFor(DISABLE_TYPE_QUEST, iter->first, NULL)) + continue; + Quest * qinfo = iter->second; // additional quest integrity checks (GO, creature_template and item_template must be loaded already) @@ -7574,52 +7579,6 @@ const char *ObjectMgr::GetTrinityString(int32 entry, int locale_idx) const return "<error>"; } -void ObjectMgr::LoadSpellDisabledEntrys() -{ - m_DisabledPlayerSpells.clear(); // need for reload case - m_DisabledCreatureSpells.clear(); - m_DisabledPetSpells.clear(); - QueryResult_AutoPtr result = WorldDatabase.Query("SELECT entry, disable_mask FROM spell_disabled"); - - uint32 total_count = 0; - - if (!result) - { - barGoLink bar(1); - bar.step(); - - sLog.outString(); - sLog.outString(">> Loaded %u disabled spells", total_count); - return; - } - - barGoLink bar(result->GetRowCount()); - - Field* fields; - do - { - bar.step(); - fields = result->Fetch(); - uint32 spellid = fields[0].GetUInt32(); - if (!sSpellStore.LookupEntry(spellid)) - { - sLog.outErrorDb("Spell entry %u from `spell_disabled` doesn't exist in dbc, ignoring.",spellid); - continue; - } - uint32 disable_mask = fields[1].GetUInt32(); - if (disable_mask & SPELL_DISABLE_PLAYER) - m_DisabledPlayerSpells.insert(spellid); - if (disable_mask & SPELL_DISABLE_CREATURE) - m_DisabledCreatureSpells.insert(spellid); - if (disable_mask & SPELL_DISABLE_PET) - m_DisabledPetSpells.insert(spellid); - ++total_count; - } while (result->NextRow()); - - sLog.outString(); - sLog.outString(">> Loaded %u disabled spells from `spell_disabled`", total_count); -} - void ObjectMgr::LoadFishingBaseSkillLevel() { mFishingBaseForArea.clear(); // for reload case |