| 70 | } |
| 71 | |
| 72 | BOOL nthread_recv_turns(BOOL *pfSendAsync) |
| 73 | { |
| 74 | *pfSendAsync = FALSE; |
| 75 | sgbPacketCountdown--; |
| 76 | if (sgbPacketCountdown) { |
| 77 | last_tick += 50; |
| 78 | return TRUE; |
| 79 | } |
| 80 | sgbSyncCountdown--; |
| 81 | sgbPacketCountdown = sgbNetUpdateRate; |
| 82 | if (sgbSyncCountdown != 0) { |
| 83 | |
| 84 | *pfSendAsync = TRUE; |
| 85 | last_tick += 50; |
| 86 | return TRUE; |
| 87 | } |
| 88 | if (!SNetReceiveTurns(0, MAX_PLRS, (char **)glpMsgTbl, gdwMsgLenTbl, (LPDWORD)player_state)) { |
| 89 | if (SErrGetLastError() != STORM_ERROR_NO_MESSAGES_WAITING) |
| 90 | nthread_terminate_game("SNetReceiveTurns"); |
| 91 | sgbTicsOutOfSync = FALSE; |
| 92 | sgbSyncCountdown = 1; |
| 93 | sgbPacketCountdown = 1; |
| 94 | return FALSE; |
| 95 | } else { |
| 96 | if (!sgbTicsOutOfSync) { |
| 97 | sgbTicsOutOfSync = TRUE; |
| 98 | last_tick = SDL_GetTicks(); |
| 99 | } |
| 100 | sgbSyncCountdown = 4; |
| 101 | multi_msg_countdown(); |
| 102 | *pfSendAsync = TRUE; |
| 103 | last_tick += 50; |
| 104 | return TRUE; |
| 105 | } |
| 106 | } |
| 107 | |
| 108 | void nthread_set_turn_upper_bit() |
| 109 | { |
no test coverage detected