Added common and test directories
This commit is contained in:
+1
-1
@@ -1,7 +1,7 @@
|
|||||||
#config
|
#config
|
||||||
LIBDIR=../libs
|
LIBDIR=../libs
|
||||||
LIB=-lmingw32 -lSDLmain -lSDL $(LIBDIR)/out/libCodebase.a $(LIBDIR)/out/libSDL_net.a
|
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))
|
CXXFLAGS+=-std=c++11 -DDEBUG $(addprefix -I,$(INCLUDES))
|
||||||
|
|
||||||
#source
|
#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 libs
|
||||||
$(MAKE) -C server
|
$(MAKE) -C server
|
||||||
$(MAKE) -C client
|
$(MAKE) -C client
|
||||||
|
$(MAKE) -C test
|
||||||
|
|
||||||
$(OUTDIR):
|
$(OUTDIR):
|
||||||
mkdir $(OUTDIR)
|
mkdir $(OUTDIR)
|
||||||
|
|||||||
+1
-1
@@ -1,7 +1,7 @@
|
|||||||
#config
|
#config
|
||||||
LIBDIR=../libs
|
LIBDIR=../libs
|
||||||
LIB=-lmingw32 -lSDLmain -lSDL $(LIBDIR)/out/libCodebase.a $(LIBDIR)/out/libSDL_net.a
|
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))
|
CXXFLAGS+=-std=c++11 -DDEBUG $(addprefix -I,$(INCLUDES))
|
||||||
|
|
||||||
#source
|
#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