From 0746aac341d75690ffb886d91bd3f41098220526 Mon Sep 17 00:00:00 2001 From: Mario Kilies Date: Mon, 31 Jan 2011 17:15:41 +0100 Subject: Separation of client/server and dgamelaunch (dedicated) server. --- src/game.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/game.c b/src/game.c index 7e8b841..efe65db 100644 --- a/src/game.c +++ b/src/game.c @@ -142,16 +142,24 @@ void start_game(const bool servermode, const char* addr, const char* port, const { assert(port != NULL); // addr can be NULL for server -> listen on every address +#ifndef OXEN_DGLSERVER // No forking needed when running as dedicated server bool server_process = false; +#endif // !OXEN_DGLSERVER if(servermode) { +#ifdef OXEN_DGLSERVER + #ifdef OXEN_DEBUG + printf("Running server in dgamelaunch mode\n"); + #endif // OXEN_DEBUG +#else // No forking needed when running as dedicated server pid_t child = fork(); server_process = (child == 0); // start server as child } if(server_process) // Start server and connect to localhost { +#endif // !OXEN_DGLSERVER int server_sock; socket_list_t client_socks; @@ -180,6 +188,12 @@ void start_game(const bool servermode, const char* addr, const char* port, const } main_loop_server(&client_socks); + +#ifdef OXEN_DGLSERVER + #ifdef OXEN_DEBUG + printf("Server in dgamelaunch mode finished.\n"); + #endif // OXEN_DEBUG +#endif // OXEN_DGLSERVER } else // Connect to server { @@ -219,8 +233,10 @@ void start_game(const bool servermode, const char* addr, const char* port, const ui_fini(); +#ifndef OXEN_DGLSERVER if(servermode) // wait until server (child) has exited wait(NULL); +#endif // !OXEN_DGLSERVER } destroy_data_store(); -- cgit v1.2.3