void WarpZone_Fade_PreDraw()
{
if(self.warpzone_fadestart)
- self.alpha = (self.warpzone_fadeend - vlen(view_origin - self.origin)) / (self.warpzone_fadeend - self.warpzone_fadestart);
+ self.alpha = bound(0, (self.warpzone_fadeend - vlen(view_origin - self.origin - 0.5 * (self.mins + self.maxs))) / (self.warpzone_fadeend - self.warpzone_fadestart), 1);
else
self.alpha = 1;
+ //print(sprintf("%v <-> %v\n", view_origin, self.origin + 0.5 * (self.mins + self.maxs)));
if(self.alpha <= 0)
self.drawmask = 0;
else
{
float f;
- ++warpzone_warpzones_exist;
+ warpzone_warpzones_exist = 1;
if not(self.enemy)
{
self.enemy = spawn();
f = ReadByte();
self.warpzone_isboxy = (f & 1);
- self.origin_x = ReadCoord();
- self.origin_y = ReadCoord();
- self.origin_z = ReadCoord();
+ if(f & 4)
+ {
+ self.origin_x = ReadCoord();
+ self.origin_y = ReadCoord();
+ self.origin_z = ReadCoord();
+ }
+ else
+ self.origin = '0 0 0';
self.modelindex = ReadShort();
self.mins_x = ReadCoord();
self.mins_y = ReadCoord();
void WarpZone_Camera_Read(float isnew)
{
float f;
- ++warpzone_cameras_exist;
+ warpzone_cameras_exist = 1;
self.classname = "func_warpzone_camera";
f = ReadByte();
- self.origin_x = ReadCoord();
- self.origin_y = ReadCoord();
- self.origin_z = ReadCoord();
+ if(f & 4)
+ {
+ self.origin_x = ReadCoord();
+ self.origin_y = ReadCoord();
+ self.origin_z = ReadCoord();
+ }
+ else
+ self.origin = '0 0 0';
self.modelindex = ReadShort();
self.mins_x = ReadCoord();
self.mins_y = ReadCoord();
vector WarpZone_FixNearClip(vector o, vector c0, vector c1, vector c2, vector c3)
{
- float nearclipdistance;
vector mi, ma;
entity e;
float pd;
#endif
void WarpZone_FixView()
{
- float pd, f;
+ float f;
vector o;
entity e;
vector corner0, corner1, corner2, corner3, nearclip;