Browse Source

Fix signature of multi_send_pinfo(...) (#164)

pull/4/head
nomdenom 8 years ago committed by galaxyhaxz
parent
commit
b8eb6c54fb
  1. 6
      Source/dthread.cpp
  2. 2
      Source/dthread.h
  3. 15
      Source/multi.cpp
  4. 2
      Source/multi.h

6
Source/dthread.cpp

@ -63,16 +63,14 @@ void __fastcall dthread_remove_player(int pnum)
LeaveCriticalSection(&sgMemCrit); LeaveCriticalSection(&sgMemCrit);
} }
void __fastcall dthread_send_delta(int pnum, int cmd, void *pbSrc, int dwLen) void __fastcall dthread_send_delta(int pnum, char cmd, void *pbSrc, int dwLen)
{ {
char v4; // bl
TMegaPkt *v5; // eax TMegaPkt *v5; // eax
TMegaPkt *v6; // esi TMegaPkt *v6; // esi
TMegaPkt *v7; // eax TMegaPkt *v7; // eax
TMegaPkt **v8; // ecx TMegaPkt **v8; // ecx
int v9; // [esp+4h] [ebp-4h] int v9; // [esp+4h] [ebp-4h]
v4 = cmd;
v9 = pnum; v9 = pnum;
if ( gbMaxPlayers != 1 ) if ( gbMaxPlayers != 1 )
{ {
@ -80,7 +78,7 @@ void __fastcall dthread_send_delta(int pnum, int cmd, void *pbSrc, int dwLen)
v6 = v5; v6 = v5;
v5->pNext = 0; v5->pNext = 0;
v5->dwSpaceLeft = v9; v5->dwSpaceLeft = v9;
v5->data[0] = v4; v5->data[0] = cmd;
*(_DWORD *)&v5->data[4] = dwLen; *(_DWORD *)&v5->data[4] = dwLen;
memcpy(&v5->data[8], pbSrc, dwLen); memcpy(&v5->data[8], pbSrc, dwLen);
EnterCriticalSection(&sgMemCrit); EnterCriticalSection(&sgMemCrit);

2
Source/dthread.h

@ -14,7 +14,7 @@ void __cdecl dthread_init_mutex();
void __cdecl dthread_cleanup_mutex_atexit(); void __cdecl dthread_cleanup_mutex_atexit();
void __cdecl dthread_cleanup_mutex(); void __cdecl dthread_cleanup_mutex();
void __fastcall dthread_remove_player(int pnum); void __fastcall dthread_remove_player(int pnum);
void __fastcall dthread_send_delta(int pnum, int cmd, void *pbSrc, int dwLen); void __fastcall dthread_send_delta(int pnum, char cmd, void *pbSrc, int dwLen);
void __cdecl dthread_start(); void __cdecl dthread_start();
unsigned int __stdcall dthread_handler(void *a1); unsigned int __stdcall dthread_handler(void *a1);
void __cdecl dthread_cleanup(); void __cdecl dthread_cleanup();

15
Source/multi.cpp

@ -791,7 +791,6 @@ int __fastcall NetInit(int bSinglePlayer, int *pfExitProgram)
int v2; // ebx int v2; // ebx
int v4; // eax int v4; // eax
//int v5; // ecx //int v5; // ecx
TCmdPlrInfoHdr *v6; // edx
bool v7; // zf bool v7; // zf
//int v9; // eax //int v9; // eax
//int v10; // eax //int v10; // eax
@ -871,8 +870,7 @@ int __fastcall NetInit(int bSinglePlayer, int *pfExitProgram)
gbSomebodyWonGameKludge = 0; gbSomebodyWonGameKludge = 0;
nthread_send_and_recv_turn(0, 0); nthread_send_and_recv_turn(0, 0);
SetupLocalCoords(); SetupLocalCoords();
_LOBYTE(v6) = CMD_SEND_PLRINFO; multi_send_pinfo(-2, CMD_SEND_PLRINFO);
multi_send_pinfo(-2, v6);
gbActivePlayers = 1; gbActivePlayers = 1;
v7 = sgbPlayerTurnBitTbl[myplr] == 0; v7 = sgbPlayerTurnBitTbl[myplr] == 0;
plr[myplr].plractive = 1; plr[myplr].plractive = 1;
@ -913,18 +911,16 @@ void __fastcall multi_clear_pkt(char *a1)
a1[4] = 0; a1[4] = 0;
} }
void __fastcall multi_send_pinfo(int pnum, TCmdPlrInfoHdr *cmd) void __fastcall multi_send_pinfo(int pnum, char cmd)
{ {
char v2; // bl char v2; // bl
int v3; // esi int v3; // esi
int v4; // edx
PkPlayerStruct pkplr; // [esp+8h] [ebp-4F4h] PkPlayerStruct pkplr; // [esp+8h] [ebp-4F4h]
v2 = (char)cmd; v2 = cmd;
v3 = pnum; v3 = pnum;
PackPlayer(&pkplr, myplr, 1); PackPlayer(&pkplr, myplr, 1);
_LOBYTE(v4) = v2; dthread_send_delta(v3, v2, &pkplr, 1266);
dthread_send_delta(v3, v4, &pkplr, 1266);
} }
int __fastcall InitNewSeed(int newseed) int __fastcall InitNewSeed(int newseed)
@ -1109,8 +1105,7 @@ void __fastcall multi_player_joins(int pnum, TCmdPlrInfoHdr *cmd, int a3)
{ {
if ( !a3 && !*v5 ) if ( !a3 && !*v5 )
{ {
_LOBYTE(cmd) = CMD_ACK_PLRINFO; multi_send_pinfo(pnum, CMD_ACK_PLRINFO);
multi_send_pinfo(pnum, cmd);
} }
memcpy((char *)&pkplr[v3] + (unsigned short)v4->wOffset, &v4[1], (unsigned short)v4->wBytes); memcpy((char *)&pkplr[v3] + (unsigned short)v4->wOffset, &v4[1], (unsigned short)v4->wBytes);
*v5 += v4->wBytes; *v5 += v4->wBytes;

2
Source/multi.h

@ -58,7 +58,7 @@ char __fastcall multi_event_handler(int a1);
void __stdcall multi_handle_events(_SNETEVENT *pEvt); void __stdcall multi_handle_events(_SNETEVENT *pEvt);
int __fastcall NetInit(int bSinglePlayer, int *pfExitProgram); int __fastcall NetInit(int bSinglePlayer, int *pfExitProgram);
void __fastcall multi_clear_pkt(char *a1); void __fastcall multi_clear_pkt(char *a1);
void __fastcall multi_send_pinfo(int pnum, TCmdPlrInfoHdr *cmd); void __fastcall multi_send_pinfo(int pnum, char cmd);
int __fastcall InitNewSeed(int newseed); int __fastcall InitNewSeed(int newseed);
void __cdecl SetupLocalCoords(); void __cdecl SetupLocalCoords();
int __fastcall multi_init_single(_SNETPROGRAMDATA *client_info, _SNETPLAYERDATA *user_info, _SNETUIDATA *ui_info); int __fastcall multi_init_single(_SNETPROGRAMDATA *client_info, _SNETPLAYERDATA *user_info, _SNETUIDATA *ui_info);

Loading…
Cancel
Save