AzerothCore 3.3.5a
OpenSource WoW Emulator
Loading...
Searching...
No Matches
DisableMgr Namespace Reference

Namespaces

namespace  anonymous_namespace{DisableMgr.cpp}
 

Functions

void LoadDisables ()
 
void CheckQuestDisables ()
 
bool IsDisabledFor (DisableType type, uint32 entry, Unit const *unit, uint8 flags)
 
bool IsVMAPDisabledFor (uint32 entry, uint8 flags)
 
bool IsPathfindingEnabled (const Map *map)
 

Function Documentation

◆ CheckQuestDisables()

void DisableMgr::CheckQuestDisables ( )
276 {
277 uint32 oldMSTime = getMSTime();
278
279 uint32 count = m_DisableMap[DISABLE_TYPE_QUEST].size();
280 if (!count)
281 {
282 LOG_INFO("server.loading", ">> Checked 0 quest disables.");
283 LOG_INFO("server.loading", " ");
284 return;
285 }
286
287 // check only quests, rest already done at startup
288 for (DisableTypeMap::iterator itr = m_DisableMap[DISABLE_TYPE_QUEST].begin(); itr != m_DisableMap[DISABLE_TYPE_QUEST].end();)
289 {
290 const uint32 entry = itr->first;
291 if (!sObjectMgr->GetQuestTemplate(entry))
292 {
293 LOG_ERROR("sql.sql", "Quest entry {} from `disables` doesn't exist, skipped.", entry);
294 m_DisableMap[DISABLE_TYPE_QUEST].erase(itr++);
295 continue;
296 }
297 if (itr->second.flags)
298 LOG_ERROR("sql.sql", "Disable flags specified for quest {}, useless data.", entry);
299 ++itr;
300 }
301
302 LOG_INFO("server.loading", ">> Checked {} Quest Disables in {} ms", count, GetMSTimeDiffToNow(oldMSTime));
303 LOG_INFO("server.loading", " ");
304 }
std::uint32_t uint32
Definition: Define.h:108
#define LOG_INFO(filterType__,...)
Definition: Log.h:165
#define LOG_ERROR(filterType__,...)
Definition: Log.h:157
uint32 GetMSTimeDiffToNow(uint32 oldMSTime)
Definition: Timer.h:131
uint32 getMSTime()
Definition: Timer.h:103
@ DISABLE_TYPE_QUEST
Definition: DisableMgr.h:30
#define sObjectMgr
Definition: ObjectMgr.h:1640

References DISABLE_TYPE_QUEST, getMSTime(), GetMSTimeDiffToNow(), LOG_ERROR, LOG_INFO, and sObjectMgr.

Referenced by reload_commandscript::HandleReloadDisablesCommand(), and World::SetInitialWorldSettings().

◆ IsDisabledFor()

