mirror of
https://github.com/alliedmodders/hl2sdk.git
synced 2025-09-20 12:36:05 +08:00
Update ConVarValueInfo_t
This commit is contained in:
@ -229,7 +229,7 @@ public:
|
|||||||
|
|
||||||
CUtlLinkedList<ConVarData *> m_ConVarList;
|
CUtlLinkedList<ConVarData *> m_ConVarList;
|
||||||
CUtlHashtable<CUtlStringToken, uint16> m_ConVarHashes;
|
CUtlHashtable<CUtlStringToken, uint16> m_ConVarHashes;
|
||||||
CUtlLinkedList<CConVarChangeCallbackNode_t> m_ConVarChangeCBList;
|
CUtlLinkedList<CConVarChangeCallbackNode_t, unsigned short, true> m_ConVarChangeCBList;
|
||||||
int m_ConVarCount;
|
int m_ConVarCount;
|
||||||
|
|
||||||
CUtlVector<ICVarListenerCallbacks *> m_CvarCreationListeners;
|
CUtlVector<ICVarListenerCallbacks *> m_CvarCreationListeners;
|
||||||
|
@ -628,25 +628,26 @@ struct ConVarValueInfo_t
|
|||||||
m_defaultValue {},
|
m_defaultValue {},
|
||||||
m_minValue {},
|
m_minValue {},
|
||||||
m_maxValue {},
|
m_maxValue {},
|
||||||
m_fnCallBack(),
|
m_fnProviderCallBack( nullptr ),
|
||||||
|
m_fnCallBack( nullptr ),
|
||||||
m_eVarType( type )
|
m_eVarType( type )
|
||||||
{}
|
{}
|
||||||
|
|
||||||
template<typename T>
|
template <typename T>
|
||||||
void SetDefaultValue( const T &value )
|
void SetDefaultValue( const T &value )
|
||||||
{
|
{
|
||||||
m_bHasDefault = true;
|
m_bHasDefault = true;
|
||||||
*reinterpret_cast<T *>(m_defaultValue) = value;
|
*reinterpret_cast<T *>(m_defaultValue) = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
template<typename T>
|
template <typename T>
|
||||||
void SetMinValue( const T &min )
|
void SetMinValue( const T &min )
|
||||||
{
|
{
|
||||||
m_bHasMin = true;
|
m_bHasMin = true;
|
||||||
*reinterpret_cast<T *>(m_minValue) = min;
|
*reinterpret_cast<T *>(m_minValue) = min;
|
||||||
}
|
}
|
||||||
|
|
||||||
template<typename T>
|
template <typename T>
|
||||||
void SetMaxValue( const T &max )
|
void SetMaxValue( const T &max )
|
||||||
{
|
{
|
||||||
m_bHasMax = true;
|
m_bHasMax = true;
|
||||||
@ -679,7 +680,9 @@ private:
|
|||||||
uint8 m_maxValue[sizeof( CVValue_t )];
|
uint8 m_maxValue[sizeof( CVValue_t )];
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
FnGenericChangeCallbackProvider_t m_fnProviderCallBack;
|
||||||
FnGenericChangeCallback_t m_fnCallBack;
|
FnGenericChangeCallback_t m_fnCallBack;
|
||||||
|
|
||||||
EConVarType m_eVarType;
|
EConVarType m_eVarType;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -1235,9 +1238,7 @@ class CConVar : public CConVarRef<T>
|
|||||||
public:
|
public:
|
||||||
typedef CConVarRef<T> BaseClass;
|
typedef CConVarRef<T> BaseClass;
|
||||||
|
|
||||||
using FnChangeCallback_t = void(*)(CConVar<T> *ref, CSplitScreenSlot nSlot, const T *pNewValue, const T *pOldValue);
|
CConVar( const char *name, uint64 flags, const char *help_string, const T &default_value, FnTypedChangeCallback_t<T> cb = nullptr )
|
||||||
|
|
||||||
CConVar( const char *name, uint64 flags, const char *help_string, const T &default_value, FnChangeCallback_t cb = nullptr )
|
|
||||||
: BaseClass()
|
: BaseClass()
|
||||||
{
|
{
|
||||||
Assert( name );
|
Assert( name );
|
||||||
@ -1246,12 +1247,12 @@ public:
|
|||||||
|
|
||||||
ConVarValueInfo_t value_info( TranslateConVarType<T>() );
|
ConVarValueInfo_t value_info( TranslateConVarType<T>() );
|
||||||
value_info.SetDefaultValue( default_value );
|
value_info.SetDefaultValue( default_value );
|
||||||
value_info.m_fnCallBack = reinterpret_cast<FnGenericChangeCallback_t>(cb);
|
value_info.SetCallback( cb );
|
||||||
|
|
||||||
BaseClass::Register( name, flags, help_string, value_info );
|
BaseClass::Register( name, flags, help_string, value_info );
|
||||||
}
|
}
|
||||||
|
|
||||||
CConVar( const char *name, uint64 flags, const char *help_string, const T &default_value, bool min, const T &minValue, bool max, const T &maxValue, FnChangeCallback_t cb = nullptr )
|
CConVar( const char *name, uint64 flags, const char *help_string, const T &default_value, bool min, const T &minValue, bool max, const T &maxValue, FnTypedChangeCallback_t<T> cb = nullptr )
|
||||||
: BaseClass()
|
: BaseClass()
|
||||||
{
|
{
|
||||||
Assert( name );
|
Assert( name );
|
||||||
@ -1267,7 +1268,7 @@ public:
|
|||||||
if(max)
|
if(max)
|
||||||
value_info.SetMaxValue( maxValue );
|
value_info.SetMaxValue( maxValue );
|
||||||
|
|
||||||
value_info.m_fnCallBack = reinterpret_cast<FnGenericChangeCallback_t>(cb);
|
value_info.SetCallback( cb );
|
||||||
|
|
||||||
BaseClass::Register( name, flags, help_string, value_info );
|
BaseClass::Register( name, flags, help_string, value_info );
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user