diff options
| author | aura <nw@moneybot.cc> | 2026-02-25 14:45:28 +0100 |
|---|---|---|
| committer | aura <nw@moneybot.cc> | 2026-02-25 14:45:28 +0100 |
| commit | b384930de5044934207d1b2ceb4fa55705094f8b (patch) | |
| tree | 7937d3382e83ead2db1851b4a02b8378d02ac150 /src/game/vars.cpp | |
| parent | cabe4471c309b2bba3be78b8346c9007485b1d57 (diff) | |
movement stuff + fix map zoom when dragging
Diffstat (limited to 'src/game/vars.cpp')
| -rw-r--r-- | src/game/vars.cpp | 71 |
1 files changed, 51 insertions, 20 deletions
diff --git a/src/game/vars.cpp b/src/game/vars.cpp index d7b1f9b..3d1eaf4 100644 --- a/src/game/vars.cpp +++ b/src/game/vars.cpp @@ -4,16 +4,18 @@ VAR_LIST* varl; +void vars_check_global_list() { + if( !varl ) + varl = vars_init(); +} + VAR_LIST* vars_init() { VAR_LIST* ret = new VAR_LIST; return ret; } CVAR* var_new( const char* name, F32 v ) { - if( !varl ) { - dlog( "var_new() : error: varl null\n" ); - return 0; - } + vars_check_global_list(); CVAR* ret = new CVAR; memset( ret, 0 , sizeof( CVAR ) ); @@ -26,10 +28,7 @@ CVAR* var_new( const char* name, F32 v ) { } CVAR* var_new( const char* name, I32 i ) { - if( !varl ) { - dlog( "var_new() : error: varl null\n" ); - return 0; - } + vars_check_global_list(); CVAR* ret = new CVAR; memset( ret, 0 , sizeof( CVAR ) ); @@ -42,10 +41,7 @@ CVAR* var_new( const char* name, I32 i ) { } CVAR* var_new( const char* name, CLR c ) { - if( !varl ) { - dlog( "var_new() : error: varl null\n" ); - return 0; - } + vars_check_global_list(); CVAR* ret = new CVAR; memset( ret, 0 , sizeof( CVAR ) ); @@ -58,10 +54,7 @@ CVAR* var_new( const char* name, CLR c ) { } CVAR* var_new( const char* name, CVAR_FUNC func ) { - if( !varl ) { - dlog( "var_new() : error: varl null\n" ); - return 0; - } + vars_check_global_list(); CVAR* ret = new CVAR; memset( ret, 0 , sizeof( CVAR ) ); @@ -74,10 +67,7 @@ CVAR* var_new( const char* name, CVAR_FUNC func ) { } CVAR* var_new( const char* name, const char* v ) { - if( !varl ) { - dlog( "var_new() : error: varl null\n" ); - return 0; - } + vars_check_global_list(); CVAR* ret = new CVAR; memset( ret, 0, sizeof( CVAR ) ); @@ -113,3 +103,44 @@ I32 var_call( CVAR *cmdvar, const char *cmdline ) { return cmdvar->fn_v( cmdvar, cmdline ); } + +F32 var_getf( CVAR *var ) { + switch( var->type ) { + case CVAR_TYPE_FLOAT: return var->fl_v; + case CVAR_TYPE_INT: return (F32)var->fl_v; + default: return 0.f; + } +} + +I32 var_geti( CVAR *var ) { + switch( var->type ) { + case CVAR_TYPE_INT: return var->fl_v; + case CVAR_TYPE_FLOAT: return (I32)var->fl_v; + default: return 0; + } +} + +CLR var_getclr( CVAR *var ) { + switch( var->type ) { + case CVAR_TYPE_COLOR: return var->clr_v; + case CVAR_TYPE_FLOAT: return (CLR){ var->fl_v, var->fl_v, var->fl_v, 1.f }; + default: return {}; + } +} + +const char* var_gets( CVAR *var ) { + switch( var->type ) { + case CVAR_TYPE_STRING: return var->str_v; + case CVAR_TYPE_FLOAT: + sprintf( var->str_v + sizeof(F32), "%f", var->fl_v ); + return var->str_v + sizeof(F32); + case CVAR_TYPE_INT: + sprintf( var->str_v + sizeof(I32), "%d", var->i_v ); + return var->str_v + sizeof(I32); + case CVAR_TYPE_COLOR: + sprintf( var->str_v + sizeof(CLR), "%f %f %f %f", var->clr_v.r, var->clr_v.g, var->clr_v.b, var->clr_v.a ); + return var->str_v + sizeof(CLR); + default: + return ""; + } +} |
