a couple of changed functions
void multi_join_load_tcp_addrs()
{
char line[MAX_IP_STRING];
net_addr addr;
server_item *item;
CFILE *file = NULL;
static char Server[32];
static int port = -1;
//if (On_FS2Open_PXO)
if (true) // THIS TO BE FIXED WHEN WE'RE FINISHED!
{
//FS2OpenPXO code
if (port == -1)
{
ml_printf("Network: Attempting to load config file\n");
// load the multi.cfg file
file = cfopen("fs2open_pxo.cfg","rt",CFILE_NORMAL,CF_TYPE_DATA);
if(file == NULL){
ml_printf("Network: Error loading fs2open_pxo.cfg file!\n");
return;
}
char Port[32];
if (cfgets(Server, 32, file) == NULL)
{
ml_printf("Network", "No Masterserver definition!\n");
return;
}
if (cfgets(Port, 32, file) != NULL)
port = atoi(Port);
else
port = 12000;
cfclose(file);
}
// free up any existing server list
multi_free_server_list();
net_server *servers;
int numServersFound;
ml_printf("Network (FS2OpenPXO): Requesting server list\n");
servers = GetServerList(Server, numServersFound, port);
ml_printf("Network (FS2OpenPXO): Got %d servers.\n", numServersFound);
for (int i = 0; i < numServersFound; i++)
{
// copy the server ip address
memset(&addr,0,sizeof(net_addr));
addr.type = NET_TCP;
ml_printf("Network (FS2OpenPXO): Server %d ip is %s\n", i, servers[i].ip);
psnet_string_to_addr(&addr,servers[i].ip);
if ( addr.port == 0 ){
addr.port = DEFAULT_GAME_PORT;
}
// create a new server item on the list
item = multi_new_server_item();
if(item != NULL){
ml_printf("Network (FS2OpenPXO): Memcpy'ing Server %d into position\n", i);
memcpy(&item->server_addr,&addr,sizeof(net_addr));
}
}
delete servers;
ml_printf("Network (FS2OpenPXO): Finished adding servers - exiting multi_join_load_tcp_addrs()\n", i);
}
else
{
// --------------- Origional Code Provided by Volition -----------------
// attempt to open the ip list file
file = cfopen(IP_CONFIG_FNAME,"rt",CFILE_NORMAL,CF_TYPE_DATA);
if(file == NULL){
nprintf(("Network","Error loading tcp.cfg file!\n"));
return;
}
// free up any existing server list
multi_free_server_list();
// read in all the strings in the file
while(!cfeof(file)){
line[0] = '\0';
cfgets(line,MAX_IP_STRING,file);
// strip off any newline character
if(line[strlen(line) - 1] == '\n'){
line[strlen(line) - 1] = '\0';
}
// empty lines don't get processed
if( (line[0] == '\0') || (line[0] == '\n') ){
continue;
}
if ( !psnet_is_valid_ip_string(line) ) {
nprintf(("Network","Invalid ip string (%s)\n",line));
} else {
// copy the server ip address
memset(&addr,0,sizeof(net_addr));
addr.type = NET_TCP;
psnet_string_to_addr(&addr,line);
if ( addr.port == 0 ){
addr.port = DEFAULT_GAME_PORT;
}
// create a new server item on the list
item = multi_new_server_item();
if(item != NULL){
memcpy(&item->server_addr,&addr,sizeof(net_addr));
}
}
}
cfclose(file);
// --------------- end Origional Code Provided by Volition -----------------
}
}
and
void multi_create_do_netstuff()
{
// send Heartbeat to the FS2OpenPXO master server
static int LastSend = -1;
static char Server[32];
static int port;
if (LastSend == -1)
{
CFILE *file = cfopen("fs2open_pxo.cfg","rt",CFILE_NORMAL,CF_TYPE_DATA);
if(file == NULL){
ml_printf("Network","Error loading fs2open_pxo.cfg file!\n");
return;
}
char Port[32];
if (cfgets(Server, 32, file) == NULL)
{
ml_printf("Network", "No Masterserver definition!\n");
return;
}
if (cfgets(Port, 32, file) != NULL)
port = atoi(Port);
else
port = 12000;
}
if ((clock() - LastSend) >= 60000 || LastSend == -1)
{
LastSend = clock();
// finish implementation!
SendHeartBeat(Server, port, "Kazan's Alighty Test!", 10000, 0x1, 0x1, 4);
}
}