bool DisableMgr::IsDisabledFor ( DisableType  type,
uint32  entry,
Unit const *  unit,
uint8  flags 
)
307 {
308 if (type > MAX_DISABLE_TYPES)
309 {
310 LOG_ERROR("server", "Disables::IsDisabledFor() called with unknown disable type {}! (entry {}, flags {}).", type, entry, flags);
311 return false;
312 }
313
314 if (m_DisableMap[type].empty())
315 return false;
316
317 DisableTypeMap::iterator itr = m_DisableMap[type].find(entry);
318 if (itr == m_DisableMap[type].end()) // not disabled
319 return false;
320
321 switch (type)
322 {
324 {
325 uint8 spellFlags = itr->second.flags;
326 if (unit)
327 {
328 if ((spellFlags & SPELL_DISABLE_PLAYER && unit->GetTypeId() == TYPEID_PLAYER) ||
329 (unit->GetTypeId() == TYPEID_UNIT && ((unit->IsPet() && spellFlags & SPELL_DISABLE_PET) || spellFlags & SPELL_DISABLE_CREATURE)))
330 {
331 if (spellFlags & SPELL_DISABLE_MAP)
332 {
333 std::set<uint32> const& mapIds = itr->second.params[0];
334 if (mapIds.find(unit->GetMapId()) != mapIds.end())
335 return true; // Spell is disabled on current map
336
337 if (!(spellFlags & SPELL_DISABLE_AREA))
338 return false; // Spell is disabled on another map, but not this one, return false
339
340 // Spell is disabled in an area, but not explicitly our current mapId. Continue processing.
341 }
342
343 if (spellFlags & SPELL_DISABLE_AREA)
344 {
345 std::set<uint32> const& areaIds = itr->second.params[1];
346 if (areaIds.find(unit->GetAreaId()) != areaIds.end())
347 return true; // Spell is disabled in this area
348 return false; // Spell is disabled in another area, but not this one, return false
349 }
350 else
351 return true; // Spell disabled for all maps
352 }
353
354 return false;
355 }
356 else if (spellFlags & SPELL_DISABLE_DEPRECATED_SPELL) // call not from spellcast
357 return true;
358
359 break;
360 }
361 case DISABLE_TYPE_MAP:
363 if (Player const* player = unit->ToPlayer())
364 {
365 MapEntry const* mapEntry = sMapStore.LookupEntry(entry);
366 if (mapEntry->IsDungeon())
367 {
368 uint8 disabledModes = itr->second.flags;
369 Difficulty targetDifficulty = player->GetDifficulty(mapEntry->IsRaid());
370 GetDownscaledMapDifficultyData(entry, targetDifficulty);
371 switch (targetDifficulty)
372 {
374 return disabledModes & DUNGEON_STATUSFLAG_NORMAL;
376 return disabledModes & DUNGEON_STATUSFLAG_HEROIC;
378 return disabledModes & RAID_STATUSFLAG_10MAN_HEROIC;
380 return disabledModes & RAID_STATUSFLAG_25MAN_HEROIC;
381 }
382 }
383 else if (mapEntry->map_type == MAP_COMMON)
384 return true;
385 }
386 return false;
388 return true;
392 return true;
394 return flags & itr->second.flags;
396 return true;
398 return true;
400 return true;
401 }
402
403 return false;
404 }
std::uint8_t uint8
Definition: Define.h:110
@ SPELL_DISABLE_CREATURE
Definition: DisableMgr.h:45
@ SPELL_DISABLE_PET
Definition: DisableMgr.h:46
@ SPELL_DISABLE_MAP
Definition: DisableMgr.h:48
@ SPELL_DISABLE_PLAYER
Definition: DisableMgr.h:44
@ SPELL_DISABLE_DEPRECATED_SPELL
Definition: DisableMgr.h:47
@ SPELL_DISABLE_AREA
Definition: DisableMgr.h:49
@ DISABLE_TYPE_SPELL
Definition: DisableMgr.h:29
@ DISABLE_TYPE_VMAP
Definition: DisableMgr.h:35
@ DISABLE_TYPE_MAP
Definition: DisableMgr.h:31
@ DISABLE_TYPE_BATTLEGROUND
Definition: DisableMgr.h:32
@ DISABLE_TYPE_ACHIEVEMENT_CRITERIA
Definition: DisableMgr.h:33
@ DISABLE_TYPE_LOOT
Definition: DisableMgr.h:39
@ DISABLE_TYPE_GAME_EVENT
Definition: DisableMgr.h:38
@ DISABLE_TYPE_LFG_MAP
Definition: DisableMgr.h:37
@ DISABLE_TYPE_GO_LOS
Definition: DisableMgr.h:36
@ DISABLE_TYPE_OUTDOORPVP
Definition: DisableMgr.h:34
MapDifficulty const * GetDownscaledMapDifficultyData(uint32 mapId, Difficulty &difficulty)
Definition: DBCStores.cpp:763
DBCStorage< MapEntry > sMapStore(MapEntryfmt)
@ TYPEID_UNIT
Definition: ObjectGuid.h:37
@ TYPEID_PLAYER
Definition: ObjectGuid.h:38
@ MAP_COMMON
Definition: DBCEnums.h:354
Difficulty
Definition: DBCEnums.h:274
@ RAID_DIFFICULTY_25MAN_HEROIC
Definition: DBCEnums.h:284
@ DUNGEON_DIFFICULTY_NORMAL
Definition: DBCEnums.h:277
@ DUNGEON_DIFFICULTY_HEROIC
Definition: DBCEnums.h:278
@ RAID_DIFFICULTY_10MAN_HEROIC
Definition: DBCEnums.h:283
@ DUNGEON_STATUSFLAG_NORMAL
Definition: SharedDefines.h:3694
@ RAID_STATUSFLAG_10MAN_HEROIC
Definition: SharedDefines.h:3699
@ RAID_STATUSFLAG_25MAN_HEROIC
Definition: SharedDefines.h:3700
@ DUNGEON_STATUSFLAG_HEROIC
Definition: SharedDefines.h:3695
Player * ToPlayer()
Definition: Object.h:195
Definition: Player.h:1056
Definition: DBCStructure.h:1323
bool IsDungeon() const
Definition: DBCStructure.h:1349
bool IsRaid() const
Definition: DBCStructure.h:1352
uint32 map_type
Definition: DBCStructure.h:1326

