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.cpp26
1 files changed, 13 insertions, 13 deletions
diff --git a/src/server/game/Maps/Map.cpp b/src/server/game/Maps/Map.cpp
index cfaf3f4d26e..8655e83a5c5 100644
--- a/src/server/game/Maps/Map.cpp
+++ b/src/server/game/Maps/Map.cpp
@@ -32,6 +32,7 @@
#include "Log.h"
#include "MapInstanced.h"
#include "MapManager.h"
+#include "MiscPackets.h"
#include "MMapFactory.h"
#include "MotionMaster.h"
#include "ObjectAccessor.h"
@@ -43,6 +44,7 @@
#include "Transport.h"
#include "Vehicle.h"
#include "VMapFactory.h"
+#include "Weather.h"
#include "World.h"
#include <unordered_set>
#include <vector>
@@ -62,6 +64,10 @@ static uint16 const holetab_v[4] = { 0x000F, 0x00F0, 0x0F00, 0xF000 };
GridState* si_GridStates[MAX_GRID_STATE];
+
+ZoneDynamicInfo::ZoneDynamicInfo() : MusicId(0), WeatherId(WEATHER_STATE_FINE),
+ WeatherGrade(0.0f), OverrideLightId(0), LightFadeInTime(0) { }
+
Map::~Map()
{
// UnloadAll must be called before deleting the map
@@ -3546,7 +3552,7 @@ uint32 Map::GetPlayersCountExceptGMs() const
return count;
}
-void Map::SendToPlayers(WorldPacket* data) const
+void Map::SendToPlayers(WorldPacket const* data) const
{
for (MapRefManager::const_iterator itr = m_mapRefManager.begin(); itr != m_mapRefManager.end(); ++itr)
itr->GetSource()->SendDirectMessage(data);
@@ -4567,13 +4573,10 @@ void Map::SendZoneDynamicInfo(Player* player)
player->SendDirectMessage(&data);
}
- if (uint32 weather = itr->second.WeatherId)
+ if (WeatherState weatherId = itr->second.WeatherId)
{
- WorldPacket data(SMSG_WEATHER, 4 + 4 + 1);
- data << uint32(weather);
- data << float(itr->second.WeatherGrade);
- data << uint8(0);
- player->SendDirectMessage(&data);
+ WorldPackets::Misc::Weather weather(weatherId, itr->second.WeatherGrade);
+ player->SendDirectMessage(weather.Write());
}
if (uint32 overrideLight = itr->second.OverrideLightId)
@@ -4606,7 +4609,7 @@ void Map::SetZoneMusic(uint32 zoneId, uint32 musicId)
}
}
-void Map::SetZoneWeather(uint32 zoneId, uint32 weatherId, float weatherGrade)
+void Map::SetZoneWeather(uint32 zoneId, WeatherState weatherId, float weatherGrade)
{
if (_zoneDynamicInfo.find(zoneId) == _zoneDynamicInfo.end())
_zoneDynamicInfo.insert(ZoneDynamicInfoMap::value_type(zoneId, ZoneDynamicInfo()));
@@ -4618,15 +4621,12 @@ void Map::SetZoneWeather(uint32 zoneId, uint32 weatherId, float weatherGrade)
if (!players.isEmpty())
{
- WorldPacket data(SMSG_WEATHER, 4 + 4 + 1);
- data << uint32(weatherId);
- data << float(weatherGrade);
- data << uint8(0);
+ WorldPackets::Misc::Weather weather(weatherId, weatherGrade);
for (Map::PlayerList::const_iterator itr = players.begin(); itr != players.end(); ++itr)
if (Player* player = itr->GetSource())
if (player->GetZoneId() == zoneId)
- player->SendDirectMessage(&data);
+ player->SendDirectMessage(weather.Write());
}
}