From b384930de5044934207d1b2ceb4fa55705094f8b Mon Sep 17 00:00:00 2001 From: aura Date: Wed, 25 Feb 2026 14:45:28 +0100 Subject: movement stuff + fix map zoom when dragging --- src/game/vars.cpp | 71 +++++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 51 insertions(+), 20 deletions(-) (limited to 'src/game/vars.cpp') 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 ""; + } +} -- cgit v1.2.3