[Client] Implement weather packet

pull/367/head
Koncord 7 years ago
parent 25b7095396
commit fd721143e2

@ -1,7 +1,11 @@
#ifndef OPENMW_PROCESSORGAMEWEATHER_HPP
#define OPENMW_PROCESSORGAMEWEATHER_HPP
#include <apps/openmw/mwworld/worldimp.hpp>
#include <apps/openmw/mwworld/weather.hpp>
#include "../PlayerProcessor.hpp"
#include <apps/openmw/mwmp/Main.hpp>
#include <apps/openmw/mwmp/Networking.hpp>
namespace mwmp
{
@ -15,7 +19,27 @@ namespace mwmp
void Do(PlayerPacket &packet, BasePlayer *player) final
{
// Placeholder to be filled in later
LOG_MESSAGE_SIMPLE(Log::LOG_VERBOSE, "Received %s", strPacketID);
MWWorld::WeatherManager *weatherManager = Main::get().getWeatherManager();
auto &weather = player->weather;
if(isRequest())
{
LOG_APPEND(Log::LOG_TRACE, "- requested data");
weather.currentWeather = weatherManager->mCurrentWeather;
weather.nextWeather = weatherManager->mNextWeather;
weather.transitionFactor = weatherManager->mTransitionFactor;
weather.updateTime = weatherManager->mWeatherUpdateTime;
packet.setPlayer(player);
packet.Send();
}
else
{
LOG_APPEND(Log::LOG_TRACE, "- received data");
weatherManager->mCurrentWeather = weather.currentWeather;
weatherManager->mNextWeather = weather.nextWeather;
weatherManager->mTransitionFactor = weather.transitionFactor;
weatherManager->mWeatherUpdateTime = weather.updateTime;
}
}
};
}

@ -34,6 +34,11 @@ namespace Fallback
class Map;
}
namespace mwmp
{
class ProcessorGameWeather;
}
namespace MWWorld
{
class TimeStamp;
@ -204,6 +209,7 @@ namespace MWWorld
/// Interface for weather settings
class WeatherManager
{
friend class mwmp::ProcessorGameWeather;
public:
// Have to pass fallback and Store, can't use singleton since World isn't fully constructed yet at the time
WeatherManager(MWRender::RenderingManager& rendering,

Loading…
Cancel
Save