From a7e47c724c67dfa7fc773ce2c6985b3205cba3a8 Mon Sep 17 00:00:00 2001 From: Rudolf Polzer Date: Thu, 24 Jun 2010 13:23:02 +0200 Subject: [PATCH] attempt at a camera fix --- qcsrc/warpzonelib/client.qc | 13 +++---------- qcsrc/warpzonelib/common.qc | 15 +++++++++++++++ qcsrc/warpzonelib/server.qc | 1 + 3 files changed, 19 insertions(+), 10 deletions(-) diff --git a/qcsrc/warpzonelib/client.qc b/qcsrc/warpzonelib/client.qc index 773e90d5e..e52c0d7ce 100644 --- a/qcsrc/warpzonelib/client.qc +++ b/qcsrc/warpzonelib/client.qc @@ -34,7 +34,6 @@ void WarpZone_Read(float isnew) WarpZone_SetUp(self, self.enemy.oldorigin, self.enemy.avelocity, self.oldorigin, self.avelocity); // engine currently wants this - self.avelocity = AnglesTransform_TurnDirectionFR(self.avelocity); self.drawmask = MASK_NORMAL; // link me @@ -43,14 +42,6 @@ void WarpZone_Read(float isnew) setsize(self, self.mins, self.maxs); } -vector WarpZone_Camera_camera_transform(vector org, vector ang) -{ - // a fixed camera view - trace_endpos = self.oldorigin; - makevectors(self.avelocity); - return self.oldorigin; -} - void WarpZone_Camera_Read(float isnew) { self.classname = "func_warpzone_camera"; @@ -72,9 +63,11 @@ void WarpZone_Camera_Read(float isnew) self.avelocity_y = ReadCoord(); self.avelocity_z = ReadCoord(); + // common stuff + WarpZone_Camera_SetUp(self, self.oldorigin, self.avelocity); + // engine currently wants this self.drawmask = MASK_NORMAL; - self.camera_transform = WarpZone_Camera_camera_transform; // link me //setmodel(self, self.model); diff --git a/qcsrc/warpzonelib/common.qc b/qcsrc/warpzonelib/common.qc index 3f6bb10a2..e4acfb169 100644 --- a/qcsrc/warpzonelib/common.qc +++ b/qcsrc/warpzonelib/common.qc @@ -55,6 +55,21 @@ void WarpZone_SetUp(entity e, vector my_org, vector my_ang, vector other_org, ve e.camera_transform = WarpZone_camera_transform; } +vector WarpZone_Camera_camera_transform(vector org, vector ang) +{ + // a fixed camera view + trace_endpos = self.warpzone_origin; + makevectors(self.warpzone_angles); + return self.warpzone_origin; +} + +void WarpZone_Camera_SetUp(entity e, vector my_org, vector my_ang) // we assume that e.oldorigin and e.avelocity point to view origin and direction +{ + e.warpzone_origin = my_org; + e.warpzone_angles = my_ang; + e.camera_transform = WarpZone_Camera_camera_transform; +} + .entity enemy; vector WarpZoneLib_BoxTouchesBrush_mins; diff --git a/qcsrc/warpzonelib/server.qc b/qcsrc/warpzonelib/server.qc index f2b358188..6388fbaad 100644 --- a/qcsrc/warpzonelib/server.qc +++ b/qcsrc/warpzonelib/server.qc @@ -300,6 +300,7 @@ void WarpZoneCamera_InitStep_FindTarget() error("Camera with nonexisting target"); return; } + WarpZone_Camera_SetUp(self, self.enemy.origin, self.enemy.angles); } void WarpZone_InitStep_UpdateTransform() -- 2.39.2