Difference for main/network.c from version 1.5 to 1.6


version 1.5 version 1.6
Line 1145
 
Line 1145
  mprintf((0, "Got add player request!\n"));   mprintf((0, "Got add player request!\n"));
   
  for (i=0; i<N_players; i++ ) {   for (i=0; i<N_players; i++ ) {
  if ( !memcmp( Netgame.players[i].node, p->player.node, 6) && !memcmp(Netgame.players[i].server, p->player.server, 4))    if ( !memcmp( Netgame.players[i].node, p->player.node, 6) && !memcmp(Netgame.players[i].server, p->player.server, 4)){
    mprintf((0, "already have em as player %i!\n",i));
  return; // already got them   return; // already got them
  }   }
    }
    
  if ( N_players >= MAX_PLAYERS )    if ( N_players >= MAX_PLAYERS ) {
    mprintf((0, "too many players %i!\n",N_players));
  return; // too many of em   return; // too many of em
    }
   
  memcpy( Netgame.players[N_players].callsign, p->player.callsign, CALLSIGN_LEN+1 );   memcpy( Netgame.players[N_players].callsign, p->player.callsign, CALLSIGN_LEN+1 );
  memcpy( Netgame.players[N_players].node, p->player.node, 6 );   memcpy( Netgame.players[N_players].node, p->player.node, 6 );
Line 1506
 
Line 1510
  case PID_REQUEST:   case PID_REQUEST:
  mprintf( (0, "Got REQUEST from '%s'\n", their->player.callsign ));   mprintf( (0, "Got REQUEST from '%s'\n", their->player.callsign ));
   
                   if (!ipx_check_ready_to_join(their->player.server,their->player.node))
                      break;
   
                 //added on 2/1/99 by Victor Rachels for bans                  //added on 2/1/99 by Victor Rachels for bans
                 if(checkban(their->player.node))                  if(checkban(their->player.node))
                  {                   {
Line 3274
 
Line 3281
  return(0);   return(0);
 }  }
   
   //moved 2000/02/07 Matt Mueller - clipped stuff from network_join_game into new network_do_join_game to allow easy joining from other funcs too.
   int network_do_join_game(netgame_info *jgame){
    if (jgame->game_status == NETSTAT_ENDLEVEL)
    {
    nm_messagebox(TXT_SORRY, 1, TXT_OK, TXT_NET_GAME_BETWEEN2);
    return 0;
    }
   
    if ((jgame->protocol_version != MULTI_PROTO_VERSION) &&
        (jgame->protocol_version != MULTI_PROTO_D1X_VER))
    {
                   nm_messagebox(TXT_SORRY, 1, TXT_OK, TXT_VERSION_MISMATCH);
    return 0;
    }
   #ifndef SHAREWARE
    if (jgame->protocol_version == MULTI_PROTO_D1X_VER &&
        jgame->required_subprotocol > MULTI_PROTO_D1X_MINOR)
    {
    nm_messagebox(TXT_SORRY, 1, TXT_OK, "This game uses features\nnot present in this version.");
    return 0;
    }
    {
    // Check for valid mission name
    mprintf((0, "Loading mission:%s.\n", jgame->mission_name));
    if (!load_mission_by_name(jgame->mission_name))
    {
    nm_messagebox(NULL, 1, TXT_OK, TXT_MISSION_NOT_FOUND);
   
                                   //add getlevel functionality here - Victor Rachels
   
    return 0;
    }
    }
   #endif
   
    if (!can_join_netgame(jgame))
    {
    if (jgame->numplayers == jgame->max_numplayers)
    nm_messagebox(TXT_SORRY, 1, TXT_OK, TXT_GAME_FULL);
    else
    nm_messagebox(TXT_SORRY, 1, TXT_OK, TXT_IN_PROGRESS);
    return 0;
    }
   
    // Choice is valid, prepare to join in
   
    memcpy(&Netgame, jgame, sizeof(netgame_info));
   
    Difficulty_level = Netgame.difficulty;
    MaxNumNetPlayers = Netgame.max_numplayers;
    change_playernum_to(1);
   
    network_set_game_mode(Netgame.gamemode);
   
    StartNewLevel(Netgame.levelnum);
   
    return 1;     // look ma, we're in a game!!!
   }
   
 void network_join_game()  void network_join_game()
 {  {
  int choice;   int choice;
Line 3353
 
Line 3419
   
  // Choice has been made and looks legit   // Choice has been made and looks legit
   
  if (Active_games[choice].game_status == NETSTAT_ENDLEVEL)  
  {  
  nm_messagebox(TXT_SORRY, 1, TXT_OK, TXT_NET_GAME_BETWEEN2);  
  goto remenu;  
  }  
   
  if ((Active_games[choice].protocol_version != MULTI_PROTO_VERSION) &&  
      (Active_games[choice].protocol_version != MULTI_PROTO_D1X_VER))  
  {  
                 nm_messagebox(TXT_SORRY, 1, TXT_OK, TXT_VERSION_MISMATCH);  
  goto remenu;  
  }  
 #ifndef SHAREWARE  
  if (Active_games[choice].protocol_version == MULTI_PROTO_D1X_VER &&  
      Active_games[choice].required_subprotocol > MULTI_PROTO_D1X_MINOR)  
  {  
  nm_messagebox(TXT_SORRY, 1, TXT_OK, "This game uses features\nnot present in this version.");  
  goto remenu;  
  }  
  {   
  // Check for valid mission name  
  mprintf((0, "Loading mission:%s.\n", Active_games[choice].mission_name));  
  if (!load_mission_by_name(Active_games[choice].mission_name))  
  {  
  nm_messagebox(NULL, 1, TXT_OK, TXT_MISSION_NOT_FOUND);  
   
                                 //add getlevel functionality here - Victor Rachels  
   
  goto remenu;  
  }  
  }  
 #endif  
   
  if (!can_join_netgame(&Active_games[choice]))   if (network_do_join_game(&Active_games[choice])==0)
  {  
  if (Active_games[choice].numplayers == Active_games[choice].max_numplayers)  
  nm_messagebox(TXT_SORRY, 1, TXT_OK, TXT_GAME_FULL);  
  else  
  nm_messagebox(TXT_SORRY, 1, TXT_OK, TXT_IN_PROGRESS);  
  goto remenu;   goto remenu;
  }  
   
  // Choice is valid, prepare to join in  
   
  memcpy(&Netgame, &Active_games[choice], sizeof(netgame_info));  
   
  Difficulty_level = Netgame.difficulty;  
  MaxNumNetPlayers = Netgame.max_numplayers;  
  change_playernum_to(1);  
   
  network_set_game_mode(Netgame.gamemode);  
   
  StartNewLevel(Netgame.levelnum);  
   
  return; // look ma, we're in a game!!!   return; // look ma, we're in a game!!!
 }  }

Legend:
line(s) removed in v.1.5 
line(s) changed
 line(s) added in v.1.6