Mesen2/Core/Netplay/GameInformationMessage.h
2022-09-08 21:29:52 -04:00

52 lines
No EOL
1.1 KiB
C++

#pragma once
#include "pch.h"
#include "Shared/MessageManager.h"
#include "Netplay/NetMessage.h"
#include "Netplay/NetplayTypes.h"
#include "Utilities/FolderUtilities.h"
class GameInformationMessage : public NetMessage
{
private:
string _romFilename;
uint32_t _crc32 = 0;
NetplayControllerInfo _controller = {};
bool _paused = false;
protected:
void Serialize(Serializer &s) override
{
SV(_romFilename); SV(_crc32); SV(_controller.Port); SV(_controller.SubPort); SV(_paused);
}
public:
GameInformationMessage(void* buffer, uint32_t length) : NetMessage(buffer, length) { }
GameInformationMessage(string filepath, uint32_t crc32, NetplayControllerInfo controller, bool paused) : NetMessage(MessageType::GameInformation)
{
_romFilename = FolderUtilities::GetFilename(filepath, true);
_crc32 = crc32;
_controller = controller;
_paused = paused;
}
NetplayControllerInfo GetPort()
{
return _controller;
}
string GetRomFilename()
{
return _romFilename;
}
uint32_t GetCrc32()
{
return _crc32;
}
bool IsPaused()
{
return _paused;
}
};