Xonotic QuakeC
The free, fast arena FPS with crisp movement and a wide array of weapons
bumblebee_weapons.qc File Reference
Include dependency graph for bumblebee_weapons.qc:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

void bumble_raygun_draw (entity this)
bool bumble_raygun_send (entity this, entity to, float sf)
void bumblebee_fire_cannon (entity this, entity _gun, string _tagname, entity _owner)
 NET_HANDLE (ENT_CLIENT_BUMBLE_RAYGUN, bool isNew)

Variables

vector bumble_origin
float bumble_raygun_nextdraw

Function Documentation

◆ bumble_raygun_draw()

void bumble_raygun_draw ( entity this)

Definition at line 79 of file bumblebee_weapons.qc.

80{
81 float _len = vlen(this.origin - this.bumble_origin);
82 vector _dir = normalize(this.bumble_origin - this.origin);
83
85 {
86 entity eff = REGISTRY_GET(Effects, this.traileffect);
87 boxparticles(particleeffectnum(eff), this, this.origin, this.origin + _dir * -64, _dir * -_len, _dir * -_len, 1, PARTICLES_USEALPHA);
88 boxparticles(this.lip, this, this.bumble_origin, this.bumble_origin + _dir * -64, _dir * -200, _dir * -200, 1, PARTICLES_USEALPHA);
89 this.bumble_raygun_nextdraw = time + 0.1;
90 }
91
92 vector _vtmp1, _vtmp2;
93 float df = DRAWFLAG_NORMAL; //(random() < 0.5 ? DRAWFLAG_ADDITIVE : DRAWFLAG_SCREEN);
94 float sz, al;
95 for (float i = -0.1; i < 0.2; i += 0.1)
96 {
97 sz = 5 + random() * 5;
98 al = 0.25 + random() * 0.5;
99 _vtmp1 = this.origin + _dir * _len * (0.25 + i);
100 _vtmp1 += (randomvec() * (_len * 0.2) * (frametime * 2)); //this.raygun_l1;
101 Draw_CylindricLine(this.origin, _vtmp1, sz, "gfx/colors/white", 1, 1, this.colormod, al, df, view_origin);
102
103 _vtmp2 = this.origin + _dir * _len * (0.5 + i);
104 _vtmp2 += (randomvec() * (_len * 0.2) * (frametime * 5)); //this.raygun_l2;
105 Draw_CylindricLine(_vtmp1, _vtmp2, sz, "gfx/colors/white", 1, 1, this.colormod, al, df, view_origin);
106
107 _vtmp1 = this.origin + _dir * _len * (0.75 + i);
108 _vtmp1 += randomvec() * (_len * 0.2) * (frametime * 10); //this.raygun_l3;
109 Draw_CylindricLine(_vtmp2, _vtmp1, sz, "gfx/colors/white", 1, 1, this.colormod, al, df, view_origin);
110
111 Draw_CylindricLine(_vtmp1, this.bumble_origin + randomvec() * 32, sz, "gfx/colors/white", 1, 1, this.colormod, al, df, view_origin);
112 }
113}
vector bumble_origin
float bumble_raygun_nextdraw
var entity(vector mins, vector maxs,.entity tofield) findbox_tofield_OrFallback
vector colormod
Definition powerups.qc:21
vector view_origin
Definition main.qh:109
void Draw_CylindricLine(vector from, vector to, float thickness, string texture, float aspect, float shift, vector rgb, float theAlpha, float drawflag, vector vieworg)
Definition draw.qh:11
const float DRAWFLAG_NORMAL
float frametime
float time
vector origin
float PARTICLES_USEALPHA
#define particleeffectnum(e)
Definition effect.qh:3
float random(void)
float vlen(vector v)
vector randomvec(void)
vector normalize(vector v)
#define REGISTRY_GET(id, i)
Definition registry.qh:43
vector
Definition self.qh:92
float lip
Definition subs.qh:40

References bumble_origin, bumble_raygun_nextdraw, colormod, Draw_CylindricLine(), DRAWFLAG_NORMAL, entity(), frametime, lip, normalize(), origin, particleeffectnum, PARTICLES_USEALPHA, random(), randomvec(), REGISTRY_GET, time, vector, view_origin, and vlen().

Referenced by NET_HANDLE().

◆ bumble_raygun_send()

bool bumble_raygun_send ( entity this,
entity to,
float sf )

Definition at line 18 of file bumblebee_weapons.qc.

