Issue #133 thing

This commit is contained in:
Sally Coolatta 2021-04-01 21:09:30 -04:00
parent e9f85c0992
commit fed0e0f9e5
4 changed files with 39 additions and 61 deletions

View file

@ -1074,7 +1074,6 @@ static void SV_SendPlayerInfo(INT32 node)
static boolean SV_SendServerConfig(INT32 node)
{
boolean waspacketsent;
INT32 i, j;
memset(&netbuffer->u.servercfg, 0, sizeof netbuffer->u.servercfg);
@ -1091,29 +1090,6 @@ static boolean SV_SendServerConfig(INT32 node)
netbuffer->u.servercfg.gametype = (UINT8)gametype;
netbuffer->u.servercfg.modifiedgame = (UINT8)modifiedgame;
// THESE MAY NOT BE NEEDED ANYMORE?!
for (i = 0; i < MAXPLAYERS; i++)
{
for (j = 0; j < PWRLV_NUMTYPES; j++)
netbuffer->u.servercfg.powerlevels[i][j] = clientpowerlevels[i][j];
if (!playeringame[i])
continue;
netbuffer->u.servercfg.consoleplayers[i] = playerconsole[i];
netbuffer->u.servercfg.invitations[i] = splitscreen_invitations[i];
netbuffer->u.servercfg.party_size[i] = splitscreen_party_size[i];
netbuffer->u.servercfg.original_party_size[i] =
splitscreen_original_party_size[i];
for (j = 0; j < MAXSPLITSCREENPLAYERS; ++j)
{
netbuffer->u.servercfg.party[i][j] = splitscreen_party[i][j];
netbuffer->u.servercfg.original_party[i][j] =
splitscreen_original_party[i][j];
}
}
netbuffer->u.servercfg.maxplayer = (UINT8)(min((dedicated ? MAXPLAYERS-1 : MAXPLAYERS), cv_maxplayers.value));
netbuffer->u.servercfg.allownewplayer = cv_allownewplayer.value;
netbuffer->u.servercfg.discordinvites = (boolean)cv_discordinvites.value;
@ -4160,33 +4136,11 @@ static void HandlePacketFromAwayNode(SINT8 node)
if (client)
{
INT32 j, k;
maketic = gametic = neededtic = (tic_t)LONG(netbuffer->u.servercfg.gametic);
G_SetGametype(netbuffer->u.servercfg.gametype);
modifiedgame = netbuffer->u.servercfg.modifiedgame;
for (j = 0; j < MAXPLAYERS; j++)
{
for (k = 0; k < PWRLV_NUMTYPES; k++)
clientpowerlevels[j][k] = netbuffer->u.servercfg.powerlevels[j][k];
/* all spitscreen related */
playerconsole[j] = netbuffer->u.servercfg.consoleplayers[j];
splitscreen_invitations[j] = netbuffer->u.servercfg.invitations[j];
splitscreen_original_party_size[j] =
netbuffer->u.servercfg.original_party_size[j];
splitscreen_party_size[j] =
netbuffer->u.servercfg.party_size[j];
for (k = 0; k < MAXSPLITSCREENPLAYERS; ++k)
{
splitscreen_original_party[j][k] =
netbuffer->u.servercfg.original_party[j][k];
splitscreen_party[j][k] =
netbuffer->u.servercfg.party[j][k];
}
}
memcpy(server_context, netbuffer->u.servercfg.server_context, 8);
}

View file

@ -190,16 +190,6 @@ typedef struct
char server_context[8]; // Unique context id, generated at server startup.
UINT16 powerlevels[MAXPLAYERS][PWRLV_NUMTYPES]; // SRB2kart: player power levels
UINT8 consoleplayers[MAXPLAYERS];
/* splitscreen */
SINT8 invitations[MAXPLAYERS];
UINT8 party_size[MAXPLAYERS];
UINT8 party[MAXPLAYERS][MAXSPLITSCREENPLAYERS];
UINT8 original_party_size[MAXPLAYERS];
UINT8 original_party[MAXPLAYERS][MAXSPLITSCREENPLAYERS];
// Discord info (always defined for net compatibility)
UINT8 maxplayer;
boolean allownewplayer;

View file

@ -160,13 +160,13 @@ extern INT32 displayplayers[MAXSPLITSCREENPLAYERS];
extern INT32 g_localplayers[MAXSPLITSCREENPLAYERS];
/* spitscreen players sync */
extern int splitscreen_original_party_size[MAXPLAYERS];
extern int splitscreen_original_party[MAXPLAYERS][MAXSPLITSCREENPLAYERS];
extern INT32 splitscreen_original_party_size[MAXPLAYERS];
extern INT32 splitscreen_original_party[MAXPLAYERS][MAXSPLITSCREENPLAYERS];
/* parties */
extern int splitscreen_invitations[MAXPLAYERS];
extern int splitscreen_party_size[MAXPLAYERS];
extern int splitscreen_party[MAXPLAYERS][MAXSPLITSCREENPLAYERS];
extern INT32 splitscreen_invitations[MAXPLAYERS];
extern INT32 splitscreen_party_size[MAXPLAYERS];
extern INT32 splitscreen_party[MAXPLAYERS][MAXSPLITSCREENPLAYERS];
/* the only local one */
extern boolean splitscreen_partied[MAXPLAYERS];

View file

@ -99,6 +99,11 @@ static void P_NetArchivePlayers(void)
{
WRITESINT8(save_p, (SINT8)adminplayers[i]);
for (j = 0; j < PWRLV_NUMTYPES; j++)
{
WRITEINT16(save_p, clientpowerlevels[i][j]);
}
if (!playeringame[i])
continue;
@ -107,6 +112,18 @@ static void P_NetArchivePlayers(void)
// no longer send ticcmds
WRITESTRINGN(save_p, player_names[i], MAXPLAYERNAME);
WRITEUINT8(save_p, playerconsole[i]);
WRITEINT32(save_p, splitscreen_invitations[i]);
WRITEINT32(save_p, splitscreen_party_size[i]);
WRITEINT32(save_p, splitscreen_original_party_size[i]);
for (j = 0; j < MAXSPLITSCREENPLAYERS; ++j)
{
WRITEINT32(save_p, splitscreen_party[i][j]);
WRITEINT32(save_p, splitscreen_original_party[i][j]);
}
WRITEANGLE(save_p, players[i].angleturn);
WRITEANGLE(save_p, players[i].aiming);
WRITEANGLE(save_p, players[i].drawangle);
@ -321,6 +338,11 @@ static void P_NetUnArchivePlayers(void)
{
adminplayers[i] = (INT32)READSINT8(save_p);
for (j = 0; j < PWRLV_NUMTYPES; j++)
{
clientpowerlevels[i][j] = READINT16(save_p);
}
// Do NOT memset player struct to 0
// other areas may initialize data elsewhere
//memset(&players[i], 0, sizeof (player_t));
@ -330,6 +352,18 @@ static void P_NetUnArchivePlayers(void)
// NOTE: sending tics should (hopefully) no longer be necessary
READSTRINGN(save_p, player_names[i], MAXPLAYERNAME);
playerconsole[i] = READUINT8(save_p);
splitscreen_invitations[i] = READINT32(save_p);
splitscreen_party_size[i] = READINT32(save_p);
splitscreen_original_party_size[i] = READINT32(save_p);
for (j = 0; j < MAXSPLITSCREENPLAYERS; ++j)
{
splitscreen_party[i][j] = READINT32(save_p);
splitscreen_original_party[i][j] = READINT32(save_p);
}
players[i].angleturn = READANGLE(save_p);
players[i].aiming = READANGLE(save_p);
players[i].drawangle = READANGLE(save_p);