diff options
| author | ForesterDev <11771800+ForesterDev@users.noreply.github.com> | 2019-03-12 12:34:34 +0400 |
|---|---|---|
| committer | Giacomo Pozzoni <giacomopoz@gmail.com> | 2019-03-12 09:34:34 +0100 |
| commit | f6d3a5b9b98b8f422588694a2197adacea62c675 (patch) | |
| tree | 08b2ac7dd9bbfda6bc76488c71c6251bf38935e6 /src/server/game/Conditions | |
| parent | 56749580226f7bafe377a357bcbb73b05f5b7f47 (diff) | |
Core/AuctionHouse: use DisableMgr to disable specific items (#19289)
* Core/AuctionHouse: use DisableMgr to disable specific item for AuctionHouse or AuctionHouseBot
Diffstat (limited to 'src/server/game/Conditions')
| -rw-r--r-- | src/server/game/Conditions/DisableMgr.cpp | 17 | ||||
| -rw-r--r-- | src/server/game/Conditions/DisableMgr.h | 15 |
2 files changed, 30 insertions, 2 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; } diff --git a/src/server/game/Conditions/DisableMgr.h b/src/server/game/Conditions/DisableMgr.h index 25da1114a6d..eece9e757ec 100644 --- a/src/server/game/Conditions/DisableMgr.h +++ b/src/server/game/Conditions/DisableMgr.h @@ -33,7 +33,8 @@ enum DisableType DISABLE_TYPE_OUTDOORPVP = 5, DISABLE_TYPE_VMAP = 6, DISABLE_TYPE_MMAP = 7, - DISABLE_TYPE_LFG_MAP = 8 + DISABLE_TYPE_LFG_MAP = 8, + DISABLE_TYPE_ITEM = 9 }; enum SpellDisableTypes @@ -54,6 +55,18 @@ enum SpellDisableTypes SPELL_DISABLE_BATTLEGROUNDS), }; +enum ItemDisableTypes +{ + ITEM_DISABLE_AUCTIONHOUSE = 0x01, + ITEM_DISABLE_AUCTIONHOUSE_BOT = 0x02, + /* @todo + ITEM_DISABLE_VENDOR = 0x04, + ITEM_DISABLE_QUEST = 0x08, + ITEM_DISABLE_DROP = 0x10, + */ + MAX_ITEM_DISABLE_TYPE = ( ITEM_DISABLE_AUCTIONHOUSE | ITEM_DISABLE_AUCTIONHOUSE_BOT /*| ITEM_DISABLE_VENDOR | ITEM_DISABLE_QUEST | ITEM_DISABLE_DROP*/) +}; + enum MMapDisableTypes { MMAP_DISABLE_PATHFINDING = 0x0 |
