|
|
|
|
@ -547,23 +547,14 @@ void multi_process_tmsgs()
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void multi_send_zero_packet(int pnum, char a2, void *pbSrc, int dwLen) |
|
|
|
|
{ |
|
|
|
|
unsigned int v4; // edi
|
|
|
|
|
short v5; // si
|
|
|
|
|
unsigned short dwBody; // ax
|
|
|
|
|
TPkt pkt; // [esp+Ch] [ebp-208h]
|
|
|
|
|
int pnuma; // [esp+20Ch] [ebp-8h]
|
|
|
|
|
int v10; // [esp+210h] [ebp-4h]
|
|
|
|
|
|
|
|
|
|
v4 = dwLen; |
|
|
|
|
_LOBYTE(v10) = a2; |
|
|
|
|
pnuma = pnum; |
|
|
|
|
void multi_send_zero_packet(DWORD pnum, char a2, void *pbSrc, DWORD dwLen) |
|
|
|
|
{ |
|
|
|
|
DWORD v5, dwBody; |
|
|
|
|
TPkt pkt; |
|
|
|
|
int t; |
|
|
|
|
v5 = 0; |
|
|
|
|
while (v4) { |
|
|
|
|
while (dwLen) { |
|
|
|
|
pkt.hdr.wCheck = 'ip'; |
|
|
|
|
pkt.body[0] = v10; |
|
|
|
|
dwBody = gdwLargestMsgSize - 24; |
|
|
|
|
pkt.hdr.px = 0; |
|
|
|
|
pkt.hdr.py = 0; |
|
|
|
|
pkt.hdr.targx = 0; |
|
|
|
|
@ -573,18 +564,21 @@ void multi_send_zero_packet(int pnum, char a2, void *pbSrc, int dwLen)
|
|
|
|
|
pkt.hdr.bstr = 0; |
|
|
|
|
pkt.hdr.bmag = 0; |
|
|
|
|
pkt.hdr.bdex = 0; |
|
|
|
|
pkt.body[0] = a2; |
|
|
|
|
*(_WORD *)&pkt.body[1] = v5; |
|
|
|
|
if (v4 < gdwLargestMsgSize - 24) |
|
|
|
|
dwBody = v4; |
|
|
|
|
dwBody = gdwLargestMsgSize - 24; |
|
|
|
|
if (dwLen < dwBody) |
|
|
|
|
dwBody = dwLen; |
|
|
|
|
*(_WORD *)&pkt.body[3] = dwBody; |
|
|
|
|
memcpy(&pkt.body[5], pbSrc, dwBody); |
|
|
|
|
pkt.hdr.wLen = *(_WORD *)&pkt.body[3] + 24; |
|
|
|
|
if (!SNetSendMessage(pnuma, &pkt.hdr, *(unsigned short *)&pkt.body[3] + 24)) { |
|
|
|
|
memcpy(&pkt.body[5], pbSrc, *(_WORD *)&pkt.body[3]); |
|
|
|
|
t = *(WORD *)&pkt.body[3] + 24; |
|
|
|
|
pkt.hdr.wLen = t; |
|
|
|
|
if (!SNetSendMessage(pnum, &pkt.hdr, t)) { |
|
|
|
|
nthread_terminate_game("SNetSendMessage2"); |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
pbSrc = (char *)pbSrc + *(unsigned short *)&pkt.body[3]; |
|
|
|
|
v4 -= *(unsigned short *)&pkt.body[3]; |
|
|
|
|
pbSrc = (char *)pbSrc + *(WORD *)&pkt.body[3]; |
|
|
|
|
dwLen -= *(WORD *)&pkt.body[3]; |
|
|
|
|
v5 += *(_WORD *)&pkt.body[3]; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|