]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/client/wall.qc
Merge remote branch 'refs/remotes/origin/fruitiex/racefixes'
[xonotic/xonotic-data.pk3dir.git] / qcsrc / client / wall.qc
index d04ab8eb3649a095f7ea90b172430dcbd48f277e..f53c60f0c3e1a89fdd1b000956f4e53eaa2ef8ee 100644 (file)
@@ -2,14 +2,19 @@
 .float bgmscriptangular;
 .float lodmodelindex0, lodmodelindex1, lodmodelindex2;
 .float loddistance1, loddistance2;
+.vector saved;
 
 void Ent_Wall_Draw()
 {
        float f;
        float d;
-       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 +42,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 +59,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 +77,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 +170,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;
 }