diff options
| author | FluorescentCIAAfricanAmerican <[email protected]> | 2020-04-22 12:56:21 -0400 |
|---|---|---|
| committer | FluorescentCIAAfricanAmerican <[email protected]> | 2020-04-22 12:56:21 -0400 |
| commit | 3bf9df6b2785fa6d951086978a3e66f49427166a (patch) | |
| tree | 2c0f1f0c63c4832882bc93814ebd2c2b1c6224e5 /game/shared/sceneentity_shared.h | |
| download | archived-source-engine-2018-hl2-src-master.tar.xz archived-source-engine-2018-hl2-src-master.zip | |
Diffstat (limited to 'game/shared/sceneentity_shared.h')
| -rw-r--r-- | game/shared/sceneentity_shared.h | 120 |
1 files changed, 120 insertions, 0 deletions
diff --git a/game/shared/sceneentity_shared.h b/game/shared/sceneentity_shared.h new file mode 100644 index 0000000..6293e23 --- /dev/null +++ b/game/shared/sceneentity_shared.h @@ -0,0 +1,120 @@ +//========= Copyright Valve Corporation, All rights reserved. ============// +// +// Purpose: +// +//============================================================================= + +#ifndef SCENEENTITY_SHARED_H +#define SCENEENTITY_SHARED_H +#ifdef _WIN32 +#pragma once +#endif + +#if defined( CLIENT_DLL ) +#define CBaseFlex C_BaseFlex +#define CSceneEntity C_SceneEntity +#endif + +#include "iscenetokenprocessor.h" + +class CBaseFlex; + +class CChoreoEvent; +class CChoreoScene; +class CChoreoActor; +class CSceneEntity; + +//----------------------------------------------------------------------------- +// Purpose: One of a number of currently playing scene events for this actor +//----------------------------------------------------------------------------- +// FIXME: move this, it's only used in in baseflex and baseactor +class CSceneEventInfo +{ +public: + CSceneEventInfo() + : + m_pEvent( 0 ), + m_pScene( 0 ), + m_pActor( 0 ), + m_bStarted( false ), + m_iLayer( -1 ), + m_iPriority( 0 ), + m_nSequence( 0 ), + m_bIsGesture( false ), + m_flWeight( 0.0f ), + m_hTarget(), + m_bIsMoving( false ), + m_bHasArrived( false ), + m_flInitialYaw( 0.0f ), + m_flTargetYaw( 0.0f ), + m_flFacingYaw( 0.0f ), + m_nType( 0 ), + m_flNext( 0.0f ), + m_bClientSide( false ) + { + } + + // The event handle of the current scene event + CChoreoEvent *m_pEvent; + + // Current Scene + CChoreoScene *m_pScene; + + // Current actor + CChoreoActor *m_pActor; + + // Set after the first time the event has been configured ( allows + // bumping markov index only at start of event playback, not every frame ) + bool m_bStarted; + +public: + // EVENT local data... + // FIXME: Evil, make accessors or figure out better place + // FIXME: This won't work, scenes don't save and restore... + int m_iLayer; + int m_iPriority; + int m_nSequence; + bool m_bIsGesture; + float m_flWeight; // used for suppressions of posture while moving + + // movement, faceto targets? + EHANDLE m_hTarget; + bool m_bIsMoving; + bool m_bHasArrived; + float m_flInitialYaw; + float m_flTargetYaw; + float m_flFacingYaw; + + // generic AI events + int m_nType; + float m_flNext; + + // is this event only client side? + bool m_bClientSide; + + void InitWeight( CBaseFlex *pActor ); + float UpdateWeight( CBaseFlex *pActor ); +}; + +//----------------------------------------------------------------------------- +// Purpose: Helper for parsing scene data file +//----------------------------------------------------------------------------- +class CSceneTokenProcessor : public ISceneTokenProcessor +{ +public: + const char *CurrentToken( void ); + bool GetToken( bool crossline ); + bool TokenAvailable( void ); + void Error( PRINTF_FORMAT_STRING const char *fmt, ... ); + void SetBuffer( char *buffer ); +private: + const char *m_pBuffer; + char m_szToken[ 1024 ]; +}; + +extern CSceneTokenProcessor g_TokenProcessor; + +void Scene_Printf( PRINTF_FORMAT_STRING const char *pFormat, ... ); +extern ConVar scene_clientflex; + +#endif // SCENEENTITY_SHARED_H |