From: Rudolf Polzer Date: Thu, 24 Jun 2010 11:23:02 +0000 (+0200) Subject: attempt at a camera fix X-Git-Tag: xonotic-v0.1.0preview~525 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=a7e47c724c67dfa7fc773ce2c6985b3205cba3a8;p=xonotic%2Fxonotic-data.pk3dir.git attempt at a camera fix --- 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()