Save team assignments in demo (DEMO BREAKER)

This commit is contained in:
Antonio Martinez 2025-05-28 15:20:06 -04:00
parent 1de1fec92e
commit e75ffd0707
2 changed files with 8 additions and 0 deletions

View file

@ -2368,6 +2368,8 @@ void G_BeginRecording(void)
WRITEUINT8(demobuf.p, player->skin);
WRITEUINT8(demobuf.p, player->lastfakeskin);
WRITEUINT8(demobuf.p, player->team);
// Color
demobuf.p += copy_fixed_buf(demobuf.p, skincolors[player->skincolor].name, g_buffer_sizes.color_name);
@ -3500,6 +3502,8 @@ void G_DoPlayDemoEx(const char *defdemoname, lumpnum_t deflumpnum)
demo.currentskinid[p] = 0;
lastfakeskin[p] = READUINT8(demobuf.p);
players[p].team = READUINT8(demobuf.p);
// Color
demobuf.p += copy_fixed_buf(color, demobuf.p, g_buffer_sizes.color_name);
for (i = 0; i < numskincolors; i++)
@ -3783,6 +3787,8 @@ void G_AddGhost(savebuffer_t *buffer, const char *defdemoname)
ghskin = &skins[skinlist[i].mapping];
p++; // lastfakeskin
p++; // team
// Color
p += copy_fixed_buf(color, p, ghostsizes.color_name);

View file

@ -5419,6 +5419,8 @@ void G_InitNew(UINT8 pencoremode, INT32 map, boolean resetplayer, boolean skippr
players[i].xtralife = 0;
players[i].totalring = 0;
players[i].score = 0;
if (roundqueue.position == 0) // Don't unassign teams in tournament play
players[i].team = TEAM_UNASSIGNED;
}
if (resetplayer || !(gametyperules & GTR_CHECKPOINTS && map == gamemap))