mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2025-10-30 08:01:28 +00:00
Add K_DirectorIsAvailable
Fixes director not working correctly if there are duplicates in displayplayers.
This commit is contained in:
parent
d020c9faaa
commit
8b79689d81
4 changed files with 10 additions and 2 deletions
|
|
@ -245,7 +245,7 @@ class TiccmdBuilder
|
||||||
|
|
||||||
bool director_input()
|
bool director_input()
|
||||||
{
|
{
|
||||||
if (demo.freecam || G_IsPartyLocal(displayplayers[forplayer()]) == true)
|
if (demo.freecam || !K_DirectorIsAvailable(viewnum))
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -11,6 +11,7 @@
|
||||||
#include "k_director.h"
|
#include "k_director.h"
|
||||||
#include "d_netcmd.h"
|
#include "d_netcmd.h"
|
||||||
#include "p_local.h"
|
#include "p_local.h"
|
||||||
|
#include "g_party.h"
|
||||||
|
|
||||||
#define SWITCHTIME TICRATE * 5 // cooldown between unforced switches
|
#define SWITCHTIME TICRATE * 5 // cooldown between unforced switches
|
||||||
#define BOREDOMTIME 3 * TICRATE / 2 // how long until players considered far apart?
|
#define BOREDOMTIME 3 * TICRATE / 2 // how long until players considered far apart?
|
||||||
|
|
@ -322,3 +323,9 @@ void K_ToggleDirector(boolean active)
|
||||||
|
|
||||||
directorinfo.active = active;
|
directorinfo.active = active;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
boolean K_DirectorIsAvailable(UINT8 viewnum)
|
||||||
|
{
|
||||||
|
return viewnum <= r_splitscreen && viewnum < G_PartySize(consoleplayer) &&
|
||||||
|
displayplayers[viewnum] != G_PartyMember(consoleplayer, viewnum);
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -28,6 +28,7 @@ void K_UpdateDirector(void);
|
||||||
void K_DrawDirectorDebugger(void);
|
void K_DrawDirectorDebugger(void);
|
||||||
void K_DirectorFollowAttack(player_t *player, mobj_t *inflictor, mobj_t *source);
|
void K_DirectorFollowAttack(player_t *player, mobj_t *inflictor, mobj_t *source);
|
||||||
void K_ToggleDirector(boolean active);
|
void K_ToggleDirector(boolean active);
|
||||||
|
boolean K_DirectorIsAvailable(UINT8 viewnum);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
} // extern "C"
|
} // extern "C"
|
||||||
|
|
|
||||||
|
|
@ -5618,7 +5618,7 @@ void K_drawKartHUD(void)
|
||||||
|
|
||||||
K_drawKartPowerUps();
|
K_drawKartPowerUps();
|
||||||
|
|
||||||
if (G_IsPartyLocal(displayplayers[viewnum]) == false)
|
if (K_DirectorIsAvailable(viewnum) == true)
|
||||||
{
|
{
|
||||||
K_drawDirectorHUD();
|
K_drawDirectorHUD();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue