]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/client/wall.qc
Cleanup
[xonotic/xonotic-data.pk3dir.git] / qcsrc / client / wall.qc
index f1b250e324b2fa402f7605191149acca0a82c181..2623470c16db54e52fdd8552f86ab6a5ff0fcd37 100644 (file)
@@ -1,28 +1,35 @@
 #include "wall.qh"
 
+#include "bgmscript.qh"
+
+
+#include "../lib/csqcmodel/interpolate.qh"
+
+.float alpha;
+.float scale;
+.vector movedir;
+
 void Ent_Wall_PreDraw()
-{
+{SELFPARAM();
        if (self.inactive)
        {
                self.alpha = 0;
        }
        else
        {
-               vector org;
-               org = getpropertyvec(VF_ORIGIN);
+               vector org = getpropertyvec(VF_ORIGIN);
                if(!checkpvs(org, self))
                        self.alpha = 0;
-               else if(self.fade_start) {
-                       float player_dist = vlen(org - self.origin - 0.5 * (self.mins + self.maxs));
+               else if(self.fade_start || self.fade_end) {
+                       vector offset = '0 0 0';
+                       offset_z = self.fade_vertical_offset;
+                       float player_dist = vlen(org - self.origin - 0.5 * (self.mins + self.maxs) + offset);
                        if (self.fade_end == self.fade_start)
                        {
-                               if (player_dist >= self.fade_start) {
+                               if (player_dist >= self.fade_start)
                                        self.alpha = 0;
-                               }
                                else
-                               {
                                        self.alpha = 1;
-                               }
                        }
                        else
                        {
@@ -42,7 +49,7 @@ void Ent_Wall_PreDraw()
                self.drawmask = MASK_NORMAL;
 }
 
-void Ent_Wall_Draw()
+void Ent_Wall_Draw(entity this)
 {
        float f;
        var .vector fld;
@@ -51,7 +58,7 @@ void Ent_Wall_Draw()
                fld = angles;
        else
                fld = origin;
-       self.fld = self.saved;
+       self.(fld) = self.saved;
 
        if(self.lodmodelindex1)
        {
@@ -80,16 +87,16 @@ void Ent_Wall_Draw()
 
        InterpolateOrigin_Do();
 
-       self.saved = self.fld;
+       self.saved = self.(fld);
 
-       f = BGMScript(self);
+       f = doBGMScript(self);
        if(f >= 0)
        {
                if(self.lip < 0) // < 0: alpha goes from 1 to 1-|lip| when toggled (toggling subtracts lip)
                        self.alpha = 1 + self.lip * f;
                else // > 0: alpha goes from 1-|lip| to 1 when toggled (toggling adds lip)
                        self.alpha = 1 - self.lip * (1 - f);
-               self.fld = self.fld + self.movedir * f;
+               self.(fld) = self.(fld) + self.movedir * f;
        }
        else
                self.alpha = 1;
@@ -101,13 +108,13 @@ void Ent_Wall_Draw()
 }
 
 void Ent_Wall_Remove()
-{
+{SELFPARAM();
        if(self.bgmscript)
                strunzone(self.bgmscript);
        self.bgmscript = string_null;
 }
 
-void Ent_Wall()
+NET_HANDLE(ENT_CLIENT_WALL, bool isnew)
 {
        int f;
        var .vector fld;
@@ -119,7 +126,7 @@ void Ent_Wall()
                fld = angles;
        else
                fld = origin;
-       self.fld = self.saved;
+       self.(fld) = self.saved;
 
        f = ReadByte();
 
@@ -211,12 +218,15 @@ void Ent_Wall()
                self.alpha_max = ReadShort();
                self.alpha_min = ReadShort();
                self.inactive = ReadShort();
+               self.fade_vertical_offset = ReadShort();
                BGMScript_InitEntity(self);
        }
 
+       return = true;
+
        InterpolateOrigin_Note();
 
-       self.saved = self.fld;
+       self.saved = self.(fld);
 
        self.entremove = Ent_Wall_Remove;
        self.draw = Ent_Wall_Draw;