diff --git a/Source/multi.cpp b/Source/multi.cpp index 8bbca9fd6..c6741d57e 100644 --- a/Source/multi.cpp +++ b/Source/multi.cpp @@ -85,21 +85,20 @@ void NetSendLoPri(BYTE *pbMsg, BYTE bLen) } } -void multi_copy_packet(TBuffer *a1, void *packet, BYTE size) +void multi_copy_packet(TBuffer *buf, void *packet, BYTE size) { - DWORD v3; // eax - DWORD v4; // ebx - BYTE *v5; // esi + BYTE *p; - v3 = a1->dwNextWriteOffset; - v4 = a1->dwNextWriteOffset + size; - if (v4 + 2 <= 0x1000) { - a1->dwNextWriteOffset = v4 + 1; - a1->bData[v3] = size; - v5 = &a1->bData[v3 + 1]; - memcpy(v5, packet, size); - v5[size] = 0; + if (buf->dwNextWriteOffset + size + 2 > 0x1000) { + return; } + + p = &buf->bData[buf->dwNextWriteOffset]; + buf->dwNextWriteOffset += size + 1; + *p = size; + p++; + memcpy(p, packet, size); + p[size] = 0; } void multi_send_packet(void *packet, BYTE dwSize) diff --git a/Source/multi.h b/Source/multi.h index 26330aa5f..16e7d6cde 100644 --- a/Source/multi.h +++ b/Source/multi.h @@ -20,7 +20,7 @@ void __cdecl dumphist(const char *pszFmt, ...); #endif void multi_msg_add(BYTE *pbMsg, BYTE bLen); void NetSendLoPri(BYTE *pbMsg, BYTE bLen); -void multi_copy_packet(TBuffer *a1, void *packet, BYTE size); +void multi_copy_packet(TBuffer *buf, void *packet, BYTE size); void multi_send_packet(void *packet, BYTE dwSize); void NetRecvPlrData(TPkt *pkt); void NetSendHiPri(BYTE *pbMsg, BYTE bLen);