From dafd77c01f1a9d23f7470c2d9d87ee52a5155d46 Mon Sep 17 00:00:00 2001 From: Samual Lenks Date: Sun, 30 Jun 2013 19:03:35 -0400 Subject: [PATCH] THE POWER OF MACROS COMPELS YOU, THE POWER OF MACROS COMPELS YOU, ... --- qcsrc/common/weapons/weapons.qh | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/qcsrc/common/weapons/weapons.qh b/qcsrc/common/weapons/weapons.qh index 4019834ee..9efdf0eab 100644 --- a/qcsrc/common/weapons/weapons.qh +++ b/qcsrc/common/weapons/weapons.qh @@ -268,19 +268,34 @@ float WEP_LAST; #define MO_SEC 2 #define MO_BOTH 3 +#define WEP_DUPECHECK(dupecheck,cvar) \ + #ifndef dupecheck \ + #define dupecheck \ + float cvar; \ + #else \ + #error DUPLICATE WEAPON CVAR: cvar \ + #endif + +/* +#define WEP_CLEAN_DUPECHECK(dupecheck) \ + #ifdef WEP_CVAR_##weapon##_##name \ + #undef WEP_CVAR_##weapon##_##name \ + #endif +*/ + #define WEP_ADD_CVAR(weapon,mode,name) \ #if mode == MO_PRI \ - float autocvar_g_balance_##weapon##_primary_##name; \ + WEP_DUPECHECK(WEP_CVAR_##weapon##_##name, autocvar_g_balance_##weapon##_primary_##name) \ #endif \ #if mode == MO_SEC \ - float autocvar_g_balance_##weapon##_secondary_##name; \ + WEP_DUPECHECK(WEP_CVAR_##weapon##_##name, autocvar_g_balance_##weapon##_secondary_##name) \ #endif \ #if mode == MO_BOTH \ - float autocvar_g_balance_##weapon##_primary_##name; \ - float autocvar_g_balance_##weapon##_secondary_##name; \ + WEP_DUPECHECK(WEP_CVAR_##weapon##_##name, autocvar_g_balance_##weapon##_primary_##name) \ + WEP_DUPECHECK(WEP_CVAR_##weapon##_##name, autocvar_g_balance_##weapon##_secondary_##name) \ #endif \ #if mode == MO_NONE \ - float autocvar_g_balance_##weapon##_##name; \ + WEP_DUPECHECK(WEP_CVAR_##weapon##_##name, autocvar_g_balance_##weapon##_##name) \ #endif #define WEP_CVAR(weapon,name) autocvar_g_balance_##weapon##_##name @@ -290,7 +305,7 @@ float WEP_LAST; #define WEP_ADD_PROP(weapon,prop,name) \ .float ##prop; \ - float autocvar_g_balance_##weapon##_##name; + WEP_DUPECHECK(WEP_CVAR_##weapon##_##name, autocvar_g_balance_##weapon##_##name) #define WEP_SET_PROP(wepid,weapon,prop,name) get_weaponinfo(##wepid).##prop = autocvar_g_balance_##weapon##_##name; -- 2.39.2