I have a better idea...
This commit is contained in:
parent
ff7dea704c
commit
27b22fee94
8 changed files with 17 additions and 34 deletions
|
|
@ -85,6 +85,8 @@
|
|||
#define MAX_REASONLENGTH 30
|
||||
#define FORCECLOSE 0x8000
|
||||
|
||||
I_StaticAssert(sizeof(doomdata_t) < MAXPACKETLENGTH); // can't send a packet larger than the max packet length!
|
||||
|
||||
boolean server = true; // true or false but !server == client
|
||||
#define client (!server)
|
||||
boolean nodownload = false;
|
||||
|
|
@ -93,7 +95,7 @@ INT32 serverplayer = 0;
|
|||
char motd[254], server_context[8]; // Message of the Day, Unique Context (even without Mumble support)
|
||||
|
||||
UINT8 playerconsole[MAXPLAYERS];
|
||||
plrinfo playerinfo[MAXPLAYERS];
|
||||
plrinfo playerinfo[MAXPLAYERINFO];
|
||||
|
||||
// Server specific vars
|
||||
UINT8 playernode[MAXPLAYERS];
|
||||
|
|
@ -1067,7 +1069,7 @@ static void SV_SendPlayerInfo(INT32 node)
|
|||
doomdata_t *netbuffer = DOOMCOM_DATA(doomcom);
|
||||
netbuffer->packettype = PT_PLAYERINFO;
|
||||
|
||||
for (i = 0; i < MSCOMPAT_MAXPLAYERS; i++)
|
||||
for (i = 0; i < MAXPLAYERINFO; i++)
|
||||
{
|
||||
if (i >= MAXPLAYERS || playernode[i] == UINT8_MAX || !playeringame[i])
|
||||
{
|
||||
|
|
@ -1081,10 +1083,6 @@ static void SV_SendPlayerInfo(INT32 node)
|
|||
|
||||
netbuffer->u.playerinfo[i].name[MAXPLAYERNAME] = '\0';
|
||||
|
||||
//fetch IP address
|
||||
//No, don't do that, you fuckface.
|
||||
memset(netbuffer->u.playerinfo[i].address, 0, 4);
|
||||
|
||||
if (G_GametypeHasTeams())
|
||||
{
|
||||
if (!players[i].ctfteam)
|
||||
|
|
@ -1108,7 +1106,7 @@ static void SV_SendPlayerInfo(INT32 node)
|
|||
netbuffer->u.playerinfo[i].data = 0; //players[i].skincolor;
|
||||
}
|
||||
|
||||
HSendPacket(node, false, 0, sizeof(plrinfo) * MSCOMPAT_MAXPLAYERS);
|
||||
HSendPacket(node, false, 0, sizeof(plrinfo) * MAXPLAYERINFO);
|
||||
}
|
||||
|
||||
/** Sends a PT_SERVERCFG packet
|
||||
|
|
@ -4495,7 +4493,7 @@ static void HandlePlayerInfo(SINT8 node)
|
|||
{
|
||||
(void)node;
|
||||
doomdata_t *netbuffer = DOOMCOM_DATA(doomcom);
|
||||
for (INT32 i = 0; i < MSCOMPAT_MAXPLAYERS; i++)
|
||||
for (INT32 i = 0; i < MAXPLAYERINFO; i++)
|
||||
{
|
||||
playerinfo[i] = netbuffer->u.playerinfo[i];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -327,7 +327,6 @@ struct plrinfo
|
|||
{
|
||||
UINT8 num;
|
||||
char name[MAXPLAYERNAME+1];
|
||||
UINT8 address[4]; // sending another string would run us up against MAXPACKETLENGTH
|
||||
UINT8 team;
|
||||
UINT16 skin;
|
||||
UINT8 data; // Color is first four bits, hasflag, isit and issuper have one bit each, the last is unused.
|
||||
|
|
@ -335,17 +334,6 @@ struct plrinfo
|
|||
UINT16 timeinserver; // In seconds.
|
||||
} ATTRPACK;
|
||||
|
||||
// Shortest player information for join during intermission.
|
||||
struct plrconfig
|
||||
{
|
||||
char name[MAXPLAYERNAME+1];
|
||||
UINT16 skin;
|
||||
UINT16 color;
|
||||
UINT32 pflags;
|
||||
UINT32 score;
|
||||
UINT8 ctfteam;
|
||||
} ATTRPACK;
|
||||
|
||||
struct filesneededconfig_pak
|
||||
{
|
||||
INT32 first;
|
||||
|
|
@ -392,8 +380,7 @@ struct doomdata_t
|
|||
serverinfoupdate_pak serverinfoupdate;
|
||||
askinfo_pak askinfo;
|
||||
msaskinfo_pak msaskinfo;
|
||||
plrinfo playerinfo[MSCOMPAT_MAXPLAYERS];
|
||||
plrconfig playerconfig[MAXPLAYERS];
|
||||
plrinfo playerinfo[MAXPLAYERINFO];
|
||||
INT32 filesneedednum;
|
||||
filesneededconfig_pak filesneededcfg;
|
||||
netinfo_pak netinfo;
|
||||
|
|
@ -580,7 +567,7 @@ extern char motd[254], server_context[8];
|
|||
extern UINT8 playernode[MAXPLAYERS];
|
||||
/* consoleplayer of this player (splitscreen) */
|
||||
extern UINT8 playerconsole[MAXPLAYERS];
|
||||
extern plrinfo playerinfo[MAXPLAYERS];
|
||||
extern plrinfo playerinfo[MAXPLAYERINFO];
|
||||
extern SINT8 joinnode;
|
||||
|
||||
#define SERVMUS_1 "SRVMS1"
|
||||
|
|
|
|||
|
|
@ -190,7 +190,6 @@ extern char logfilename[1024];
|
|||
// NOTE: it needs more than this to increase the number of players...
|
||||
|
||||
#define MAXPLAYERS 43 // 42 + host slot
|
||||
#define PLAYERSMASK (MAXPLAYERS-1)
|
||||
#define MAXPLAYERNAME 21
|
||||
#define MAXSPLITSCREENPLAYERS 4 // Max number of players on a single computer
|
||||
#define MAXGAMEPADS (MAXSPLITSCREENPLAYERS * 2) // Number of gamepads we'll be allowing
|
||||
|
|
@ -206,8 +205,8 @@ extern char logfilename[1024];
|
|||
#define FADECOLOR 0 // 120
|
||||
#define ENCOREFADECOLOR 209 // 122
|
||||
|
||||
// Master Server compatibility ONLY
|
||||
#define MSCOMPAT_MAXPLAYERS (32)
|
||||
// the highest number of playerinfo entries we can fit into a single packet
|
||||
#define MAXPLAYERINFO 42
|
||||
|
||||
// State updates, number of tics / second.
|
||||
// NOTE: used to setup the timer rate, see I_StartupTimer().
|
||||
|
|
|
|||
|
|
@ -22,10 +22,10 @@
|
|||
|
||||
/// \def MAXPACKETLENGTH
|
||||
/// For use in a LAN
|
||||
#define MAXPACKETLENGTH 2048
|
||||
#define MAXPACKETLENGTH 1450
|
||||
/// \def INETPACKETLENGTH
|
||||
/// For use on the internet
|
||||
#define INETPACKETLENGTH 1450
|
||||
#define INETPACKETLENGTH 1024
|
||||
|
||||
#define NO_BAN_TIME (time_t)(-1)
|
||||
|
||||
|
|
|
|||
|
|
@ -8790,7 +8790,7 @@ void MD_DrawViewServer(void)
|
|||
|
||||
if (playeramount > 0)
|
||||
{
|
||||
for (i = 0; i < MAXPLAYERS; i++)
|
||||
for (i = 0; i < MAXPLAYERINFO; i++)
|
||||
{
|
||||
if (playerinfo[i].num < 255)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -449,9 +449,9 @@ boolean P_LookForPlayers(mobj_t *actor, boolean allaround, boolean tracer, fixed
|
|||
|
||||
actor->lastlook %= MAXPLAYERS;
|
||||
|
||||
stop = (actor->lastlook - 1) & PLAYERSMASK;
|
||||
stop = (actor->lastlook - 1) % MAXPLAYERS;
|
||||
|
||||
for (; ; actor->lastlook = (actor->lastlook + 1) & PLAYERSMASK)
|
||||
for (; ; actor->lastlook = (actor->lastlook + 1) % MAXPLAYERS)
|
||||
{
|
||||
// done looking
|
||||
if (actor->lastlook == stop)
|
||||
|
|
|
|||
|
|
@ -4296,9 +4296,9 @@ boolean P_BossTargetPlayer(mobj_t *actor, boolean closest)
|
|||
// first time init, this allow minimum lastlook changes
|
||||
if (actor->lastlook < 0)
|
||||
actor->lastlook = P_RandomByte();
|
||||
actor->lastlook &= PLAYERSMASK;
|
||||
actor->lastlook %= MAXPLAYERS;
|
||||
|
||||
for( ; ; actor->lastlook = (actor->lastlook+1) & PLAYERSMASK)
|
||||
for( ; ; actor->lastlook = (actor->lastlook+1) % MAXPLAYERS)
|
||||
{
|
||||
// save the first look so we stop next time.
|
||||
if (stop < 0)
|
||||
|
|
|
|||
|
|
@ -66,7 +66,6 @@ TYPEDEF (serverinfoupdate_pak);
|
|||
TYPEDEF (askinfo_pak);
|
||||
TYPEDEF (msaskinfo_pak);
|
||||
TYPEDEF (plrinfo);
|
||||
TYPEDEF (plrconfig);
|
||||
TYPEDEF (filesneededconfig_pak);
|
||||
TYPEDEF (doomdata_t);
|
||||
TYPEDEF (serverelem_t);
|
||||
|
|
|
|||
Loading…
Reference in a new issue