19{
20 WriteHeader(MSG_ENTITY, ENT_CLIENT_BUMBLE_RAYGUN);
21
23 if (sf & BRG_SETUP)
24 {
26 WriteByte(MSG_ENTITY, this.realowner.team);
28 }
29
30 if (sf & BRG_START)
31 WriteVector(MSG_ENTITY, this.hook_start);
32 if (sf & BRG_END)
33 WriteVector(MSG_ENTITY, this.hook_end);
34
35 return true;
36}
const float BRG_SETUP
Definition bumblebee.qc:9
const float BRG_START
Definition bumblebee.qc:10
const float BRG_END
Definition bumblebee.qc:11
float cnt
Definition powerups.qc:24
const int MSG_ENTITY
Definition net.qh:156
#define WriteHeader(to, id)
Definition net.qh:265
void WriteByte(float data, float dest, float desto)
#define etof(e)
Definition misc.qh:25
vector hook_start
Definition hook.qc:80
vector hook_end
Definition hook.qc:80
entity realowner

References BRG_END, BRG_SETUP, BRG_START, cnt, entity(), etof, hook_end, hook_start, MSG_ENTITY, realowner, WriteByte(), and WriteHeader.

◆ bumblebee_fire_cannon()

void bumblebee_fire_cannon ( entity this,
entity _gun,
string _tagname,
entity _owner )

Definition at line 9 of file bumblebee_weapons.qc.

10{
11 vector v = gettaginfo(_gun, gettagindex(_gun, _tagname));
12 vehicles_projectile(this, EFFECT_BIGPLASMA_MUZZLEFLASH, SND_VEH_BUMBLEBEE_FIRE,
15 DEATH_VH_BUMB_GUN.m_id, PROJECTILE_BUMBLE_GUN, 0, true, true, _owner);
16}
float autocvar_g_vehicle_bumblebee_cannon_speed
float autocvar_g_vehicle_bumblebee_cannon_radius
float autocvar_g_vehicle_bumblebee_cannon_damage
float autocvar_g_vehicle_bumblebee_cannon_force
float autocvar_g_vehicle_bumblebee_cannon_spread
vector v_forward
#define gettagindex
#define gettaginfo
Definition post.qh:32
const int PROJECTILE_BUMBLE_GUN
entity vehicles_projectile(entity this, entity _mzlfx, Sound _mzlsound, vector _org, vector _vel, float _dmg, float _radi, float _force, float _size, int _deahtype, float _projtype, float _health, bool _cull, bool _clianim, entity _owner)

References autocvar_g_vehicle_bumblebee_cannon_damage, autocvar_g_vehicle_bumblebee_cannon_force, autocvar_g_vehicle_bumblebee_cannon_radius, autocvar_g_vehicle_bumblebee_cannon_speed, autocvar_g_vehicle_bumblebee_cannon_spread, entity(), gettagindex, gettaginfo, normalize(), PROJECTILE_BUMBLE_GUN, randomvec(), v_forward, vector, and vehicles_projectile().

Referenced by bumblebee_gunner_frame().

◆ NET_HANDLE()

NET_HANDLE ( ENT_CLIENT_BUMBLE_RAYGUN ,
bool isNew )

Definition at line 45 of file bumblebee_weapons.qc.

46{
47 int sf = ReadByte();
48
49 if (sf & BRG_SETUP)
50 {
51 this.cnt = ReadByte();
52 this.team = ReadByte();
53 this.count = ReadByte();
54
55 this.colormod = (this.count ? '1 0 0' : '0 1 0');
56
57 this.traileffect = EFFECT_BUMBLEBEE_HEAL_MUZZLEFLASH.m_id;
58 this.lip = particleeffectnum(EFFECT_BUMBLEBEE_HEAL_IMPACT);
59
60 this.draw = bumble_raygun_draw;
61 if (isNew)
62 IL_PUSH(g_drawables, this);
63 }
64
65
66 if (sf & BRG_START)
67 {
68 this.origin = ReadVector();
69 setorigin(this, this.origin);
70 }
71
72 if (sf & BRG_END)
74
75 return true;
76}
void bumble_raygun_draw(entity this)
float count
Definition powerups.qc:22
IntrusiveList g_drawables
Definition main.qh:91
int team
Definition main.qh:188
ERASEABLE entity IL_PUSH(IntrusiveList this, entity it)
Push to tail.
#define ReadVector()
Definition net.qh:350
int ReadByte()

References BRG_END, BRG_SETUP, BRG_START, bumble_origin, bumble_raygun_draw(), cnt, colormod, count, g_drawables, IL_PUSH(), lip, origin, particleeffectnum, ReadByte(), ReadVector, and team.

Variable Documentation

◆ bumble_origin

vector bumble_origin

Definition at line 43 of file bumblebee_weapons.qc.

Referenced by bumble_raygun_draw(), and NET_HANDLE().

◆ bumble_raygun_nextdraw

float bumble_raygun_nextdraw

Definition at line 78 of file bumblebee_weapons.qc.

Referenced by bumble_raygun_draw().