69 lines
1.7 KiB
C++
69 lines
1.7 KiB
C++
//========= Copyright © 1996-2005, Valve Corporation, All rights reserved. ============//
|
|
//
|
|
// Purpose:
|
|
//
|
|
// $NoKeywords: $
|
|
//=============================================================================//
|
|
|
|
#ifndef FLEXCYCLER_H
|
|
#define FLEXCYCLER_H
|
|
#ifdef _WIN32
|
|
#pragma once
|
|
#endif
|
|
|
|
#include "baseflex.h"
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// Purpose:
|
|
//-----------------------------------------------------------------------------
|
|
|
|
class CFlexCycler : public CBaseFlex
|
|
{
|
|
private:
|
|
DECLARE_CLASS( CFlexCycler, CBaseFlex );
|
|
public:
|
|
DECLARE_DATADESC();
|
|
|
|
CFlexCycler() { m_iszSentence = NULL_STRING; m_sentence = 0; }
|
|
void GenericCyclerSpawn(char *szModel, Vector vecMin, Vector vecMax);
|
|
virtual int ObjectCaps( void ) { return (BaseClass::ObjectCaps() | FCAP_IMPULSE_USE); }
|
|
int OnTakeDamage( const CTakeDamageInfo &info );
|
|
void Spawn( void );
|
|
void Think( void );
|
|
|
|
virtual void ProcessSceneEvents( void );
|
|
|
|
// Don't treat as a live target
|
|
virtual bool IsAlive( void ) { return FALSE; }
|
|
|
|
float m_flextime;
|
|
LocalFlexController_t m_flexnum;
|
|
float m_flextarget[64];
|
|
float m_blinktime;
|
|
float m_looktime;
|
|
Vector m_lookTarget;
|
|
float m_speaktime;
|
|
int m_istalking;
|
|
int m_phoneme;
|
|
|
|
string_t m_iszSentence;
|
|
int m_sentence;
|
|
|
|
void SetFlexTarget( LocalFlexController_t flexnum );
|
|
LocalFlexController_t LookupFlex( const char *szTarget );
|
|
};
|
|
|
|
//
|
|
// we should get rid of all the other cyclers and replace them with this.
|
|
//
|
|
class CGenericFlexCycler : public CFlexCycler
|
|
{
|
|
public:
|
|
DECLARE_CLASS( CGenericFlexCycler, CFlexCycler );
|
|
|
|
void Spawn( void ) { GenericCyclerSpawn( (char *)STRING( GetModelName() ), Vector(-16, -16, 0), Vector(16, 16, 72) ); }
|
|
};
|
|
|
|
|
|
#endif // FLEXCYCLER_H
|