summaryrefslogtreecommitdiff
path: root/src/publicServer.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/publicServer.c')
-rw-r--r--src/publicServer.c27
1 files changed, 25 insertions, 2 deletions
diff --git a/src/publicServer.c b/src/publicServer.c
index 8206062..7e1d56e 100644
--- a/src/publicServer.c
+++ b/src/publicServer.c
@@ -21,6 +21,7 @@
static int arenaId;
static arena_t *arena;
+static bool_t isSignalEnd;
arena_t* getWorldArena()
{
@@ -31,7 +32,7 @@ void countRoundInc()
{
}
-void initPublicServer()
+int initPublicServer()
{
initArenaFile();
initTux();
@@ -42,8 +43,15 @@ void initPublicServer()
arenaId = getArenaIdFormNetName( getParamElse("--arena", "FAGN") );
arena = getArena(arenaId);
addNewItem(arena->listItem, NULL);
+ isSignalEnd = FALSE;
- initNetMuliplayer(NET_GAME_TYPE_SERVER, NULL, atoi( getParamElse("--port", "2200") ) );
+ if( initNetMuliplayer(NET_GAME_TYPE_SERVER, NULL, atoi( getParamElse("--port", "2200") ) ) < 0 )
+ {
+ printf("Nemozem inicalizovat sietovy socket !\n");
+ return -1;
+ }
+
+ return 0;
}
int getChoiceArenaId()
@@ -92,6 +100,11 @@ void eventPublicServer()
eventNetMultiplayer();
+ if( isSignalEnd == TRUE )
+ {
+ quitPublicServer();
+ }
+
if( lastActive == 0 )
{
lastActive = getMyTime();
@@ -103,6 +116,7 @@ void eventPublicServer()
{
return;
}
+
/*
printf("interval = %d\n", interval);
*/
@@ -123,10 +137,19 @@ void eventPublicServer()
eventTimer();
}
+void my_handler_quit(int n)
+{
+ printf("my_handler_quit\n");
+ isSignalEnd = TRUE;
+}
+
void quitPublicServer()
{
printf("quit public server\n");
quitNetMultiplayer();
destroyArena(arena);
+ quitArenaFile();
quitTimer();
+ exit(0);
}
+