diff options
Diffstat (limited to 'src/server/game/Conditions/DisableMgr.cpp')
| -rw-r--r-- | src/server/game/Conditions/DisableMgr.cpp | 17 |
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; } |
