1
This commit is contained in:
95
game/shared/choreochannel.h
Normal file
95
game/shared/choreochannel.h
Normal file
@ -0,0 +1,95 @@
|
||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||
//
|
||||
// Purpose:
|
||||
//
|
||||
// $NoKeywords: $
|
||||
//=============================================================================//
|
||||
|
||||
#ifndef CHOREOCHANNEL_H
|
||||
#define CHOREOCHANNEL_H
|
||||
#ifdef _WIN32
|
||||
#pragma once
|
||||
#endif
|
||||
|
||||
#include "tier1/utlvector.h"
|
||||
#include "tier1/utlrbtree.h"
|
||||
|
||||
class CChoreoEvent;
|
||||
class CChoreoActor;
|
||||
class CChoreoScene;
|
||||
class CUtlBuffer;
|
||||
class IChoreoStringPool;
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Purpose: A channel is owned by an actor and contains zero or more events
|
||||
//-----------------------------------------------------------------------------
|
||||
class CChoreoChannel
|
||||
{
|
||||
public:
|
||||
// Construction
|
||||
CChoreoChannel( void );
|
||||
CChoreoChannel( const char *name );
|
||||
|
||||
// Assignment
|
||||
CChoreoChannel& operator=(const CChoreoChannel& src );
|
||||
|
||||
// Serialization
|
||||
void SaveToBuffer( CUtlBuffer& buf, CChoreoScene *pScene, IChoreoStringPool *pStringPool );
|
||||
bool RestoreFromBuffer( CUtlBuffer& buf, CChoreoScene *pScene, CChoreoActor *pActor, IChoreoStringPool *pStringPool );
|
||||
|
||||
// Accessors
|
||||
void SetName( const char *name );
|
||||
const char *GetName( void );
|
||||
|
||||
// Iterate children
|
||||
int GetNumEvents( void );
|
||||
CChoreoEvent *GetEvent( int event );
|
||||
|
||||
// Manipulate children
|
||||
void AddEvent( CChoreoEvent *event );
|
||||
void RemoveEvent( CChoreoEvent *event );
|
||||
int FindEventIndex( CChoreoEvent *event );
|
||||
void RemoveAllEvents();
|
||||
|
||||
CChoreoActor *GetActor( void );
|
||||
void SetActor( CChoreoActor *actor );
|
||||
|
||||
void SetActive( bool active );
|
||||
bool GetActive( void ) const;
|
||||
|
||||
// Compute true start/end times for gesture events in this channel, factoring in "null" gestures as needed
|
||||
void ReconcileGestureTimes();
|
||||
// Compute master/slave, count, endtime info for close captioning data
|
||||
void ReconcileCloseCaption();
|
||||
|
||||
bool IsMarkedForSave() const { return m_bMarkedForSave; }
|
||||
void SetMarkedForSave( bool mark ) { m_bMarkedForSave = mark; }
|
||||
|
||||
void MarkForSaveAll( bool mark );
|
||||
|
||||
bool GetSortedCombinedEventList( char const *cctoken, CUtlRBTree< CChoreoEvent * >& sorted );
|
||||
|
||||
private:
|
||||
// Initialize fields
|
||||
void Init( void );
|
||||
|
||||
enum
|
||||
{
|
||||
MAX_CHANNEL_NAME = 128,
|
||||
};
|
||||
|
||||
CChoreoActor *m_pActor;
|
||||
|
||||
// Channels are just named
|
||||
char m_szName[ MAX_CHANNEL_NAME ];
|
||||
|
||||
// All of the events for this channel
|
||||
CUtlVector < CChoreoEvent * > m_Events;
|
||||
|
||||
bool m_bActive;
|
||||
|
||||
// Purely for save/load
|
||||
bool m_bMarkedForSave;
|
||||
};
|
||||
|
||||
#endif // CHOREOCHANNEL_H
|
Reference in New Issue
Block a user