aboutsummaryrefslogtreecommitdiff
path: root/mp/src/game/shared/sceneentity_shared.h
diff options
context:
space:
mode:
Diffstat (limited to 'mp/src/game/shared/sceneentity_shared.h')
-rw-r--r--mp/src/game/shared/sceneentity_shared.h120
1 files changed, 120 insertions, 0 deletions
diff --git a/mp/src/game/shared/sceneentity_shared.h b/mp/src/game/shared/sceneentity_shared.h
new file mode 100644
index 00000000..ad2d8b66
--- /dev/null
+++ b/mp/src/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