From a090db7b58f8721e8344516bd896db69050a48d0 Mon Sep 17 00:00:00 2001 From: Rudolf Polzer Date: Fri, 15 Oct 2010 18:43:20 +0200 Subject: [PATCH] speed up more csqc ent drawing --- qcsrc/client/Main.qc | 7 +++++-- qcsrc/client/casings.qc | 6 ++++-- qcsrc/client/gibs.qc | 6 ++++-- qcsrc/client/modeleffects.qc | 5 ++++- qcsrc/client/projectile.qc | 2 +- 5 files changed, 18 insertions(+), 8 deletions(-) diff --git a/qcsrc/client/Main.qc b/qcsrc/client/Main.qc index 780609d5a..f916e843a 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 e8e3073b8..348e4a1a6 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 f395fb6a7..78826f8f3 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 765257732..1b5465349 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 7e44a726c..fb07b21b8 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) -- 2.39.2