diff options
Diffstat (limited to 'src/server/game/Maps/Map.cpp')
-rw-r--r-- | src/server/game/Maps/Map.cpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/server/game/Maps/Map.cpp b/src/server/game/Maps/Map.cpp index 671292fe479..2fda273c57f 100644 --- a/src/server/game/Maps/Map.cpp +++ b/src/server/game/Maps/Map.cpp @@ -4847,6 +4847,21 @@ Weather* Map::GetOrGenerateZoneDefaultWeather(uint32 zoneId) return info.DefaultWeather.get(); } +WeatherState Map::GetZoneWeather(uint32 zoneId) const +{ + ZoneDynamicInfo const* zoneDynamicInfo = Trinity::Containers::MapGetValuePtr(_zoneDynamicInfo, zoneId); + if (zoneDynamicInfo) + { + if (WeatherState weatherId = zoneDynamicInfo->WeatherId) + return weatherId; + + if (zoneDynamicInfo->DefaultWeather) + return zoneDynamicInfo->DefaultWeather->GetWeatherState(); + } + + return WEATHER_STATE_FINE; +} + void Map::SetZoneWeather(uint32 zoneId, WeatherState weatherId, float weatherGrade) { ZoneDynamicInfo& info = _zoneDynamicInfo[zoneId]; |