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.
53 lines
1.9 KiB
53 lines
1.9 KiB
//========= Copyright Valve Corporation, All rights reserved. ============// |
|
// |
|
// Purpose: Helper class for cvars that have restrictions on their value. |
|
// |
|
//=============================================================================// |
|
|
|
#ifndef CONVAR_SERVERBOUNDED_H |
|
#define CONVAR_SERVERBOUNDED_H |
|
#ifdef _WIN32 |
|
#pragma once |
|
#endif |
|
|
|
|
|
// This class is used to virtualize a ConVar's value, so the client can restrict its |
|
// value while connected to a server. When using this across modules, it's important |
|
// to dynamic_cast it to a ConVar_ServerBounded or you won't get the restricted value. |
|
// |
|
// NOTE: FCVAR_USERINFO vars are not virtualized before they are sent to the server |
|
// (we have no way to detect if the virtualized value would change), so |
|
// if you want to use a bounded cvar's value on the server, you must rebound it |
|
// the same way the client does. |
|
class ConVar_ServerBounded : public ConVar |
|
{ |
|
public: |
|
ConVar_ServerBounded( char const *pName, char const *pDefaultValue, int flags, char const *pHelpString ) |
|
: ConVar( pName, pDefaultValue, flags, pHelpString ) |
|
{ |
|
} |
|
|
|
ConVar_ServerBounded( char const *pName, char const *pDefaultValue, int flags, char const *pHelpString, FnChangeCallback_t callback ) |
|
: ConVar( pName, pDefaultValue, flags, pHelpString, callback ) |
|
{ |
|
} |
|
|
|
ConVar_ServerBounded( char const *pName, char const *pDefaultValue, int flags, char const *pHelpString, bool bMin, float fMin, bool bMax, float fMax ) |
|
: ConVar( pName, pDefaultValue, flags, pHelpString, bMin, fMin, bMax, fMax ) {} |
|
|
|
// You must implement GetFloat. |
|
virtual float GetFloat() const = 0; |
|
|
|
// You can optionally implement these. |
|
virtual int GetInt() const { return (int)GetFloat(); } |
|
virtual bool GetBool() const { return ( GetInt() != 0 ); } |
|
|
|
// Use this to get the underlying cvar's value. |
|
float GetBaseFloatValue() const |
|
{ |
|
return ConVar::GetFloat(); |
|
} |
|
}; |
|
|
|
|
|
#endif // CONVAR_SERVERBOUNDED_H
|
|
|