void game_end(void) { console_add_system("Closing Game"); // blank progress progress_initialize("Ending"); progress_draw(0); // close any network joins or hosting if (net_setup.client.joined) { if (!net_setup.host.hosting) { net_client_send_leave_host(object_player_get_remote_uid()); net_client_end_message_queue(); net_client_join_host_end(); } else { net_host_game_end(); net_client_end_message_queue_local(); } } // stop view view_game_stop(); // stop server server_game_stop(); // game closed server.game_open=FALSE; }
bool app_run_dedicated_host(char *err_str) { char str[256]; // launch directly into hosting // setup hosting flags and IPs host_game_setup(); net_host_game_setup(); net_setup.mode=net_mode_host; net_setup.client.latency=0; net_setup.client.host_addr.ip=0; net_setup.client.host_addr.port=0; net_create_project_hash(); // setup map map.info.name[0]=0x0; strcpy(map.info.host_name,setup.network.map_list.maps[net_setup.host.current_map_idx].name); // start game if (!game_start(FALSE,skill_medium,0,0,err_str)) { net_host_game_end(); return(FALSE); } // add any multiplayer bots if (!game_multiplayer_bots_create(err_str)) { game_end(); net_host_game_end(); return(FALSE); } // start the map if (!map_start(FALSE,TRUE,err_str)) { game_end(); net_host_game_end(); return(FALSE); } // start hosting if (!net_host_game_start(err_str)) { map_end(); game_end(); net_host_game_end(); return(FALSE); } // dedicated hosting, no local // player to add, only add // multiplayer bots to host net_host_join_multiplayer_bots(); // game is running sprintf(str,"Running on %s...",net_setup.host.ip_resolve); console_add(str); server.next_state=gs_running; return(TRUE); }