aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Conditions
diff options
context:
space:
mode:
authorForesterDev <11771800+ForesterDev@users.noreply.github.com>2019-03-12 12:34:34 +0400
committerGiacomo Pozzoni <giacomopoz@gmail.com>2019-03-12 09:34:34 +0100
commitf6d3a5b9b98b8f422588694a2197adacea62c675 (patch)
tree08b2ac7dd9bbfda6bc76488c71c6251bf38935e6 /src/server/game/Conditions
parent56749580226f7bafe377a357bcbb73b05f5b7f47 (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.cpp17
-rw-r--r--src/server/game/Conditions/DisableMgr.h15
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