rnd-19981123-4
[rocksndiamonds.git] / src / network.c
index a58c6621eb1b1a3e43975a9c1577101f9a6f5e4c..8af730753e7f2a892db2c083c76cc81a8d20fe8f 100644 (file)
@@ -145,7 +145,7 @@ static void StartNetworkServer(int port)
       exit(0);
 
     case -1:
-      Error(ERR_RETURN,
+      Error(ERR_WARN,
            "cannot create network server process - no network games");
       options.network = FALSE;
       return;
@@ -226,10 +226,11 @@ boolean ConnectToServer(char *host, int port)
 void SendToServer_Nickname(char *nickname)
 {
   static char msgbuf[300];
+  int len_nickname = strlen(nickname);
 
   buf[1] = OP_NICKNAME;
-  memcpy(&buf[2], nickname, strlen(nickname));
-  sendbuf(2 + strlen(nickname));
+  memcpy(&buf[2], nickname, len_nickname);
+  sendbuf(2 + len_nickname);
   sprintf(msgbuf, "you set your nick to \"%s\"", nickname);
   sysmsg(msgbuf);
 }
@@ -237,9 +238,9 @@ void SendToServer_Nickname(char *nickname)
 void SendToServer_ProtocolVersion()
 {
   buf[1] = OP_PROTOCOL_VERSION;
-  buf[2] = PROT_VERS_1;
-  buf[3] = PROT_VERS_2;
-  buf[4] = PROT_VERS_3;
+  buf[2] = PROTOCOL_VERSION_1;
+  buf[3] = PROTOCOL_VERSION_2;
+  buf[4] = PROTOCOL_VERSION_3;
 
   sendbuf(5);
 }
@@ -303,9 +304,10 @@ void SendToServer_MovePlayer(byte player_action)
 
 static void Handle_OP_BAD_PROTOCOL_VERSION()
 {
-  Error(ERR_RETURN, "protocol version mismatch");
+  Error(ERR_WARN, "protocol version mismatch");
   Error(ERR_EXIT, "server expects %d.%d.x instead of %d.%d.%d",
-       buf[2], buf[3], PROT_VERS_1, PROT_VERS_2, PROT_VERS_3);
+       buf[2], buf[3],
+       PROTOCOL_VERSION_1, PROTOCOL_VERSION_2, PROTOCOL_VERSION_3);
 }
 
 static void Handle_OP_YOUR_NUMBER()
@@ -324,7 +326,6 @@ static void Handle_OP_YOUR_NUMBER()
 
     *new_local_player = *old_local_player;
     old_local_player->connected = FALSE;
-    old_local_player->local = FALSE;
 
     local_player = new_local_player;
   }
@@ -373,7 +374,6 @@ static void Handle_OP_NUMBER_WANTED()
 
       *new_player = *old_player;
       old_player->connected = FALSE;
-      old_player->local = FALSE;
     }
 
     u = finduser(old_client_nr);
@@ -480,25 +480,39 @@ static void Handle_OP_START_PLAYING()
 
 
   if (strcmp(leveldir[new_leveldir_nr].name, new_leveldir_name) != 0)
-    Error(ERR_RETURN, "no such level directory: '%s'",new_leveldir_name);
+    Error(ERR_WARN, "no such level directory: '%s'",new_leveldir_name);
 
   leveldir_nr = new_leveldir_nr;
 
+  /*
   local_player->leveldir_nr = leveldir_nr;
+  */
+
+
+  /*
+  SaveLevelSetup();
+  */
+
+  /*
   LoadPlayerInfo(PLAYER_LEVEL);
   SavePlayerInfo(PLAYER_SETUP);
+  */
+
 
   level_nr = new_level_nr;
 
   TapeErase();
-  LoadLevelTape(level_nr);
+  LoadTape(level_nr);
 
+  /*
   GetPlayerConfig();
+  */
+
   LoadLevel(level_nr);
 
 
 
-  if (setup.autorecord_on)
+  if (setup.autorecord)
     TapeStartRecording();
 
 
@@ -568,7 +582,7 @@ static void Handle_OP_MOVE_FIGURE(unsigned int len)
 
   /* copy valid player actions */
   for (i=0; i<MAX_PLAYERS; i++)
-    stored_player[i].action =
+    stored_player[i].effective_action =
       (i < len - 6 && stored_player[i].active ? buf[6 + i] : 0);
 
   network_player_action_received = TRUE;