diff --git a/src/d_clisrv.c b/src/d_clisrv.c index b3d6b1c6d..638a85ba4 100644 --- a/src/d_clisrv.c +++ b/src/d_clisrv.c @@ -700,7 +700,7 @@ static inline void CL_DrawConnectionStatus(void) // Loading progress V_DrawCenteredString(BASEVIDWIDTH/2, BASEVIDHEIGHT-24-32, MENUCAPS|V_YELLOWMAP, "Checking server addons..."); - totalfileslength = (INT32)((checkednum/(double)(fileneedednum)) * 256); + totalfileslength = !fileneedednum ? 0 : ((checkednum/fileneedednum) * 256); M_DrawTextBox(BASEVIDWIDTH/2-128-8, BASEVIDHEIGHT-24-8, 32, 1); V_DrawFill(BASEVIDWIDTH/2-128, BASEVIDHEIGHT-24, 256, 8, 111); V_DrawFill(BASEVIDWIDTH/2-128, BASEVIDHEIGHT-24, totalfileslength, 8, 96); @@ -1438,7 +1438,8 @@ static void SendAskInfo(INT32 node) if (node != 0 && node != BROADCASTADDR && cv_rendezvousserver.string[0]) { - I_NetRequestHolePunch(node); + if (node > 0) + I_NetRequestHolePunch(node); } asktime = I_GetTime(); diff --git a/src/d_net.c b/src/d_net.c index 45b449467..58cab71d7 100644 --- a/src/d_net.c +++ b/src/d_net.c @@ -1063,7 +1063,7 @@ boolean HSendPacket(INT32 node, boolean reliable, UINT8 acknum, size_t packetlen return false; } - if (node < MAXNETNODES) // Can be a broadcast + if (node >= 0 && node < MAXNETNODES) // Can be a broadcast netbuffer->ackreturn = GetAcktosend(node); else netbuffer->ackreturn = 0; @@ -1083,7 +1083,7 @@ boolean HSendPacket(INT32 node, boolean reliable, UINT8 acknum, size_t packetlen else netbuffer->ack = acknum; - if (node < MAXNETNODES) + if (node >= 0 && node < MAXNETNODES) // Can be a broadcast netbuffer->packetindex = nodes[doomcom->remotenode].sendnum++; netbuffer->checksum = NetbufferChecksum(); sendbytes += packetheaderlength + doomcom->datalength; // For stat