diff options
author | Shauren <shauren.trinity@gmail.com> | 2022-07-24 20:11:24 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2022-07-24 20:11:24 +0200 |
commit | c1eb91c1c174870026cf4750bafc8d04d182ade0 (patch) | |
tree | ea035c134460e4c16c630356f5f8bcfdedf55ae4 /src/server/game/Maps/Map.cpp | |
parent | 071be5a0861924521da5df1ce6fc35ee5a7089d4 (diff) |
Core/WorldStates: Add generic worldstates for team in instance
Diffstat (limited to 'src/server/game/Maps/Map.cpp')
-rw-r--r-- | src/server/game/Maps/Map.cpp | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/server/game/Maps/Map.cpp b/src/server/game/Maps/Map.cpp index 1810b63d555..fc5fa907d84 100644 --- a/src/server/game/Maps/Map.cpp +++ b/src/server/game/Maps/Map.cpp @@ -2772,7 +2772,7 @@ template TC_GAME_API void Map::RemoveFromMap(Conversation*, bool); InstanceMap::InstanceMap(uint32 id, time_t expiry, uint32 InstanceId, Difficulty SpawnMode, TeamId InstanceTeam) : Map(id, expiry, InstanceId, SpawnMode), m_resetAfterUnload(false), m_unloadWhenEmpty(false), - i_data(nullptr), i_script_id(0), i_script_team(InstanceTeam), i_scenario(nullptr) + i_data(nullptr), i_script_id(0), i_scenario(nullptr) { //lets initialize visibility distance for dungeons InstanceMap::InitVisibilityDistance(); @@ -2780,6 +2780,9 @@ InstanceMap::InstanceMap(uint32 id, time_t expiry, uint32 InstanceId, Difficulty // the timer is started by default, and stopped when the first player joins // this make sure it gets unloaded if for some reason no player joins m_unloadTimer = std::max(sWorld->getIntConfig(CONFIG_INSTANCE_UNLOAD_DELAY), (uint32)MIN_UNLOAD_DELAY); + + sWorldStateMgr->SetValue(WS_TEAM_IN_INSTANCE_ALLIANCE, InstanceTeam == TEAM_ALLIANCE, false, this); + sWorldStateMgr->SetValue(WS_TEAM_IN_INSTANCE_HORDE, InstanceTeam == TEAM_HORDE, false, this); } InstanceMap::~InstanceMap() @@ -3270,6 +3273,15 @@ uint32 InstanceMap::GetMaxResetDelay() const return mapDiff ? mapDiff->GetRaidDuration() : 0; } +TeamId InstanceMap::GetTeamIdInInstance() const +{ + if (sWorldStateMgr->GetValue(WS_TEAM_IN_INSTANCE_ALLIANCE, this)) + return TEAM_ALLIANCE; + if (sWorldStateMgr->GetValue(WS_TEAM_IN_INSTANCE_HORDE, this)) + return TEAM_HORDE; + return TEAM_NEUTRAL; +} + /* ******* Battleground Instance Maps ******* */ BattlegroundMap::BattlegroundMap(uint32 id, time_t expiry, uint32 InstanceId, Difficulty spawnMode) |