diff --git a/src/g_demo.cpp b/src/g_demo.cpp index 88828fee6..e60e1e759 100644 --- a/src/g_demo.cpp +++ b/src/g_demo.cpp @@ -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); diff --git a/src/g_game.c b/src/g_game.c index 2287ea3fa..1dedf3833 100644 --- a/src/g_game.c +++ b/src/g_game.c @@ -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))