From 6eecb685ce0f3d3bf4cb7cd387b83ccf384b0c48 Mon Sep 17 00:00:00 2001 From: Shauren Date: Thu, 14 Sep 2017 22:33:40 +0200 Subject: Core/Weather: Fixed weather updates to be thread safe (cherry picked from commit 6eb997394722fcd4b5248646b5abfa185a7ec58f) --- src/server/game/Entities/Player/Player.cpp | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) (limited to 'src/server/game/Entities/Player') diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 242318372bc..f50918a2b44 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -7056,13 +7056,10 @@ void Player::UpdateZone(uint32 newZone, uint32 newArea) return; if (sWorld->getBoolConfig(CONFIG_WEATHER)) - { - if (Weather* weather = WeatherMgr::FindWeather(zone->ID)) - weather->SendWeatherUpdateToPlayer(this); - else if (!WeatherMgr::AddWeather(zone->ID)) - // send fine weather packet to remove old zone's weather - WeatherMgr::SendFineWeatherUpdateToPlayer(this); - } + GetMap()->GetOrGenerateZoneDefaultWeather(newZone); + + GetMap()->SendZoneDynamicInfo(newZone, this); + // in PvP, any not controlled zone (except zone->team == 6, default case) // in PvE, only opposition team capital -- cgit v1.2.3