R-Type
Distributed multiplayer game engine in C++
Loading...
Searching...
No Matches
NetworkMessages.hpp File Reference
#include <cstdint>
#include <stdexcept>
#include <string>
#include <vector>
Include dependency graph for NetworkMessages.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  NetworkMessages
 Network protocol with unified message format.
 

Enumerations

enum class  NetworkMessages::MessageType : uint16_t {
  NetworkMessages::HANDSHAKE_REQUEST = 0x0001 , NetworkMessages::HANDSHAKE_RESPONSE = 0x0002 , NetworkMessages::REGISTER_REQUEST = 0x0007 , NetworkMessages::REGISTER_RESPONSE = 0x0008 ,
  NetworkMessages::LOGIN_REQUEST = 0x0009 , NetworkMessages::LOGIN_RESPONSE = 0x000A , NetworkMessages::DISCONNECT = 0x0003 , NetworkMessages::KICK = 0x0004 ,
  NetworkMessages::PING = 0x0005 , NetworkMessages::PONG = 0x0006 , NetworkMessages::C2S_PLAYER_INPUT = 0x0100 , NetworkMessages::C2S_JOIN_GAME = 0x0101 ,
  NetworkMessages::C2S_LIST_ROOMS = 0x0300 , NetworkMessages::C2S_CREATE_ROOM = 0x0301 , NetworkMessages::C2S_JOIN_ROOM = 0x0302 , NetworkMessages::C2S_LEAVE_ROOM = 0x0306 ,
  NetworkMessages::C2S_AUTO_MATCHMAKING = 0x0308 , NetworkMessages::C2S_UPDATE_AUTO_MM_PREF = 0x0309 , NetworkMessages::C2S_START_MATCHMAKING = 0x0303 , NetworkMessages::C2S_CANCEL_MATCHMAKING = 0x0304 ,
  NetworkMessages::C2S_START_GAME = 0x0305 , NetworkMessages::C2S_CHAT_MESSAGE = 0x0307 , NetworkMessages::S2C_GAME_STATE = 0x0200 , NetworkMessages::S2C_GAME_START = 0x0201 ,
  NetworkMessages::S2C_ENTITY_DESTROYED = 0x0202 , NetworkMessages::S2C_GAME_OVER = 0x0203 , NetworkMessages::S2C_GAMERULE_UPDATE = 0x0204 , NetworkMessages::S2C_ROOM_LIST = 0x0400 ,
  NetworkMessages::S2C_ROOM_CREATED = 0x0401 , NetworkMessages::S2C_JOINED_ROOM = 0x0402 , NetworkMessages::S2C_MATCHMAKING_STARTED = 0x0403 , NetworkMessages::S2C_MATCH_FOUND = 0x0404 ,
  NetworkMessages::S2C_ROOM_STATE = 0x0405 , NetworkMessages::S2C_CHAT_MESSAGE = 0x0406 , NetworkMessages::S2C_LEFT_ROOM = 0x0407 , NetworkMessages::UNKNOWN = 0xFFFF
}
 All message types in the R-Type protocol. More...
 

Functions

std::vector< uint8_t > NetworkMessages::createMessage (MessageType type, const std::vector< uint8_t > &payload)
 Create a message with type and payload.
 
MessageType NetworkMessages::getMessageType (const std::vector< uint8_t > &packet)
 Get message type from packet.
 
std::vector< uint8_t > NetworkMessages::getPayload (const std::vector< uint8_t > &packet)
 Get payload from packet (without header)
 
std::vector< uint8_t > NetworkMessages::serializeString (const std::string &str)
 Serialize a string to bytes.
 
std::string NetworkMessages::deserializeString (const std::vector< uint8_t > &bytes, size_t &offset)
 Deserialize bytes to string.
 
std::vector< uint8_t > NetworkMessages::createConnectRequest (const std::string &playerName, bool isSpectator=false)
 Create HANDSHAKE_REQUEST message.
 
std::string NetworkMessages::parseConnectRequest (const std::vector< uint8_t > &packet, bool &isSpectator)
 Parse HANDSHAKE_REQUEST message.
 
std::string NetworkMessages::parseConnectRequest (const std::vector< uint8_t > &packet)
 Parse HANDSHAKE_REQUEST message (legacy - without spectator flag)
 
std::vector< uint8_t > NetworkMessages::createConnectResponse (const std::string &message)
 Create HANDSHAKE_RESPONSE message.
 
std::string NetworkMessages::parseConnectResponse (const std::vector< uint8_t > &packet)
 Parse HANDSHAKE_RESPONSE message.