X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fcommon%2Fweapons%2Fconfig.qh;h=410dbdfadeb8b1f7fe79e4eeacf63bdf1a7e14d0;hb=21fb564ff1131f208d7a1b01100690326ee5a7ce;hp=316da5fa68f45a254f6b3af1cff45f0ac03ef997;hpb=3b7424b94d5561161479d9fb8516f2b71ca2e629;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/common/weapons/config.qh b/qcsrc/common/weapons/config.qh index 316da5fa6..410dbdfad 100644 --- a/qcsrc/common/weapons/config.qh +++ b/qcsrc/common/weapons/config.qh @@ -1,64 +1,49 @@ +#ifndef WEAPONS_CONFIG_H +#define WEAPONS_CONFIG_H + // ========================== // Balance Config Generator // ========================== void Dump_Weapon_Settings(void); -float wep_config_file; -float wep_config_alsoprint; +int wep_config_file; +bool wep_config_alsoprint; -#define MAX_WEP_CONFIG 256 -float WEP_CONFIG_COUNT; +const int MAX_WEP_CONFIG = 256; +int 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) { \ +#define WEP_CONFIG_WRITETOFILE(a) do { \ fputs(wep_config_file, a); \ - if(wep_config_alsoprint) { print(a); } } + if(wep_config_alsoprint) { LOG_INFO(a); } \ +} while(0) + +#define WEP_CONFIG_WRITE_CVARS_NONE(wepname,name) \ + { WEP_CONFIG_QUEUE( \ + sprintf("set g_balance_%s_%s %g\n", #wepname, #name, \ + cvar(sprintf("g_balance_%s_%s", #wepname, #name)))) } + +#define WEP_CONFIG_WRITE_CVARS_PRI(wepname,name) WEP_CONFIG_WRITE_CVARS_NONE(wepname, primary_##name) +#define WEP_CONFIG_WRITE_CVARS_SEC(wepname,name) WEP_CONFIG_WRITE_CVARS_NONE(wepname, secondary_##name) +#define WEP_CONFIG_WRITE_CVARS_BOTH(wepname,name) \ + WEP_CONFIG_WRITE_CVARS_PRI(wepname, name) \ + WEP_CONFIG_WRITE_CVARS_SEC(wepname, name) + +#define WEP_CONFIG_WRITE_CVARS(wepid,wepname,mode,name) WEP_CONFIG_WRITE_CVARS_##mode(wepname, name) -#define WEP_CONFIG_WRITE_CVARS(weapon,mode,name) \ - #if mode == MO_PRI \ - { 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_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_QUEUE(sprintf("set g_balance_%s_primary_%s %g\n", \ - #weapon, \ - #name, \ - autocvar_g_balance_##weapon##_primary_##name)) } \ - { 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_QUEUE(sprintf("set g_balance_%s_%s %g\n", \ - #weapon, \ - #name, \ - autocvar_g_balance_##weapon##_##name)) } \ - #endif +#define WEP_CONFIG_WRITE_PROPS_string(wepname,name) \ + { WEP_CONFIG_QUEUE( \ + sprintf("set g_balance_%s_%s \"%s\"\n", #wepname, #name, \ + cvar_string(sprintf("g_balance_%s_%s", #wepname, #name)))) } -// WEAPONTODO: remove prop -#define WEP_CONFIG_WRITE_PROPS(weapon,name) \ - { WEP_CONFIG_QUEUE(sprintf("set g_balance_%s_%s %g\n", \ - #weapon, \ - #name, \ - autocvar_g_balance_##weapon##_##name)) } +#define WEP_CONFIG_WRITE_PROPS_float(wepname,name) \ + { WEP_CONFIG_QUEUE( \ + sprintf("set g_balance_%s_%s %g\n", #wepname, #name, \ + cvar(sprintf("g_balance_%s_%s", #wepname, #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,name) \ - wepsettings \ - #undef WEP_ADD_CVAR \ - #undef WEP_ADD_PROP +#define WEP_CONFIG_WRITE_PROPS(wepid,wepname,type,prop,name) WEP_CONFIG_WRITE_PROPS_##type(wepname,name) +#endif