//========= Copyright Valve Corporation, All rights reserved. ============// // // Purpose: // // $NoKeywords: $ //=============================================================================// #ifndef NETWORKSTRINGTABLEITEM_H #define NETWORKSTRINGTABLEITEM_H #ifdef _WIN32 #pragma once #endif #include "utlsymbol.h" #include "utlvector.h" #ifdef _XBOX #define SHARED_NET_STRING_TABLES #endif //----------------------------------------------------------------------------- // Purpose: //----------------------------------------------------------------------------- class CNetworkStringTableItem { public: enum { MAX_USERDATA_BITS = 14, MAX_USERDATA_SIZE = (1 << MAX_USERDATA_BITS) }; struct itemchange_s { int tick; int length; unsigned char *data; }; CNetworkStringTableItem( void ); ~CNetworkStringTableItem( void ); #ifndef SHARED_NET_STRING_TABLES void EnableChangeHistory( void ); void UpdateChangeList( int tick, int length, const void *userData ); int RestoreTick( int tick ); inline int GetTickCreated( void ) const { return m_nTickCreated; } #endif bool SetUserData( int tick, int length, const void *userdata ); const void *GetUserData( int *length=0 ); inline int GetUserDataLength() const { return m_nUserDataLength; } // Used by server only // void SetTickCount( int count ) ; inline int GetTickChanged( void ) const { return m_nTickChanged; } public: unsigned char *m_pUserData; int m_nUserDataLength; int m_nTickChanged; #ifndef SHARED_NET_STRING_TABLES int m_nTickCreated; CUtlVector< itemchange_s > *m_pChangeList; #endif }; #endif // NETWORKSTRINGTABLEITEM_H