aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Conditions/DisableMgr.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/game/Conditions/DisableMgr.cpp')
-rw-r--r--src/server/game/Conditions/DisableMgr.cpp17
1 files changed, 16 insertions, 1 deletions
diff --git a/src/server/game/Conditions/DisableMgr.cpp b/src/server/game/Conditions/DisableMgr.cpp
index d939db03255..c08e2a609c4 100644
--- a/src/server/game/Conditions/DisableMgr.cpp
+++ b/src/server/game/Conditions/DisableMgr.cpp
@@ -47,7 +47,7 @@ namespace
DisableMap m_DisableMap;
- uint8 MAX_DISABLE_TYPES = 9;
+ uint8 MAX_DISABLE_TYPES = 10;
}
void LoadDisables()
@@ -256,6 +256,20 @@ void LoadDisables()
}
break;
}
+ case DISABLE_TYPE_ITEM:
+ {
+ if (!sObjectMgr->GetItemTemplate(entry))
+ {
+ TC_LOG_ERROR("sql.sql", "Item entry %u from `disables` doesn't exist in item_template, skipped.", entry);
+ continue;
+ }
+ if (!flags || flags > MAX_ITEM_DISABLE_TYPE)
+ {
+ TC_LOG_ERROR("sql.sql", "Disable flags for item %u are invalid, skipped.", entry);
+ continue;
+ }
+ break;
+ }
default:
break;
}
@@ -396,6 +410,7 @@ bool IsDisabledFor(DisableType type, uint32 entry, WorldObject const* ref, uint8
case DISABLE_TYPE_MMAP:
return true;
case DISABLE_TYPE_VMAP:
+ case DISABLE_TYPE_ITEM:
return (flags & itr->second.flags) != 0;
}