X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fserver%2Fweapons%2Fcommon.qh;h=1bf9261f79458f0d57f4d766f16ccf61bede7856;hb=2f553b6be14a316d31fe5c35df47c300ce6a1561;hp=840e6e54d61433334aaa9ebc2a2d3a960c9bc926;hpb=258867c634125e1d048869b4a5d8ef279e8b8228;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/server/weapons/common.qh b/qcsrc/server/weapons/common.qh index 840e6e54d..1bf9261f7 100644 --- a/qcsrc/server/weapons/common.qh +++ b/qcsrc/server/weapons/common.qh @@ -1,5 +1,10 @@ #pragma once +int autocvar_g_projectiles_damage; +bool autocvar_g_projectiles_keep_owner; +float autocvar_sv_strengthsound_antispam_refire_threshold; +float autocvar_sv_strengthsound_antispam_time; + bool W_DualWielding(entity player); void W_GiveWeapon (entity e, float wep); .float prevstrengthsound; @@ -8,6 +13,10 @@ void W_PlayStrengthSound(entity player); float W_CheckProjectileDamage(entity inflictor, entity projowner, int deathtype, float exception); void W_PrepareExplosionByDamage(entity this, entity attacker, void(entity this) explode); +void adaptor_think2use_hittype_splash(entity this); + +bool WarpZone_Projectile_Touch_ImpactFilter_Callback(entity this, entity toucher); + .float misc_bulletcounter; .int projectiledeathtype; @@ -17,6 +26,8 @@ void W_PrepareExplosionByDamage(entity this, entity attacker, void(entity this) .entity realowner; +#define PROJECTILE_TOUCH(e,t) MACRO_BEGIN if (WarpZone_Projectile_Touch(e,t)) return; MACRO_END + #define PROJECTILE_MAKETRIGGER(e) (e).solid = SOLID_CORPSE; (e).dphitcontentsmask = DPCONTENTS_SOLID | DPCONTENTS_BODY | DPCONTENTS_CORPSE // when doing this, hagar can go through clones // #define PROJECTILE_MAKETRIGGER(e) (e).solid = SOLID_BBOX @@ -33,3 +44,6 @@ const int MIF_GUIDED_TAG = BIT(7); const int MIF_GUIDED_ALL = MIF_GUIDED_MANUAL | MIF_GUIDED_HEAT | MIF_GUIDED_LASER | MIF_GUIDED_AI | MIF_GUIDED_TAG; const int MIF_GUIDED_TRACKING = MIF_GUIDED_HEAT | MIF_GUIDED_LASER | MIF_GUIDED_AI | MIF_GUIDED_TAG; const int MIF_GUIDED_CONFUSABLE = MIF_GUIDED_HEAT | MIF_GUIDED_AI; + +IntrusiveList g_projectiles; +STATIC_INIT(g_projectiles) { g_projectiles = IL_NEW(); }