aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Maps/Map.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/game/Maps/Map.cpp')
-rw-r--r--src/server/game/Maps/Map.cpp15
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];