This commit is contained in:
Nishi 2026-01-09 00:40:51 +09:00
commit 247661fc13
Signed by: nishi
GPG key ID: 27EF69B208EB9343
22 changed files with 325 additions and 8 deletions

13
engine/src/client.c Normal file
View file

@ -0,0 +1,13 @@
#include <GearBox/Client.h>
#include <GearBox/Log.h>
GBClient GBClientCreate(GBEngine engine) {
GBLog(GBLogInfo, "Creating client");
return NULL;
}
void GBClientDestroy(GBClient client) {
free(client);
}

55
engine/src/core.c Normal file
View file

@ -0,0 +1,55 @@
#include <GearBox/Core.h>
#include <GearBox/Version.h>
#include <GearBox/Log.h>
#include <GearBox/Client.h>
#include <GearBox/Server.h>
void GBInit(void) {
GBVersion version;
GBVersionGet(&version);
GBLog(GBLogInfo, "GearBox Engine %s", version.string);
}
GBEngine GBEngineCreate(GBEngineParam* param) {
GBEngine engine = malloc(sizeof(*engine));
memset(engine, 0, sizeof(*engine));
if(engine != NULL && param->client && (engine->client = GBClientCreate(engine)) == NULL) {
GBLog(GBLogError, "Failed to create client");
GBEngineDestroy(engine);
engine = NULL;
}
if(engine != NULL && param->server && (engine->server = GBServerCreate(engine)) == NULL) {
GBLog(GBLogError, "Failed to create server");
GBEngineDestroy(engine);
engine = NULL;
}
if(engine == NULL) {
GBLog(GBLogError, "Failed to create engine");
}
return engine;
}
void GBEngineDestroy(GBEngine engine) {
if(engine->server != NULL) GBServerDestroy(engine->server);
if(engine->client != NULL) GBClientDestroy(engine->client);
free(engine);
}
void GBEngineStart(GBEngine engine) {
}
void GBEngineLoop(GBEngine engine) {
}

27
engine/src/log.c Normal file
View file

@ -0,0 +1,27 @@
#include <GearBox/Log.h>
void GBLog(int level, const char* fmt, ...) {
va_list va;
FILE* out = stdout;
#ifdef _WIN32
#else
fprintf(out, "[\x1b[mGearBox\x1b[m|");
if(level == GBLogInfo) {
fprintf(out, "\x1b[1mINFO\x1b[m ");
} else if(level == GBLogWarn) {
fprintf(out, "\x1b[1m\x1b[33mWARN\x1b[m ");
} else if(level == GBLogError) {
fprintf(out, "\x1b[1m\x1b[31mERROR\x1b[m");
}
#endif
fprintf(out, "] ");
va_start(va, fmt);
vfprintf(out, fmt, va);
va_end(va);
fprintf(out, "\n");
}

14
engine/src/server.c Normal file
View file

@ -0,0 +1,14 @@
#include <GearBox/Server.h>
#include <GearBox/Log.h>
GBServer GBServerCreate(GBEngine engine) {
GBLog(GBLogInfo, "Creating server");
return NULL;
}
void GBServerDestroy(GBServer server) {
free(server);
}

9
engine/src/version.c Normal file
View file

@ -0,0 +1,9 @@
#include <GearBox/Version.h>
void GBVersionGet(GBVersion* version) {
version->majorlevel = 0;
version->minorlevel = 0;
version->patchlevel = 0;
sprintf(version->string, "%d.%d.%d", version->majorlevel, version->minorlevel, version->patchlevel);
}