X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fcommon%2Fweapons%2Fweapon.qh;h=4de39db1772f31ab462467f55a0b76e9f3eeb3ec;hb=10248a1517a8876bb1ed3761156c3a82b8d3d1a9;hp=ccb71154e5b3dd95d7d7a162dff8784b12880d68;hpb=f1a87492d9fed27a64d0e99c068705aba5509f26;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/common/weapons/weapon.qh b/qcsrc/common/weapons/weapon.qh index ccb71154e..4de39db17 100644 --- a/qcsrc/common/weapons/weapon.qh +++ b/qcsrc/common/weapons/weapon.qh @@ -1,7 +1,11 @@ #ifndef WEAPON_H #define WEAPON_H -#include "../items/item/pickup.qh" -#include "../stats.qh" +#include +#include + +#ifdef SVQC +#include +#endif const int MAX_WEAPONSLOTS = 2; .entity weaponentities[MAX_WEAPONSLOTS]; @@ -81,31 +85,31 @@ CLASS(Weapon, Object) ATTRIB(Weapon, m_pickup, entity, NULL); /** (SERVER) setup weapon data */ - METHOD(Weapon, wr_setup, void(Weapon this)) {} + METHOD(Weapon, wr_setup, void(Weapon this, entity actor)) {} /** (SERVER) logic to run every frame */ METHOD(Weapon, wr_think, void(Weapon this, entity actor, .entity weaponentity, int fire)) {} /** (SERVER) checks ammo for weapon primary */ - METHOD(Weapon, wr_checkammo1, bool(Weapon this)) {return false;} + METHOD(Weapon, wr_checkammo1, bool(Weapon this, entity actor)) {return false;} /** (SERVER) checks ammo for weapon second */ - METHOD(Weapon, wr_checkammo2, bool(Weapon this)) {return false;} + METHOD(Weapon, wr_checkammo2, bool(Weapon this, entity actor)) {return false;} /** (SERVER) runs bot aiming code for this weapon */ - METHOD(Weapon, wr_aim, void(Weapon this)) {} + METHOD(Weapon, wr_aim, void(Weapon this, entity actor)) {} /** (BOTH) precaches models/sounds used by this weapon, also sets up weapon properties */ METHOD(Weapon, wr_init, void(Weapon this)) {} /** (SERVER) notification number for suicide message (may inspect w_deathtype for details) */ - METHOD(Weapon, wr_suicidemessage, int(Weapon this)) {return 0;} + METHOD(Weapon, wr_suicidemessage, entity(Weapon this)) {return NULL;} /** (SERVER) notification number for kill message (may inspect w_deathtype for details) */ - METHOD(Weapon, wr_killmessage, int(Weapon this)) {return 0;} + METHOD(Weapon, wr_killmessage, entity(Weapon this)) {return NULL;} /** (SERVER) handles reloading for weapon */ - METHOD(Weapon, wr_reload, void(Weapon this)) {} + METHOD(Weapon, wr_reload, void(Weapon this, entity actor, .entity weaponentity)) {} /** (SERVER) clears fields that the weapon may use */ - METHOD(Weapon, wr_resetplayer, void(Weapon this)) {} + METHOD(Weapon, wr_resetplayer, void(Weapon this, entity actor)) {} /** (CLIENT) impact effect for weapon explosion */ - METHOD(Weapon, wr_impacteffect, void(Weapon this)) {} + METHOD(Weapon, wr_impacteffect, void(Weapon this, entity actor)) {} /** (SERVER) called whenever a player dies */ - METHOD(Weapon, wr_playerdeath, void(Weapon this)) {} + METHOD(Weapon, wr_playerdeath, void(Weapon this, entity actor)) {} /** (SERVER) logic to run when weapon is lost */ - METHOD(Weapon, wr_gonethink, void(Weapon this)) {} + METHOD(Weapon, wr_gonethink, void(Weapon this, entity actor)) {} /** (ALL) dump weapon cvars to config in data directory (see: sv_cmd dumpweapons) */ METHOD(Weapon, wr_config, void(Weapon this)) {} /** (CLIENT) weapon specific zoom reticle */ @@ -116,9 +120,9 @@ CLASS(Weapon, Object) /** (CLIENT) weapon specific glow */ METHOD(Weapon, wr_glow, vector(Weapon this)) { return '0 0 0'; } /** (SERVER) the weapon is dropped */ - METHOD(Weapon, wr_drop, void(Weapon this)) {} + METHOD(Weapon, wr_drop, void(Weapon this, entity actor)) {} /** (SERVER) a weapon is picked up */ - METHOD(Weapon, wr_pickup, void(Weapon this)) {} + METHOD(Weapon, wr_pickup, void(Weapon this, entity actor)) {} /** (SERVER) update cvar based properties */ METHOD(Weapon, wr_update, void(Weapon this)) {} METHOD(Weapon, display, void(entity this, void(string name, string icon) returns)) { @@ -126,7 +130,7 @@ CLASS(Weapon, Object) } ENDCLASS(Weapon) -#include "../items/all.qh" +#include CLASS(WeaponPickup, Pickup) ATTRIB(WeaponPickup, m_weapon, Weapon, NULL) ATTRIB(WeaponPickup, m_name, string, string_null) @@ -197,7 +201,7 @@ string W_UndeprecateName(string s); string W_NameWeaponOrder(string order); string W_NumberWeaponOrder(string order); string W_FixWeaponOrder_BuildImpulseList(string o); -string W_FixWeaponOrder_AllowIncomplete(string order); +string W_FixWeaponOrder_AllowIncomplete(entity this, string order); string W_FixWeaponOrder_ForceComplete(string order); void W_RandomWeapons(entity e, float n);