Plasma Engine  2.0
Loading...
Searching...
No Matches
plTypedCVar< Type, CVarType > Class Template Reference

[internal] Helper class to implement plCVarInt, plCVarFlag, plCVarBool and plCVarString. More...

#include <CVar.h>

Inheritance diagram for plTypedCVar< Type, CVarType >:

Public Member Functions

 plTypedCVar (plStringView sName, const Type &value, plBitflags< plCVarFlags > flags, plStringView sDescription)
 
 operator const Type & () const
 Returns the 'current' value of the CVar. Same as 'GetValue(plCVarValue::Current)'.
 
const Type & GetValue (plCVarValue::Enum val=plCVarValue::Current) const
 Returns the internal values of the CVar.
 
void operator= (const Type &value)
 Changes the CVar's value and broadcasts the proper events.
 
virtual plCVarType::Enum GetType () const override
 Returns the type of the CVar.
 
virtual void SetToDelayedSyncValue () override
 Copies the 'DelayedSync' value into the 'Current' value.
 
bool HasDelayedSyncValueChanged () const
 Checks whether a new value was set and now won't be visible until SetToDelayedSyncValue() is called.
 
- Public Member Functions inherited from plCVar
plStringView GetName () const
 Returns the (display) name of the CVar.
 
plStringView GetDescription () const
 Returns the description of the CVar.
 
plBitflags< plCVarFlagsGetFlags () const
 Returns all the CVar flags.
 
plStringView GetPluginName () const
 Returns the name of the plugin which this CVar is declared in.
 

Friends

class plCVar
 

Additional Inherited Members

- Static Public Member Functions inherited from plCVar
static void SetStorageFolder (plStringView sFolder)
 Sets the path (folder) in which all CVar setting files should be stored.
 
static plCVarFindCVarByName (plStringView sName)
 Searches all CVars for one with the given name. Returns nullptr if no CVar could be found. The name is case-sensitive.
 
static void SaveCVars ()
 Stores all CVar values in files in the storage folder, that must have been set via 'SetStorageFolder'.
 
static void SaveCVarsToFile (plStringView sPath, bool bIgnoreSaveFlag=false)
 Stores all CVar values into the given file.
 
static void LoadCVars (bool bOnlyNewOnes=true, bool bSetAsCurrentValue=true)
 Calls LoadCVarsFromCommandLine() and then LoadCVarsFromFile()
 
static void LoadCVarsFromFile (bool bOnlyNewOnes=true, bool bSetAsCurrentValue=true, plDynamicArray< plCVar * > *pOutCVars=nullptr)
 Loads the CVars from the settings files in the storage folder.
 
static void LoadCVarsFromFile (plStringView sPath, bool bOnlyNewOnes=true, bool bSetAsCurrentValue=true, bool bIgnoreSaveFlag=false, plDynamicArray< plCVar * > *pOutCVars=nullptr)
 Loads all CVars from the given file. Does not account for any plug-in specific files.
 
static void LoadCVarsFromCommandLine (bool bOnlyNewOnes=true, bool bSetAsCurrentValue=true, plDynamicArray< plCVar * > *pOutCVars=nullptr)
 Similar to LoadCVarsFromFile() but tries to get the CVar values from the command line.
 
static void ListOfCVarsChanged (plStringView sSetPluginNameTo)
 Call this after creating or destroying CVars dynamically (not through loading plugins) to allow UIs to update their state.
 
- Static Public Member Functions inherited from plNoBase
static const plRTTIGetStaticRTTI ()
 
- Public Attributes inherited from plCVar
plEvent< const plCVarEvent &, plNoMutex, plStaticsAllocatorWrapperm_CVarEvents
 Code that needs to be execute whenever a cvar is changed can register itself here to be notified of such events.
 
- Static Public Attributes inherited from plCVar
static plEvent< const plCVarEvent & > s_AllCVarEvents
 Broadcasts changes to ANY CVar. Thus code that needs to update when any one of them changes can use this to be notified.
 
- Protected Member Functions inherited from plCVar
 plCVar (plStringView sName, plBitflags< plCVarFlags > Flags, plStringView sDescription)
 
- Protected Attributes inherited from plEnumerable< plCVar >
plEnumerablem_pNextInstance
 

Detailed Description

template<typename Type, plCVarType::Enum CVarType>
class plTypedCVar< Type, CVarType >

[internal] Helper class to implement plCVarInt, plCVarFlag, plCVarBool and plCVarString.

Member Function Documentation

◆ GetType()

template<typename Type , plCVarType::Enum CVarType>
plCVarType::Enum plTypedCVar< Type, CVarType >::GetType ( ) const
overridevirtual

Returns the type of the CVar.

Implements plCVar.

◆ operator=()

template<typename Type , plCVarType::Enum CVarType>
void plTypedCVar< Type, CVarType >::operator= ( const Type & value)

Changes the CVar's value and broadcasts the proper events.

Usually the 'Current' value is changed, unless the 'RequiresDelayedSync' flag is set. In that case only the 'DelayedSync' value is modified.

◆ SetToDelayedSyncValue()

template<typename Type , plCVarType::Enum CVarType>
void plTypedCVar< Type, CVarType >::SetToDelayedSyncValue ( )
overridevirtual

Copies the 'DelayedSync' value into the 'Current' value.

This change will not trigger a 'delayed sync value changed' event, but it might trigger a 'current value changed' event. Code that uses a CVar that is flagged as 'RequiresDelayedSync' for its initialization (and which is the reason, that that CVar is flagged as such) should always call this BEFORE it uses the CVar value.

Implements plCVar.


The documentation for this class was generated from the following files: