From ea518929abe1464fba476eb7010698d93a5d5b6f Mon Sep 17 00:00:00 2001 From: Rudolf Polzer Date: Thu, 14 Oct 2010 13:22:21 +0200 Subject: [PATCH] cheaper clientmodel draw code --- qcsrc/client/wall.qc | 29 ++++++++++++++++++++++------- 1 file changed, 22 insertions(+), 7 deletions(-) diff --git a/qcsrc/client/wall.qc b/qcsrc/client/wall.qc index d04ab8eb3..1c30f4eec 100644 --- a/qcsrc/client/wall.qc +++ b/qcsrc/client/wall.qc @@ -2,6 +2,7 @@ .float bgmscriptangular; .float lodmodelindex0, lodmodelindex1, lodmodelindex2; .float loddistance1, loddistance2; +.vector saved; void Ent_Wall_Draw() { @@ -10,6 +11,11 @@ void Ent_Wall_Draw() vector save; var .vector fld; + if(self.bgmscriptangular) + self.angles = self.saved; + else + self.origin = self.saved; + if(self.lodmodelindex1) { d = cvar("loddebug"); @@ -37,11 +43,10 @@ void Ent_Wall_Draw() InterpolateOrigin_Do(); if(self.bgmscriptangular) - fld = angles; + self.saved = self.angles; else - fld = origin; - - save = self.fld; + self.saved = self.origin; + f = BGMScript(self); if(f >= 0) { @@ -55,9 +60,9 @@ void Ent_Wall_Draw() self.alpha = 1; if(self.alpha >= ALPHA_MIN_VISIBLE) - R_AddEntity(self); - - self.fld = save; + self.drawmask = MASK_NORMAL; + else + self.drawmask = 0; } void Ent_Wall_Remove() @@ -73,6 +78,11 @@ void Ent_Wall() InterpolateOrigin_Undo(); self.iflags = IFLAG_ANGLES; + if(self.bgmscriptangular) + self.angles = self.saved; + else + self.origin = self.saved; + f = ReadByte(); if(f & 1) @@ -161,6 +171,11 @@ void Ent_Wall() InterpolateOrigin_Note(); + if(self.bgmscriptangular) + self.saved = self.angles; + else + self.saved = self.origin; + self.entremove = Ent_Wall_Remove; self.draw = Ent_Wall_Draw; } -- 2.39.2