1
0
Fork 1
mirror of https://github.com/TES3MP/openmw-tes3mp.git synced 2025-01-31 12:45:31 +00:00
openmw-tes3mp/apps/openmw/mwmp/processors/player/ProcessorGameWeather.hpp
2017-12-10 09:56:55 +08:00

47 lines
1.7 KiB
C++

#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
{
class ProcessorGameWeather final: public PlayerProcessor
{
public:
ProcessorGameWeather()
{
BPP_INIT(ID_GAME_WEATHER)
}
void Do(PlayerPacket &packet, BasePlayer *player) final
{
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;
}
}
};
}
#endif //OPENMW_PROCESSORGAMEWEATHER_HPP