From 882c9f6ec82dd0c8e17605191bd29b8491dbfe65 Mon Sep 17 00:00:00 2001 From: Roman Chistokhodov Date: Fri, 13 Jan 2023 13:47:37 +0300 Subject: [PATCH] Fix motion_thread save-restore (#351) --- dlls/triggers.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/dlls/triggers.cpp b/dlls/triggers.cpp index 71415b2f..07f6e035 100644 --- a/dlls/triggers.cpp +++ b/dlls/triggers.cpp @@ -4568,6 +4568,7 @@ void CTriggerMotion::Use( CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYP class CMotionThread : public CPointEntity { public: + void Spawn(); void Think( void ); virtual int Save( CSave &save ); @@ -4581,7 +4582,7 @@ public: EHANDLE m_hLocus; EHANDLE m_hTarget; }; -LINK_ENTITY_TO_CLASS( motion_thread, CPointEntity ); +LINK_ENTITY_TO_CLASS( motion_thread, CMotionThread ); TYPEDESCRIPTION CMotionThread::m_SaveData[] = { @@ -4595,6 +4596,11 @@ TYPEDESCRIPTION CMotionThread::m_SaveData[] = IMPLEMENT_SAVERESTORE(CMotionThread,CPointEntity); +void CMotionThread::Spawn() //AJH +{ + pev->classname = MAKE_STRING("motion_thread"); //We need this for save/restore to work +} + void CMotionThread::Think( void ) { if( m_hLocus == 0 || m_hTarget == 0 ) @@ -4803,6 +4809,7 @@ void CMotionManager::Affect( CBaseEntity *pTarget, CBaseEntity *pActivator ) CMotionThread *pThread = GetClassPtr( (CMotionThread*)NULL ); if (pThread == NULL) return; //error? + pThread->Spawn(); pThread->m_hLocus = pActivator; pThread->m_hTarget = pTarget; pThread->m_iszPosition = m_iszPosition;