static void InitConnectData(net_connect_data_t *connect_data) { connect_data->max_players = MAXPLAYERS; connect_data->drone = false; //! // @category net // // Run as the left screen in three screen mode. // if (M_CheckParm("-left") > 0) { viewangleoffset = ANG90; connect_data->drone = true; } //! // @category net // // Run as the right screen in three screen mode. // if (M_CheckParm("-right") > 0) { viewangleoffset = ANG270; connect_data->drone = true; } // // Connect data // // Game type fields: connect_data->gamemode = gamemode; connect_data->gamemission = gamemission; // Are we recording a demo? Possibly set lowres turn mode connect_data->lowres_turn = M_CheckParm("-record") > 0 && M_CheckParm("-longtics") == 0; // Read checksums of our WAD directory and dehacked information W_Checksum(connect_data->wad_sha1sum); #if ORIGCODE DEH_Checksum(connect_data->deh_sha1sum); #endif // Are we playing with the Freedoom IWAD? connect_data->is_freedoom = W_CheckNumForName("FREEDOOM") >= 0; }
static void InitConnectData(net_connect_data_t *connect_data) { connect_data->drone = false; connect_data->max_players = MAXPLAYERS; // // Connect data // // Game type fields: connect_data->gamemode = gamemode; connect_data->gamemission = heretic; connect_data->lowres_turn = false; // Read checksums of our WAD directory and dehacked information W_Checksum(connect_data->wad_sha1sum); DEH_Checksum(connect_data->deh_sha1sum); connect_data->is_freedoom = 0; }
static void InitConnectData(net_connect_data_t *connect_data) { boolean shorttics; connect_data->max_players = MAXPLAYERS; connect_data->drone = false; //! // @category net // // Run as the left screen in three screen mode. // if (M_CheckParm("-left") > 0) { viewangleoffset = ANG90; connect_data->drone = true; } //! // @category net // // Run as the right screen in three screen mode. // if (M_CheckParm("-right") > 0) { viewangleoffset = ANG270; connect_data->drone = true; } // // Connect data // // Game type fields: connect_data->gamemode = gamemode; connect_data->gamemission = gamemission; //! // @category demo // // Play with low turning resolution to emulate demo recording. // shorttics = M_ParmExists("-shorttics"); // Are we recording a demo? Possibly set lowres turn mode connect_data->lowres_turn = (M_ParmExists("-record") && !M_ParmExists("-longtics")) || shorttics; // Read checksums of our WAD directory and dehacked information W_Checksum(connect_data->wad_sha1sum); DEH_Checksum(connect_data->deh_sha1sum); // Are we playing with the Freedoom IWAD? connect_data->is_freedoom = W_CheckNumForName("FREEDOOM") >= 0; }
boolean NET_CL_Connect(net_addr_t *addr) { int start_time; int last_send_time; server_addr = addr; // Are we recording a demo? Possibly set lowres turn mode if (M_CheckParm("-record") > 0 && M_CheckParm("-longtics") == 0) { lowres_turn = true; } // Read checksums of our WAD directory and dehacked information W_Checksum(net_local_wad_md5sum); DEH_Checksum(net_local_deh_md5sum); // Are we playing with the Freedoom IWAD? net_local_is_freedoom = W_CheckNumForName("FREEDOOM") >= 0; // create a new network I/O context and add just the // necessary module client_context = NET_NewContext(); // initialize module for client mode if (!addr->module->InitClient()) { return false; } NET_AddModule(client_context, addr->module); net_client_connected = true; net_client_received_wait_data = false; // Initialize connection NET_Conn_InitClient(&client_connection, addr); // try to connect start_time = I_GetTimeMS(); last_send_time = -1; while (client_connection.state == NET_CONN_STATE_CONNECTING) { int nowtime = I_GetTimeMS(); // Send a SYN packet every second. if (nowtime - last_send_time > 1000 || last_send_time < 0) { NET_CL_SendSYN(); last_send_time = nowtime; } // time out after 5 seconds if (nowtime - start_time > 5000) { break; } // run client code NET_CL_Run(); // run the server, just incase we are doing a loopback // connect NET_SV_Run(); // Don't hog the CPU I_Sleep(1); } if (client_connection.state == NET_CONN_STATE_CONNECTED) { // connected ok! client_state = CLIENT_STATE_WAITING_START; return true; } else { // failed to connect NET_CL_Shutdown(); return false; } }