aboutsummaryrefslogtreecommitdiff
path: root/src/server/game
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2022-07-07 23:07:20 +0200
committerShauren <shauren.trinity@gmail.com>2022-07-07 23:07:20 +0200
commitde26cafbbe1b355b69ec871f4fee0704a3ef29a5 (patch)
tree8638b2ed3f475c9206f99d3d0f23d7d1102ae320 /src/server/game
parent9ca8cf66e60c95ec3d20ed2c276623be2bb98713 (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.cpp2
-rw-r--r--src/server/game/Maps/Map.cpp3
-rw-r--r--src/server/game/Maps/Map.h2
-rw-r--r--src/server/game/World/World.cpp12
-rw-r--r--src/server/game/World/WorldStates/WorldStateMgr.cpp5
-rw-r--r--src/server/game/World/WorldStates/WorldStateMgr.h2
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;