diff --git a/src/game/DBScripts/ScriptMgr.cpp b/src/game/DBScripts/ScriptMgr.cpp index 51a9ca9369c..2f791187eda 100644 --- a/src/game/DBScripts/ScriptMgr.cpp +++ b/src/game/DBScripts/ScriptMgr.cpp @@ -952,7 +952,7 @@ void ScriptMgr::LoadScriptMap(ScriptMapType scriptType, bool reload) { auto questEndScripts = GetScriptMap(scriptType); // check ids - for (ScriptMapMap::const_iterator itr = questEndScripts->second.begin(); itr != questEndScripts->second.end(); ++itr) + for (auto itr = questEndScripts->second.begin(); itr != questEndScripts->second.end(); ++itr) { if (!sObjectMgr.GetQuestTemplate(itr->first)) sLog.outErrorDb("Table `dbscripts_on_quest_end` has not existing quest (Id: %u) as script id", itr->first); @@ -963,7 +963,7 @@ void ScriptMgr::LoadScriptMap(ScriptMapType scriptType, bool reload) { auto questStartScripts = GetScriptMap(scriptType); // check ids - for (ScriptMapMap::const_iterator itr = questStartScripts->second.begin(); itr != questStartScripts->second.end(); ++itr) + for (auto itr = questStartScripts->second.begin(); itr != questStartScripts->second.end(); ++itr) { if (!sObjectMgr.GetQuestTemplate(itr->first)) sLog.outErrorDb("Table `dbscripts_on_quest_start` has not existing quest (Id: %u) as script id", itr->first); @@ -974,7 +974,7 @@ void ScriptMgr::LoadScriptMap(ScriptMapType scriptType, bool reload) { auto spellScripts = GetScriptMap(scriptType); // check ids - for (ScriptMapMap::const_iterator itr = spellScripts->second.begin(); itr != spellScripts->second.end(); ++itr) + for (auto itr = spellScripts->second.begin(); itr != spellScripts->second.end(); ++itr) { SpellEntry const* spellInfo = sSpellTemplate.LookupEntry(itr->first); if (!spellInfo) @@ -1003,7 +1003,7 @@ void ScriptMgr::LoadScriptMap(ScriptMapType scriptType, bool reload) { auto goScripts = GetScriptMap(scriptType); // check ids - for (ScriptMapMap::const_iterator itr = goScripts->second.begin(); itr != goScripts->second.end(); ++itr) + for (auto itr = goScripts->second.begin(); itr != goScripts->second.end(); ++itr) { if (!sObjectMgr.GetGOData(itr->first)) sLog.outErrorDb("Table `dbscripts_on_go_use` has not existing gameobject (GUID: %u) as script id", itr->first); @@ -1014,7 +1014,7 @@ void ScriptMgr::LoadScriptMap(ScriptMapType scriptType, bool reload) { auto goTemplateScripts = GetScriptMap(scriptType); // check ids - for (ScriptMapMap::const_iterator itr = goTemplateScripts->second.begin(); itr != goTemplateScripts->second.end(); ++itr) + for (auto itr = goTemplateScripts->second.begin(); itr != goTemplateScripts->second.end(); ++itr) { if (!sObjectMgr.GetGameObjectInfo(itr->first)) sLog.outErrorDb("Table `dbscripts_on_go_template_use` has not existing gameobject (Entry: %u) as script id", itr->first); @@ -1029,7 +1029,7 @@ void ScriptMgr::LoadScriptMap(ScriptMapType scriptType, bool reload) auto eventScripts = GetScriptMap(scriptType); // Then check if all scripts are in above list of possible script entries - for (ScriptMapMap::const_iterator itr = eventScripts->second.begin(); itr != eventScripts->second.end(); ++itr) + for (auto itr = eventScripts->second.begin(); itr != eventScripts->second.end(); ++itr) { std::set::const_iterator itr2 = eventIds.find(itr->first); if (itr2 == eventIds.end()) @@ -1046,7 +1046,7 @@ void ScriptMgr::LoadScriptMap(ScriptMapType scriptType, bool reload) { // check ids auto deathScripts = GetScriptMap(scriptType); - for (ScriptMapMap::const_iterator itr = deathScripts->second.begin(); itr != deathScripts->second.end(); ++itr) + for (auto itr = deathScripts->second.begin(); itr != deathScripts->second.end(); ++itr) { if (!sObjectMgr.GetCreatureTemplate(itr->first)) sLog.outErrorDb("Table `dbscripts_on_creature_death` has not existing creature (Entry: %u) as script id", itr->first); @@ -1061,7 +1061,7 @@ void ScriptMgr::LoadScriptMap(ScriptMapType scriptType, bool reload) { // check ids auto relayScripts = GetScriptMap(scriptType); - for (ScriptMapMap::const_iterator itr = relayScripts->second.begin(); itr != relayScripts->second.end(); ++itr) + for (auto itr = relayScripts->second.begin(); itr != relayScripts->second.end(); ++itr) { for (auto& data : itr->second) // need to check after load is complete, because of nesting { @@ -1167,7 +1167,7 @@ void ScriptMgr::CheckRandomRelayTemplates() void ScriptMgr::CheckScriptTexts(ScriptMapType scriptType) { ScriptMapMapName const& scripts = *GetScriptMap(scriptType).get(); - for (ScriptMapMap::const_iterator itrMM = scripts.second.begin(); itrMM != scripts.second.end(); ++itrMM) + for (auto itrMM = scripts.second.begin(); itrMM != scripts.second.end(); ++itrMM) { for (ScriptMap::const_iterator itrM = itrMM->second.begin(); itrM != itrMM->second.end(); ++itrM) { diff --git a/src/game/DBScripts/ScriptMgr.h b/src/game/DBScripts/ScriptMgr.h index 5a0f72ef267..9a3adeb96a3 100644 --- a/src/game/DBScripts/ScriptMgr.h +++ b/src/game/DBScripts/ScriptMgr.h @@ -22,8 +22,9 @@ #include "Common.h" #include "Entities/ObjectGuid.h" #include "Server/DBCEnums.h" +#include "DBScripts/ScriptMgrDefines.h" -#include +#include class Map; class Object; @@ -584,22 +585,6 @@ struct ScriptInfo } }; -enum ScriptMapType -{ - SCRIPT_TYPE_QUEST_END = 0, - SCRIPT_TYPE_QUEST_START = 1, - SCRIPT_TYPE_SPELL = 2, - SCRIPT_TYPE_GAMEOBJECT = 3, - SCRIPT_TYPE_GAMEOBJECT_TEMPLATE = 4, - SCRIPT_TYPE_EVENT = 5, - SCRIPT_TYPE_GOSSIP = 6, - SCRIPT_TYPE_CREATURE_DEATH = 7, - SCRIPT_TYPE_CREATURE_MOVEMENT = 8, - SCRIPT_TYPE_RELAY = 9, - SCRIPT_TYPE_INTERNAL = 10, // must be last - SCRIPT_TYPE_MAX -}; - class ScriptAction { public: diff --git a/src/game/DBScripts/ScriptMgrDefines.h b/src/game/DBScripts/ScriptMgrDefines.h new file mode 100644 index 00000000000..4589e858ccd --- /dev/null +++ b/src/game/DBScripts/ScriptMgrDefines.h @@ -0,0 +1,38 @@ +/* + * This file is part of the CMaNGOS Project. See AUTHORS file for Copyright information + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#ifndef _SCRIPTMGRDEF_H +#define _SCRIPTMGRDEF_H + +enum ScriptMapType +{ + SCRIPT_TYPE_QUEST_END = 0, + SCRIPT_TYPE_QUEST_START = 1, + SCRIPT_TYPE_SPELL = 2, + SCRIPT_TYPE_GAMEOBJECT = 3, + SCRIPT_TYPE_GAMEOBJECT_TEMPLATE = 4, + SCRIPT_TYPE_EVENT = 5, + SCRIPT_TYPE_GOSSIP = 6, + SCRIPT_TYPE_CREATURE_DEATH = 7, + SCRIPT_TYPE_CREATURE_MOVEMENT = 8, + SCRIPT_TYPE_RELAY = 9, + SCRIPT_TYPE_INTERNAL = 10, // must be last + SCRIPT_TYPE_MAX +}; + +#endif \ No newline at end of file diff --git a/src/game/Globals/ObjectMgr.cpp b/src/game/Globals/ObjectMgr.cpp index 1d23320581e..7a4e5bd0509 100644 --- a/src/game/Globals/ObjectMgr.cpp +++ b/src/game/Globals/ObjectMgr.cpp @@ -9725,7 +9725,7 @@ void ObjectMgr::LoadGossipMenus() auto gossipScripts = sScriptMgr.GetScriptMap(SCRIPT_TYPE_GOSSIP); // Check which script-ids in dbscripts_on_gossip are not used std::set gossipScriptSet; - for (ScriptMapMap::const_iterator itr = gossipScripts->second.begin(); itr != gossipScripts->second.end(); ++itr) + for (auto itr = gossipScripts->second.begin(); itr != gossipScripts->second.end(); ++itr) gossipScriptSet.insert(itr->first); // Load gossip_menu and gossip_menu_option data diff --git a/src/game/Maps/MapDataContainer.h b/src/game/Maps/MapDataContainer.h index 5562b52aa2c..e218134934d 100644 --- a/src/game/Maps/MapDataContainer.h +++ b/src/game/Maps/MapDataContainer.h @@ -20,6 +20,7 @@ #define MAP_DATA_CONTAINER_H #include "Platform/Define.h" +#include "DBScripts/ScriptMgrDefines.h" #include #include #include @@ -30,12 +31,18 @@ struct SpawnGroupEntry; struct SpawnGroupEntryContainer; struct CreatureEventAI_Event; struct CreatureEventAI_EventComputedData; +struct ScriptInfo; // Event_Map typedef std::vector CreatureEventAI_Event_Vec; typedef std::unordered_map CreatureEventAI_Event_Map; typedef std::unordered_map CreatureEventAI_EventComputedData_Map; +// Scripts +typedef std::multimap < uint32 /*delay*/, std::shared_ptr> ScriptMap; +typedef std::map < uint32 /*id*/, ScriptMap > ScriptMapMap; +typedef std::pair ScriptMapMapName; + class MapDataContainer { public: diff --git a/src/game/MotionGenerators/WaypointManager.cpp b/src/game/MotionGenerators/WaypointManager.cpp index dc974c461a5..ac8b558ba9f 100644 --- a/src/game/MotionGenerators/WaypointManager.cpp +++ b/src/game/MotionGenerators/WaypointManager.cpp @@ -157,7 +157,7 @@ void WaypointManager::Load() std::set movementScriptSet; auto creatureMovementScripts = sScriptMgr.GetScriptMap(SCRIPT_TYPE_CREATURE_MOVEMENT); - for (ScriptMapMap::const_iterator itr = creatureMovementScripts->second.begin(); itr != creatureMovementScripts->second.end(); ++itr) + for (auto itr = creatureMovementScripts->second.begin(); itr != creatureMovementScripts->second.end(); ++itr) movementScriptSet.insert(itr->first); // /////////////////////////////////////////////////////