forked from mirror/openmw-tes3mp
[Client] Implement weather packet
This commit is contained in:
parent
25b7095396
commit
fd721143e2
2 changed files with 31 additions and 1 deletions
|
@ -1,7 +1,11 @@
|
||||||
#ifndef OPENMW_PROCESSORGAMEWEATHER_HPP
|
#ifndef OPENMW_PROCESSORGAMEWEATHER_HPP
|
||||||
#define OPENMW_PROCESSORGAMEWEATHER_HPP
|
#define OPENMW_PROCESSORGAMEWEATHER_HPP
|
||||||
|
|
||||||
|
#include <apps/openmw/mwworld/worldimp.hpp>
|
||||||
|
#include <apps/openmw/mwworld/weather.hpp>
|
||||||
#include "../PlayerProcessor.hpp"
|
#include "../PlayerProcessor.hpp"
|
||||||
|
#include <apps/openmw/mwmp/Main.hpp>
|
||||||
|
#include <apps/openmw/mwmp/Networking.hpp>
|
||||||
|
|
||||||
namespace mwmp
|
namespace mwmp
|
||||||
{
|
{
|
||||||
|
@ -15,7 +19,27 @@ namespace mwmp
|
||||||
|
|
||||||
void Do(PlayerPacket &packet, BasePlayer *player) final
|
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;
|
class Map;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
namespace mwmp
|
||||||
|
{
|
||||||
|
class ProcessorGameWeather;
|
||||||
|
}
|
||||||
|
|
||||||
namespace MWWorld
|
namespace MWWorld
|
||||||
{
|
{
|
||||||
class TimeStamp;
|
class TimeStamp;
|
||||||
|
@ -204,6 +209,7 @@ namespace MWWorld
|
||||||
/// Interface for weather settings
|
/// Interface for weather settings
|
||||||
class WeatherManager
|
class WeatherManager
|
||||||
{
|
{
|
||||||
|
friend class mwmp::ProcessorGameWeather;
|
||||||
public:
|
public:
|
||||||
// Have to pass fallback and Store, can't use singleton since World isn't fully constructed yet at the time
|
// Have to pass fallback and Store, can't use singleton since World isn't fully constructed yet at the time
|
||||||
WeatherManager(MWRender::RenderingManager& rendering,
|
WeatherManager(MWRender::RenderingManager& rendering,
|
||||||
|
|
Loading…
Reference in a new issue