-.float silent;
+#if defined(CSQC)
+ #include "../dpdefs/csprogsdefs.qh"
+ #include "defs.qh"
+ #include "../common/constants.qh"
+ #include "../common/util.qh"
+ #include "../common/buffs.qh"
+ #include "autocvars.qh"
+ #include "movetypes.qh"
+ #include "prandom.qh"
+ #include "main.qh"
+ #include "../csqcmodellib/cl_model.qh"
+ #include "../server/t_items.qh"
+#elif defined(MENUQC)
+#elif defined(SVQC)
+#endif
+
+.bool silent;
void Gib_Delete()
{
remove(self);
}
-string species_prefix(float specnum)
+string species_prefix(int specnum)
{
switch(specnum)
{
}
}
-void Gib_setmodel(entity gib, string mdlname, float specnum)
+void Gib_setmodel(entity gib, string mdlname, int specnum)
{
switch(specnum)
{
}
}
-void new_te_bloodshower (float ef, vector org, float explosionspeed, float howmany)
+void new_te_bloodshower (int ef, vector org, float explosionspeed, int howmany)
{
float i, pmod;
pmod = autocvar_cl_particles_quality;
}
if(!self.silent)
- sound(self, CH_PAIN, strcat("misc/gib_splat0", ftos(floor(prandom() * 4 + 1)), ".wav"), VOL_BASE, ATTN_NORM);
+ sound(self, CH_PAIN, strcat("misc/gib_splat0", ftos(floor(prandom() * 4 + 1)), ".wav"), VOL_BASE, ATTEN_NORM);
pointparticles(particleeffectnum(strcat(species_prefix(self.cnt), "blood")), self.origin + '0 0 1', '0 0 30', 10);
Gib_Delete();
}
}
-void TossGib (string mdlname, vector safeorg, vector org, vector vconst, vector vrand, float specnum, float destroyontouch, float issilent)
+void TossGib (string mdlname, vector safeorg, vector org, vector vconst, vector vrand, int specnum, bool destroyontouch, bool issilent)
{
entity gib;
org = trace_endpos;
}
- gib.move_origin = gib.origin = org;
+ gib.move_origin = org;
+ setorigin(gib, org);
gib.move_velocity = vconst * autocvar_cl_gibs_velocity_scale + vrand * autocvar_cl_gibs_velocity_random + '0 0 1' * autocvar_cl_gibs_velocity_up;
gib.move_avelocity = prandomvec() * vlen(gib.move_velocity) * autocvar_cl_gibs_avelocity_scale;
gib.move_time = time;
RubbleLimit("gib", autocvar_cl_gibs_maxcount, Gib_Delete);
}
-void Ent_GibSplash(float isNew)
+void Ent_GibSplash(bool isNew)
{
- float amount, type, specnum;
+ int amount, type, specnum;
vector org, vel;
string specstr;
- float issilent;
- string gentle_prefix;
+ bool issilent;
+ string gentle_prefix = "morphed_";
- float c, randomvalue;
+ float randomvalue;
+ int c;
type = ReadByte(); // gibbage type
amount = ReadByte() / 16.0; // gibbage amount
{
if(cl_gentle_gibs == 2)
gentle_prefix = "";
- else if(cl_gentle_gibs == 3)
+ else if(cl_gentle_gibs == 3)
gentle_prefix = "happy_";
- else
- gentle_prefix = "morphed_";
}
else if(autocvar_cl_particlegibs)
{
gentle_prefix = "particlegibs_";
}
- if not(cl_gentle_gibs || autocvar_cl_gentle)
+ if (!(cl_gentle_gibs || autocvar_cl_gentle))
amount *= 1 - autocvar_cl_nogibs;
if(autocvar_ekg)
if(amount <= 0 || !isNew)
return;
- self.origin = org; // for the sounds
+ setorigin(self, org); // for the sounds
specnum = (type & 0x78) / 8; // blood/gibmodel type: using four bits (0..7, bit indexes 3,4,5)
issilent = (type & 0x40);
{
case 0x01:
if(!issilent)
- sound (self, CH_PAIN, "misc/gib.wav", VOL_BASE, ATTN_NORM);
+ sound (self, CH_PAIN, "misc/gib.wav", VOL_BASE, ATTEN_NORM);
if(prandom() < amount)
TossGib ("models/gibs/eye.md3", org, org, vel, prandomvec() * 150, specnum, 0, issilent);