assaultfish/engine/src/server.c

53 lines
1.1 KiB
C
Raw Normal View History

2026-01-12 01:54:35 +09:00
#include <GearSrc/Server.h>
2026-01-09 00:40:51 +09:00
2026-01-12 01:54:35 +09:00
#include <GearSrc/Log.h>
2026-01-29 15:23:28 +09:00
#include <GearSrc/Net.h>
2026-02-01 00:22:34 +09:00
#include <GearSrc/Physics.h>
2026-01-09 00:40:51 +09:00
2026-01-12 01:54:35 +09:00
GSServer GSServerCreate(GSEngine engine) {
GSServer server = malloc(sizeof(*server));
2026-01-09 03:38:29 +09:00
memset(server, 0, sizeof(*server));
2026-01-09 06:12:57 +09:00
server->engine = engine;
2026-01-29 15:23:28 +09:00
if((server->net = GSNetServerOpen(server, engine->param->port)) == NULL) {
GSLog(engine, GSLogError, "Failed to start server");
GSServerDestroy(server);
return NULL;
}
2026-02-01 00:22:34 +09:00
if((server->physics = GSPhysicsCreate(server)) == NULL) {
GSLog(engine, GSLogError, "Failed to create physics engine");
GSServerDestroy(server);
return NULL;
}
2026-01-25 13:35:09 +09:00
GSLog(engine, GSLogInfo, "Created server");
2026-01-09 00:40:51 +09:00
2026-01-09 03:38:29 +09:00
return server;
2026-01-09 00:40:51 +09:00
}
2026-01-12 01:54:35 +09:00
void GSServerDestroy(GSServer server) {
2026-01-29 15:23:28 +09:00
if(server->net != NULL) GSNetServerClose(server->net);
2026-02-01 00:22:34 +09:00
if(server->physics != NULL) GSPhysicsDestroy(server->physics);
2026-01-29 15:23:28 +09:00
2026-01-25 13:35:09 +09:00
GSLog(server->engine, GSLogInfo, "Destroyed server");
2026-01-10 19:51:48 +09:00
2026-01-25 13:35:09 +09:00
free(server);
2026-01-09 00:40:51 +09:00
}
2026-01-09 03:38:29 +09:00
2026-02-01 08:09:18 +09:00
GSNetServer GSServerGetNetServer(GSServer server) {
return server->net;
}
GSPhysics GSServerGetPhysics(GSServer server) {
return server->physics;
}
2026-01-12 01:54:35 +09:00
void GSServerStep(GSServer server) {
2026-02-01 08:09:18 +09:00
GSPhysicsStep(server->physics);
2026-01-29 16:43:44 +09:00
GSNetServerStep(server->net);
2026-01-09 03:38:29 +09:00
}