Started working on the room system
This commit is contained in:
@@ -0,0 +1,16 @@
|
|||||||
|
LIBDIR=lib
|
||||||
|
OUTDIR=out
|
||||||
|
|
||||||
|
all: $(LIBDIR) $(OUTDIR)
|
||||||
|
$(MAKE) -C server
|
||||||
|
|
||||||
|
$(LIBDIR):
|
||||||
|
mkdir $(LIBDIR)
|
||||||
|
|
||||||
|
$(OUTDIR):
|
||||||
|
mkdir $(OUTDIR)
|
||||||
|
|
||||||
|
clean:
|
||||||
|
$(RM) *.o *.a *.exe
|
||||||
|
|
||||||
|
rebuild: clean all
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
#include "application.hpp"
|
||||||
|
|
||||||
|
Application::Application() {
|
||||||
|
//TODO
|
||||||
|
}
|
||||||
|
|
||||||
|
Application::~Application() {
|
||||||
|
//TODO
|
||||||
|
}
|
||||||
|
|
||||||
|
void Application::Init() {
|
||||||
|
//TODO
|
||||||
|
|
||||||
|
//disable this for debugging
|
||||||
|
running = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Application::Loop() {
|
||||||
|
while(running) {
|
||||||
|
//TODO
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void Application::Quit() {
|
||||||
|
//TODO
|
||||||
|
}
|
||||||
|
|
||||||
|
void Application::NewRoom() {
|
||||||
|
//TODO
|
||||||
|
}
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
#ifndef APPLICATION_HPP_
|
||||||
|
#define APPLICATION_HPP_
|
||||||
|
|
||||||
|
#include "threading.hpp"
|
||||||
|
|
||||||
|
#include <vector>
|
||||||
|
|
||||||
|
class Application {
|
||||||
|
public:
|
||||||
|
Application();
|
||||||
|
~Application();
|
||||||
|
|
||||||
|
void Init();
|
||||||
|
void Loop();
|
||||||
|
void Quit();
|
||||||
|
|
||||||
|
bool GetRunning() const { return running; }
|
||||||
|
private:
|
||||||
|
void NewRoom(/* args */);
|
||||||
|
|
||||||
|
std::vector<roomHandle> rooms;
|
||||||
|
bool running = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
#include "application.hpp"
|
||||||
|
|
||||||
|
#include "SDL/SDL.h"
|
||||||
|
|
||||||
|
#include <stdexcept>
|
||||||
|
#include <iostream>
|
||||||
|
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
int main(int, char**) {
|
||||||
|
#ifdef DEBUG
|
||||||
|
cout << "Beginning server" << endl;
|
||||||
|
#endif
|
||||||
|
try {
|
||||||
|
Application app;
|
||||||
|
app.Init();
|
||||||
|
app.Loop();
|
||||||
|
app.Quit();
|
||||||
|
}
|
||||||
|
catch(exception& e) {
|
||||||
|
cerr << "Fatal error: " << e.what() << endl;
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
#ifdef DEBUG
|
||||||
|
cout << "Clean exit" << endl;
|
||||||
|
#endif
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
#config
|
||||||
|
LIB=-lmingw32 -lSDLmain -lSDL -llua
|
||||||
|
CXXFLAGS+=-std=c++11 -DDEBUG
|
||||||
|
|
||||||
|
#source
|
||||||
|
SRC=$(wildcard *.cpp)
|
||||||
|
|
||||||
|
#objects
|
||||||
|
OBJDIR=obj
|
||||||
|
OBJ=$(addprefix $(OBJDIR)/,$(SRC:.cpp=.o))
|
||||||
|
|
||||||
|
#output
|
||||||
|
OUTDIR=../out
|
||||||
|
OUT=$(addprefix $(OUTDIR)/,server)
|
||||||
|
|
||||||
|
#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
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
#include "room.hpp"
|
||||||
|
|
||||||
|
Room::Room() {
|
||||||
|
//TODO
|
||||||
|
}
|
||||||
|
|
||||||
|
Room::~Room() {
|
||||||
|
//TODO
|
||||||
|
}
|
||||||
|
|
||||||
|
void Room::Init() {
|
||||||
|
//TODO
|
||||||
|
|
||||||
|
//disable this for debugging
|
||||||
|
running = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Room::Loop() {
|
||||||
|
while(running) {
|
||||||
|
//TODO
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void Room::Quit() {
|
||||||
|
//TODO
|
||||||
|
}
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
#ifndef ROOM_HPP_
|
||||||
|
#define ROOM_HPP_
|
||||||
|
|
||||||
|
class Room {
|
||||||
|
public:
|
||||||
|
Room(/* args */);
|
||||||
|
~Room();
|
||||||
|
|
||||||
|
void Init();
|
||||||
|
void Loop();
|
||||||
|
void Quit();
|
||||||
|
|
||||||
|
bool GetRunning() const { return running; }
|
||||||
|
private:
|
||||||
|
bool running = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
#include "threading.hpp"
|
||||||
|
|
||||||
|
#include <stdexcept>
|
||||||
|
#include <iostream>
|
||||||
|
|
||||||
|
int roomThread(void* ptr) {
|
||||||
|
#ifdef DEBUG
|
||||||
|
std::cout << "Opening room" << std::endl;
|
||||||
|
#endif
|
||||||
|
try {
|
||||||
|
reinterpret_cast<Room*>(ptr)->Init();
|
||||||
|
reinterpret_cast<Room*>(ptr)->Loop();
|
||||||
|
reinterpret_cast<Room*>(ptr)->Quit();
|
||||||
|
}
|
||||||
|
catch(std::exception& e) {
|
||||||
|
std::cerr << "Fatal room error: " << e.what() << std::endl;
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
#ifdef DEBUG
|
||||||
|
std::cout << "Closing room" << std::endl;
|
||||||
|
#endif
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
#ifndef THREADING_HPP_
|
||||||
|
#define THREADING_HPP_
|
||||||
|
|
||||||
|
#include "room.hpp"
|
||||||
|
|
||||||
|
#include "SDL/SDL_thread.h"
|
||||||
|
|
||||||
|
struct roomHandle {
|
||||||
|
SDL_Thread* thread = nullptr;
|
||||||
|
Room* room = nullptr;
|
||||||
|
};
|
||||||
|
|
||||||
|
int roomThread(void*);
|
||||||
|
|
||||||
|
#endif
|
||||||
Reference in New Issue
Block a user