diff options
-rw-r--r-- | src/server/game/Maps/Map.cpp | 5 | ||||
-rw-r--r-- | src/server/game/World/WorldStates/WorldStateMgr.cpp | 5 |
2 files changed, 8 insertions, 2 deletions
diff --git a/src/server/game/Maps/Map.cpp b/src/server/game/Maps/Map.cpp index 76d2b26a789..15e6a09b2b3 100644 --- a/src/server/game/Maps/Map.cpp +++ b/src/server/game/Maps/Map.cpp @@ -698,8 +698,11 @@ int32 Map::GetWorldStateValue(int32 worldStateId) const void Map::SetWorldStateValue(int32 worldStateId, int32 value, bool hidden) { - auto itr = _worldStateValues.try_emplace(worldStateId, 0).first; + auto [itr, inserted] = _worldStateValues.try_emplace(worldStateId, 0); int32 oldValue = itr->second; + if (oldValue == value && !inserted) + return; + itr->second = value; WorldStateTemplate const* worldStateTemplate = sWorldStateMgr->GetWorldStateTemplate(worldStateId); diff --git a/src/server/game/World/WorldStates/WorldStateMgr.cpp b/src/server/game/World/WorldStates/WorldStateMgr.cpp index 232fa1a3e61..03bd704584d 100644 --- a/src/server/game/World/WorldStates/WorldStateMgr.cpp +++ b/src/server/game/World/WorldStates/WorldStateMgr.cpp @@ -167,8 +167,11 @@ void WorldStateMgr::SetValue(int32 worldStateId, int32 value, bool hidden, Map* WorldStateTemplate const* worldStateTemplate = GetWorldStateTemplate(worldStateId); if (!worldStateTemplate || worldStateTemplate->MapIds.empty()) { - auto itr = _realmWorldStateValues.try_emplace(worldStateId, 0).first; + auto [itr, inserted] = _realmWorldStateValues.try_emplace(worldStateId, 0); int32 oldValue = itr->second; + if (oldValue == value && !inserted) + return; + itr->second = value; if (worldStateTemplate) |