References DISABLE_TYPE_ACHIEVEMENT_CRITERIA, DISABLE_TYPE_BATTLEGROUND, DISABLE_TYPE_GAME_EVENT, DISABLE_TYPE_GO_LOS, DISABLE_TYPE_LFG_MAP, DISABLE_TYPE_LOOT, DISABLE_TYPE_MAP, DISABLE_TYPE_OUTDOORPVP, DISABLE_TYPE_QUEST, DISABLE_TYPE_SPELL, DISABLE_TYPE_VMAP, DUNGEON_DIFFICULTY_HEROIC, DUNGEON_DIFFICULTY_NORMAL, DUNGEON_STATUSFLAG_HEROIC, DUNGEON_STATUSFLAG_NORMAL, WorldObject::GetAreaId(), GetDownscaledMapDifficultyData(), WorldLocation::GetMapId(), Object::GetTypeId(), MapEntry::IsDungeon(), Unit::IsPet(), MapEntry::IsRaid(), LOG_ERROR, MAP_COMMON, MapEntry::map_type, RAID_DIFFICULTY_10MAN_HEROIC, RAID_DIFFICULTY_25MAN_HEROIC, RAID_STATUSFLAG_10MAN_HEROIC, RAID_STATUSFLAG_25MAN_HEROIC, sMapStore, SPELL_DISABLE_AREA, SPELL_DISABLE_CREATURE, SPELL_DISABLE_DEPRECATED_SPELL, SPELL_DISABLE_MAP, SPELL_DISABLE_PET, SPELL_DISABLE_PLAYER, Object::ToPlayer(), TYPEID_PLAYER, and TYPEID_UNIT.

Referenced by LootItem::AllowedForPlayer(), Player::CanSeeStartQuest(), Player::CanTakeQuest(), AchievementMgr::CanUpdateCriteria(), Spell::CheckEffectTarget(), GameObject::EnableCollision(), WorldSession::HandleBattlemasterJoinArena(), WorldSession::HandleBattlemasterJoinOpcode(), WorldSession::HandleCalendarGetCalendar(), lfg::LFGMgr::InitializeLockedDungeons(), OutdoorPvPMgr::InitOutdoorPvP(), IsVMAPDisabledFor(), AchievementGlobalMgr::LoadAchievementCriteriaData(), BattlegroundMgr::LoadBattlegroundTemplates(), ObjectMgr::LoadItemTemplates(), ObjectMgr::LoadQuests(), Spell::prepare(), Player::Satisfy(), GameEventMgr::StartEvent(), and Player::TeleportTo().

◆ IsPathfindingEnabled()

bool DisableMgr::IsPathfindingEnabled ( const Map map)
412 {
413 if (!map)
414 return false;
415
416 return !MMAP::MMapFactory::forbiddenMaps[map->GetId()] && (sWorld->getBoolConfig(CONFIG_ENABLE_MMAPS) ? true : map->IsBattlegroundOrArena());
417 }
@ CONFIG_ENABLE_MMAPS
Definition: IWorld.h:146
#define sWorld
Definition: World.h:447
static bool forbiddenMaps[1000]
Definition: MMapFactory.h:45
bool IsBattlegroundOrArena() const
Definition: Map.h:456
uint32 GetId() const
Definition: Map.h:379

References CONFIG_ENABLE_MMAPS, MMAP::MMapFactory::forbiddenMaps, Map::GetId(), Map::IsBattlegroundOrArena(), and sWorld.

Referenced by HomeMovementGenerator< Creature >::_setTargetLocation(), Spell::CheckCast(), WorldSession::HandlePetActionHelper(), Map::LoadMMap(), and Unit::PetSpellFail().

◆ IsVMAPDisabledFor()

bool DisableMgr::IsVMAPDisabledFor ( uint32  entry,
uint8  flags 
)
407 {
408 return IsDisabledFor(DISABLE_TYPE_VMAP, entry, nullptr, flags);
409 }
bool IsDisabledFor(DisableType type, uint32 entry, Unit const *unit, uint8 flags)
Definition: DisableMgr.cpp:306

