const float WR_RELOAD = 9; // (SERVER) handles reloading for weapon
const float WR_RESETPLAYER = 10; // (SERVER) clears fields that the weapon may use
const float WR_IMPACTEFFECT = 11; // (CLIENT) impact effect for weapon explosion
-const float WR_SWITCHABLE = 12; // (CLIENT) decides whether the player is able to switch away from this weapon
-const float WR_PLAYERDEATH = 13; // (SERVER) called whenever a player dies
-const float WR_GONETHINK = 14; // (SERVER) logic to run when weapon is lost/switched away from
-const float WR_CONFIG = 15; // (ALL) dump weapon cvars to config in data directory (see: sv_cmd dumpweapons)
-const float WR_ZOOMRETICLE = 16; // (CLIENT) weapon specific zoom reticle
+const float WR_PLAYERDEATH = 12; // (SERVER) called whenever a player dies
+const float WR_GONETHINK = 13; // (SERVER) logic to run when weapon is lost
+const float WR_CONFIG = 14; // (ALL) dump weapon cvars to config in data directory (see: sv_cmd dumpweapons)
+const float WR_ZOOMRETICLE = 15; // (CLIENT) weapon specific zoom reticle
+const float WR_DROP = 16; // (SERVER) the weapon is dropped
+const float WR_PICKUP = 17; // (SERVER) a weapon is picked up
// variables:
string weaponorder_byid;
string W_FixWeaponOrder_ForceComplete(string order);
void W_RandomWeapons(entity e, float n);
+string GetAmmoPicture(.float ammotype);
+
#ifdef CSQC
.float GetAmmoFieldFromNum(float i);
-string GetAmmoPicture(.float ammotype);
float GetAmmoStat(.float ammotype);
#endif
.float ammo_nails;
.float ammo_rockets;
.float ammo_cells;
+.float ammo_plasma;
.float ammo_fuel;
.float ammo_none;
// create properties for weapon settings
#define WEP_ADD_PROP(wepid,wepname,type,prop,name) \
- .type ##prop; \
+ .type prop; \
[[last]] type autocvar_g_balance_##wepname##_##name;
// read cvars from weapon settings
float weapontype,
float pickupbasevalue,
vector clr,
- string firstpmdl,
- string thirdpmdl,
- string pickupmdl,
+ string modelname,
string simplemdl,
string crosshair,
+ string wepimg,
string refname,
string wepname);
.float bot_pickupbasevalue; // M: rating // bot weapon priority
.vector wpcolor; // M: color // waypointsprite color
.string wpmodel; // A: wpn-id // wpn- sprite name
-.string model; // M: firstpmdl // first person view weapon model (h_)
-.string model2; // M: thirdpmdl // third person weapon model (v_)
-.string model3; // M: pickupmdl // pickup weapon model (g_)
-.string mdl; // M: simplemdl // simpleitems weapon model/image
+.string mdl; // M: modelname // name of model (without g_ v_ or h_ prefixes)
+.string model; // A: modelname // full path to g_ model
+.string w_simplemdl; // M: simplemdl // simpleitems weapon model/image
.string w_crosshair; // M: crosshair // per-weapon crosshair: "CrosshairImage Size"
.float w_crosshair_size; // A: crosshair // per-weapon crosshair size (argument two of "crosshair" field)
+.string model2; // M: wepimg // "weaponfoobar" side view image file of weapon // WEAPONTODO: Move out of skin files, move to common files
.string netname; // M: refname // reference name name
.string message; // M: wepname // human readable name
// note: the fabs call is just there to hide "if result is constant" warning
-#define REGISTER_WEAPON_2(id,bit,function,ammotype,impulse,flags,rating,color,firstpmdl,thirdpmdl,pickupmdl,simplemdl,crosshair,refname,wepname) \
+#define REGISTER_WEAPON_2(id,bit,function,ammotype,impulse,flags,rating,color,modelname,simplemdl,crosshair,wepimg,refname,wepname) \
float id; \
WepSet bit; \
float function(float); \
if((flags) & WEP_FLAG_SUPERWEAPON) \
WEPSET_SUPERWEAPONS |= bit; \
++WEP_COUNT; \
- register_weapon(id,bit,function,ammotype,impulse,flags,rating,color,firstpmdl,thirdpmdl,pickupmdl,simplemdl,crosshair,refname,wepname); \
+ register_weapon(id,bit,function,ammotype,impulse,flags,rating,color,modelname,simplemdl,crosshair,wepimg,refname,wepname); \
} \
ACCUMULATE_FUNCTION(RegisterWeapons, RegisterWeapons_##id)
#ifdef MENUQC
-#define REGISTER_WEAPON(id,function,ammotype,impulse,flags,rating,color,firstpmdl,thirdpmdl,pickupmdl,simplemdl,crosshair,refname,wepname) \
- REGISTER_WEAPON_2(WEP_##id,WEPSET_##id,w_null,ammotype,impulse,flags,rating,color,firstpmdl,thirdpmdl,pickupmdl,simplemdl,crosshair,refname,wepname)
+#define REGISTER_WEAPON(id,function,ammotype,impulse,flags,rating,color,modelname,simplemdl,crosshair,wepimg,refname,wepname) \
+ REGISTER_WEAPON_2(WEP_##id,WEPSET_##id,w_null,ammotype,impulse,flags,rating,color,modelname,simplemdl,crosshair,wepimg,refname,wepname)
#else
-#define REGISTER_WEAPON(id,function,ammotype,impulse,flags,rating,color,firstpmdl,thirdpmdl,pickupmdl,simplemdl,crosshair,refname,wepname) \
- REGISTER_WEAPON_2(WEP_##id,WEPSET_##id,function,ammotype,impulse,flags,rating,color,firstpmdl,thirdpmdl,pickupmdl,simplemdl,crosshair,refname,wepname)
+#define REGISTER_WEAPON(id,function,ammotype,impulse,flags,rating,color,modelname,simplemdl,crosshair,wepimg,refname,wepname) \
+ REGISTER_WEAPON_2(WEP_##id,WEPSET_##id,function,ammotype,impulse,flags,rating,color,modelname,simplemdl,crosshair,wepimg,refname,wepname)
#endif
#include "all.qh"