extern cvar_t sv_cullentities_trace_eyejitter;
extern cvar_t sv_cullentities_trace_expand;
extern cvar_t sv_cullentities_trace_delay_players;
+extern cvar_t sv_cullentities_trace_spectators;
/*
=============================================================================
return false;
}
-void SV_MarkWriteEntityStateToClient(entity_state_t *s)
+void SV_MarkWriteEntityStateToClient(entity_state_t *s, client_t *client)
{
prvm_prog_t *prog = SVVM_prog;
int isbmodel;
// tag attached entities simply check their parent
if (!sv.sendentitiesindex[s->tagentity])
return;
- SV_MarkWriteEntityStateToClient(sv.sendentitiesindex[s->tagentity]);
+ SV_MarkWriteEntityStateToClient(sv.sendentitiesindex[s->tagentity], client);
if (sv.sententities[s->tagentity] != sv.sententitiesmark)
return;
}
}
// or not seen by random tracelines
- if (sv_cullentities_trace.integer && !isbmodel && sv.worldmodel && sv.worldmodel->brush.TraceLineOfSight && !r_trippy.integer)
+ if (sv_cullentities_trace.integer && !isbmodel && sv.worldmodel && sv.worldmodel->brush.TraceLineOfSight && !r_trippy.integer && (client->frags != -666 || sv_cullentities_trace_spectators.integer))
{
int samples =
s->number <= svs.maxclients