Xonotic QuakeC
The free, fast arena FPS with crisp movement and a wide array of weapons
common.qh
Go to the documentation of this file.
1#pragma once
2
8
9bool W_DualWielding(entity player);
10void W_GiveWeapon (entity e, float wep);
11void W_PlayStrengthSound(entity player);
12float W_CheckProjectileDamage(entity inflictor, entity projowner, int deathtype, float exception);
13void W_PrepareExplosionByDamage(entity this, entity attacker, void(entity this) explode);
14
16
18
20
22
23.float fade_time;
24.float fade_rate;
25
26.entity realowner;
27
28#define PROJECTILE_TOUCH(e,t) MACRO_BEGIN if (WarpZone_Projectile_Touch(e,t)) return; MACRO_END
29
30// FIXME: some behaviours can't be achieved or would require kludges in physics code,
31// eg we can't make electro bolts hit electro orbs only (without causing other problems) when g_projectiles_interact == 1,
32// see also WarpZone_Projectile_Touch_ImpactFilter_Callback().
33// Ideally, extend engine to support any combination of 'hit a and b but not x or y' and 'take hits from c and d but not w or z'.
34#define PROJECTILE_MAKETRIGGER(e) \
35MACRO_BEGIN \
36 (e).solid = SOLID_CORPSE; \
37 (e).dphitcontentsmask = DPCONTENTS_SOLID | DPCONTENTS_BODY | DPCONTENTS_CORPSE; \
38 if (!autocvar_g_projectiles_interact || (autocvar_g_projectiles_interact == 1 && (e).classname != "blasterbolt")) \
39 (e).clipgroup = FL_PROJECTILE; \
40MACRO_END
41
42// when doing this, hagar can go through clones
43// #define PROJECTILE_MAKETRIGGER(e) (e).solid = SOLID_BBOX
44
46const int MIF_SPLASH = BIT(1);
47const int MIF_ARC = BIT(2);
48const int MIF_PROXY = BIT(3);
49const int MIF_GUIDED_MANUAL = BIT(4);
50const int MIF_GUIDED_HEAT = BIT(5);
51const int MIF_GUIDED_LASER = BIT(6);
52const int MIF_GUIDED_AI = BIT(7);
53const int MIF_GUIDED_TAG = BIT(7);
57
#define BIT(n)
Only ever assign into the first 24 bits in QC (so max is BIT(23)).
Definition bits.qh:8
var entity(vector mins, vector maxs,.entity tofield) findbox_tofield_OrFallback
limitations: NULL cannot be present elements can only be present once a maximum of IL_MAX lists can e...
#define IL_NEW()
fade_rate
Definition projectile.qh:14
entity entity toucher
Definition self.qh:72
float autocvar_sv_strengthsound_antispam_refire_threshold
Definition common.qh:6
float W_CheckProjectileDamage(entity inflictor, entity projowner, int deathtype, float exception)
Definition common.qc:45
bool WarpZone_Projectile_Touch_ImpactFilter_Callback(entity this, entity toucher)
Definition common.qc:151
void W_PlayStrengthSound(entity player)
Definition common.qc:40
const int MIF_SPLASH
Definition common.qh:46
int projectiledeathtype
Definition common.qh:21
const int MIF_GUIDED_ALL
Definition common.qh:54
const int MIF_GUIDED_TRACKING
Definition common.qh:55
void W_PrepareExplosionByDamage(entity this, entity attacker, void(entity this) explode)
Definition common.qc:87
int missile_flags
Definition common.qh:45
const int MIF_GUIDED_HEAT
Definition common.qh:50
float fade_time
Definition common.qh:23
IntrusiveList g_projectiles
Definition common.qh:58
const int MIF_PROXY
Definition common.qh:48
const int MIF_GUIDED_TAG
Definition common.qh:53
const int MIF_ARC
Definition common.qh:47
const int MIF_GUIDED_LASER
Definition common.qh:51
float autocvar_sv_strengthsound_antispam_time
Definition common.qh:7
const int MIF_GUIDED_AI
Definition common.qh:52
bool autocvar_g_projectiles_keep_owner
Definition common.qh:5
const int MIF_GUIDED_CONFUSABLE
Definition common.qh:56
void W_GiveWeapon(entity e, float wep)
float misc_bulletcounter
Definition common.qh:19
int autocvar_g_projectiles_damage
Definition common.qh:3
int autocvar_g_projectiles_interact
Definition common.qh:4
const int MIF_GUIDED_MANUAL
Definition common.qh:49
void adaptor_think2use_hittype_splash(entity this)
Definition common.qc:106
bool W_DualWielding(entity player)
Definition common.qc:20
#define STATIC_INIT(func)
during worldspawn
Definition static.qh:32
entity realowner