mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2025-10-30 08:01:28 +00:00
Merge branch 'master' into pet-robo
This commit is contained in:
commit
2dfa20f758
4 changed files with 55 additions and 16 deletions
|
|
@ -82,7 +82,7 @@
|
||||||
boolean server = true; // true or false but !server == client
|
boolean server = true; // true or false but !server == client
|
||||||
#define client (!server)
|
#define client (!server)
|
||||||
boolean nodownload = false;
|
boolean nodownload = false;
|
||||||
static boolean serverrunning = false;
|
boolean serverrunning = false;
|
||||||
INT32 serverplayer = 0;
|
INT32 serverplayer = 0;
|
||||||
char motd[254], server_context[8]; // Message of the Day, Unique Context (even without Mumble support)
|
char motd[254], server_context[8]; // Message of the Day, Unique Context (even without Mumble support)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -41,6 +41,8 @@ extern SINT8 nodetoplayer4[MAXNETNODES]; // Say the numplayer for this node if a
|
||||||
extern UINT8 playerpernode[MAXNETNODES]; // Used specially for splitscreen
|
extern UINT8 playerpernode[MAXNETNODES]; // Used specially for splitscreen
|
||||||
extern boolean nodeingame[MAXNETNODES]; // Set false as nodes leave game
|
extern boolean nodeingame[MAXNETNODES]; // Set false as nodes leave game
|
||||||
|
|
||||||
|
extern boolean serverrunning;
|
||||||
|
|
||||||
INT32 Net_GetFreeAcks(boolean urgent);
|
INT32 Net_GetFreeAcks(boolean urgent);
|
||||||
void Net_AckTicker(void);
|
void Net_AckTicker(void);
|
||||||
|
|
||||||
|
|
|
||||||
35
src/i_tcp.c
35
src/i_tcp.c
|
|
@ -246,7 +246,8 @@ static size_t numbans = 0;
|
||||||
static boolean SOCK_bannednode[MAXNETNODES+1]; /// \note do we really need the +1?
|
static boolean SOCK_bannednode[MAXNETNODES+1]; /// \note do we really need the +1?
|
||||||
static boolean init_tcp_driver = false;
|
static boolean init_tcp_driver = false;
|
||||||
|
|
||||||
static char port_name[8] = DEFAULTPORT;
|
static const char *serverport_name = DEFAULTPORT;
|
||||||
|
static const char *clientport_name;/* any port */
|
||||||
|
|
||||||
#ifndef NONET
|
#ifndef NONET
|
||||||
|
|
||||||
|
|
@ -924,6 +925,7 @@ static boolean UDP_Socket(void)
|
||||||
#ifdef HAVE_IPV6
|
#ifdef HAVE_IPV6
|
||||||
const INT32 b_ipv6 = M_CheckParm("-ipv6");
|
const INT32 b_ipv6 = M_CheckParm("-ipv6");
|
||||||
#endif
|
#endif
|
||||||
|
const char *serv;
|
||||||
|
|
||||||
|
|
||||||
for (s = 0; s < mysocketses; s++)
|
for (s = 0; s < mysocketses; s++)
|
||||||
|
|
@ -939,11 +941,16 @@ static boolean UDP_Socket(void)
|
||||||
hints.ai_socktype = SOCK_DGRAM;
|
hints.ai_socktype = SOCK_DGRAM;
|
||||||
hints.ai_protocol = IPPROTO_UDP;
|
hints.ai_protocol = IPPROTO_UDP;
|
||||||
|
|
||||||
|
if (serverrunning)
|
||||||
|
serv = serverport_name;
|
||||||
|
else
|
||||||
|
serv = clientport_name;
|
||||||
|
|
||||||
if (M_CheckParm("-bindaddr"))
|
if (M_CheckParm("-bindaddr"))
|
||||||
{
|
{
|
||||||
while (M_IsNextParm())
|
while (M_IsNextParm())
|
||||||
{
|
{
|
||||||
gaie = I_getaddrinfo(M_GetNextParm(), port_name, &hints, &ai);
|
gaie = I_getaddrinfo(M_GetNextParm(), serv, &hints, &ai);
|
||||||
if (gaie == 0)
|
if (gaie == 0)
|
||||||
{
|
{
|
||||||
runp = ai;
|
runp = ai;
|
||||||
|
|
@ -964,7 +971,7 @@ static boolean UDP_Socket(void)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
gaie = I_getaddrinfo("0.0.0.0", port_name, &hints, &ai);
|
gaie = I_getaddrinfo("0.0.0.0", serv, &hints, &ai);
|
||||||
if (gaie == 0)
|
if (gaie == 0)
|
||||||
{
|
{
|
||||||
runp = ai;
|
runp = ai;
|
||||||
|
|
@ -979,8 +986,8 @@ static boolean UDP_Socket(void)
|
||||||
#ifdef HAVE_MINIUPNPC
|
#ifdef HAVE_MINIUPNPC
|
||||||
if (UPNP_support)
|
if (UPNP_support)
|
||||||
{
|
{
|
||||||
I_UPnP_rem(port_name, "UDP");
|
I_UPnP_rem(serverport_name, "UDP");
|
||||||
I_UPnP_add(NULL, port_name, "UDP");
|
I_UPnP_add(NULL, serverport_name, "UDP");
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
@ -997,7 +1004,7 @@ static boolean UDP_Socket(void)
|
||||||
{
|
{
|
||||||
while (M_IsNextParm())
|
while (M_IsNextParm())
|
||||||
{
|
{
|
||||||
gaie = I_getaddrinfo(M_GetNextParm(), port_name, &hints, &ai);
|
gaie = I_getaddrinfo(M_GetNextParm(), serv, &hints, &ai);
|
||||||
if (gaie == 0)
|
if (gaie == 0)
|
||||||
{
|
{
|
||||||
runp = ai;
|
runp = ai;
|
||||||
|
|
@ -1018,7 +1025,7 @@ static boolean UDP_Socket(void)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
gaie = I_getaddrinfo("::", port_name, &hints, &ai);
|
gaie = I_getaddrinfo("::", serv, &hints, &ai);
|
||||||
if (gaie == 0)
|
if (gaie == 0)
|
||||||
{
|
{
|
||||||
runp = ai;
|
runp = ai;
|
||||||
|
|
@ -1475,15 +1482,19 @@ boolean I_InitTcpNetwork(void)
|
||||||
if (!I_InitTcpDriver())
|
if (!I_InitTcpDriver())
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if (M_CheckParm("-port"))
|
if (M_CheckParm("-port") || M_CheckParm("-serverport"))
|
||||||
// Combined -udpport and -clientport into -port
|
// Combined -udpport and -clientport into -port
|
||||||
// As it was really redundant having two seperate parms that does the same thing
|
// As it was really redundant having two seperate parms that does the same thing
|
||||||
|
/* Sorry Steel, I'm adding these back. But -udpport is a stupid name. */
|
||||||
{
|
{
|
||||||
if (M_IsNextParm())
|
/*
|
||||||
strcpy(port_name, M_GetNextParm());
|
If it's NULL, that's okay! Because then
|
||||||
else
|
we'll get a random port from getaddrinfo.
|
||||||
strcpy(port_name, "0");
|
*/
|
||||||
|
serverport_name = M_GetNextParm();
|
||||||
}
|
}
|
||||||
|
if (M_CheckParm("-clientport"))
|
||||||
|
clientport_name = M_GetNextParm();
|
||||||
|
|
||||||
// parse network game options,
|
// parse network game options,
|
||||||
if (M_CheckParm("-server") || dedicated)
|
if (M_CheckParm("-server") || dedicated)
|
||||||
|
|
|
||||||
32
src/p_mobj.c
32
src/p_mobj.c
|
|
@ -8977,13 +8977,39 @@ void P_MobjThinker(mobj_t *mobj)
|
||||||
{
|
{
|
||||||
if (ticstilimpact <= 8)
|
if (ticstilimpact <= 8)
|
||||||
{
|
{
|
||||||
newskin = ((skin_t*)mobj->target->skin)-skins;
|
newskin = mobj->target->player->skin;
|
||||||
newcolor = mobj->target->player->skincolor;
|
newcolor = mobj->target->player->skincolor;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
newskin = leveltime % numskins;
|
UINT8 plist[MAXPLAYERS];
|
||||||
newcolor = skins[newskin].prefcolor;
|
UINT8 plistlen = 0;
|
||||||
|
UINT8 i;
|
||||||
|
|
||||||
|
memset(plist, 0, sizeof(plist));
|
||||||
|
|
||||||
|
for (i = 0; i < MAXPLAYERS; i++)
|
||||||
|
{
|
||||||
|
if (playeringame[i] && !players[i].spectator)
|
||||||
|
{
|
||||||
|
plist[plistlen] = i;
|
||||||
|
plistlen++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (plistlen <= 1)
|
||||||
|
{
|
||||||
|
// Default to the winner
|
||||||
|
newskin = mobj->target->player->skin;
|
||||||
|
newcolor = mobj->target->player->skincolor;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// Pick another player in the server!
|
||||||
|
player_t *p = &players[plist[P_RandomKey(plistlen)]];
|
||||||
|
newskin = p->skin;
|
||||||
|
newcolor = p->skincolor;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue