diff --git a/Source/multi.cpp b/Source/multi.cpp index d3bdaba45..81dee6290 100644 --- a/Source/multi.cpp +++ b/Source/multi.cpp @@ -525,7 +525,7 @@ void multi_process_network_packets() } } } - multi_handle_all_packets(*(int *)arglist, (TPkt *)&v2[1], len - 19); + multi_handle_all_packets(*(int *)arglist, (BYTE *)&v2[1], len - 19); } //_LOBYTE(v15) = SNetReceiveMessage((int *)arglist, (char **)&pkt, &len); } while (SNetReceiveMessage((int *)arglist, (char **)&pkt, &len)); @@ -536,18 +536,17 @@ void multi_process_network_packets() // 676194: using guessed type char gbBufferMsgs; // 676198: using guessed type int pkt_counter; -void multi_handle_all_packets(int players, TPkt *packet, int a3) +void multi_handle_all_packets(int pnum, BYTE *pData, int nSize) { - TCmd *v3; // esi - int i; // edi - int v5; // eax + int nLen; - v3 = (TCmd *)packet; - for (i = players; a3; a3 -= v5) { - v5 = ParseCmd(i, v3); - if (!v5) + while(nSize != 0) { + nLen = ParseCmd(pnum, (TCmd *)pData); + if(nLen == 0) { break; - v3 += v5; + } + pData += nLen; + nSize -= nLen; } } @@ -557,7 +556,7 @@ void multi_process_tmsgs() TPkt pkt; while (cnt = tmsg_get((BYTE *)&pkt, 512)) { - multi_handle_all_packets(myplr, &pkt, cnt); + multi_handle_all_packets(myplr, (BYTE *)&pkt, cnt); } } diff --git a/Source/multi.h b/Source/multi.h index 5851c0488..be7aad6e6 100644 --- a/Source/multi.h +++ b/Source/multi.h @@ -39,7 +39,7 @@ void multi_mon_seeds(); void multi_begin_timeout(); void multi_check_drop_player(); void multi_process_network_packets(); -void multi_handle_all_packets(int players, TPkt *packet, int a3); +void multi_handle_all_packets(int pnum, BYTE *pData, int nSize); void multi_process_tmsgs(); void multi_send_zero_packet(DWORD pnum, char a2, void *pbSrc, DWORD dwLen); void NetClose();