Added common and test directories
This commit is contained in:
+1
-1
@@ -1,7 +1,7 @@
|
||||
#config
|
||||
LIBDIR=../libs
|
||||
LIB=-lmingw32 -lSDLmain -lSDL $(LIBDIR)/out/libCodebase.a $(LIBDIR)/out/libSDL_net.a
|
||||
INCLUDES=$(LIBDIR)/Codebase $(LIBDIR)/SDL_net
|
||||
INCLUDES=$(LIBDIR)/Codebase $(LIBDIR)/SDL_net ../common
|
||||
CXXFLAGS+=-std=c++11 -DDEBUG $(addprefix -I,$(INCLUDES))
|
||||
|
||||
#source
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
#ifndef DEFINES_HPP_
|
||||
#define DEFINES_HPP
|
||||
|
||||
#endif
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -4,6 +4,7 @@ all: $(OUTDIR)
|
||||
$(MAKE) -C libs
|
||||
$(MAKE) -C server
|
||||
$(MAKE) -C client
|
||||
$(MAKE) -C test
|
||||
|
||||
$(OUTDIR):
|
||||
mkdir $(OUTDIR)
|
||||
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
#config
|
||||
LIBDIR=../libs
|
||||
LIB=-lmingw32 -lSDLmain -lSDL $(LIBDIR)/out/libCodebase.a $(LIBDIR)/out/libSDL_net.a
|
||||
INCLUDES=$(LIBDIR)/Codebase $(LIBDIR)/SDL_net
|
||||
INCLUDES=$(LIBDIR)/Codebase $(LIBDIR)/SDL_net ../common
|
||||
CXXFLAGS+=-std=c++11 -DDEBUG $(addprefix -I,$(INCLUDES))
|
||||
|
||||
#source
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
#include "service_locator.hpp"
|
||||
|
||||
int FooBar() {
|
||||
return *ServiceLocator<int>::Get();
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
#ifndef FOOBAR_HPP_
|
||||
#define FOOBAR_HPP_
|
||||
|
||||
int FooBar();
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,13 @@
|
||||
//#include "packet_type.hpp"
|
||||
#include "service_locator.hpp"
|
||||
#include "foobar.hpp"
|
||||
|
||||
#include <iostream>
|
||||
using namespace std;
|
||||
|
||||
int main() {
|
||||
ServiceLocator<int>::Set(new int(42));
|
||||
cout << FooBar() << endl;
|
||||
ServiceLocator<int>::Set(nullptr);
|
||||
return 0;
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
#config
|
||||
LIBDIR=../libs
|
||||
LIB=-lmingw32 -lSDLmain -lSDL $(LIBDIR)/out/libCodebase.a $(LIBDIR)/out/libSDL_net.a
|
||||
INCLUDES=$(LIBDIR)/Codebase $(LIBDIR)/SDL_net ../common
|
||||
CXXFLAGS+=-std=c++11 -DDEBUG $(addprefix -I,$(INCLUDES))
|
||||
|
||||
#source
|
||||
SRC=$(wildcard *.cpp)
|
||||
|
||||
#objects
|
||||
OBJDIR=obj
|
||||
OBJ=$(addprefix $(OBJDIR)/,$(SRC:.cpp=.o))
|
||||
|
||||
#output
|
||||
OUTDIR=../out
|
||||
OUT=$(addprefix $(OUTDIR)/,test)
|
||||
|
||||
#targets
|
||||
all: $(OBJ) $(OUT)
|
||||
$(CXX) $(CXXFLAGS) -o $(OUT) $(OBJ) $(LIB)
|
||||
|
||||
$(OBJ): | $(OBJDIR)
|
||||
|
||||
$(OUT): | $(OUTDIR)
|
||||
|
||||
$(OBJDIR):
|
||||
mkdir $(OBJDIR)
|
||||
|
||||
$(OUTDIR):
|
||||
mkdir $(OUTDIR)
|
||||
|
||||
$(OBJDIR)/%.o: %.cpp
|
||||
$(CXX) $(CXXFLAGS) -c -o $@ $<
|
||||
|
||||
clean:
|
||||
$(RM) *.o *.a *.exe
|
||||
|
||||
rebuild: clean all
|
||||
Reference in New Issue
Block a user