mirror of
https://github.com/nillerusr/source-engine.git
synced 2026-08-08 09:49:36 +00:00
1
This commit is contained in:
@@ -0,0 +1,97 @@
|
||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||
//
|
||||
// Purpose:
|
||||
//
|
||||
// $NoKeywords: $
|
||||
//=============================================================================//
|
||||
|
||||
#ifndef PRECACHE_H
|
||||
#define PRECACHE_H
|
||||
#ifdef _WIN32
|
||||
#pragma once
|
||||
#endif
|
||||
|
||||
#include "networkstringtabledefs.h"
|
||||
|
||||
#define PRECACHE_USER_DATA_NUMBITS 2 // Only network two bits from flags field...
|
||||
|
||||
#pragma pack(1)
|
||||
//-----------------------------------------------------------------------------
|
||||
// Purpose:
|
||||
//-----------------------------------------------------------------------------
|
||||
struct CPrecacheUserData
|
||||
{
|
||||
unsigned char flags : PRECACHE_USER_DATA_NUMBITS;
|
||||
};
|
||||
|
||||
#pragma pack()
|
||||
|
||||
|
||||
|
||||
class CSfxTable;
|
||||
struct model_t;
|
||||
|
||||
//#define DEBUG_PRECACHE 1
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Purpose:
|
||||
//-----------------------------------------------------------------------------
|
||||
class CPrecacheItem
|
||||
{
|
||||
public:
|
||||
CPrecacheItem( void );
|
||||
|
||||
// accessorts
|
||||
model_t *GetModel( void );
|
||||
char const *GetGeneric( void );
|
||||
CSfxTable *GetSound( void );
|
||||
char const *GetName( void );
|
||||
char const *GetDecal( void );
|
||||
|
||||
void SetModel( model_t const *pmodel );
|
||||
void SetGeneric( char const *pname );
|
||||
void SetSound( CSfxTable const *psound );
|
||||
void SetName( char const *pname );
|
||||
void SetDecal( char const *decalname );
|
||||
|
||||
float GetFirstReference( void );
|
||||
float GetMostRecentReference( void );
|
||||
unsigned int GetReferenceCount( void );
|
||||
|
||||
private:
|
||||
enum
|
||||
{
|
||||
TYPE_UNK = 0,
|
||||
TYPE_MODEL,
|
||||
TYPE_SOUND,
|
||||
TYPE_GENERIC,
|
||||
TYPE_DECAL
|
||||
};
|
||||
|
||||
void Init( int type, void const *ptr );
|
||||
void ResetStats( void );
|
||||
void Reference( void );
|
||||
|
||||
unsigned int m_nType : 3;
|
||||
unsigned int m_uiRefcount : 29;
|
||||
union precacheptr
|
||||
{
|
||||
model_t *model;
|
||||
char const *generic;
|
||||
CSfxTable *sound;
|
||||
char const *name;
|
||||
} u;
|
||||
#if DEBUG_PRECACHE
|
||||
float m_flFirst;
|
||||
float m_flMostRecent;
|
||||
#endif
|
||||
};
|
||||
|
||||
#define MODEL_PRECACHE_TABLENAME "modelprecache"
|
||||
#define GENERIC_PRECACHE_TABLENAME "genericprecache"
|
||||
#define SOUND_PRECACHE_TABLENAME "soundprecache"
|
||||
#define DECAL_PRECACHE_TABLENAME "decalprecache"
|
||||
|
||||
char const *GetFlagString( int flags );
|
||||
|
||||
#endif // PRECACHE_H
|
||||
Reference in New Issue
Block a user