File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -281,12 +281,21 @@ void CBasePlayer::Observer_CheckTarget()
281281 CBasePlayer *target = UTIL_PlayerByIndex (m_hObserverTarget->entindex ());
282282
283283 // check taget
284- if (!target || target->pev ->deadflag == DEAD_RESPAWNABLE || (target->pev ->effects & EF_NODRAW))
284+ if (!target || target->pev ->deadflag == DEAD_RESPAWNABLE)
285+ {
285286 Observer_FindNextPlayer (false );
286-
287+ }
288+ else if (target->pev ->effects & EF_NODRAW)
289+ {
290+ #ifdef REGAMEDLL_FIXES
291+ bool bStillDying = (target->pev ->deadflag == DEAD_DYING || (target->pev ->deadflag == DEAD_DEAD && (gpGlobals->time <= target->m_fDeadTime + 2 .0f )));
292+ if (!bStillDying || (target->m_afPhysicsFlags & PFLAG_OBSERVER)) // keep observing to victim until dying, even if it is invisible
293+ #endif
294+ Observer_FindNextPlayer (false );
295+ }
287296 else if (target->pev ->deadflag == DEAD_DEAD && gpGlobals->time > target->m_fDeadTime + 2 .0f )
288297 {
289- // 3 secs after death change target
298+ // 2 secs after death change target
290299 Observer_FindNextPlayer (false );
291300
292301 if (!m_hObserverTarget)
You can’t perform that action at this time.
0 commit comments