diff options
Diffstat (limited to 'src/game.c')
| -rw-r--r-- | src/game.c | 16 |
1 files changed, 16 insertions, 0 deletions
@@ -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(); |
