118{
119 switch (type)
120 {
122 if (!
sObjectMgr->GetGameObjectTemplate(entry))
123 {
124 LOG_ERROR(
"sql.sql",
"Gameobject entry {} from `disables` doesn't exist in dbc, skipped.", entry);
125 return false;
126 }
127 if (flags)
128 LOG_ERROR(
"sql.sql",
"Disable flags specified for gameobject {}, useless data.", entry);
129 break;
132 {
133 LOG_ERROR(
"sql.sql",
"Spell entry {} from `disables` doesn't exist in dbc, skipped.", entry);
134 return false;
135 }
136
138 {
139 LOG_ERROR(
"sql.sql",
"Disable flags for spell {} are invalid, skipped.", entry);
140 return false;
141 }
142
144 {
145 for (std::string_view mapStr :
Acore::
Tokenize(params_0,
',', true))
146 {
148 data.
params[0].insert(*mapId);
149 else
150 LOG_ERROR(
"sql.sql",
"Disable map '{}' for spell {} is invalid, skipped.", mapStr, entry);
151 }
152 }
153
155 {
156 for (std::string_view areaStr :
Acore::
Tokenize(params_1,
',', true))
157 {
159 data.
params[1].insert(*areaId);
160 else
161 LOG_ERROR(
"sql.sql",
"Disable area '{}' for spell {} is invalid, skipped.", areaStr, entry);
162 }
163 }
164
165
167 {
170 }
171
172 break;
173
175 break;
178 {
180 if (!mapEntry)
181 {
182 LOG_ERROR(
"sql.sql",
"Map entry {} from `disables` doesn't exist in dbc, skipped.", entry);
183 return false;
184 }
185 bool isFlagInvalid = false;
187 {
189 if (flags)
190 isFlagInvalid = true;
191 break;
195 isFlagInvalid = true;
197 isFlagInvalid = true;
199 isFlagInvalid = true;
200 break;
203 LOG_ERROR(
"sql.sql",
"Battleground map {} specified to be disabled in map case, skipped.", entry);
204 return false;
205 }
206 if (isFlagInvalid)
207 {
208 LOG_ERROR(
"sql.sql",
"Disable flags for map {} are invalid, skipped.", entry);
209 return false;
210 }
211 break;
212 }
215 {
216 LOG_ERROR(
"sql.sql",
"Battleground entry {} from `disables` doesn't exist in dbc, skipped.", entry);
217 return false;
218 }
219 if (flags)
220 LOG_ERROR(
"sql.sql",
"Disable flags specified for battleground {}, useless data.", entry);
221 break;
224 {
225 LOG_ERROR(
"sql.sql",
"OutdoorPvPTypes value {} from `disables` is invalid, skipped.", entry);
226 return false;
227 }
228 if (flags)
229 LOG_ERROR(
"sql.sql",
"Disable flags specified for outdoor PvP {}, useless data.", entry);
230 break;
233 {
234 LOG_ERROR(
"sql.sql",
"Achievement Criteria entry {} from `disables` doesn't exist in dbc, skipped.", entry);
235 return false;
236 }
237 if (flags)
238 LOG_ERROR(
"sql.sql",
"Disable flags specified for Achievement Criteria {}, useless data.", entry);
239 break;
241 {
243 if (!mapEntry)
244 {
245 LOG_ERROR(
"sql.sql",
"Map entry {} from `disables` doesn't exist in dbc, skipped.", entry);
246 return false;
247 }
249 {
252 LOG_INFO(
"disable",
"Areaflag disabled for world map {}.", entry);
254 LOG_INFO(
"disable",
"Liquid status disabled for world map {}.", entry);
255 break;
259 LOG_INFO(
"disable",
"Height disabled for instance map {}.", entry);
261 LOG_INFO(
"disable",
"LoS disabled for instance map {}.", entry);
262 break;
265 LOG_INFO(
"disable",
"Height disabled for battleground map {}.", entry);
267 LOG_INFO(
"disable",
"LoS disabled for battleground map {}.", entry);
268 break;
271 LOG_INFO(
"disable",
"Height disabled for arena map {}.", entry);
273 LOG_INFO(
"disable",
"LoS disabled for arena map {}.", entry);
274 break;
275 default:
276 break;
277 }
278 break;
279 }
281 {
283 if (activeEvents.find(entry) != activeEvents.end())
284 {
286 LOG_INFO(
"disable",
"Event entry {} was stopped because it has been disabled.", entry);
287 }
288 break;
289 }
291 break;
293 {
294 LOG_ERROR(
"disable",
"SourceType out of range for entry {}, skipped", entry);
295 return false;
296 }
297 default:
298 return false;
299 }
300 return true;
301}
@ MAP_COMMON
Definition DBCEnums.h:346
@ MAP_BATTLEGROUND
Definition DBCEnums.h:349
@ MAP_ARENA
Definition DBCEnums.h:350
@ MAP_INSTANCE
Definition DBCEnums.h:347
@ MAP_RAID
Definition DBCEnums.h:348
@ RAID_DIFFICULTY_25MAN_HEROIC
Definition DBCEnums.h:276
@ DUNGEON_DIFFICULTY_HEROIC
Definition DBCEnums.h:270
@ RAID_DIFFICULTY_10MAN_HEROIC
Definition DBCEnums.h:275
DBCStorage< AchievementCriteriaEntry > sAchievementCriteriaStore(AchievementCriteriafmt)
DBCStorage< BattlemasterListEntry > sBattlemasterListStore(BattlemasterListEntryfmt)
MapDifficulty const * GetMapDifficultyData(uint32 mapId, Difficulty difficulty)
Definition DBCStores.cpp:761
DBCStorage< MapEntry > sMapStore(MapEntryfmt)
@ SPELL_DISABLE_LOS
Definition DisableMgr.h:50
@ SPELL_DISABLE_MAP
Definition DisableMgr.h:48
@ SPELL_DISABLE_DEPRECATED_SPELL
Definition DisableMgr.h:47
@ MAX_SPELL_DISABLE_TYPE
Definition DisableMgr.h:51
@ SPELL_DISABLE_AREA
Definition DisableMgr.h:49
@ DISABLE_TYPE_SPELL
Definition DisableMgr.h:28
@ DISABLE_TYPE_VMAP
Definition DisableMgr.h:34
@ DISABLE_TYPE_MAP
Definition DisableMgr.h:30
@ DISABLE_TYPE_BATTLEGROUND
Definition DisableMgr.h:31
@ DISABLE_TYPE_ACHIEVEMENT_CRITERIA
Definition DisableMgr.h:32
@ DISABLE_TYPE_LOOT
Definition DisableMgr.h:38
@ DISABLE_TYPE_GAME_EVENT
Definition DisableMgr.h:37
@ DISABLE_TYPE_LFG_MAP
Definition DisableMgr.h:36
@ DISABLE_TYPE_GO_LOS
Definition DisableMgr.h:35
@ DISABLE_TYPE_OUTDOORPVP
Definition DisableMgr.h:33
#define sGameEventMgr
Definition GameEventMgr.h:201
std::optional< T > Optional
Optional helper class to wrap optional values within.
Definition Optional.h:24
#define MAX_OUTDOORPVP_TYPES
Definition OutdoorPvP.h:39
@ SPELL_ATTR2_IGNORE_LINE_OF_SIGHT
Definition SharedDefines.h:458
@ RAID_STATUSFLAG_10MAN_HEROIC
Definition SharedDefines.h:3699
@ RAID_STATUSFLAG_25MAN_HEROIC
Definition SharedDefines.h:3700
@ DUNGEON_STATUSFLAG_HEROIC
Definition SharedDefines.h:3695
#define sSpellMgr
Definition SpellMgr.h:825
std::set< uint16 > ActiveEvents
Definition GameEventMgr.h:106
Definition SpellInfo.h:316
uint32 AttributesEx2
Definition SpellInfo.h:326
Definition AsioHacksFwd.h:47
std::vector< std::string_view > Tokenize(std::string_view str, char sep, bool keepEmpty)
Definition Tokenize.cpp:20
@ VMAP_DISABLE_LIQUIDSTATUS
Definition VMapMgr2.h:72
@ VMAP_DISABLE_LOS
Definition VMapMgr2.h:71
@ VMAP_DISABLE_HEIGHT
Definition VMapMgr2.h:70
@ VMAP_DISABLE_AREAFLAG
Definition VMapMgr2.h:69
std::set< uint32 > params[2]
Definition DisableMgr.h:59
Definition DBCStructure.h:1324
uint32 map_type
Definition DBCStructure.h:1327