From: Samual Lenks Date: Tue, 5 Feb 2013 16:56:00 +0000 (-0500) Subject: Re-do handling of cvars for mins/maxs with eventchase and spectating X-Git-Tag: xonotic-v0.7.0~102^2~1 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=ed7604190f6e8b0e2d0c3fcf1412ba30e1d2e421;p=xonotic%2Fxonotic-data.pk3dir.git Re-do handling of cvars for mins/maxs with eventchase and spectating --- diff --git a/qcsrc/client/View.qc b/qcsrc/client/View.qc index 46fa47f1a..6838f3c06 100644 --- a/qcsrc/client/View.qc +++ b/qcsrc/client/View.qc @@ -450,7 +450,7 @@ void CSQC_UpdateView(float w, float h) if(spectatee_status >= 0 && (autocvar_cl_eventchase_death && getstati(STAT_HEALTH) <= 0 && !intermission) || intermission) { // 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) + autocvar_sv_spectator_viewoffset); + vector current_view_origin = ((csqcplayer ? csqcplayer.origin : pmove_org) + autocvar_cl_eventchase_viewoffset); // We must enable chase_active to get a third person view (weapon viewmodel hidden and own player model showing). // Ideally, there should be another way to enable third person cameras, such as through setproperty() @@ -466,14 +466,14 @@ void CSQC_UpdateView(float w, float h) makevectors(view_angles); vector eventchase_target_origin = (current_view_origin - (v_forward * eventchase_current_distance)); - WarpZone_TraceBox(current_view_origin, autocvar_sv_spectator_mins, autocvar_sv_spectator_maxs, eventchase_target_origin, MOVE_WORLDONLY, self); + 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(trace_startsolid) { eventchase_target_origin = (current_view_origin - (v_forward * eventchase_current_distance)); WarpZone_TraceLine(current_view_origin, eventchase_target_origin, MOVE_WORLDONLY, self); - setproperty(VF_ORIGIN, (trace_endpos - (v_forward * autocvar_sv_spectator_mins_z))); + setproperty(VF_ORIGIN, (trace_endpos - (v_forward * autocvar_cl_eventchase_mins_z))); } else { setproperty(VF_ORIGIN, trace_endpos); } diff --git a/qcsrc/client/autocvars.qh b/qcsrc/client/autocvars.qh index 94cd1a5c0..72d7ec557 100644 --- a/qcsrc/client/autocvars.qh +++ b/qcsrc/client/autocvars.qh @@ -384,6 +384,9 @@ float autocvar_cl_hitsound_antispam_time; var float autocvar_cl_eventchase_death = 1; var float autocvar_cl_eventchase_distance = 140; var float autocvar_cl_eventchase_speed = 1.3; +var vector autocvar_cl_eventchase_maxs = '12 12 8'; +var vector autocvar_cl_eventchase_mins = '-12 -12 -8'; +var vector autocvar_cl_eventchase_viewoffset = '0 0 20'; float autocvar_cl_lerpexcess; string autocvar__togglezoom; float autocvar_cl_damageeffect; diff --git a/qcsrc/common/constants.qh b/qcsrc/common/constants.qh index 2835240b0..75f5a0bde 100644 --- a/qcsrc/common/constants.qh +++ b/qcsrc/common/constants.qh @@ -579,10 +579,6 @@ noref var vector autocvar_sv_player_crouch_mins = '-16 -16 -24'; noref var vector autocvar_sv_player_crouch_viewoffset = '0 0 20'; noref var vector autocvar_sv_player_headsize = '24 24 12'; -noref var vector autocvar_sv_spectator_maxs = '12 12 8'; -noref var vector autocvar_sv_spectator_mins = '-12 -12 -8'; -noref var vector autocvar_sv_spectator_viewoffset = '0 0 20'; - #define PL_VIEW_OFS autocvar_sv_player_viewoffset #define PL_MIN autocvar_sv_player_mins #define PL_MAX autocvar_sv_player_maxs diff --git a/qcsrc/server/cl_client.qc b/qcsrc/server/cl_client.qc index f45424fd7..a6bc87f9f 100644 --- a/qcsrc/server/cl_client.qc +++ b/qcsrc/server/cl_client.qc @@ -482,7 +482,7 @@ void PutObserverInServer (void) self.fixangle = TRUE; self.crouch = FALSE; - setorigin (self, (spot.origin + autocvar_sv_spectator_viewoffset)); // offset it so that the spectator spawns higher off the ground, looks better this way + setorigin (self, (spot.origin + PL_VIEW_OFS)); // offset it so that the spectator spawns higher off the ground, looks better this way self.prevorigin = self.origin; self.items = 0; WEPSET_CLEAR_E(self); @@ -491,7 +491,7 @@ void PutObserverInServer (void) setmodel(self, "null"); self.drawonlytoclient = self; - setsize (self, autocvar_sv_spectator_mins, autocvar_sv_spectator_maxs); // give the spectator some space between walls for MOVETYPE_FLY_WORLDONLY + setsize (self, PL_CROUCH_MIN, PL_CROUCH_MAX); // give the spectator some space between walls for MOVETYPE_FLY_WORLDONLY self.view_ofs = '0 0 0'; // so that your view doesn't go into the ceiling with MOVETYPE_FLY_WORLDONLY, previously "PL_VIEW_OFS" self.weapon = 0;