G_CanView: unconditionally let view a player already viewed on a different splitscreen

This commit is contained in:
James R. 2023-10-01 14:46:38 -07:00 committed by James R
parent 8b79689d81
commit 90d8a9643f

View file

@ -1507,13 +1507,15 @@ boolean G_CouldView(INT32 playernum)
// //
boolean G_CanView(INT32 playernum, UINT8 viewnum, boolean onlyactive) boolean G_CanView(INT32 playernum, UINT8 viewnum, boolean onlyactive)
{ {
if (!playeringame[playernum] || players[playernum].spectator)
{
return false;
}
UINT8 splits; UINT8 splits;
UINT8 viewd; UINT8 viewd;
INT32 *displayplayerp; INT32 *displayplayerp;
if (!(onlyactive ? G_CouldView(playernum) : (playeringame[playernum] && !players[playernum].spectator)))
return false;
splits = r_splitscreen+1; splits = r_splitscreen+1;
if (viewnum > splits) if (viewnum > splits)
viewnum = splits; viewnum = splits;
@ -1522,15 +1524,18 @@ boolean G_CanView(INT32 playernum, UINT8 viewnum, boolean onlyactive)
{ {
displayplayerp = (&displayplayers[viewd-1]); displayplayerp = (&displayplayers[viewd-1]);
if ((*displayplayerp) == playernum) if ((*displayplayerp) == playernum)
return false; return true;
} }
for (viewd = viewnum + 1; viewd <= splits; ++viewd) for (viewd = viewnum + 1; viewd <= splits; ++viewd)
{ {
displayplayerp = (&displayplayers[viewd-1]); displayplayerp = (&displayplayers[viewd-1]);
if ((*displayplayerp) == playernum) if ((*displayplayerp) == playernum)
return false; return true;
} }
if (onlyactive && !G_CouldView(playernum))
return false;
return true; return true;
} }