+ Error(ERR_WARN, "protocol version mismatch");
+ Error(ERR_EXIT, "server expects %d.%d.x instead of %d.%d.%d",
+ buffer[2], buffer[3],
+ PROTOCOL_VERSION_1, PROTOCOL_VERSION_2, PROTOCOL_VERSION_3);
+}
+
+static void Handle_OP_YOUR_NUMBER()
+{
+ int new_client_nr = buffer[2];
+ int new_index_nr = new_client_nr - 1;
+ struct PlayerInfo *old_local_player = local_player;
+ struct PlayerInfo *new_local_player = &stored_player[new_index_nr];
+
+ printf("OP_YOUR_NUMBER: %d\n", buffer[0]);
+ first_player.nr = new_client_nr;
+
+ if (old_local_player != new_local_player)
+ {
+ /* set relevant player settings and change to new player */
+
+ local_player = new_local_player;
+
+ old_local_player->connected_locally = FALSE;
+ new_local_player->connected_locally = TRUE;
+
+ old_local_player->connected_network = FALSE;
+ new_local_player->connected_network = TRUE;
+ }
+
+ if (first_player.nr > MAX_PLAYERS)
+ Error(ERR_EXIT, "sorry, more than %d players not allowed", MAX_PLAYERS);