Files
FC1/CryAnimation/cvars.h
romkazvo 34d6c5d489 123
2023-08-07 19:29:24 +08:00

87 lines
3.5 KiB
C

/////////////////////////////////////////////////////////////////////////////////////////////////////
//
// Crytek Character Animation source code
//
// History:
// Sep 25 2002 :- Created by Sergiy Migdalskiy
//
/////////////////////////////////////////////////////////////////////////////////////////////////////
# pragma once
#ifndef _3DENGINE_CVARS_H_
#define _3DENGINE_CVARS_H_
//////////////////////////////////////////////////////////////////////////
// console variable interfaces.
// In an instance of this class (singleton for now), there are all the interfaces
// of all the variables needed for the Animation subsystem.
// In case sometimes it is required to maintain several sets of console variables
// (e.g. in the unlikely case several consoles will be introduced), several
// instances of this class (for each console) are to be created
struct CryAnimVars
{
enum {nDefaultAnimWarningLevel = 2};
enum {
#if defined(WIN64) || defined(LINUX64)
nDefaultAnimUnloadDelay = 0, // don't need to unload animation of Win64 architecture
nDefaultAnimDeferredLoad = 0, // don't need to defer anim loading
#else
nDefaultAnimUnloadDelay = 300,
nDefaultAnimDeferredLoad = 1
#endif
};
//#define DECLARE_STRING_VARIABLE(_var, _default) ICVar* _var
#define DECLARE_INT_VARIABLE_IMMEDIATE(_var, _default,_comment) ICVar* m_p_##_var; int m_##_var; int _var () const {return m_##_var;} \
int _var##_Clamp (int nMin, int nMax)const \
{ \
if (m_##_var < nMin) { \
m_p_##_var->Set (nMin); \
return nMin; \
} \
if (m_##_var > nMax) { \
m_p_##_var->Set (nMax); \
return nMax; \
} \
return m_##_var; \
}
#define DECLARE_INT_VARIABLE_IMMEDIATE_DUMP(_var, _default,_comment) DECLARE_INT_VARIABLE_IMMEDIATE(_var, _default,_comment)
#define DECLARE_FLOAT_VARIABLE_IMMEDIATE(_var, _default) float m_##_var; float _var () const {return m_##_var;}
#define DECLARE_STRING_VARIABLE(_var, _default) ICVar* m_##_var; const char* _var () {return m_##_var ? m_##_var->GetString () : _default;}
#define DECLARE_INT_VARIABLE(_var, _default) ICVar* m_##_var; int _var() {return m_##_var->GetIVal();}
#define DECLARE_FLOAT_VARIABLE(_var, _default,_comment) ICVar* m_##_var; float _var() {return m_##_var->GetFVal();}
#define DECLARE_FLOAT_VARIABLE_DUMP(_var, _default,_comment) DECLARE_FLOAT_VARIABLE(_var, _default,_comment)
#include "CVars-list.h"
#undef DECLARE_STRING_VARIABLE
#undef DECLARE_INT_VARIABLE
#undef DECLARE_FLOAT_VARIABLE
#undef DECLARE_FLOAT_VARIABLE_DUMP
#undef DECLARE_INT_VARIABLE_IMMEDIATE
#undef DECLARE_INT_VARIABLE_IMMEDIATE_DUMP
#undef DECLARE_FLOAT_VARIABLE_IMMEDIATE
float ca_MinVertexWeightLOD (unsigned nLOD);
float ca_UpdateSpeed (unsigned nLayer);
int ca_RainPower_Clamped();
CryAnimVars ();
~CryAnimVars ();
// declares or retrieves the pointer to the console variable
// with the given default value (used only in case the variable doesn't exist now)
// returns the pointer to the preexisting or newly created variable.
ICVar* declare (const char* szVarName, int nDefault, int nFlags=0 );
// attaches the given variable to the given container;
// recreates the variable if necessary
ICVar* attach (const char* szVarName, int* pContainer, const char* szComment, int nFlags = 0);
// detaches the given variable from the container;
// recreates the variable with new value
void detach (const char* szVarName, int* pContainer);
};
#endif // _3DENGINE_CVARS_H_