From: Mircea Kitsune Date: Sat, 26 Mar 2011 16:59:54 +0000 (+0200) Subject: Fade the chase cam back when dying or entering intermission X-Git-Tag: xonotic-v0.5.0~268^2^2~41 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=1452057c6604bd884ee3a179afaa28bf7c41e858;p=xonotic%2Fxonotic-data.pk3dir.git Fade the chase cam back when dying or entering intermission --- diff --git a/defaultXonotic.cfg b/defaultXonotic.cfg index 1b9644cb8..63ad0e8b1 100644 --- a/defaultXonotic.cfg +++ b/defaultXonotic.cfg @@ -318,6 +318,8 @@ set cl_hitsound_antispam_time 0.05 "don't play the hitsound more often than this seta cl_chase_death 1 "camera goes into 3rd person mode when dead" seta cl_chase_intermission 1 "camera goes into 3rd person mode at match end" +seta cl_chase_distance 100 +seta cl_chase_speed 50 //nifreks lockonrestart feature, used in team-based game modes, if set to 1 and all players readied up no other player can then join the game anymore, useful to block spectators from joining set teamplay_lockonrestart 0 "it set to 1 in a team-based game, the teams are locked once all players readied up and the game restarted (no new players can join after restart unless using the server-command unlockteams)" diff --git a/qcsrc/client/View.qc b/qcsrc/client/View.qc index a991b8d1e..977119f70 100644 --- a/qcsrc/client/View.qc +++ b/qcsrc/client/View.qc @@ -795,15 +795,26 @@ void CSQC_UpdateView(float w, float h) } // event chase cam - if(spectatee_status >= 0) + if(spectatee_status >= 0 && (autocvar_cl_chase_death || autocvar_cl_chase_intermission)) { if((autocvar_cl_chase_death && getstati(STAT_HEALTH) <= 0 && !intermission) || (autocvar_cl_chase_intermission && intermission)) { if(!cvar("chase_active")) cvar_set("chase_active", "1"); } - else if(cvar("chase_active") && (autocvar_cl_chase_death || autocvar_cl_chase_intermission)) + else if(cvar("chase_active")) cvar_set("chase_active", "0"); + + // make the camera smooth back + if(cvar("chase_active")) + { + if(autocvar_cl_chase_speed && cvar("chase_back") < autocvar_cl_chase_distance) + cvar_set("chase_back", ftos(cvar("chase_back") + (autocvar_cl_chase_speed * frametime))); + else if(cvar("chase_back") != autocvar_cl_chase_distance) + cvar_set("chase_back", ftos(autocvar_cl_chase_distance)); + } + else if(cvar("chase_back")) + cvar_set("chase_back", "0"); // start from 0 next time we fade this } // Draw the mouse cursor diff --git a/qcsrc/client/autocvars.qh b/qcsrc/client/autocvars.qh index 8989762ec..4454b4dde 100644 --- a/qcsrc/client/autocvars.qh +++ b/qcsrc/client/autocvars.qh @@ -307,3 +307,5 @@ float autocvar_cl_hitsound; float autocvar_cl_hitsound_antispam_time; float autocvar_cl_chase_death; float autocvar_cl_chase_intermission; +float autocvar_cl_chase_distance; +float autocvar_cl_chase_speed;