52 lines
2.1 KiB
C++
52 lines
2.1 KiB
C++
//========= 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
|