mirror of
https://github.com/DrBeef/Raze.git
synced 2024-11-15 17:01:51 +00:00
git-svn-id: https://svn.eduke32.com/eduke32@1136 1a8010ca-5511-0410-912e-c29ae57300e0
This commit is contained in:
parent
4f029a0097
commit
a0b49f13e4
3 changed files with 155 additions and 150 deletions
|
@ -1773,32 +1773,32 @@ static void deinitialize_sockets(void)
|
|||
#endif
|
||||
}
|
||||
|
||||
int isvalidipaddress(char *st)
|
||||
{
|
||||
int i, bcnt, num;
|
||||
|
||||
bcnt = 0; num = 0;
|
||||
for (i=0;st[i];i++)
|
||||
{
|
||||
if (st[i] == '.') { bcnt++; num = 0; continue; }
|
||||
if (st[i] == ':')
|
||||
{
|
||||
if (bcnt != 3) return(0);
|
||||
num = 0;
|
||||
for (i++;st[i];i++)
|
||||
{
|
||||
if ((st[i] >= '0') && (st[i] <= '9'))
|
||||
{ num = num*10+st[i]-'0'; if (num >= 65536) return(0); }
|
||||
else return(0);
|
||||
}
|
||||
return(1);
|
||||
}
|
||||
if ((st[i] >= '0') && (st[i] <= '9'))
|
||||
{ num = num*10+st[i]-'0'; if (num >= 256) return(0); }
|
||||
|
||||
}
|
||||
return(bcnt == 3);
|
||||
}
|
||||
int isvalidipaddress(char *st)
|
||||
{
|
||||
int i, bcnt, num;
|
||||
|
||||
bcnt = 0; num = 0;
|
||||
for (i=0;st[i];i++)
|
||||
{
|
||||
if (st[i] == '.') { bcnt++; num = 0; continue; }
|
||||
if (st[i] == ':')
|
||||
{
|
||||
if (bcnt != 3) return(0);
|
||||
num = 0;
|
||||
for (i++;st[i];i++)
|
||||
{
|
||||
if ((st[i] >= '0') && (st[i] <= '9'))
|
||||
{ num = num*10+st[i]-'0'; if (num >= 65536) return(0); }
|
||||
else return(0);
|
||||
}
|
||||
return(1);
|
||||
}
|
||||
if ((st[i] >= '0') && (st[i] <= '9'))
|
||||
{ num = num*10+st[i]-'0'; if (num >= 256) return(0); }
|
||||
|
||||
}
|
||||
return(bcnt == 3);
|
||||
}
|
||||
|
||||
static int parse_udp_config(int argc, char **argv, gcomtype *gcom)
|
||||
{
|
||||
|
@ -1812,106 +1812,106 @@ static int parse_udp_config(int argc, char **argv, gcomtype *gcom)
|
|||
if (buf == NULL)
|
||||
{
|
||||
// do JF-style argv parsing here
|
||||
int i, j, daindex;
|
||||
int danetmode = 255;
|
||||
char *st;
|
||||
|
||||
daindex = 0;
|
||||
|
||||
// if (!argv) return 0;
|
||||
// go looking for the port, if specified
|
||||
for (i=0;i<argc;i++)
|
||||
{
|
||||
if (argv[i][0] != '-' && argv[i][0] != '/') continue;
|
||||
if ((argv[i][1] == 'p' || argv[i][1] == 'P') && argv[i][2])
|
||||
{
|
||||
char *p;
|
||||
j = strtol(argv[i]+2, &p, 10);
|
||||
if (!(*p) && j > 1024 && j<65535) udpport = j;
|
||||
|
||||
initprintf("mmulti_unstable: Using port %d\n", udpport);
|
||||
}
|
||||
}
|
||||
|
||||
for (i=0;i<argc;i++)
|
||||
{
|
||||
//if (((argv[i][0] == '/') || (argv[i][0] == '-')) &&
|
||||
// ((argv[i][1] == 'N') || (argv[i][1] == 'n')) &&
|
||||
// ((argv[i][2] == 'E') || (argv[i][2] == 'e')) &&
|
||||
// ((argv[i][3] == 'T') || (argv[i][3] == 't')) &&
|
||||
// (!argv[i][4]))
|
||||
// { foundnet = 1; continue; }
|
||||
//if (!foundnet) continue;
|
||||
|
||||
if ((argv[i][0] == '-') || (argv[i][0] == '/'))
|
||||
{
|
||||
if ((argv[i][1] == 'N') || (argv[i][1] == 'n') || (argv[i][1] == 'I') || (argv[i][1] == 'i'))
|
||||
{
|
||||
gcom->numplayers = 1;
|
||||
if (argv[i][2] == '0')
|
||||
{
|
||||
danetmode = 0;
|
||||
udpmode = udpmode_client;
|
||||
if ((argv[i][3] == ':') && (argv[i][4] >= '0') && (argv[i][4] <= '9'))
|
||||
{
|
||||
udpmode = udpmode_server;
|
||||
gcom->numplayers = (argv[i][4]-'0');
|
||||
if ((argv[i][5] >= '0') && (argv[i][5] <= '9')) gcom->numplayers = gcom->numplayers*10+(argv[i][5]-'0');
|
||||
initprintf("mmulti_unstable: %d-player game server\n", gcom->numplayers--);
|
||||
}
|
||||
initprintf("mmulti_unstable: Master-slave mode\n");
|
||||
}
|
||||
else if (argv[i][2] == '1')
|
||||
{
|
||||
danetmode = 1;
|
||||
udpmode = udpmode_peer;
|
||||
myconnectindex = daindex;
|
||||
// daindex++;
|
||||
initprintf("mmulti_unstable: Peer-to-peer mode\n");
|
||||
}
|
||||
continue;
|
||||
}
|
||||
else if ((argv[i][1] == 'P') || (argv[i][1] == 'p')) continue;
|
||||
}
|
||||
|
||||
st = strdup(argv[i]); if (!st) break;
|
||||
if (isvalidipaddress(st))
|
||||
{
|
||||
// if ((danetmode == 1) && (daindex == myconnectindex)) daindex++;
|
||||
/* for (j=0;st[j];j++)
|
||||
{
|
||||
if (st[j] == ':')
|
||||
{ allowed_addresses[daindex].port = htons((unsigned short)atol(&st[j+1])); st[j] = 0; break; }
|
||||
}
|
||||
allowed_addresses[daindex].host = inet_addr(st); */
|
||||
parse_interface(st, &allowed_addresses[daindex].host, &allowed_addresses[daindex].port);
|
||||
initprintf("mmulti_unstable: Player %d at %s:%d\n",daindex,st,allowed_addresses[daindex].port);
|
||||
daindex++;
|
||||
}
|
||||
/* else
|
||||
{
|
||||
struct hostent * lph;
|
||||
unsigned short pt = BUILD_DEFAULT_UDP_PORT;
|
||||
|
||||
for (j=0;st[j];j++)
|
||||
if (st[j] == ':')
|
||||
{ pt = (unsigned short)atol(&st[j+1]); st[j] = 0; break; }
|
||||
if ((lph = gethostbyname(st)))
|
||||
{
|
||||
if ((danetmode == 1) && (daindex == myconnectindex)) daindex++;
|
||||
allowed_addresses[daindex].host = *(int *)lph->h_addr;
|
||||
allowed_addresses[daindex].port = pt;
|
||||
initprintf("mmulti: Player %d at %s:%d (%s)\n",daindex,
|
||||
inet_ntoa(*(struct in_addr *)lph->h_addr),ntohs(pt),argv[i]);
|
||||
daindex++;
|
||||
}
|
||||
else initprintf("mmulti: Failed resolving %s\n",argv[i]);
|
||||
} */
|
||||
free(st);
|
||||
}
|
||||
if ((danetmode == 255) && (daindex)) { gcom->numplayers = 2; udpmode = udpmode_client; } //an IP w/o /n# defaults to /n0
|
||||
// if ((numplayers >= 2) && (daindex) && (!danetmode)) myconnectindex = 1;
|
||||
if (daindex > gcom->numplayers) gcom->numplayers = daindex;
|
||||
int i, j, daindex;
|
||||
int danetmode = 255;
|
||||
char *st;
|
||||
|
||||
daindex = 0;
|
||||
|
||||
// if (!argv) return 0;
|
||||
// go looking for the port, if specified
|
||||
for (i=0;i<argc;i++)
|
||||
{
|
||||
if (argv[i][0] != '-' && argv[i][0] != '/') continue;
|
||||
if ((argv[i][1] == 'p' || argv[i][1] == 'P') && argv[i][2])
|
||||
{
|
||||
char *p;
|
||||
j = strtol(argv[i]+2, &p, 10);
|
||||
if (!(*p) && j > 1024 && j<65535) udpport = j;
|
||||
|
||||
initprintf("mmulti_unstable: Using port %d\n", udpport);
|
||||
}
|
||||
}
|
||||
|
||||
for (i=0;i<argc;i++)
|
||||
{
|
||||
//if (((argv[i][0] == '/') || (argv[i][0] == '-')) &&
|
||||
// ((argv[i][1] == 'N') || (argv[i][1] == 'n')) &&
|
||||
// ((argv[i][2] == 'E') || (argv[i][2] == 'e')) &&
|
||||
// ((argv[i][3] == 'T') || (argv[i][3] == 't')) &&
|
||||
// (!argv[i][4]))
|
||||
// { foundnet = 1; continue; }
|
||||
//if (!foundnet) continue;
|
||||
|
||||
if ((argv[i][0] == '-') || (argv[i][0] == '/'))
|
||||
{
|
||||
if ((argv[i][1] == 'N') || (argv[i][1] == 'n') || (argv[i][1] == 'I') || (argv[i][1] == 'i'))
|
||||
{
|
||||
gcom->numplayers = 1;
|
||||
if (argv[i][2] == '0')
|
||||
{
|
||||
danetmode = 0;
|
||||
udpmode = udpmode_client;
|
||||
if ((argv[i][3] == ':') && (argv[i][4] >= '0') && (argv[i][4] <= '9'))
|
||||
{
|
||||
udpmode = udpmode_server;
|
||||
gcom->numplayers = (argv[i][4]-'0');
|
||||
if ((argv[i][5] >= '0') && (argv[i][5] <= '9')) gcom->numplayers = gcom->numplayers*10+(argv[i][5]-'0');
|
||||
initprintf("mmulti_unstable: %d-player game server\n", gcom->numplayers--);
|
||||
}
|
||||
initprintf("mmulti_unstable: Master-slave mode\n");
|
||||
}
|
||||
else if (argv[i][2] == '1')
|
||||
{
|
||||
danetmode = 1;
|
||||
udpmode = udpmode_peer;
|
||||
myconnectindex = daindex;
|
||||
// daindex++;
|
||||
initprintf("mmulti_unstable: Peer-to-peer mode\n");
|
||||
}
|
||||
continue;
|
||||
}
|
||||
else if ((argv[i][1] == 'P') || (argv[i][1] == 'p')) continue;
|
||||
}
|
||||
|
||||
st = strdup(argv[i]); if (!st) break;
|
||||
if (isvalidipaddress(st))
|
||||
{
|
||||
// if ((danetmode == 1) && (daindex == myconnectindex)) daindex++;
|
||||
/* for (j=0;st[j];j++)
|
||||
{
|
||||
if (st[j] == ':')
|
||||
{ allowed_addresses[daindex].port = htons((unsigned short)atol(&st[j+1])); st[j] = 0; break; }
|
||||
}
|
||||
allowed_addresses[daindex].host = inet_addr(st); */
|
||||
parse_interface(st, &allowed_addresses[daindex].host, &allowed_addresses[daindex].port);
|
||||
initprintf("mmulti_unstable: Player %d at %s:%d\n",daindex,st,allowed_addresses[daindex].port);
|
||||
daindex++;
|
||||
}
|
||||
else
|
||||
{
|
||||
struct hostent * lph;
|
||||
unsigned short pt = BUILD_DEFAULT_UDP_PORT;
|
||||
|
||||
for (j=0;st[j];j++)
|
||||
if (st[j] == ':')
|
||||
{ pt = (unsigned short)atol(&st[j+1]); st[j] = 0; break; }
|
||||
if ((lph = gethostbyname(st)))
|
||||
{
|
||||
// if ((danetmode == 1) && (daindex == myconnectindex)) daindex++;
|
||||
allowed_addresses[daindex].host = ntohl(*(int *)lph->h_addr);
|
||||
allowed_addresses[daindex].port = pt;
|
||||
initprintf("mmulti_unstable: Player %d at %s:%d (%s)\n",daindex,
|
||||
inet_ntoa(*(struct in_addr *)lph->h_addr),pt,argv[i]);
|
||||
daindex++;
|
||||
}
|
||||
else initprintf("mmulti_unstable: Failed resolving %s\n",argv[i]);
|
||||
}
|
||||
free(st);
|
||||
}
|
||||
if ((danetmode == 255) && (daindex)) { gcom->numplayers = 2; udpmode = udpmode_client; } //an IP w/o /n# defaults to /n0
|
||||
// if ((numplayers >= 2) && (daindex) && (!danetmode)) myconnectindex = 1;
|
||||
if (daindex > gcom->numplayers) gcom->numplayers = daindex;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -1925,12 +1925,12 @@ static int parse_udp_config(int argc, char **argv, gcomtype *gcom)
|
|||
if (Bstrcasecmp(tok, "interface") == 0)
|
||||
{
|
||||
if ((tok = get_token(&ptr)) &&
|
||||
(parse_interface(tok, &ip, &udpport)))
|
||||
(parse_interface(tok, &ip, &udpport)))
|
||||
{
|
||||
bogus = 0;
|
||||
}
|
||||
initprintf("mmulti_unstable: Using interface %s:%d\n",
|
||||
static_ipstring(ip), (int) udpport);
|
||||
static_ipstring(ip), (int) udpport);
|
||||
}
|
||||
|
||||
else if (Bstrcasecmp(tok, "mode") == 0)
|
||||
|
@ -2003,7 +2003,7 @@ static int parse_udp_config(int argc, char **argv, gcomtype *gcom)
|
|||
}
|
||||
|
||||
free(buf);
|
||||
}
|
||||
}
|
||||
|
||||
if (open_udp_socket(ip, udpport))
|
||||
{
|
||||
|
|
|
@ -101,7 +101,7 @@ int recfilep,totalreccnt;
|
|||
int debug_on = 0,actor_tog = 0;
|
||||
static char *rtsptr;
|
||||
|
||||
//extern char syncstate;
|
||||
//extern char syncstate;
|
||||
extern int numlumps;
|
||||
|
||||
static FILE *frecfilep = (FILE *)NULL;
|
||||
|
@ -652,7 +652,7 @@ void getpackets(void)
|
|||
int i, j, k, l;
|
||||
int other;
|
||||
int packbufleng;
|
||||
|
||||
|
||||
input_t *osyn, *nsyn;
|
||||
|
||||
sampletimer();
|
||||
|
@ -1539,13 +1539,13 @@ static void checksync(void)
|
|||
printext256(4L,130L,31,0,"Out Of Sync - Please restart game",0);
|
||||
printext256(4L,138L,31,0,"RUN DN3DHELP.EXE for information.",0);
|
||||
}
|
||||
#if 0
|
||||
#if 0
|
||||
if (syncstate)
|
||||
{
|
||||
printext256(4L,160L,31,0,"Missed Network packet!",0);
|
||||
printext256(4L,138L,31,0,"RUN DN3DHELP.EXE for information.",0);
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
|
||||
void check_fta_sounds(int i)
|
||||
|
@ -4036,12 +4036,12 @@ void displayrest(int smoothratio)
|
|||
else if (ud.screen_size > 2)
|
||||
{
|
||||
i = scale(tilesizy[BOTTOMSTATUSBAR]+1,ud.statusbarscale,100);
|
||||
// j = scale(2,ud.config.ScreenWidth,320);
|
||||
// j = scale(2,ud.config.ScreenWidth,320);
|
||||
}
|
||||
else
|
||||
{
|
||||
i = 2;
|
||||
// j = scale(2,ud.config.ScreenWidth,320);
|
||||
// j = scale(2,ud.config.ScreenWidth,320);
|
||||
}
|
||||
j = scale(2,ud.config.ScreenWidth,320);
|
||||
|
||||
|
@ -9624,9 +9624,9 @@ static void checkcommandline(int argc, const char **argv)
|
|||
#endif
|
||||
if (!Bstrcasecmp(c+1,"net")
|
||||
#ifdef RANCID_NETWORKING
|
||||
|| !Bstrcasecmp(c+1,"rmnet")
|
||||
|| !Bstrcasecmp(c+1,"rmnet")
|
||||
#endif
|
||||
)
|
||||
)
|
||||
{
|
||||
g_NoSetup = TRUE;
|
||||
firstnet = i;
|
||||
|
@ -10523,7 +10523,7 @@ static void Startup(void)
|
|||
for (i=0;i<MAXPLAYERS;i++)
|
||||
g_player[i].playerreadyflag = 0;
|
||||
|
||||
#ifndef RANCID_NETWORKING
|
||||
#ifndef RANCID_NETWORKING
|
||||
// enet regression
|
||||
if (CommandNet)
|
||||
{
|
||||
|
@ -10535,9 +10535,9 @@ static void Startup(void)
|
|||
}
|
||||
CommandNet = NULL;
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef RANCID_NETWORKING
|
||||
#ifdef RANCID_NETWORKING
|
||||
// TODO: split this up in the same fine-grained manner as eduke32 network backend, to
|
||||
// allow for event handling
|
||||
initmultiplayers(netparamcount,netparam);
|
||||
|
@ -10548,7 +10548,7 @@ static void Startup(void)
|
|||
return;
|
||||
}
|
||||
|
||||
#else
|
||||
#else
|
||||
if (initmultiplayersparms(netparamcount,netparam))
|
||||
{
|
||||
initprintf("Waiting for players...\n");
|
||||
|
@ -10562,7 +10562,7 @@ static void Startup(void)
|
|||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
if (netparam) Bfree(netparam);
|
||||
netparam = NULL;
|
||||
|
@ -13180,10 +13180,15 @@ FRAGBONUS:
|
|||
fadepal(0,0,0, 63,0,-7);
|
||||
|
||||
KB_FlushKeyboardQueue();
|
||||
while (KB_KeyWaiting()==0)
|
||||
|
||||
{
|
||||
handleevents();
|
||||
getpackets();
|
||||
int tc = totalclock;
|
||||
while (KB_KeyWaiting()==0)
|
||||
{
|
||||
if (totalclock > tc + 600) break;
|
||||
handleevents();
|
||||
getpackets();
|
||||
}
|
||||
}
|
||||
|
||||
if (bonusonly || ud.multimode > 1) return;
|
||||
|
|
|
@ -1538,11 +1538,11 @@ void waitforeverybody()
|
|||
while (1)
|
||||
{
|
||||
idle();
|
||||
/*
|
||||
sampletimer();
|
||||
handleevents();
|
||||
AudioUpdate();
|
||||
*/
|
||||
/*
|
||||
sampletimer();
|
||||
handleevents();
|
||||
AudioUpdate();
|
||||
*/
|
||||
|
||||
if (quitevent || keystatus[1]) gameexit("");
|
||||
|
||||
|
|
Loading…
Reference in a new issue