References DISABLE_TYPE_VMAP, and IsDisabledFor().

Referenced by World::SetInitialWorldSettings().

◆ LoadDisables()

void DisableMgr::LoadDisables ( )
51 {
52 uint32 oldMSTime = getMSTime();
53
54 // reload case
55 for (DisableMap::iterator itr = m_DisableMap.begin(); itr != m_DisableMap.end(); ++itr)
56 itr->second.clear();
57
58 m_DisableMap.clear();
59
60 QueryResult result = WorldDatabase.Query("SELECT sourceType, entry, flags, params_0, params_1 FROM disables");
61
62 uint32 total_count = 0;
63
64 if (!result)
65 {
66 LOG_WARN("server.loading", ">> Loaded 0 disables. DB table `disables` is empty!");
67 LOG_INFO("server.loading", " ");
68 return;
69 }
70
71 Field* fields;
72 do
73 {
74 fields = result->Fetch();
75 DisableType type = DisableType(fields[0].Get<uint32>());
76 if (type >= MAX_DISABLE_TYPES)
77 {
78 LOG_ERROR("sql.sql", "Invalid type {} specified in `disables` table, skipped.", type);
79 continue;
80 }
81
82 uint32 entry = fields[1].Get<uint32>();
83 uint8 flags = fields[2].Get<uint8>();
84 std::string params_0 = fields[3].Get<std::string>();
85 std::string params_1 = fields[4].Get<std::string>();
86
87 DisableData data;
88 data.flags = flags;
89
90 switch (type)
91 {
93 if (!sObjectMgr->GetGameObjectTemplate(entry))
94 {
95 LOG_ERROR("sql.sql", "Gameobject entry {} from `disables` doesn't exist in dbc, skipped.", entry);
96 continue;
97 }
98 if (flags)
99 LOG_ERROR("sql.sql", "Disable flags specified for gameobject {}, useless data.", entry);
100 break;
102 if (!(sSpellMgr->GetSpellInfo(entry) || flags & SPELL_DISABLE_DEPRECATED_SPELL))
103 {
104 LOG_ERROR("sql.sql", "Spell entry {} from `disables` doesn't exist in dbc, skipped.", entry);
105 continue;
106 }
107
108 if (!flags || flags > MAX_SPELL_DISABLE_TYPE)
109 {
110 LOG_ERROR("sql.sql", "Disable flags for spell {} are invalid, skipped.", entry);
111 continue;
112 }
113
114 if (flags & SPELL_DISABLE_MAP)
115 {
116 for (std::string_view mapStr : Acore::Tokenize(params_0, ',', true))
117 {
118 if (Optional<uint32> mapId = Acore::StringTo<uint32>(mapStr))
119 data.params[0].insert(*mapId);
120 else
121 LOG_ERROR("sql.sql", "Disable map '{}' for spell {} is invalid, skipped.", mapStr, entry);
122 }
123 }
124
125 if (flags & SPELL_DISABLE_AREA)
126 {
127 for (std::string_view areaStr : Acore::Tokenize(params_1, ',', true))
128 {
129 if (Optional<uint32> areaId = Acore::StringTo<uint32>(areaStr))
130 data.params[1].insert(*areaId);
131 else
132 LOG_ERROR("sql.sql", "Disable area '{}' for spell {} is invalid, skipped.", areaStr, entry);
133 }
134 }
135
136 // xinef: if spell has disabled los, add flag
137 if (flags & SPELL_DISABLE_LOS)
138 {
139 SpellInfo* spellInfo = const_cast<SpellInfo*>(sSpellMgr->GetSpellInfo(entry));
141 }
142
143 break;
144 // checked later
146 break;
147 case DISABLE_TYPE_MAP:
149 {
150 MapEntry const* mapEntry = sMapStore.LookupEntry(entry);
151 if (!mapEntry)
152 {
153 LOG_ERROR("sql.sql", "Map entry {} from `disables` doesn't exist in dbc, skipped.", entry);
154 continue;
155 }
156 bool isFlagInvalid = false;
157 switch (mapEntry->map_type)
158 {
159 case MAP_COMMON:
160 if (flags)
161 isFlagInvalid = true;
162 break;
163 case MAP_INSTANCE:
164 case MAP_RAID:
166 isFlagInvalid = true;
168 isFlagInvalid = true;
170 isFlagInvalid = true;
171 break;
172 case MAP_BATTLEGROUND:
173 case MAP_ARENA:
174 LOG_ERROR("sql.sql", "Battleground map {} specified to be disabled in map case, skipped.", entry);
175 continue;
176 }
177 if (isFlagInvalid)
178 {
179 LOG_ERROR("sql.sql", "Disable flags for map {} are invalid, skipped.", entry);
180 continue;
181 }
182 break;
183 }
185 if (!sBattlemasterListStore.LookupEntry(entry))
186 {
187 LOG_ERROR("sql.sql", "Battleground entry {} from `disables` doesn't exist in dbc, skipped.", entry);
188 continue;
189 }
190 if (flags)
191 LOG_ERROR("sql.sql", "Disable flags specified for battleground {}, useless data.", entry);
192 break;
194 if (entry > MAX_OUTDOORPVP_TYPES)
195 {
196 LOG_ERROR("sql.sql", "OutdoorPvPTypes value {} from `disables` is invalid, skipped.", entry);
197 continue;
198 }
199 if (flags)
200 LOG_ERROR("sql.sql", "Disable flags specified for outdoor PvP {}, useless data.", entry);
201 break;
203 if (!sAchievementCriteriaStore.LookupEntry(entry))
204 {
205 LOG_ERROR("sql.sql", "Achievement Criteria entry {} from `disables` doesn't exist in dbc, skipped.", entry);
206 continue;
207 }
208 if (flags)
209 LOG_ERROR("sql.sql", "Disable flags specified for Achievement Criteria {}, useless data.", entry);
210 break;
212 {
213 MapEntry const* mapEntry = sMapStore.LookupEntry(entry);
214 if (!mapEntry)
215 {
216 LOG_ERROR("sql.sql", "Map entry {} from `disables` doesn't exist in dbc, skipped.", entry);
217 continue;
218 }
219 switch (mapEntry->map_type)
220 {
221 case MAP_COMMON:
222 if (flags & VMAP::VMAP_DISABLE_AREAFLAG)
223 LOG_INFO("disable", "Areaflag disabled for world map {}.", entry);
225 LOG_INFO("disable", "Liquid status disabled for world map {}.", entry);
226 break;
227 case MAP_INSTANCE:
228 case MAP_RAID:
229 if (flags & VMAP::VMAP_DISABLE_HEIGHT)
230 LOG_INFO("disable", "Height disabled for instance map {}.", entry);
231 if (flags & VMAP::VMAP_DISABLE_LOS)
232 LOG_INFO("disable", "LoS disabled for instance map {}.", entry);
233 break;
234 case MAP_BATTLEGROUND:
235 if (flags & VMAP::VMAP_DISABLE_HEIGHT)
236 LOG_INFO("disable", "Height disabled for battleground map {}.", entry);
237 if (flags & VMAP::VMAP_DISABLE_LOS)
238 LOG_INFO("disable", "LoS disabled for battleground map {}.", entry);
239 break;
240 case MAP_ARENA:
241 if (flags & VMAP::VMAP_DISABLE_HEIGHT)
242 LOG_INFO("disable", "Height disabled for arena map {}.", entry);
243 if (flags & VMAP::VMAP_DISABLE_LOS)
244 LOG_INFO("disable", "LoS disabled for arena map {}.", entry);
245 break;
246 default:
247 break;
248 }
249 break;
250 }
252 {
253 GameEventMgr::ActiveEvents const& activeEvents = sGameEventMgr->GetActiveEventList();
254 if (activeEvents.find(entry) != activeEvents.end())
255 {
256 sGameEventMgr->StopEvent(entry);
257 LOG_INFO("disable", "Event entry {} was stopped because it has been disabled.", entry);
258 }
259 break;
260 }
262 break;
263 default:
264 break;
265 }
266
267 m_DisableMap[type].insert(DisableTypeMap::value_type(entry, data));
268 ++total_count;
269 } while (result->NextRow());
270
271 LOG_INFO("server.loading", ">> Loaded {} Disables in {} ms", total_count, GetMSTimeDiffToNow(oldMSTime));
272 LOG_INFO("server.loading", " ");
273 }
#define LOG_WARN(filterType__,...)
Definition: Log.h:161
std::optional< T > Optional
Optional helper class to wrap optional values within.
Definition: Optional.h:24
DatabaseWorkerPool< WorldDatabaseConnection > WorldDatabase
Accessor to the world database.
Definition: DatabaseEnv.cpp:20
std::shared_ptr< ResultSet > QueryResult
Definition: DatabaseEnvFwd.h:28
@ SPELL_DISABLE_LOS
Definition: DisableMgr.h:50
@ MAX_SPELL_DISABLE_TYPE
Definition: DisableMgr.h:51
DisableType
Definition: DisableMgr.h:28
DBCStorage< AchievementCriteriaEntry > sAchievementCriteriaStore(AchievementCriteriafmt)
DBCStorage< BattlemasterListEntry > sBattlemasterListStore(BattlemasterListEntryfmt)
MapDifficulty const * GetMapDifficultyData(uint32 mapId, Difficulty difficulty)
Definition: DBCStores.cpp:757
#define sGameEventMgr
Definition: GameEventMgr.h:186
#define MAX_OUTDOORPVP_TYPES
Definition: OutdoorPvP.h:39
#define sSpellMgr
Definition: SpellMgr.h:825
@ MAP_BATTLEGROUND
Definition: DBCEnums.h:357
@ MAP_ARENA
Definition: DBCEnums.h:358
@ MAP_INSTANCE
Definition: DBCEnums.h:355
@ MAP_RAID
Definition: DBCEnums.h:356
@ SPELL_ATTR2_IGNORE_LINE_OF_SIGHT
Definition: SharedDefines.h:458
std::vector< std::string_view > Tokenize(std::string_view str, char sep, bool keepEmpty)
Definition: Tokenize.cpp:20
@ VMAP_DISABLE_LIQUIDSTATUS
Definition: VMapMgr2.h:73
@ VMAP_DISABLE_LOS
Definition: VMapMgr2.h:72
@ VMAP_DISABLE_HEIGHT
Definition: VMapMgr2.h:71
@ VMAP_DISABLE_AREAFLAG
Definition: VMapMgr2.h:70
DisableMap m_DisableMap
Definition: DisableMgr.cpp:45
Class used to access individual fields of database query result.
Definition: Field.h:99
std::enable_if_t< std::is_arithmetic_v< T >, T > Get() const
Definition: Field.h:113
std::set< uint16 > ActiveEvents
Definition: GameEventMgr.h:106
Definition: SpellInfo.h:314
uint32 AttributesEx2
Definition: SpellInfo.h:324

