diff options
| author | Shauren <shauren.trinity@gmail.com> | 2022-07-07 23:07:20 +0200 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2022-07-07 23:07:20 +0200 |
| commit | de26cafbbe1b355b69ec871f4fee0704a3ef29a5 (patch) | |
| tree | 8638b2ed3f475c9206f99d3d0f23d7d1102ae320 /src/server/game | |
| parent | 9ca8cf66e60c95ec3d20ed2c276623be2bb98713 (diff) | |
Core/WorldStates: Allow setting "hidden" field of SMSG_UPDATE_WORLD_STATE
Diffstat (limited to 'src/server/game')
| -rw-r--r-- | src/server/game/Instances/InstanceScript.cpp | 2 | ||||
| -rw-r--r-- | src/server/game/Maps/Map.cpp | 3 | ||||
| -rw-r--r-- | src/server/game/Maps/Map.h | 2 | ||||
| -rw-r--r-- | src/server/game/World/World.cpp | 12 | ||||
| -rw-r--r-- | src/server/game/World/WorldStates/WorldStateMgr.cpp | 5 | ||||
| -rw-r--r-- | src/server/game/World/WorldStates/WorldStateMgr.h | 2 |
6 files changed, 14 insertions, 12 deletions
diff --git a/src/server/game/Instances/InstanceScript.cpp b/src/server/game/Instances/InstanceScript.cpp index 67b73ffc33a..330f2a29d78 100644 --- a/src/server/game/Instances/InstanceScript.cpp +++ b/src/server/game/Instances/InstanceScript.cpp @@ -611,7 +611,7 @@ void InstanceScript::DoRespawnGameObject(ObjectGuid guid, Seconds timeToDespawn void InstanceScript::DoUpdateWorldState(int32 worldStateId, int32 value) { - sWorldStateMgr->SetValue(worldStateId, value, instance); + sWorldStateMgr->SetValue(worldStateId, value, false, instance); } // Send Notify to all players in instance diff --git a/src/server/game/Maps/Map.cpp b/src/server/game/Maps/Map.cpp index acf5a1a035c..76d2b26a789 100644 --- a/src/server/game/Maps/Map.cpp +++ b/src/server/game/Maps/Map.cpp @@ -696,7 +696,7 @@ int32 Map::GetWorldStateValue(int32 worldStateId) const return 0; } -void Map::SetWorldStateValue(int32 worldStateId, int32 value) +void Map::SetWorldStateValue(int32 worldStateId, int32 value, bool hidden) { auto itr = _worldStateValues.try_emplace(worldStateId, 0).first; int32 oldValue = itr->second; @@ -710,6 +710,7 @@ void Map::SetWorldStateValue(int32 worldStateId, int32 value) WorldPackets::WorldState::UpdateWorldState updateWorldState; updateWorldState.VariableID = worldStateId; updateWorldState.Value = value; + updateWorldState.Hidden = hidden; updateWorldState.Write(); for (MapReference const& mapReference : m_mapRefManager) diff --git a/src/server/game/Maps/Map.h b/src/server/game/Maps/Map.h index 1d795edfdd5..89f64d947e0 100644 --- a/src/server/game/Maps/Map.h +++ b/src/server/game/Maps/Map.h @@ -925,7 +925,7 @@ class TC_GAME_API Map : public GridRefManager<NGridType> /*********************************************************/ public: int32 GetWorldStateValue(int32 worldStateId) const; - void SetWorldStateValue(int32 worldStateId, int32 value); + void SetWorldStateValue(int32 worldStateId, int32 value, bool hidden); WorldStateValueContainer const& GetWorldStateValues() const { return _worldStateValues; } private: diff --git a/src/server/game/World/World.cpp b/src/server/game/World/World.cpp index 0639b31e678..f14f1107ca8 100644 --- a/src/server/game/World/World.cpp +++ b/src/server/game/World/World.cpp @@ -2246,8 +2246,8 @@ void World::SetInitialWorldSettings() LoadWorldStates(); // TODO: this is temporary until custom world states are purged from old world state saved values - sWorldStateMgr->SetValue(WS_WAR_MODE_HORDE_BUFF_VALUE, getWorldState(WS_WAR_MODE_HORDE_BUFF_VALUE), nullptr); - sWorldStateMgr->SetValue(WS_WAR_MODE_ALLIANCE_BUFF_VALUE, getWorldState(WS_WAR_MODE_ALLIANCE_BUFF_VALUE), nullptr); + sWorldStateMgr->SetValue(WS_WAR_MODE_HORDE_BUFF_VALUE, getWorldState(WS_WAR_MODE_HORDE_BUFF_VALUE), false, nullptr); + sWorldStateMgr->SetValue(WS_WAR_MODE_ALLIANCE_BUFF_VALUE, getWorldState(WS_WAR_MODE_ALLIANCE_BUFF_VALUE), false, nullptr); sObjectMgr->LoadPhases(); @@ -2495,8 +2495,8 @@ void World::SetInitialWorldSettings() void World::SetForcedWarModeFactionBalanceState(TeamId team, int32 reward) { - sWorldStateMgr->SetValue(WS_WAR_MODE_HORDE_BUFF_VALUE, 10 + (team == TEAM_ALLIANCE ? reward : 0), nullptr); - sWorldStateMgr->SetValue(WS_WAR_MODE_ALLIANCE_BUFF_VALUE, 10 + (team == TEAM_HORDE ? reward : 0), nullptr); + sWorldStateMgr->SetValue(WS_WAR_MODE_HORDE_BUFF_VALUE, 10 + (team == TEAM_ALLIANCE ? reward : 0), false, nullptr); + sWorldStateMgr->SetValue(WS_WAR_MODE_ALLIANCE_BUFF_VALUE, 10 + (team == TEAM_HORDE ? reward : 0), false, nullptr); // save to db setWorldState(WS_WAR_MODE_HORDE_BUFF_VALUE, sWorldStateMgr->GetValue(WS_WAR_MODE_HORDE_BUFF_VALUE, nullptr)); @@ -3948,8 +3948,8 @@ void World::UpdateWarModeRewardValues() outnumberedFactionReward = 5; } - sWorldStateMgr->SetValue(WS_WAR_MODE_HORDE_BUFF_VALUE, 10 + (dominantFaction == TEAM_ALLIANCE ? outnumberedFactionReward : 0), nullptr); - sWorldStateMgr->SetValue(WS_WAR_MODE_ALLIANCE_BUFF_VALUE, 10 + (dominantFaction == TEAM_HORDE ? outnumberedFactionReward : 0), nullptr); + sWorldStateMgr->SetValue(WS_WAR_MODE_HORDE_BUFF_VALUE, 10 + (dominantFaction == TEAM_ALLIANCE ? outnumberedFactionReward : 0), false, nullptr); + sWorldStateMgr->SetValue(WS_WAR_MODE_ALLIANCE_BUFF_VALUE, 10 + (dominantFaction == TEAM_HORDE ? outnumberedFactionReward : 0), false, nullptr); // save to db setWorldState(WS_WAR_MODE_HORDE_BUFF_VALUE, sWorldStateMgr->GetValue(WS_WAR_MODE_HORDE_BUFF_VALUE, nullptr)); diff --git a/src/server/game/World/WorldStates/WorldStateMgr.cpp b/src/server/game/World/WorldStates/WorldStateMgr.cpp index 8049ee0ca2f..232fa1a3e61 100644 --- a/src/server/game/World/WorldStates/WorldStateMgr.cpp +++ b/src/server/game/World/WorldStates/WorldStateMgr.cpp @@ -162,7 +162,7 @@ int32 WorldStateMgr::GetValue(int32 worldStateId, Map const* map) const return map->GetWorldStateValue(worldStateId); } -void WorldStateMgr::SetValue(int32 worldStateId, int32 value, Map* map) +void WorldStateMgr::SetValue(int32 worldStateId, int32 value, bool hidden, Map* map) { WorldStateTemplate const* worldStateTemplate = GetWorldStateTemplate(worldStateId); if (!worldStateTemplate || worldStateTemplate->MapIds.empty()) @@ -178,6 +178,7 @@ void WorldStateMgr::SetValue(int32 worldStateId, int32 value, Map* map) WorldPackets::WorldState::UpdateWorldState updateWorldState; updateWorldState.VariableID = worldStateId; updateWorldState.Value = value; + updateWorldState.Hidden = hidden; sWorld->SendGlobalMessage(updateWorldState.Write()); return; } @@ -185,7 +186,7 @@ void WorldStateMgr::SetValue(int32 worldStateId, int32 value, Map* map) if (worldStateTemplate->MapIds.find(map->GetId()) == worldStateTemplate->MapIds.end()) return; - map->SetWorldStateValue(worldStateId, value); + map->SetWorldStateValue(worldStateId, value, hidden); } WorldStateValueContainer WorldStateMgr::GetInitialWorldStatesForMap(Map const* map) const diff --git a/src/server/game/World/WorldStates/WorldStateMgr.h b/src/server/game/World/WorldStates/WorldStateMgr.h index ae9e72f9f5a..d17cdb40310 100644 --- a/src/server/game/World/WorldStates/WorldStateMgr.h +++ b/src/server/game/World/WorldStates/WorldStateMgr.h @@ -38,7 +38,7 @@ public: WorldStateTemplate const* GetWorldStateTemplate(int32 worldStateId) const; int32 GetValue(int32 worldStateId, Map const* map) const; - void SetValue(int32 worldStateId, int32 value, Map* map); + void SetValue(int32 worldStateId, int32 value, bool hidden, Map* map); WorldStateValueContainer GetInitialWorldStatesForMap(Map const* map) const; |
