From dc3a4b8820bc0f92cbd01bbfa1aeac938802b24a Mon Sep 17 00:00:00 2001 From: Anders Jenbo Date: Fri, 26 Apr 2019 01:43:23 +0200 Subject: [PATCH] Clean up multi_parse_turn --- Source/multi.cpp | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/Source/multi.cpp b/Source/multi.cpp index 53df6cf5a..bfea3d921 100644 --- a/Source/multi.cpp +++ b/Source/multi.cpp @@ -232,22 +232,18 @@ void multi_msg_countdown() void multi_parse_turn(int pnum, int turn) { - int v2; // esi - unsigned int v3; // esi + DWORD absTurns; - v2 = turn; - if (turn < 0) + if (turn >> 31) multi_handle_turn_upper_bit(pnum); - v3 = v2 & 0x7FFFFFFF; - if (sgbSentThisCycle < gdwTurnsInTransit + v3) { - if (v3 >= 0x7FFFFFFF) - v3 = (unsigned short)v3; - sgbSentThisCycle = v3 + gdwTurnsInTransit; - sgdwGameLoops = 4 * v3 * (unsigned char)byte_679704; + absTurns = turn & 0x7FFFFFFF; + if (sgbSentThisCycle < gdwTurnsInTransit + absTurns) { + if (absTurns >= 0x7FFFFFFF) + absTurns &= 0xFFFF; + sgbSentThisCycle = absTurns + gdwTurnsInTransit; + sgdwGameLoops = 4 * absTurns * (BYTE)byte_679704; } } -// 679704: using guessed type char byte_679704; -// 679738: using guessed type int gdwTurnsInTransit; void multi_handle_turn_upper_bit(int pnum) {