Added common and test directories

This commit is contained in:
Kayne Ruse
2013-06-09 17:06:32 +10:00
parent 78326a3bbd
commit 0a48131de4
10 changed files with 193 additions and 2 deletions
+4
View File
@@ -0,0 +1,4 @@
#ifndef DEFINES_HPP_
#define DEFINES_HPP
#endif
+103
View File
@@ -0,0 +1,103 @@
#ifndef PACKETTYPE_HPP_
#define PACKETTYPE_HPP_
#include "vector2.hpp"
#define PACKET_STRING_SIZE 100
#pragma pack(push, 0)
enum class PacketType {
NONE = 0,
PING = 1,
PONG = 2,
BROADCAST_REQUEST = 3,
BROADCAST_RESPONSE = 4,
JOIN_REQUEST = 5,
JOIN_RESPONSE = 6,
DISCONNECT = 7,
SYNCHRONIZE = 8,
PLAYER_NEW = 9,
PLAYER_DELETE = 10,
PLAYER_MOVE = 11,
};
struct Ping {
PacketType type = PacketType::PING;
};
struct Pong {
PacketType type = PacketType::PONG;
};
struct BroadcastRequest {
PacketType type = PacketType::BROADCAST_REQUEST;
};
struct BroadcastResponse {
PacketType type = PacketType::BROADCAST_RESPONSE;
char name[PACKET_STRING_SIZE];
//TODO: version
};
struct JoinRequest {
PacketType type = PacketType::JOIN_REQUEST;
//TODO: player data
};
struct JoinResponse {
PacketType type = PacketType::JOIN_RESPONSE;
int playerIndex;
//resource list
};
struct Disconnect {
PacketType type = PacketType::DISCONNECT;
};
struct Synchronize {
PacketType type = PacketType::SYNCHRONIZE;
};
struct PlayerNew {
PacketType type = PacketType::PLAYER_NEW;
int playerIndex;
//TODO Playerdata
};
struct PlayerDelete {
PacketType type = PacketType::PLAYER_DELETE;
int playerIndex;
};
struct PlayerMove {
PacketType type = PacketType::PLAYER_MOVE;
int playerIndex;
Vector2 position;
Vector2 motion;
};
union Packet {
Packet() {}
PacketType type = PacketType::NONE;
Ping ping;
Pong pong;
BroadcastRequest broadcastRequest;
BroadcastResponse broadcastResponse;
JoinRequest joinRequest;
JoinResponse joinResponse;
Disconnect disconnect;
PlayerNew playerNew;
PlayerDelete playerDelete;
PlayerMove playerMove;
};
#pragma pack(pop)
#endif
+21
View File
@@ -0,0 +1,21 @@
#ifndef SERVICELOCATOR_HPP_
#define SERVICELOCATOR_HPP_
template<typename T>
class ServiceLocator {
public:
static T* Set(T* t) {
delete service;
return service = t;
}
static T* Get() {
return service;
}
private:
static T* service;
};
template<typename T>
T* ServiceLocator<T>::service = nullptr;
#endif