/** control what happens when this weapon is spawned */
METHOD(Weapon, m_spawnfunc_hookreplace, Weapon(Weapon this, entity e)) { return this; }
/** M: ammotype : main ammo type */
/** control what happens when this weapon is spawned */
METHOD(Weapon, m_spawnfunc_hookreplace, Weapon(Weapon this, entity e)) { return this; }
/** M: ammotype : main ammo type */
- ATTRIB(Weapon, ammo_type, int, RES_NONE);
+ ATTRIB(Weapon, ammo_type, Resource, RES_NONE);
/** M: impulse : weapon impulse */
ATTRIB(Weapon, impulse, int, -1);
/** M: flags : WEPSPAWNFLAG_... combined */
/** M: impulse : weapon impulse */
ATTRIB(Weapon, impulse, int, -1);
/** M: flags : WEPSPAWNFLAG_... combined */
spawnfunc(name) { weapon_defaultspawnfunc(this, weapon); }
#define SPAWNFUNC_WEAPON_COND(name, cond, wep1, wep2) \
spawnfunc(name) { weapon_defaultspawnfunc(this, weapon); }
#define SPAWNFUNC_WEAPON_COND(name, cond, wep1, wep2) \
string W_FixWeaponOrder_ForceComplete(string order);
WepSet W_RandomWeapons(entity e, WepSet remaining, int n);
string W_FixWeaponOrder_ForceComplete(string order);
WepSet W_RandomWeapons(entity e, WepSet remaining, int n);