- case OP_PAUSE:
- printf("OP_PAUSE: %d\n", buf[0]);
- sprintf(msgbuf, "client %d pauses game", buf[0]);
- sysmsg(msgbuf);
+ return;
+ }
+
+ /* copy valid player actions */
+ for (i = 0; i < MAX_PLAYERS; i++)
+ stored_player[i].effective_action =
+ (i < len - 6 && stored_player[i].active ? buffer[6 + i] : 0);
+
+ network_player_action_received = TRUE;
+}
+
+static void HandleNetworkingMessages()
+{
+ unsigned int message_length;
+
+ stop_network_game = FALSE;
+
+ while (nread >= 4 && nread >= 4 + readbuffer[3])
+ {
+ message_length = readbuffer[3];
+ if (readbuffer[0] || readbuffer[1] || readbuffer[2])
+ Error(ERR_EXIT, "wrong network server line length");
+
+ memcpy(buffer, &readbuffer[4], message_length);
+ nread -= 4 + message_length;
+ memmove(readbuffer, readbuffer + 4 + message_length, nread);
+
+ switch (buffer[1])
+ {
+ case OP_BAD_PROTOCOL_VERSION:
+ Handle_OP_BAD_PROTOCOL_VERSION();