From ef2a745a4fd5f6d82ee74e2156054be4f954b18a Mon Sep 17 00:00:00 2001 From: Roman Chistokhodov Date: Sat, 29 Apr 2023 17:15:14 +0300 Subject: [PATCH] Fix env_spritetrain not moving when needed (#373) --- dlls/plats.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/dlls/plats.cpp b/dlls/plats.cpp index b5432719..4be9af85 100644 --- a/dlls/plats.cpp +++ b/dlls/plats.cpp @@ -2330,7 +2330,7 @@ void CSpriteTrain::Activate( void ) if( FStringNull( pev->targetname ) ) { m_nexting = TRUE; - m_nextTime = pev->ltime + 0.1; + pev->nextthink = pev->ltime + 0.1; } else pev->spawnflags |= SF_TRAIN_WAIT_RETRIGGER; @@ -2441,12 +2441,12 @@ void CSpriteTrain::Wait() STOP_SOUND( edict(), CHAN_STATIC, STRING( pev->noiseMovement ) ); if( pev->noiseStopMoving ) EMIT_SOUND( ENT( pev ), CHAN_VOICE, STRING( pev->noiseStopMoving ), m_volume, ATTN_NORM ); - pev->nextthink = 0; return; } if( m_flWait != 0 ) { + pev->nextthink = pev->ltime + m_flWait; if( pev->noiseMovement ) STOP_SOUND( edict(), CHAN_STATIC, STRING( pev->noiseMovement ) ); if( pev->noiseStopMoving ) @@ -2474,7 +2474,6 @@ void CSpriteTrain::Use( CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE // Pop back to last target if it's available if( pev->enemy ) pev->target = pev->enemy->v.targetname; - pev->nextthink = 0; pev->velocity = g_vecZero; if( pev->noiseStopMoving ) EMIT_SOUND( ENT( pev ), CHAN_VOICE, STRING( pev->noiseStopMoving ), m_volume, ATTN_NORM );