#ifndef ICONVAR_H #define ICONVAR_H #if _WIN32 #pragma once #endif #include "dbg.h" #include "platform.h" #include "strtools.h" class IConVar; class CCommand; #define FCVAR_NONE 0 #define FCVAR_UNREGISTERED (1<<0) #define FCVAR_DEVELOPMENTONLY (1<<1) #define FCVAR_GAMEDLL (1<<2) #define FCVAR_CLIENTDLL (1<<3) #define FCVAR_HIDDEN (1<<4) #define FCVAR_PROTECTED (1<<5) #define FCVAR_SPONLY (1<<6) #define FCVAR_ARCHIVE (1<<7) #define FCVAR_NOTIFY (1<<8) #define FCVAR_USERINFO (1<<9) #define FCVAR_CHEAT (1<<14) #define FCVAR_PRINTABLEONLY (1<<10) #define FCVAR_UNLOGGED (1<<11) #define FCVAR_NEVER_AS_STRING (1<<12) #define FCVAR_REPLICATED (1<<13) #define FCVAR_DEMO (1<<16) #define FCVAR_DONTRECORD (1<<17) #define FCVAR_RELOAD_MATERIALS (1<<20) #define FCVAR_RELOAD_TEXTURES (1<<21) #define FCVAR_NOT_CONNECTED (1<<22) #define FCVAR_MATERIAL_SYSTEM_THREAD (1<<23) #define FCVAR_ARCHIVE_XBOX (1<<24) #define FCVAR_ACCESSIBLE_FROM_THREADS (1<<25) #define FCVAR_SERVER_CAN_EXECUTE (1<<28) #define FCVAR_SERVER_CANNOT_QUERY (1<<29) #define FCVAR_CLIENTCMD_CAN_EXECUTE (1<<30) #define FCVAR_MATERIAL_THREAD_MASK ( FCVAR_RELOAD_MATERIALS | FCVAR_RELOAD_TEXTURES | FCVAR_MATERIAL_SYSTEM_THREAD ) typedef void (*FnChangeCallback_t)(IConVar* var, const char* pOldValue, float flOldValue); abstract_class IConVar { public: virtual void SetValue(const char* pValue) = 0; virtual void SetValue(float flValue) = 0; virtual void SetValue(int nValue) = 0; virtual void SetValue(Color value) = 0; virtual const char* GetName(void) const = 0; virtual const char* GetBaseName(void) const = 0; virtual bool IsFlagSet(int nFlag) const = 0; virtual int GetSplitScreenPlayerSlot() const = 0; }; #endif