References SpellInfo::AttributesEx2, DISABLE_TYPE_ACHIEVEMENT_CRITERIA, DISABLE_TYPE_BATTLEGROUND, DISABLE_TYPE_GAME_EVENT, DISABLE_TYPE_GO_LOS, DISABLE_TYPE_LFG_MAP, DISABLE_TYPE_LOOT, DISABLE_TYPE_MAP, DISABLE_TYPE_OUTDOORPVP, DISABLE_TYPE_QUEST, DISABLE_TYPE_SPELL, DISABLE_TYPE_VMAP, DUNGEON_DIFFICULTY_HEROIC, DUNGEON_STATUSFLAG_HEROIC, Field::Get(), GetMapDifficultyData(), getMSTime(), GetMSTimeDiffToNow(), LOG_ERROR, LOG_INFO, LOG_WARN, MAP_ARENA, MAP_BATTLEGROUND, MAP_COMMON, MAP_INSTANCE, MAP_RAID, MapEntry::map_type, MAX_OUTDOORPVP_TYPES, MAX_SPELL_DISABLE_TYPE, RAID_DIFFICULTY_10MAN_HEROIC, RAID_DIFFICULTY_25MAN_HEROIC, RAID_STATUSFLAG_10MAN_HEROIC, RAID_STATUSFLAG_25MAN_HEROIC, sAchievementCriteriaStore, sBattlemasterListStore, sGameEventMgr, sMapStore, sObjectMgr, SPELL_ATTR2_IGNORE_LINE_OF_SIGHT, SPELL_DISABLE_AREA, SPELL_DISABLE_DEPRECATED_SPELL, SPELL_DISABLE_LOS, SPELL_DISABLE_MAP, sSpellMgr, Acore::Tokenize(), VMAP::VMAP_DISABLE_AREAFLAG, VMAP::VMAP_DISABLE_HEIGHT, VMAP::VMAP_DISABLE_LIQUIDSTATUS, VMAP::VMAP_DISABLE_LOS, and WorldDatabase.

Referenced by reload_commandscript::HandleReloadDisablesCommand(), and World::SetInitialWorldSettings().