|
|
|
|
@ -152,13 +152,13 @@ void NetSendHiPri(BYTE *pbMsg, BYTE bLen)
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
BYTE *multi_recv_packet(TBuffer *packet, BYTE *body, int *size) |
|
|
|
|
BYTE *multi_recv_packet(TBuffer *pBuf, BYTE *body, int *size) |
|
|
|
|
{ |
|
|
|
|
BYTE *src_ptr; |
|
|
|
|
size_t chunk_size; |
|
|
|
|
|
|
|
|
|
if (packet->dwNextWriteOffset != 0) { |
|
|
|
|
src_ptr = packet->bData; |
|
|
|
|
if (pBuf->dwNextWriteOffset != 0) { |
|
|
|
|
src_ptr = pBuf->bData; |
|
|
|
|
while (TRUE) { |
|
|
|
|
if (*src_ptr == 0) |
|
|
|
|
break; |
|
|
|
|
@ -171,14 +171,14 @@ BYTE *multi_recv_packet(TBuffer *packet, BYTE *body, int *size)
|
|
|
|
|
src_ptr += chunk_size; |
|
|
|
|
*size -= chunk_size; |
|
|
|
|
} |
|
|
|
|
memcpy(packet->bData, src_ptr, (packet->bData - src_ptr) + packet->dwNextWriteOffset + 1); |
|
|
|
|
packet->dwNextWriteOffset += (packet->bData - src_ptr); |
|
|
|
|
memcpy(pBuf->bData, src_ptr, (pBuf->bData - src_ptr) + pBuf->dwNextWriteOffset + 1); |
|
|
|
|
pBuf->dwNextWriteOffset += (pBuf->bData - src_ptr); |
|
|
|
|
return body; |
|
|
|
|
} |
|
|
|
|
return body; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void multi_send_msg_packet(int pmask, BYTE *a2, BYTE len) |
|
|
|
|
void multi_send_msg_packet(int pmask, BYTE *src, BYTE len) |
|
|
|
|
{ |
|
|
|
|
DWORD v, p, t; |
|
|
|
|
TPkt pkt; |
|
|
|
|
@ -186,7 +186,7 @@ void multi_send_msg_packet(int pmask, BYTE *a2, BYTE len)
|
|
|
|
|
NetRecvPlrData(&pkt); |
|
|
|
|
t = len + 19; |
|
|
|
|
pkt.hdr.wLen = t; |
|
|
|
|
memcpy(pkt.body, a2, len); |
|
|
|
|
memcpy(pkt.body, src, len); |
|
|
|
|
for (v = 1, p = 0; p < MAX_PLRS; p++, v <<= 1) { |
|
|
|
|
if (v & pmask) { |
|
|
|
|
if (!SNetSendMessage(p, &pkt.hdr, t) && SErrGetLastError() != STORM_ERROR_INVALID_PLAYER) { |
|
|
|
|
@ -338,9 +338,9 @@ int multi_handle_delta()
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Microsoft VisualC 2-11/net runtime
|
|
|
|
|
int multi_check_pkt_valid(TBuffer *a1) |
|
|
|
|
int multi_check_pkt_valid(TBuffer *pBuf) |
|
|
|
|
{ |
|
|
|
|
return a1->dwNextWriteOffset == 0; |
|
|
|
|
return pBuf->dwNextWriteOffset == 0; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void multi_mon_seeds() |
|
|
|
|
@ -531,12 +531,12 @@ void multi_process_tmsgs()
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void multi_send_zero_packet(DWORD pnum, char a2, void *pbSrc, DWORD dwLen) |
|
|
|
|
void multi_send_zero_packet(DWORD pnum, char identifier, void *pbSrc, DWORD dwLen) |
|
|
|
|
{ |
|
|
|
|
DWORD v5, dwBody; |
|
|
|
|
DWORD len, dwBody; |
|
|
|
|
TPkt pkt; |
|
|
|
|
int t; |
|
|
|
|
v5 = 0; |
|
|
|
|
len = 0; |
|
|
|
|
while (dwLen) { |
|
|
|
|
pkt.hdr.wCheck = 'ip'; |
|
|
|
|
pkt.hdr.px = 0; |
|
|
|
|
@ -548,8 +548,8 @@ void multi_send_zero_packet(DWORD pnum, char a2, void *pbSrc, DWORD dwLen)
|
|
|
|
|
pkt.hdr.bstr = 0; |
|
|
|
|
pkt.hdr.bmag = 0; |
|
|
|
|
pkt.hdr.bdex = 0; |
|
|
|
|
pkt.body[0] = a2; |
|
|
|
|
*(WORD *)&pkt.body[1] = v5; |
|
|
|
|
pkt.body[0] = identifier; |
|
|
|
|
*(WORD *)&pkt.body[1] = len; |
|
|
|
|
dwBody = gdwLargestMsgSize - 24; |
|
|
|
|
if (dwLen < dwBody) |
|
|
|
|
dwBody = dwLen; |
|
|
|
|
@ -563,7 +563,7 @@ void multi_send_zero_packet(DWORD pnum, char a2, void *pbSrc, DWORD dwLen)
|
|
|
|
|
} |
|
|
|
|
pbSrc = (char *)pbSrc + *(WORD *)&pkt.body[3]; |
|
|
|
|
dwLen -= *(WORD *)&pkt.body[3]; |
|
|
|
|
v5 += *(WORD *)&pkt.body[3]; |
|
|
|
|
len += *(WORD *)&pkt.body[3]; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|