- vector org;
- org = getpropertyvec(VF_ORIGIN);
- if(!checkpvs(org, self))
- self.alpha = 0;
- else if(self.fade_start) {
- self.alpha = self.alpha_max / 100.0 * bound(0,
- (self.fade_end - vlen(org - self.origin - 0.5 * (self.mins + self.maxs)))
- / (self.fade_end - self.fade_start), 1);
+ vector org = getpropertyvec(VF_ORIGIN);
+ if(!checkpvs(org, this))
+ this.alpha = 0;
+ else if(this.fade_start || this.fade_end) {
+ vector offset = '0 0 0';
+ offset_z = this.fade_vertical_offset;
+ float player_dist = vlen(org - this.origin - 0.5 * (this.mins + this.maxs) + offset);
+ if (this.fade_end == this.fade_start)
+ {
+ if (player_dist >= this.fade_start)
+ this.alpha = 0;
+ else
+ this.alpha = 1;
+ }
+ else
+ {
+ this.alpha = (this.alpha_min + this.alpha_max * bound(0,
+ (this.fade_end - player_dist)
+ / (this.fade_end - this.fade_start), 1)) / 100.0;
+ }