spaceserver/server/data.c

61 lines
2.0 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#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;
}