You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
66 lines
1.4 KiB
66 lines
1.4 KiB
//========= Copyright Valve Corporation, All rights reserved. ============// |
|
// |
|
// Purpose: |
|
// |
|
//=============================================================================// |
|
|
|
#ifndef SAVERESTORE_UTLCLASS_H |
|
#define SAVERESTORE_UTLCLASS_H |
|
|
|
#if defined( _WIN32 ) |
|
#pragma once |
|
#endif |
|
|
|
//------------------------------------- |
|
|
|
template <int FIELD_TYPE> |
|
class CTypedescDeducer |
|
{ |
|
public: |
|
template <class UTLCLASS> |
|
static datamap_t *Deduce( UTLCLASS *p ) |
|
{ |
|
return NULL; |
|
} |
|
|
|
}; |
|
|
|
template<> |
|
class CTypedescDeducer<FIELD_EMBEDDED> |
|
{ |
|
public: |
|
template <class UTLCLASS> |
|
static datamap_t *Deduce( UTLCLASS *p ) |
|
{ |
|
return &UTLCLASS::ElemType_t::m_DataMap; |
|
} |
|
|
|
}; |
|
|
|
#define UTLCLASS_SAVERESTORE_VALIDATE_TYPE( type ) \ |
|
COMPILE_TIME_ASSERT( \ |
|
type == FIELD_FLOAT ||\ |
|
type == FIELD_STRING ||\ |
|
type == FIELD_CLASSPTR ||\ |
|
type == FIELD_EHANDLE ||\ |
|
type == FIELD_EDICT ||\ |
|
type == FIELD_VECTOR ||\ |
|
type == FIELD_QUATERNION ||\ |
|
type == FIELD_POSITION_VECTOR ||\ |
|
type == FIELD_INTEGER ||\ |
|
type == FIELD_BOOLEAN ||\ |
|
type == FIELD_SHORT ||\ |
|
type == FIELD_CHARACTER ||\ |
|
type == FIELD_TIME ||\ |
|
type == FIELD_TICK ||\ |
|
type == FIELD_MODELNAME ||\ |
|
type == FIELD_SOUNDNAME ||\ |
|
type == FIELD_COLOR32 ||\ |
|
type == FIELD_EMBEDDED ||\ |
|
type == FIELD_MODELINDEX ||\ |
|
type == FIELD_MATERIALINDEX\ |
|
) |
|
|
|
//------------------------------------- |
|
|
|
#endif // SAVERESTORE_UTLCLASS_H
|
|
|