3 void Ent_Antiwall_PreDraw()
9 org = getpropertyvec(VF_ORIGIN);
10 if(!checkpvs(org, self))
12 else if(self.fade_start) {
13 self.alpha = self.alpha_max / 100.0 * bound(0,
14 (self.fade_end - vlen(org - self.origin - 0.5 * (self.mins + self.maxs)))
15 / (self.fade_end - self.fade_start), 1);
23 self.drawmask = MASK_NORMAL;
26 void Ent_Antiwall_Draw()
30 if(self.lodmodelindex1)
32 if(autocvar_cl_modeldetailreduction <= 0)
34 if(self.lodmodelindex2 && autocvar_cl_modeldetailreduction <= -2)
35 self.modelindex = self.lodmodelindex2;
36 else if(autocvar_cl_modeldetailreduction <= -1)
37 self.modelindex = self.lodmodelindex1;
39 self.modelindex = self.lodmodelindex0;
43 float distance = vlen(NearestPointOnBox(self, view_origin) - view_origin);
44 f = (distance * current_viewzoom + 100.0) * autocvar_cl_modeldetailreduction;
45 f *= 1.0 / bound(0.01, view_quality, 1);
46 if(self.lodmodelindex2 && f > self.loddistance2)
47 self.modelindex = self.lodmodelindex2;
48 else if(f > self.loddistance1)
49 self.modelindex = self.lodmodelindex1;
51 self.modelindex = self.lodmodelindex0;
55 InterpolateOrigin_Do();
58 void Ent_Antiwall_Remove()
66 InterpolateOrigin_Undo();
67 self.iflags = IFLAG_ANGLES | IFLAG_ORIGIN;
74 self.colormap = ReadShort();
81 self.origin_x = ReadCoord();
82 self.origin_y = ReadCoord();
83 self.origin_z = ReadCoord();
84 setorigin(self, self.origin);
91 self.angles_x = ReadAngle();
92 self.angles_y = ReadAngle();
93 self.angles_z = ReadAngle();
96 self.angles = '0 0 0';
103 self.lodmodelindex0 = ReadShort();
104 self.loddistance1 = ReadShort();
105 self.lodmodelindex1 = ReadShort();
106 self.loddistance2 = ReadShort();
107 self.lodmodelindex2 = ReadShort();
111 self.modelindex = ReadShort();
112 self.loddistance1 = 0;
113 self.loddistance2 = 0;
115 self.scale = ReadShort() / 256.0;
118 self.mins_x = ReadCoord();
119 self.mins_y = ReadCoord();
120 self.mins_z = ReadCoord();
121 self.maxs_x = ReadCoord();
122 self.maxs_y = ReadCoord();
123 self.maxs_z = ReadCoord();
126 self.mins = self.maxs = '0 0 0';
127 setsize(self, self.mins, self.maxs);
129 self.fade_start = ReadShort();
130 self.fade_end = ReadShort();
131 self.alpha_max = ReadShort();
132 self.inactive = ReadShort();
133 self.solid = ReadByte();
134 self.illusion = ReadShort();
135 if (!self.fade_start) {
136 self.fade_start = 50;
138 if (!self.fade_end) {
141 if (!self.alpha_max) {
145 InterpolateOrigin_Note();
147 self.entremove = Ent_Antiwall_Remove;
148 self.draw = Ent_Antiwall_Draw;
149 self.predraw = Ent_Antiwall_PreDraw;