From: Rudolf Polzer Date: Fri, 15 Oct 2010 16:43:20 +0000 (+0200) Subject: speed up more csqc ent drawing X-Git-Tag: xonotic-v0.1.0preview~302 X-Git-Url: http://de.git.xonotic.org/?p=xonotic%2Fxonotic-data.pk3dir.git;a=commitdiff_plain;h=a090db7b58f8721e8344516bd896db69050a48d0;ds=sidebyside speed up more csqc ent drawing --- diff --git a/qcsrc/client/Main.qc b/qcsrc/client/Main.qc index 780609d5a9..f916e843af 100644 --- a/qcsrc/client/Main.qc +++ b/qcsrc/client/Main.qc @@ -440,7 +440,9 @@ void ShotOrg_Draw() self.angles = view_angles; self.angles_x = -self.angles_x; if not(self.cnt) - R_AddEntity(self); + self.drawmask = MASK_NORMAL; + else + self.drawmask = 0; } void ShotOrg_Draw2D() { @@ -487,11 +489,12 @@ void DrawDebugModel() if(time - floor(time) > 0.5) { PolyDrawModel(self); + self.drawmask = 0; } else { self.renderflags = 0; - R_AddEntity(self); + self.drawmask = MASK_NORMAL; } } diff --git a/qcsrc/client/casings.qc b/qcsrc/client/casings.qc index e8e3073b80..348e4a1a6e 100644 --- a/qcsrc/client/casings.qc +++ b/qcsrc/client/casings.qc @@ -20,9 +20,10 @@ void Casing_Draw() self.alpha = bound(0, self.cnt - time, 1); if(self.alpha < ALPHA_MIN_VISIBLE) + { Casing_Delete(); - else - R_AddEntity(self); + self.drawmask = 0; + } } void Casing_Touch() @@ -85,6 +86,7 @@ void Ent_Casing(float isNew) casing.angles_x = ReadByte() * 360 / 256; casing.angles_y = ReadByte() * 360 / 256; casing.angles_z = ReadByte() * 360 / 256; + casing.drawmask = MASK_NORMAL; if(cvar("cl_casings") && isNew) { casing.draw = Casing_Draw; diff --git a/qcsrc/client/gibs.qc b/qcsrc/client/gibs.qc index f395fb6a7b..78826f8f34 100644 --- a/qcsrc/client/gibs.qc +++ b/qcsrc/client/gibs.qc @@ -97,9 +97,10 @@ void Gib_Draw() self.alpha = bound(0, self.nextthink - time, 1); if(self.alpha < ALPHA_MIN_VISIBLE) + { + self.drawmask = 0; Gib_Delete(); - else - R_AddEntity(self); + } } void TossGib (string mdlname, vector org, vector vconst, vector vrand, float specnum, float destroyontouch, float issilent) @@ -130,6 +131,7 @@ void TossGib (string mdlname, vector org, vector vconst, vector vrand, float spe gib.damageforcescale = cvar_or("cl_gibs_damageforcescale", 3.5); gib.nextthink = time + cvar_or("cl_gibs_lifetime", 14) * (1 + prandom() * 0.15); + gib.drawmask = MASK_NORMAL; RubbleLimit("gib", cvar_or("cl_gibs_maxcount",100), Gib_Delete); } diff --git a/qcsrc/client/modeleffects.qc b/qcsrc/client/modeleffects.qc index 7652577321..1b54653491 100644 --- a/qcsrc/client/modeleffects.qc +++ b/qcsrc/client/modeleffects.qc @@ -14,9 +14,12 @@ void ModelEffect_Draw() remove(self); return; } + self.drawmask = MASK_NORMAL; if(self.scale <= 0) + { + self.drawmask = 0; return; - R_AddEntity(self); + } } void Ent_ModelEffect(float isNew) diff --git a/qcsrc/client/projectile.qc b/qcsrc/client/projectile.qc index 7e44a726c1..fb07b21b8f 100644 --- a/qcsrc/client/projectile.qc +++ b/qcsrc/client/projectile.qc @@ -154,7 +154,7 @@ void Projectile_Draw() break; } - self.drawmask = DRAWMASK_NORMAL; + self.drawmask = MASK_NORMAL; } void loopsound(entity e, float ch, string samp, float vol, float attn)