From d697f53ca5ecb70d062bc035b1c2faf440511926 Mon Sep 17 00:00:00 2001 From: Marco Cawthorne Date: Wed, 6 Mar 2024 19:31:26 -0800 Subject: [PATCH] NSView: when we switch between dead/alive state, reset damage display/shake variables. --- src/client/NSView.h | 2 ++ src/client/NSView.qc | 17 +++++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/src/client/NSView.h b/src/client/NSView.h index 7ea8f57a..31d39f29 100644 --- a/src/client/NSView.h +++ b/src/client/NSView.h @@ -133,6 +133,8 @@ private: bool m_bDrawLocalPlayer; bool m_bDrawEntities; + + bool _m_bWasAlive; }; /** one NSView for each seat */ diff --git a/src/client/NSView.qc b/src/client/NSView.qc index 3fcf4356..7354b63e 100644 --- a/src/client/NSView.qc +++ b/src/client/NSView.qc @@ -277,6 +277,22 @@ NSView::UpdateView(void) pSeat->m_vecPredictedOrigin = cl.origin; pSeat->m_flPredictedFlags = cl.flags; pSeat->m_vecPredictedVelocity = cl.velocity; + + /* this player will respawn, so null visual damage cues */ + if (Client_IsDead(cl)) { + if (_m_bWasAlive == true) { + pSeat->m_flDamageAlpha = 0.0f; + pSeat->m_vecDamagePos = g_vec_null; + pSeat->m_iDamageFlags = 0i; + pSeat->m_flShakeFreq = 0.0f; + pSeat->m_flShakeDuration = 0.0f; + pSeat->m_flShakeTime = 0.0f; + pSeat->m_flShakeAmp = 0.0f; + } + _m_bWasAlive = false; + } else { + _m_bWasAlive = true; + } } /* put entities into the scene (and call their predraws */ @@ -301,6 +317,7 @@ NSView::UpdateView(void) cl.UpdateAliveCam(); StairSmooth(); View_DrawViewModel(); + _m_bWasAlive = true; } } break;