From ec6deaec98d1971592f86e83805e0026c858f47b Mon Sep 17 00:00:00 2001 From: qndel Date: Sat, 27 Apr 2019 00:43:07 +0200 Subject: [PATCH] multi_handle_events bin exact (#1056) --- Source/multi.cpp | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/Source/multi.cpp b/Source/multi.cpp index 073d7dbf0..51066cd32 100644 --- a/Source/multi.cpp +++ b/Source/multi.cpp @@ -642,31 +642,31 @@ char multi_event_handler(int a1) void __stdcall multi_handle_events(_SNETEVENT *pEvt) { - int v1; // ecx - int *v2; // eax - int *v3; // eax + int LeftReason; + int *data; switch (pEvt->eventid) { case EVENT_TYPE_PLAYER_CREATE_GAME: - v3 = (int *)pEvt->data; - sgGameInitInfo.dwSeed = *v3; - _LOBYTE(sgGameInitInfo.bDiff) = *((_BYTE *)v3 + 4); - sgbPlayerTurnBitTbl[pEvt->playerid] = 1; + data = (int *)pEvt->data; + sgGameInitInfo.dwSeed = data[0]; + sgGameInitInfo.bDiff = data[1]; + sgbPlayerTurnBitTbl[pEvt->playerid] = TRUE; break; case EVENT_TYPE_PLAYER_LEAVE_GAME: - v1 = 0; sgbPlayerLeftGameTbl[pEvt->playerid] = TRUE; - sgbPlayerTurnBitTbl[pEvt->playerid] = 0; - v2 = (int *)pEvt->data; - if (v2 && pEvt->databytes >= 4u) - v1 = *v2; - sgdwPlayerLeftReasonTbl[pEvt->playerid] = v1; - if (v1 == 0x40000004) + sgbPlayerTurnBitTbl[pEvt->playerid] = FALSE; + LeftReason = 0; + data = (int *)pEvt->data; + if (data && (DWORD)pEvt->databytes >= 4) + LeftReason = data[0]; + sgdwPlayerLeftReasonTbl[pEvt->playerid] = LeftReason; + if (LeftReason == 0x40000004) gbSomebodyWonGameKludge = TRUE; sgbSendDeltaTbl[pEvt->playerid] = FALSE; dthread_remove_player(pEvt->playerid); + if (gbDeltaSender == pEvt->playerid) - gbDeltaSender = 4; + gbDeltaSender = MAX_PLRS; break; case EVENT_TYPE_PLAYER_MESSAGE: ErrorPlrMsg((char *)pEvt->data);