1
0
mirror of https://github.com/alliedmodders/hl2sdk.git synced 2025-09-20 04:26:03 +08:00

Update ConVarValueInfo_t

This commit is contained in:
GAMMACASE
2025-02-19 02:39:58 +03:00
parent 697aff3ee5
commit 6f4d1c36cf
2 changed files with 12 additions and 11 deletions

View File

@ -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;

View File

@ -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 );
} }