]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/common/weapons/config.qh
Clean up some more macros (sort of :D)
[xonotic/xonotic-data.pk3dir.git] / qcsrc / common / weapons / config.qh
index 23d8d0a9a23dfbf3f25bebbcf99bca9576b19620..12ce34078a877a0d8f5068a2eefdb905a7a9a111 100644 (file)
@@ -6,43 +6,59 @@ void Dump_Weapon_Settings(void);
 float wep_config_file;
 float wep_config_alsoprint;
 
-#define WEP_CONFIG_WRITE(a) { \
+#define MAX_WEP_CONFIG 256
+float WEP_CONFIG_COUNT;
+string wep_config_queue[MAX_WEP_CONFIG];
+
+#define WEP_CONFIG_QUEUE(a) { \
+       wep_config_queue[WEP_CONFIG_COUNT] = a; \
+       ++WEP_CONFIG_COUNT; }
+
+#define WEP_CONFIG_WRITETOFILE(a) { \
        fputs(wep_config_file, a); \
        if(wep_config_alsoprint) { print(a); } }
 
 #define WEP_CONFIG_WRITE_CVARS(weapon,mode,name) \
        #if mode == MO_PRI \
-               { WEP_CONFIG_WRITE(sprintf( \
+               { WEP_CONFIG_QUEUE(sprintf( \
                        "set g_balance_%s_primary_%s %g\n", \
                        #weapon, \
                        #name, \
                        autocvar_g_balance_##weapon##_primary_##name)) } \
        #endif \
        #if mode == MO_SEC \
-               { WEP_CONFIG_WRITE(sprintf("set g_balance_%s_secondary_%s %g\n", \
+               { WEP_CONFIG_QUEUE(sprintf("set g_balance_%s_secondary_%s %g\n", \
                        #weapon, \
                        #name, \
                        autocvar_g_balance_##weapon##_secondary_##name)) } \
        #endif \
        #if mode == MO_BOTH \
-               { WEP_CONFIG_WRITE(sprintf("set g_balance_%s_primary_%s %g\n", \
+               { WEP_CONFIG_QUEUE(sprintf("set g_balance_%s_primary_%s %g\n", \
                        #weapon, \
                        #name, \
                        autocvar_g_balance_##weapon##_primary_##name)) } \
-               { WEP_CONFIG_WRITE(sprintf("set g_balance_%s_secondary_%s %g\n", \
+               { WEP_CONFIG_QUEUE(sprintf("set g_balance_%s_secondary_%s %g\n", \
                        #weapon, \
                        #name, \
                        autocvar_g_balance_##weapon##_secondary_##name)) } \
        #endif \
        #if mode == MO_NONE \
-               { WEP_CONFIG_WRITE(sprintf("set g_balance_%s_%s %g\n", \
+               { WEP_CONFIG_QUEUE(sprintf("set g_balance_%s_%s %g\n", \
                        #weapon, \
                        #name, \
                        autocvar_g_balance_##weapon##_##name)) } \
        #endif
-       
+
+// WEAPONTODO: remove prop
 #define WEP_CONFIG_WRITE_PROPS(weapon,prop,name) \
-       { WEP_CONFIG_WRITE(sprintf("set g_balance_%s_%s %g\n", \
+       { WEP_CONFIG_QUEUE(sprintf("set g_balance_%s_%s %g\n", \
                        #weapon, \
                        #name, \
                        autocvar_g_balance_##weapon##_##name)) } 
+
+#define WEP_CONFIG_SETTINGS(wepsettings) \
+       #define WEP_ADD_CVAR(weapon,mode,name) WEP_CONFIG_WRITE_CVARS(weapon,mode,name) \
+       #define WEP_ADD_PROP(weapon,prop,name) WEP_CONFIG_WRITE_PROPS(weapon,prop,name) \
+       wepsettings \
+       #undef WEP_ADD_CVAR \
+       #undef WEP_ADD_PROP