Core/WorldStates: Skip sending SMSG_UPDATE_WORLD_STATE when value does not change

This commit is contained in:
Shauren
2022-07-09 00:50:29 +02:00
parent 5dca7309f4
commit db79e29121
2 changed files with 8 additions and 2 deletions

View File

@@ -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);

View File

@@ -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)