]> git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/common/weapons/weapons.qh
No need for that extra prefix
[xonotic/xonotic-data.pk3dir.git] / qcsrc / common / weapons / weapons.qh
index ebb327235777aa298df311464ce00182658bf7fc..bb4c0dd0b5fcced7752684389dfa64e4df530711 100644 (file)
@@ -122,7 +122,8 @@ float W_AmmoItemCode(float wpn);
 .float ammo_rockets;
 .float ammo_cells;
 .float ammo_fuel;
-.float ammo_batteries; // dummy
+.float ammo_none;
+.float ammo_broken; // dummy
 
 // entity properties of weaponinfo:
 .float weapon; // WEP_...
@@ -137,7 +138,7 @@ float W_AmmoItemCode(float wpn);
 .float impulse; // weapon impulse
 .float bot_pickupbasevalue; // bot weapon priority
 .string model2; // wpn- sprite name
-..float ammo_field; // main ammo field
+..float current_ammo; // main ammo field
 
 // other useful macros
 #define WEP_ACTION(wpn,wrequest) (get_weaponinfo(wpn)).weapon_func(wrequest)
@@ -147,37 +148,32 @@ float W_AmmoItemCode(float wpn);
 //  Weapon Registration
 // =====================
 
-#define MO_NONE 0
-#define MO_PRI 1
-#define MO_SEC 2
-#define MO_BOTH 3
-
 // create cvars for weapon settings
-#define WEP_ADD_CVAR_MO_PRI(wepname,name) final float autocvar_g_balance_##wepname##_primary_##name;
-#define WEP_ADD_CVAR_MO_SEC(wepname,name) final float autocvar_g_balance_##wepname##_secondary_##name;
-#define WEP_ADD_CVAR_MO_BOTH(wepname,name) \
+#define WEP_ADD_CVAR_PRI(wepname,name) final float autocvar_g_balance_##wepname##_primary_##name;
+#define WEP_ADD_CVAR_SEC(wepname,name) final float autocvar_g_balance_##wepname##_secondary_##name;
+#define WEP_ADD_CVAR_BOTH(wepname,name) \
        final float autocvar_g_balance_##wepname##_primary_##name; \
        final float autocvar_g_balance_##wepname##_secondary_##name;
-#define WEP_ADD_CVAR_MO_NONE(wepname,name) final float autocvar_g_balance_##wepname##_##name;
+#define WEP_ADD_CVAR_NONE(wepname,name) final float autocvar_g_balance_##wepname##_##name;
 #define WEP_ADD_CVAR(wepid,wepname,mode,name) WEP_ADD_CVAR_##mode(wepname, name)
 
 // create properties for weapon settings
-#define WEP_ADD_PROP(wepid,wepname,prop,name) \
-       .float ##prop; \
-       final float autocvar_g_balance_##wepname##_##name;
+#define WEP_ADD_PROP(wepid,wepname,type,prop,name) \
+       .type ##prop; \
+       final type autocvar_g_balance_##wepname##_##name;
 
 // read cvars from weapon settings
 #define WEP_CVAR(wepname,name) autocvar_g_balance_##wepname##_##name
 #define WEP_CVAR_PRI(wepname,name) WEP_CVAR(wepname, primary_##name)
 #define WEP_CVAR_SEC(wepname,name) WEP_CVAR(wepname, secondary_##name)
-#define WEP_CVAR_BOTH(wepname,mode,name) ((mode == MO_PRI) ? WEP_CVAR_PRI(wepname, name) : WEP_CVAR_SEC(wepname, name))
+#define WEP_CVAR_BOTH(wepname,isprimary,name) ((isprimary) ? WEP_CVAR_PRI(wepname, name) : WEP_CVAR_SEC(wepname, name))
 
 // set initialization values for weapon settings
 #define WEP_SKIPCVAR(unuseda,unusedb,unusedc,unusedd) /* skip cvars */
-#define WEP_SET_PROP(wepid,wepname,prop,name) get_weaponinfo(##wepid).##prop = autocvar_g_balance_##wepname##_##name;
+#define WEP_SET_PROP(wepid,wepname,type,prop,name) get_weaponinfo(WEP_##wepid).##prop = autocvar_g_balance_##wepname##_##name;
 
 float w_null(float dummy);
-void register_weapon(float id, WepSet bit, float(float) func, float ammotype, float i, float weapontype, float pickupbasevalue, string modelname, string shortname, string wname);
+void register_weapon(float id, WepSet bit, float(float) func, .float ammotype, float i, float weapontype, float pickupbasevalue, string modelname, string shortname, string wname);
 void register_weapons_done();
 
 // note: the fabs call is just there to hide "if result is constant" warning