From b4fbab80c50d3bbd68fc290d82f7c8e3842f29ff Mon Sep 17 00:00:00 2001 From: Marco Cawthorne Date: Wed, 31 May 2023 11:57:01 -0700 Subject: [PATCH] NSMonster: cache idle animation in case it differs (between ACT events, in case of HL MDL) --- src/shared/NSMonster.h | 3 +++ src/shared/NSMonster.qc | 6 +++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/shared/NSMonster.h b/src/shared/NSMonster.h index 6672598c..abad1c96 100644 --- a/src/shared/NSMonster.h +++ b/src/shared/NSMonster.h @@ -415,6 +415,9 @@ private: PREDICTED_VECTOR_N(view_ofs) + /* caching variables, don't save these */ + float m_actIdle; + nonvirtual void _LerpTurnToEnemy(void); virtual void _Alerted(void); #endif diff --git a/src/shared/NSMonster.qc b/src/shared/NSMonster.qc index 5d22fda1..8b404662 100644 --- a/src/shared/NSMonster.qc +++ b/src/shared/NSMonster.qc @@ -50,6 +50,7 @@ NSMonster::NSMonster(void) m_flSeeTime = 0.0f; m_flAnimTime = 0.0f; m_flTrackingTime = 0.0f; + m_actIdle = -1; #endif } @@ -702,7 +703,10 @@ NSMonster::AnimationUpdate(void) float midspeed = GetWalkSpeed() + ((GetRunSpeed() - GetWalkSpeed()) * 0.5f); if (spvel < 5) { - fr = AnimIdle(); + if (m_actIdle == -1) + m_actIdle = AnimIdle(); + + fr = m_actIdle; if (m_iMoveState != MOVESTATE_IDLE) m_flAnimTime = 0.0f;