mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2026-04-26 12:01:47 +00:00
Fix follower colour handling in replays
This commit is contained in:
parent
ff6f7b62c8
commit
f5eadd331e
1 changed files with 24 additions and 14 deletions
38
src/g_demo.c
38
src/g_demo.c
|
|
@ -313,11 +313,11 @@ void G_ReadDemoExtraData(void)
|
||||||
demo_p += 16;
|
demo_p += 16;
|
||||||
for (i = 0; i < numskincolors +2; i++) // +2 because of Match and Opposite
|
for (i = 0; i < numskincolors +2; i++) // +2 because of Match and Opposite
|
||||||
{
|
{
|
||||||
if (!stricmp(Followercolor_cons_t[i].strvalue, name))
|
if (!stricmp(Followercolor_cons_t[i].strvalue, name))
|
||||||
{
|
{
|
||||||
players[p].followercolor = i;
|
players[p].followercolor = Followercolor_cons_t[i].value;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (extradata & DXD_PLAYSTATE)
|
if (extradata & DXD_PLAYSTATE)
|
||||||
|
|
@ -407,7 +407,7 @@ void G_ReadDemoExtraData(void)
|
||||||
|
|
||||||
void G_WriteDemoExtraData(void)
|
void G_WriteDemoExtraData(void)
|
||||||
{
|
{
|
||||||
INT32 i;
|
INT32 i, j;
|
||||||
char name[16];
|
char name[16];
|
||||||
|
|
||||||
for (i = 0; i < MAXPLAYERS; i++)
|
for (i = 0; i < MAXPLAYERS; i++)
|
||||||
|
|
@ -459,7 +459,12 @@ void G_WriteDemoExtraData(void)
|
||||||
|
|
||||||
// write follower color
|
// write follower color
|
||||||
memset(name, 0, 16);
|
memset(name, 0, 16);
|
||||||
strncpy(name, Followercolor_cons_t[(UINT16)(players[i].followercolor+2)].strvalue, 16); // Not KartColor_Names because followercolor has extra values such as "Match"
|
for (j = (numskincolors+2)-1; j > 0; j--)
|
||||||
|
{
|
||||||
|
if (Followercolor_cons_t[j].value == players[i].followercolor)
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
strncpy(name, Followercolor_cons_t[j].strvalue, 16); // Not KartColor_Names because followercolor has extra values such as "Match"
|
||||||
M_Memcpy(demo_p,name,16);
|
M_Memcpy(demo_p,name,16);
|
||||||
demo_p += 16;
|
demo_p += 16;
|
||||||
|
|
||||||
|
|
@ -1951,7 +1956,7 @@ void G_RecordMetal(void)
|
||||||
|
|
||||||
void G_BeginRecording(void)
|
void G_BeginRecording(void)
|
||||||
{
|
{
|
||||||
UINT8 i, p;
|
UINT8 i, j, p;
|
||||||
char name[MAXCOLORNAME+1];
|
char name[MAXCOLORNAME+1];
|
||||||
player_t *player = &players[consoleplayer];
|
player_t *player = &players[consoleplayer];
|
||||||
|
|
||||||
|
|
@ -2097,7 +2102,12 @@ void G_BeginRecording(void)
|
||||||
|
|
||||||
// Save follower's colour
|
// Save follower's colour
|
||||||
memset(name, 0, 16);
|
memset(name, 0, 16);
|
||||||
strncpy(name, Followercolor_cons_t[(UINT16)(player->followercolor+2)].strvalue, 16); // Not KartColor_Names because followercolor has extra values such as "Match"
|
for (j = (numskincolors+2)-1; j > 0; j--)
|
||||||
|
{
|
||||||
|
if (Followercolor_cons_t[j].value == players[i].followercolor)
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
strncpy(name, Followercolor_cons_t[j].strvalue, 16); // Not KartColor_Names because followercolor has extra values such as "Match"
|
||||||
M_Memcpy(demo_p, name, 16);
|
M_Memcpy(demo_p, name, 16);
|
||||||
demo_p += 16;
|
demo_p += 16;
|
||||||
|
|
||||||
|
|
@ -3070,11 +3080,11 @@ void G_DoPlayDemo(char *defdemoname)
|
||||||
demo_p += 16;
|
demo_p += 16;
|
||||||
for (i = 0; i < numskincolors +2; i++) // +2 because of Match and Opposite
|
for (i = 0; i < numskincolors +2; i++) // +2 because of Match and Opposite
|
||||||
{
|
{
|
||||||
if (!stricmp(Followercolor_cons_t[i].strvalue, color))
|
if (!stricmp(Followercolor_cons_t[i].strvalue, color))
|
||||||
{
|
{
|
||||||
players[p].followercolor = i;
|
players[p].followercolor = Followercolor_cons_t[i].value;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Score, since Kart uses this to determine where you start on the map
|
// Score, since Kart uses this to determine where you start on the map
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue