aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJeremy <Golrag@users.noreply.github.com>2021-08-15 23:41:27 +0200
committerGitHub <noreply@github.com>2021-08-15 23:41:27 +0200
commit38aa015196f336f1b4c6c83617dc941445777653 (patch)
treed846f1e7957565282ed49f9886649f3d2741977f /src
parentfb6761c273d518eae6bab72fc9c2a2b6f93eec83 (diff)
Core/Battlegrounds: Update BattlemasterListFlags (#26819)
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Achievements/CriteriaHandler.cpp2
-rw-r--r--src/server/game/DataStores/DB2Structure.h2
-rw-r--r--src/server/game/DataStores/DBCEnums.h19
-rw-r--r--src/server/game/Handlers/BattleGroundHandler.cpp2
4 files changed, 15 insertions, 10 deletions
diff --git a/src/server/game/Achievements/CriteriaHandler.cpp b/src/server/game/Achievements/CriteriaHandler.cpp
index 3a2852ebdee..135d83cc289 100644
--- a/src/server/game/Achievements/CriteriaHandler.cpp
+++ b/src/server/game/Achievements/CriteriaHandler.cpp
@@ -3037,7 +3037,7 @@ bool CriteriaHandler::ModifierSatisfied(ModifierTreeEntry const* modifier, uint6
case ModifierTreeType::PlayerIsInPvpBrawl: // 220
{
BattlemasterListEntry const* bg = sBattlemasterListStore.LookupEntry(referencePlayer->GetBattlegroundTypeId());
- if (!bg || !(bg->Flags & BATTLEMASTER_LIST_FLAG_BRAWL))
+ if (!bg || !(bg->GetFlags().HasFlag(BattlemasterListFlags::IsBrawl)))
return false;
break;
}
diff --git a/src/server/game/DataStores/DB2Structure.h b/src/server/game/DataStores/DB2Structure.h
index d353fa20d59..a6d07fab005 100644
--- a/src/server/game/DataStores/DB2Structure.h
+++ b/src/server/game/DataStores/DB2Structure.h
@@ -509,6 +509,8 @@ struct BattlemasterListEntry
int32 IconFileDataID;
int32 RequiredPlayerConditionID;
int16 MapID[16];
+
+ EnumFlag<BattlemasterListFlags> GetFlags() const { return static_cast<BattlemasterListFlags>(Flags); }
};
#define MAX_BROADCAST_TEXT_EMOTES 3
diff --git a/src/server/game/DataStores/DBCEnums.h b/src/server/game/DataStores/DBCEnums.h
index cc58d5ccac6..44a0301a3eb 100644
--- a/src/server/game/DataStores/DBCEnums.h
+++ b/src/server/game/DataStores/DBCEnums.h
@@ -193,17 +193,20 @@ enum AzeriteTierUnlockSetFlags
#define BATTLE_PET_SPECIES_MAX_ID 3159
-enum BattlemasterListFlags
+enum class BattlemasterListFlags : uint32
{
- BATTLEMASTER_LIST_FLAG_DISABLED = 0x01,
- BATTLEMASTER_LIST_FLAG_SKIP_ROLE_CHECK = 0x02,
- BATTLEMASTER_LIST_FLAG_UNK04 = 0x04,
- BATTLEMASTER_LIST_FLAG_CAN_INIT_WAR_GAME = 0x08,
- BATTLEMASTER_LIST_FLAG_CAN_SPECIFIC_QUEUE = 0x10,
- BATTLEMASTER_LIST_FLAG_BRAWL = 0x20,
- BATTLEMASTER_LIST_FLAG_FACTIONAL = 0x40
+ InternalOnly = 0x01,
+ RatedOnly = 0x02, // Only set for rated battlegrounds
+ ObsoleteDoNotList = 0x04,
+ ShowInWarGames = 0x08,
+ ShowInPvpBattlegroundList = 0x10,
+ IsBrawl = 0x20,
+ IsFactional = 0x40,
+ IsEpic = 0x80
};
+DEFINE_ENUM_FLAG(BattlemasterListFlags);
+
enum class ChrRacesFlag : int32
{
AlliedRace = 0x80000
diff --git a/src/server/game/Handlers/BattleGroundHandler.cpp b/src/server/game/Handlers/BattleGroundHandler.cpp
index 7b6c3d900ee..67ec6fcd750 100644
--- a/src/server/game/Handlers/BattleGroundHandler.cpp
+++ b/src/server/game/Handlers/BattleGroundHandler.cpp
@@ -82,7 +82,7 @@ void WorldSession::HandleBattlemasterJoinOpcode(WorldPackets::Battleground::Batt
BattlemasterListEntry const* battlemasterListEntry = sBattlemasterListStore.AssertEntry(bgQueueTypeId.BattlemasterListId);
- if (DisableMgr::IsDisabledFor(DISABLE_TYPE_BATTLEGROUND, bgQueueTypeId.BattlemasterListId, nullptr) || (battlemasterListEntry->Flags & BATTLEMASTER_LIST_FLAG_DISABLED) != 0)
+ if (DisableMgr::IsDisabledFor(DISABLE_TYPE_BATTLEGROUND, bgQueueTypeId.BattlemasterListId, nullptr) || battlemasterListEntry->GetFlags().HasFlag(BattlemasterListFlags::InternalOnly))
{
ChatHandler(this).PSendSysMessage(LANG_BG_DISABLED);
return;