summaryrefslogtreecommitdiff
path: root/src/game/vars.cpp
diff options
context:
space:
mode:
authoraura <nw@moneybot.cc>2026-02-25 14:45:28 +0100
committeraura <nw@moneybot.cc>2026-02-25 14:45:28 +0100
commitb384930de5044934207d1b2ceb4fa55705094f8b (patch)
tree7937d3382e83ead2db1851b4a02b8378d02ac150 /src/game/vars.cpp
parentcabe4471c309b2bba3be78b8346c9007485b1d57 (diff)
movement stuff + fix map zoom when dragging
Diffstat (limited to 'src/game/vars.cpp')
-rw-r--r--src/game/vars.cpp71
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 "";
+ }
+}