2
0
mirror of https://github.com/FWGS/hlsdk-xash3d synced 2024-11-12 05:10:52 +01:00

Fix motion_thread save-restore (#351)

This commit is contained in:
Roman Chistokhodov 2023-01-13 13:47:37 +03:00 committed by GitHub
parent 92918eace7
commit 882c9f6ec8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -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;