Browse Source

Clean up multi_recv_packet.

pull/124/head
Sergey Semushin 7 years ago committed by Anders Jenbo
parent
commit
13ff40e3ff
  1. 47
      Source/multi.cpp
  2. 2
      Source/multi.h

47
Source/multi.cpp

@ -154,35 +154,30 @@ void NetSendHiPri(BYTE *pbMsg, BYTE bLen)
}
// 679760: using guessed type int gdwNormalMsgSize;
unsigned char *multi_recv_packet(TBuffer *packet, unsigned char *a2, int *a3)
{
TBuffer *v3; // esi
unsigned char *result; // eax
BYTE *v5; // ebx
size_t v6; // edi
char *v7; // ebx
unsigned char *v8; // [esp+4h] [ebp-4h]
v3 = packet;
result = a2;
v8 = a2;
if (packet->dwNextWriteOffset) {
v5 = packet->bData;
while (*v5) {
v6 = *v5;
if (v6 > *a3)
BYTE *multi_recv_packet(TBuffer *packet, BYTE *body, int *size)
{
BYTE *src_ptr;
size_t chunk_size;
if (packet->dwNextWriteOffset != 0) {
src_ptr = packet->bData;
while (TRUE) {
if (*src_ptr == 0)
break;
v7 = (char *)(v5 + 1);
memcpy(v8, v7, v6);
v8 += v6;
v5 = (BYTE *)&v7[v6];
*a3 -= v6;
chunk_size = *src_ptr;
if (chunk_size > *size)
break;
src_ptr++;
memcpy(body, src_ptr, chunk_size);
body += chunk_size;
src_ptr += chunk_size;
*size -= chunk_size;
}
memcpy(v3->bData, v5, (size_t)&v3->bData[v3->dwNextWriteOffset - (_DWORD)v5 + 1]); /* memcpy_0 */
v3->dwNextWriteOffset += (char *)v3 - (char *)v5 + 4;
result = v8;
memcpy(packet->bData, src_ptr, (packet->bData - src_ptr) + packet->dwNextWriteOffset + 1);
packet->dwNextWriteOffset += (packet->bData - src_ptr);
return body;
}
return result;
return body;
}
void multi_send_msg_packet(int pmask, BYTE *a2, BYTE len)

2
Source/multi.h

@ -24,7 +24,7 @@ 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);
unsigned char *multi_recv_packet(TBuffer *packet, unsigned char *a2, int *a3);
BYTE *multi_recv_packet(TBuffer *packet, BYTE *body, int *size);
void multi_send_msg_packet(int pmask, BYTE *a2, BYTE len);
void multi_msg_countdown();
void multi_parse_turn(int pnum, int turn);

Loading…
Cancel
Save