static void I_InitSDLNetDriver(void) { if (init_SDLNet_driver) I_ShutdownSDLNetDriver(); if (SDLNet_Init() == -1) { CONS_Printf("SDL_Net: %s",SDLNet_GetError()); return; // No good! } D_SetDoomcom(); mypacket.data = doomcom->data; init_SDLNet_driver = true; }
// // D_CheckNetGame // Works out player numbers among the net participants // boolean D_CheckNetGame(void) { boolean ret = false; InitAck(); rebound_tail = rebound_head = 0; statstarttic = I_GetTime(); I_NetGet = Internal_Get; I_NetSend = Internal_Send; I_NetCanSend = NULL; I_NetCloseSocket = NULL; I_NetFreeNodenum = Internal_FreeNodenum; I_NetMakeNodewPort = NULL; hardware_MAXPACKETLENGTH = MAXPACKETLENGTH; net_bandwidth = 30000; // I_InitNetwork sets doomcom and netgame // check and initialize the network driver multiplayer = false; // only dos version with external driver will return true netgame = I_InitNetwork(); if (!netgame && !I_NetOpenSocket) { D_SetDoomcom(); netgame = I_InitTcpNetwork(); } if (netgame) ret = true; if (!server && netgame) netgame = false; server = true; // WTF? server always true??? // no! The deault mode is server. Client is set elsewhere // when the client executes connect command. doomcom->ticdup = 1; if (M_CheckParm("-extratic")) { if (M_IsNextParm()) doomcom->extratics = (INT16)atoi(M_GetNextParm()); else doomcom->extratics = 1; CONS_Printf(M_GetText("Set extratics to %d\n"), doomcom->extratics); } if (M_CheckParm("-bandwidth")) { if (M_IsNextParm()) { net_bandwidth = atoi(M_GetNextParm()); if (net_bandwidth < 1000) net_bandwidth = 1000; if (net_bandwidth > 100000) hardware_MAXPACKETLENGTH = MAXPACKETLENGTH; CONS_Printf(M_GetText("Network bandwidth set to %d\n"), net_bandwidth); } else I_Error("usage: -bandwidth <byte_per_sec>"); } software_MAXPACKETLENGTH = hardware_MAXPACKETLENGTH; if (M_CheckParm("-packetsize")) { if (M_IsNextParm()) { INT32 p = atoi(M_GetNextParm()); if (p < 75) p = 75; if (p > hardware_MAXPACKETLENGTH) p = hardware_MAXPACKETLENGTH; software_MAXPACKETLENGTH = (UINT16)p; } else I_Error("usage: -packetsize <bytes_per_packet>"); } if (netgame) multiplayer = true; if (doomcom->id != DOOMCOM_ID) I_Error("Doomcom buffer invalid!"); if (doomcom->numnodes > MAXNETNODES) I_Error("Too many nodes (%d), max:%d", doomcom->numnodes, MAXNETNODES); netbuffer = (doomdata_t *)(void *)&doomcom->data; #ifdef DEBUGFILE #ifdef _arch_dreamcast //debugfile = stderr; if (debugfile) CONS_Printf(M_GetText("debug output to: %s\n"), "STDERR"); #else if (M_CheckParm("-debugfile")) { char filename[20]; INT32 k = doomcom->consoleplayer - 1; if (M_IsNextParm()) k = atoi(M_GetNextParm()) - 1; while (!debugfile && k < MAXPLAYERS) { k++; sprintf(filename, "debug%d.txt", k); debugfile = fopen(filename, "w"); } if (debugfile) CONS_Printf(M_GetText("debug output to: %s\n"), filename); else CONS_Alert(CONS_WARNING, M_GetText("cannot debug output to file %s!\n"), filename); } #endif #endif D_ClientServerInit(); return ret; }