]> icculus.org git repositories - divverent/nexuiz.git/blob - data/qcsrc/server/g_violence.qc
Reverted the changes in tracewalk calls introduced in r6891 as it breaks the CTF...
[divverent/nexuiz.git] / data / qcsrc / server / g_violence.qc
1 float Violence_GibSplash_SendEntity(entity to, float sf)
2 {
3         WriteByte(MSG_ENTITY, ENT_CLIENT_GIBSPLASH);
4         WriteByte(MSG_ENTITY, self.state); // actually type
5         WriteByte(MSG_ENTITY, bound(1, self.cnt * 16, 255)); // gibbage amount multiplier
6         WriteShort(MSG_ENTITY, floor(self.origin_x / 4)); // not using a coord here, as gibs don't need this accuracy
7         WriteShort(MSG_ENTITY, floor(self.origin_y / 4)); // not using a coord here, as gibs don't need this accuracy
8         WriteShort(MSG_ENTITY, floor(self.origin_z / 4)); // not using a coord here, as gibs don't need this accuracy
9         WriteShort(MSG_ENTITY, self.oldorigin_x); // acrually compressed velocity
10         return TRUE;
11 }
12
13 // TODO maybe convert this to a TE?
14 void Violence_GibSplash_At(vector org, vector dir, float type, float amount)
15 {
16         entity e;
17
18         e = spawn();
19         e.classname = "gibsplash";
20         e.cnt = amount;
21         e.state = type; // should stay smaller than 15
22         if(sv_gentle)
23                 e.state |= 0x80; // "force gentle" bit
24         e.state |= 8 * self.species; // gib type, ranges from 0 to 15
25         setorigin(e, org);
26         e.velocity = dir;
27
28         e.oldorigin_x = compressShortVector(e.velocity);
29
30         Net_LinkEntity(e, FALSE, 0.2, Violence_GibSplash_SendEntity);
31 }
32
33 void Violence_GibSplash(entity source, float type, float amount)
34 {
35         Violence_GibSplash_At(source.origin + source.view_ofs, source.velocity, type, amount);
36 }