Moved packets into their own namespace
This commit is contained in:
@@ -32,7 +32,7 @@
|
||||
static SDL_sem* lock = SDL_CreateSemaphore(1);
|
||||
static SDL_Thread* queueThread = nullptr;
|
||||
|
||||
static std::deque<Packet> queue;
|
||||
static std::deque<Packet::Packet> queue;
|
||||
|
||||
static bool running = false;
|
||||
|
||||
@@ -41,8 +41,8 @@ static int networkQueue(void*) {
|
||||
while(running) {
|
||||
SDL_SemWait(lock);
|
||||
while(netUtil->Receive()) {
|
||||
Packet p;
|
||||
memcpy(&p, netUtil->GetInData(), sizeof(Packet));
|
||||
Packet::Packet p;
|
||||
memcpy(&p, netUtil->GetInData(), sizeof(Packet::Packet));
|
||||
p.meta.address = netUtil->GetInPacket()->address;
|
||||
queue.push_back(p);
|
||||
}
|
||||
@@ -80,19 +80,19 @@ void killQueueThread() {
|
||||
queueThread = nullptr;
|
||||
}
|
||||
|
||||
Packet peekNetworkPacket() {
|
||||
Packet::Packet peekNetworkPacket() {
|
||||
SDL_SemWait(lock);
|
||||
Packet p;
|
||||
Packet::Packet p;
|
||||
if (queue.size() > 0) {
|
||||
Packet p = queue[0];
|
||||
Packet::Packet p = queue[0];
|
||||
}
|
||||
SDL_SemPost(lock);
|
||||
return p;
|
||||
}
|
||||
|
||||
Packet popNetworkPacket() {
|
||||
Packet::Packet popNetworkPacket() {
|
||||
SDL_SemWait(lock);
|
||||
Packet p;
|
||||
Packet::Packet p;
|
||||
if (queue.size() > 0) {
|
||||
p = queue[0];
|
||||
queue.pop_front();
|
||||
|
||||
@@ -22,13 +22,13 @@
|
||||
#ifndef NETWORKQUEUE_HPP_
|
||||
#define NETWORKQUEUE_HPP_
|
||||
|
||||
#include "packet_type.hpp"
|
||||
#include "packet.hpp"
|
||||
|
||||
void beginQueueThread();
|
||||
void endQueueThread();
|
||||
void killQueueThread();
|
||||
Packet peekNetworkPacket();
|
||||
Packet popNetworkPacket();
|
||||
Packet::Packet peekNetworkPacket();
|
||||
Packet::Packet popNetworkPacket();
|
||||
void flushNetworkQueue();
|
||||
|
||||
#endif
|
||||
|
||||
@@ -30,7 +30,9 @@
|
||||
|
||||
#pragma pack(push, 0)
|
||||
|
||||
enum class PacketType {
|
||||
namespace Packet {
|
||||
|
||||
enum class Type {
|
||||
NONE = 0,
|
||||
|
||||
PING = 1,
|
||||
@@ -43,13 +45,11 @@ enum class PacketType {
|
||||
|
||||
SYNCHRONIZE = 8,
|
||||
|
||||
PLAYER_NEW = 9,
|
||||
PLAYER_DELETE = 10,
|
||||
PLAYER_MOVE = 11,
|
||||
PLAYER = 9,
|
||||
};
|
||||
|
||||
struct Metadata {
|
||||
PacketType type;
|
||||
Type type;
|
||||
IPaddress address;
|
||||
};
|
||||
|
||||
@@ -90,27 +90,15 @@ struct Synchronize {
|
||||
Metadata meta;
|
||||
};
|
||||
|
||||
struct PlayerNew {
|
||||
struct Player {
|
||||
Metadata meta;
|
||||
int playerIndex;
|
||||
//TODO Playerdata
|
||||
//player data
|
||||
};
|
||||
|
||||
struct PlayerDelete {
|
||||
Metadata meta;
|
||||
int playerIndex;
|
||||
};
|
||||
|
||||
struct PlayerMove {
|
||||
Metadata meta;
|
||||
int playerIndex;
|
||||
Vector2 position;
|
||||
Vector2 motion;
|
||||
};
|
||||
|
||||
union Packet {
|
||||
Packet() {
|
||||
meta.type = PacketType::NONE;
|
||||
meta.type = Type::NONE;
|
||||
meta.address.host = 0;
|
||||
meta.address.port = 0;
|
||||
};
|
||||
@@ -124,15 +112,17 @@ union Packet {
|
||||
JoinResponse joinResponse;
|
||||
Disconnect disconnect;
|
||||
|
||||
PlayerNew playerNew;
|
||||
PlayerDelete playerDelete;
|
||||
PlayerMove playerMove;
|
||||
Synchronize sync;
|
||||
|
||||
Player player;
|
||||
|
||||
#ifdef DEBUG
|
||||
char buffer[1024];
|
||||
#endif
|
||||
};
|
||||
|
||||
} //namespace Packet
|
||||
|
||||
#pragma pack(pop)
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user