117{
118 switch (type)
119 {
121 if (!
sObjectMgr->GetGameObjectTemplate(entry))
122 {
123 LOG_ERROR(
"sql.sql",
"Gameobject entry {} from `disables` doesn't exist in dbc, skipped.", entry);
124 return false;
125 }
126 if (flags)
127 LOG_ERROR(
"sql.sql",
"Disable flags specified for gameobject {}, useless data.", entry);
128 break;
131 {
132 LOG_ERROR(
"sql.sql",
"Spell entry {} from `disables` doesn't exist in dbc, skipped.", entry);
133 return false;
134 }
135
137 {
138 LOG_ERROR(
"sql.sql",
"Disable flags for spell {} are invalid, skipped.", entry);
139 return false;
140 }
141
143 {
144 for (std::string_view mapStr :
Acore::
Tokenize(params_0,
',', true))
145 {
147 data.
params[0].insert(*mapId);
148 else
149 LOG_ERROR(
"sql.sql",
"Disable map '{}' for spell {} is invalid, skipped.", mapStr, entry);
150 }
151 }
152
154 {
155 for (std::string_view areaStr :
Acore::
Tokenize(params_1,
',', true))
156 {
158 data.
params[1].insert(*areaId);
159 else
160 LOG_ERROR(
"sql.sql",
"Disable area '{}' for spell {} is invalid, skipped.", areaStr, entry);
161 }
162 }
163
164
166 {
169 }
170
171 break;
172
174 break;
177 {
179 if (!mapEntry)
180 {
181 LOG_ERROR(
"sql.sql",
"Map entry {} from `disables` doesn't exist in dbc, skipped.", entry);
182 return false;
183 }
184 bool isFlagInvalid = false;
186 {
188 if (flags)
189 isFlagInvalid = true;
190 break;
194 isFlagInvalid = true;
196 isFlagInvalid = true;
198 isFlagInvalid = true;
199 break;
202 LOG_ERROR(
"sql.sql",
"Battleground map {} specified to be disabled in map case, skipped.", entry);
203 return false;
204 }
205 if (isFlagInvalid)
206 {
207 LOG_ERROR(
"sql.sql",
"Disable flags for map {} are invalid, skipped.", entry);
208 return false;
209 }
210 break;
211 }
214 {
215 LOG_ERROR(
"sql.sql",
"Battleground entry {} from `disables` doesn't exist in dbc, skipped.", entry);
216 return false;
217 }
218 if (flags)
219 LOG_ERROR(
"sql.sql",
"Disable flags specified for battleground {}, useless data.", entry);
220 break;
223 {
224 LOG_ERROR(
"sql.sql",
"OutdoorPvPTypes value {} from `disables` is invalid, skipped.", entry);
225 return false;
226 }
227 if (flags)
228 LOG_ERROR(
"sql.sql",
"Disable flags specified for outdoor PvP {}, useless data.", entry);
229 break;
232 {
233 LOG_ERROR(
"sql.sql",
"Achievement Criteria entry {} from `disables` doesn't exist in dbc, skipped.", entry);
234 return false;
235 }
236 if (flags)
237 LOG_ERROR(
"sql.sql",
"Disable flags specified for Achievement Criteria {}, useless data.", entry);
238 break;
240 {
242 if (!mapEntry)
243 {
244 LOG_ERROR(
"sql.sql",
"Map entry {} from `disables` doesn't exist in dbc, skipped.", entry);
245 return false;
246 }
248 {
251 LOG_INFO(
"disable",
"Areaflag disabled for world map {}.", entry);
253 LOG_INFO(
"disable",
"Liquid status disabled for world map {}.", entry);
254 break;
258 LOG_INFO(
"disable",
"Height disabled for instance map {}.", entry);
260 LOG_INFO(
"disable",
"LoS disabled for instance map {}.", entry);
261 break;
264 LOG_INFO(
"disable",
"Height disabled for battleground map {}.", entry);
266 LOG_INFO(
"disable",
"LoS disabled for battleground map {}.", entry);
267 break;
270 LOG_INFO(
"disable",
"Height disabled for arena map {}.", entry);
272 LOG_INFO(
"disable",
"LoS disabled for arena map {}.", entry);
273 break;
274 default:
275 break;
276 }
277 break;
278 }
280 {
282 if (activeEvents.find(entry) != activeEvents.end())
283 {
285 LOG_INFO(
"disable",
"Event entry {} was stopped because it has been disabled.", entry);
286 }
287 break;
288 }
290 break;
292 {
293 LOG_ERROR(
"disable",
"SourceType out of range for entry {}, skipped", entry);
294 return false;
295 }
296 default:
297 return false;
298 }
299 return true;
300}
@ 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:446
@ RAID_STATUSFLAG_10MAN_HEROIC
Definition SharedDefines.h:3957
@ RAID_STATUSFLAG_25MAN_HEROIC
Definition SharedDefines.h:3958
@ DUNGEON_STATUSFLAG_HEROIC
Definition SharedDefines.h:3953
#define sSpellMgr
Definition SpellMgr.h:836
std::set< uint16 > ActiveEvents
Definition GameEventMgr.h:106
Definition SpellInfo.h:340
uint32 AttributesEx2
Definition SpellInfo.h:350
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:51
@ VMAP_DISABLE_LOS
Definition VMapMgr2.h:50
@ VMAP_DISABLE_HEIGHT
Definition VMapMgr2.h:49
@ VMAP_DISABLE_AREAFLAG
Definition VMapMgr2.h:48
std::set< uint32 > params[2]
Definition DisableMgr.h:59
Definition DBCStructure.h:1325
uint32 map_type
Definition DBCStructure.h:1328