+
+ /* when reaching this point, connect to newly started server has failed */
+ return FALSE;
+}
+
+void SendToServer_PlayerName(char *player_name)
+{
+ int len_player_name = strlen(player_name);
+
+ buffer[1] = OP_PLAYER_NAME;
+ memcpy(&buffer[2], player_name, len_player_name);
+ SendBufferToServer(2 + len_player_name);
+ Error(ERR_NETWORK_CLIENT, "you set your player name to \"%s\"", player_name);
+}
+
+void SendToServer_ProtocolVersion()
+{
+ buffer[1] = OP_PROTOCOL_VERSION;
+ buffer[2] = PROTOCOL_VERSION_1;
+ buffer[3] = PROTOCOL_VERSION_2;
+ buffer[4] = PROTOCOL_VERSION_3;
+
+ SendBufferToServer(5);
+}
+
+void SendToServer_NrWanted(int nr_wanted)
+{
+ buffer[1] = OP_NUMBER_WANTED;
+ buffer[2] = nr_wanted;
+
+ SendBufferToServer(3);
+}
+
+void SendToServer_StartPlaying()
+{
+ unsigned int new_random_seed = InitRND(level.random_seed);
+
+ int dummy = 0; /* !!! HAS NO MEANING ANYMORE !!! */
+ /* the name of the level must be enough */
+
+ buffer[1] = OP_START_PLAYING;
+ buffer[2] = (byte)(level_nr >> 8);
+ buffer[3] = (byte)(level_nr & 0xff);
+ buffer[4] = (byte)(dummy >> 8);
+ buffer[5] = (byte)(dummy & 0xff);
+
+ buffer[6] = (unsigned char)((new_random_seed >> 24) & 0xff);
+ buffer[7] = (unsigned char)((new_random_seed >> 16) & 0xff);
+ buffer[8] = (unsigned char)((new_random_seed >> 8) & 0xff);
+ buffer[9] = (unsigned char)((new_random_seed >> 0) & 0xff);
+
+ strcpy((char *)&buffer[10], leveldir_current->identifier);
+
+ SendBufferToServer(10 + strlen(leveldir_current->identifier) + 1);
+}
+
+void SendToServer_PausePlaying()
+{
+ buffer[1] = OP_PAUSE_PLAYING;
+
+ SendBufferToServer(2);
+}
+
+void SendToServer_ContinuePlaying()
+{
+ buffer[1] = OP_CONTINUE_PLAYING;
+
+ SendBufferToServer(2);
+}
+
+void SendToServer_StopPlaying(int cause_for_stopping)
+{
+ buffer[1] = OP_STOP_PLAYING;
+ buffer[2] = cause_for_stopping;
+
+ SendBufferToServer(3);
+}
+
+void SendToServer_MovePlayer(byte player_action)
+{
+ buffer[1] = OP_MOVE_PLAYER;
+ buffer[2] = player_action;
+
+ SendBufferToServer(3);
+}
+
+static void Handle_OP_BAD_PROTOCOL_VERSION()
+{
+ 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);