Browse Source

dthread_send_delta bin exact (#563)

pull/25/head
Anders Jenbo 7 years ago committed by Robin Eklind
parent
commit
b582709d38
  1. 34
      Source/dthread.cpp
  2. 2
      Source/msg.cpp

34
Source/dthread.cpp

@ -57,24 +57,26 @@ void __fastcall dthread_send_delta(int pnum, char cmd, void *pbSrc, int dwLen)
{
TMegaPkt *pkt;
TMegaPkt *p;
TMegaPkt **last;
if (gbMaxPlayers != 1) {
pkt = (TMegaPkt *)DiabloAllocPtr(dwLen + 20);
pkt->pNext = 0;
pkt->dwSpaceLeft = pnum;
pkt->data[0] = cmd;
*(_DWORD *)&pkt->data[4] = dwLen;
memcpy(&pkt->data[8], pbSrc, dwLen);
EnterCriticalSection(&sgMemCrit);
last = &sgpInfoHead;
for (p = sgpInfoHead; p != NULL; p = p->pNext) {
last = &p->pNext;
}
*last = pkt;
SetEvent(sghWorkToDoEvent);
LeaveCriticalSection(&sgMemCrit);
if (gbMaxPlayers == 1) {
return;
}
pkt = (TMegaPkt *)DiabloAllocPtr(dwLen + 20);
pkt->pNext = NULL;
pkt->dwSpaceLeft = pnum;
pkt->data[0] = cmd;
*(_DWORD *)&pkt->data[4] = dwLen;
memcpy(&pkt->data[8], pbSrc, dwLen);
EnterCriticalSection(&sgMemCrit);
p = (TMegaPkt *)&sgpInfoHead;
while (p->pNext) {
p = p->pNext;
}
p->pNext = pkt;
SetEvent(sghWorkToDoEvent);
LeaveCriticalSection(&sgMemCrit);
}
// 679660: using guessed type char gbMaxPlayers;

2
Source/msg.cpp

@ -55,7 +55,7 @@ TMegaPkt *__cdecl msg_get_next_packet()
TMegaPkt *result;
sgpCurrPkt = (TMegaPkt *)DiabloAllocPtr(32008);
sgpCurrPkt->pNext = 0;
sgpCurrPkt->pNext = NULL;
sgpCurrPkt->dwSpaceLeft = 32000;
result = (TMegaPkt *)&sgpMegaPkt;

Loading…
Cancel
Save