From 8ef6a4632534b2e0ae3054ee3f85165529b6c3b9 Mon Sep 17 00:00:00 2001 From: Mario Date: Mon, 4 Jan 2016 00:30:08 +1000 Subject: [PATCH] Use the CSQC player for checking viewloc (possibly more reliable than engine's view entity) --- qcsrc/client/view.qc | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/qcsrc/client/view.qc b/qcsrc/client/view.qc index 8c4aade902..f1d083173c 100644 --- a/qcsrc/client/view.qc +++ b/qcsrc/client/view.qc @@ -1485,6 +1485,8 @@ void CSQC_UpdateView(float w, float h) { eventchase_running = true; + entity local_player = ((csqcplayer) ? csqcplayer : CSQCModel_server2csqc(player_localentnum - 1)); + // make special vector since we can't use view_origin (It is one frame old as of this code, it gets set later with the results this code makes.) vector current_view_origin = (csqcplayer ? csqcplayer.origin : pmove_org); if(ons_roundlost) { current_view_origin = gen.origin; } @@ -1534,7 +1536,7 @@ void CSQC_UpdateView(float w, float h) WarpZone_TraceBox(current_view_origin, autocvar_cl_eventchase_mins, autocvar_cl_eventchase_maxs, eventchase_target_origin, MOVE_WORLDONLY, self); // If the boxtrace fails, revert back to line tracing. - if(!self.viewloc) + if(!local_player.viewloc) if(trace_startsolid) { eventchase_target_origin = (current_view_origin - (v_forward * eventchase_current_distance)); @@ -1543,7 +1545,7 @@ void CSQC_UpdateView(float w, float h) } else { setproperty(VF_ORIGIN, trace_endpos); } - if(!self.viewloc) + if(!local_player.viewloc) setproperty(VF_ANGLES, WarpZone_TransformVAngles(WarpZone_trace_transform, view_angles)); } else if(autocvar_chase_active < 0) // time to disable chase_active if it was set by this code -- 2.39.2