29constexpr std::array<uint32, BATTLEFIELD_MAX> BattlefieldIdToMapId = { 0, 571, 732 };
30constexpr std::array<uint32, BATTLEFIELD_MAX> BattlefieldIdToZoneId = { 0, 4197, 5095 };
31std::array<uint32, BATTLEFIELD_MAX> BattlefieldIdToScriptId = { 0, 0, 0 };
57 Field* fields = result->Fetch();
63 TC_LOG_ERROR(
"sql.sql",
"BattlefieldMgr::InitBattlefield: Invalid TypeId value {} in battlefield_template, skipped.", typeId);
67 BattlefieldIdToScriptId[typeId] =
sObjectMgr->GetScriptId(fields[1].GetString());
70 }
while (result->NextRow());
80 if (!BattlefieldIdToScriptId[i])
83 if (BattlefieldIdToMapId[i] != map->
GetId())
92 TC_LOG_INFO(
"bg.battlefield",
"Setting up battlefield with TypeId {} on map {} instance id {} failed.", i, map->
GetId(), map->
GetInstanceId());
97 TC_LOG_INFO(
"bg.battlefield",
"Setting up battlefield with TypeId {} on map {} instance id {} succeeded.", i, map->
GetId(), map->
GetInstanceId());
132 if (!itr->second->HasPlayer(player))
135 itr->second->HandlePlayerLeaveZone(player, zoneId);
141 return std::find(BattlefieldIdToZoneId.begin(), BattlefieldIdToZoneId.end(), zoneId) != BattlefieldIdToZoneId.end();
153 if (!itr->second->IsEnabled())
162 for (std::unique_ptr<Battlefield>
const& battlefield : *battlefields)
163 if (battlefield->GetBattleId() == battleId)
164 return battlefield.get();
175 for (std::unique_ptr<Battlefield>
const& bfItr : battlefields)
176 if (bfItr->IsEnabled())
@ BATTLEFIELD_OBJECTIVE_UPDATE_INTERVAL
std::shared_ptr< ResultSet > QueryResult
DatabaseWorkerPool< WorldDatabaseConnection > WorldDatabase
Accessor to the world database.
#define TC_LOG_DEBUG(filterType__,...)
#define TC_LOG_ERROR(filterType__,...)
#define TC_LOG_INFO(filterType__,...)
uint32 GetMSTimeDiffToNow(uint32 oldMSTime)
BattlefieldMapByZone _battlefieldsByZone
void DestroyBattlefieldsForMap(Map const *map)
void CreateBattlefieldsForMap(Map *map)
void HandlePlayerLeaveZone(Player *player, uint32 zoneId)
bool IsWorldPvpArea(uint32 zoneId) const
BattlefieldsMapByMap _battlefieldsByMap
Battlefield * GetBattlefieldToZoneId(Map const *map, uint32 zoneId)
void HandlePlayerEnterZone(Player *player, uint32 zoneId)
Battlefield * GetBattlefieldByBattleId(Map const *map, uint32 battleId)
static BattlefieldMgr * instance()
void AddZone(uint32 zoneId, Battlefield *bf)
virtual bool SetupBattlefield()
Call this to init the Battlefield.
bool HasPlayer(Player *player) const
bool IsEnabled() const
Return if battlefield is enable.
void HandlePlayerEnterZone(Player *player, uint32 zone)
Called when player (player) enter in zone.
Class used to access individual fields of database query result.
uint32 GetInstanceId() const
std::string ToString() const
static ObjectGuid GetGUID(Object const *o)
auto MapGetValuePtr(M &map, typename M::key_type const &key)