diff options
Diffstat (limited to 'src/game/vars.h')
| -rw-r--r-- | src/game/vars.h | 47 |
1 files changed, 39 insertions, 8 deletions
diff --git a/src/game/vars.h b/src/game/vars.h index 253effb..754979c 100644 --- a/src/game/vars.h +++ b/src/game/vars.h @@ -10,11 +10,18 @@ enum CvarTypes_t { CVAR_TYPE_LAST }; -typedef I32(*CVAR_FUNC)( struct CVAR* self, const char* cmdline ); +enum CvarFlags_t { + CVAR_FLAG_NONE = 0, + CVAR_FLAG_MINMAX = 1 << 1, +}; + +typedef I32(*CVAR_FUNC)( struct CVAR* self, LIST<STR> cmdline ); struct CVAR { STR name; U8 type; + STR desc; + U32 flags; union { F32 fl_v; I32 i_v; @@ -30,6 +37,16 @@ struct CVAR { CVAR_FUNC fn_v; char str_v[64]; } default_v; + + union { + F32 fl_v; + I32 i_v; + } min_v; + + union { + F32 fl_v; + I32 i_v; + } max_v; }; struct VAR_LIST { @@ -38,18 +55,32 @@ struct VAR_LIST { extern VAR_LIST* vars_init(); -extern CVAR* var_new( const char* name, F32 v ); -extern CVAR* var_new( const char* name, I32 v ); -extern CVAR* var_new( const char* name, CLR v ); -extern CVAR* var_new( const char* name, const char* v ); -extern CVAR* var_new( const char* name, CVAR_FUNC fn ); +extern CVAR* var_new( const char* name, STR desc, F32 v ); +extern CVAR* var_new( + const char* name, + STR desc, + F32 v, + F32 min_v, + F32 max_v +); +extern CVAR* var_new( const char* name, STR desc, I32 v ); +extern CVAR* var_new( + const char* name, + STR desc, + I32 v, + I32 min_v, + I32 max_v +); +extern CVAR* var_new( const char* name, STR desc, CLR v ); +extern CVAR* var_new( const char* name, STR desc, const char* v ); +extern CVAR* var_new( const char* name, STR desc, CVAR_FUNC fn ); extern CVAR* var_find( const char* name ); -extern I32 var_call( CVAR* cmdvar, const char* cmdline ); +extern I32 var_call( CVAR* cmdvar, LIST<STR> cmdline ); extern F32 var_getf( CVAR* var ); extern I32 var_geti( CVAR* var ); extern CLR var_getclr( CVAR* var ); -extern const char* var_gets( CVAR* var ); +extern STR var_gets( const CVAR* var ); extern void var_set( CVAR* var, F32 v ); extern void var_set( CVAR* var, I32 v ); |
