spaceserver/server/data.c

61 lines
2.0 KiB
C
Raw Normal View History

2023-04-30 20:52:53 +00:00
#include <signal.h>
#include "common.h"
#include "message.h"
SERVER_DATA* srv_create_data(SERVER_DATA* data, SERVER_PARAMETRS parametrs)
{
if(!data)
{
data = (SERVER_DATA*)malloc(sizeof(SERVER_DATA));
show_message_error(data, "Failed to allocate space for SERVER_DATA");
}
srv_create_enet(&data->enet, parametrs.port);
puts("Enet создан!");
srv_create_timer(&data->timer, parametrs.FPS);
puts("Таймер загружен. Готов к запуску!");
srv_create_event(&data->event, &data->timer);
puts("События ждут указаний!");
srv_create_users(&data->users, parametrs.users);
puts("Место для игроков выделено!");
srv_create_games(&data->games, parametrs.games);
puts("Место для игр выделено!");
puts("Все системы в норме! Запускаю сервер!");
puts("--------------------------------------------------");
data->done = false;
srv_get_server_data(data);
// Server Stop Event Logging
srv_catch_signal(SIGINT, srv_stop_server);
return data;
}
void srv_destroy_data(SERVER_DATA* data)
{
srv_destroy_enet(&data->enet);
puts("Почистил Enet!");
srv_destroy_event(&data->event);
puts("С событиями тоже разобрался!");
srv_destroy_timer(&data->timer);
puts("Кто говорил, что временем нельзя управлять? Таймер остановлен!");
srv_destroy_users(&data->users);
puts("Освободил выделенное место для игроков!");
srv_destroy_games(&data->games);
puts("Освободил выделенное место для игр!");
free(data);
puts("Сервер остановлен! Порядок!");
}
SERVER_DATA* srv_get_server_data(SERVER_DATA* data)
{
static SERVER_DATA* server;
if(data)
server = data;
return server;
}