]> git.rm.cloudns.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Implement cl_viewmodel_alpha_while_invisible
authordrjaska <drjaska83@gmail.com>
Mon, 25 Nov 2024 22:32:16 +0000 (00:32 +0200)
committerdrjaska <drjaska83@gmail.com>
Mon, 25 Nov 2024 22:32:16 +0000 (00:32 +0200)
qcsrc/client/view.qc
xonotic-client.cfg

index 261fd1b01149392e106e1b2e56b5bb15b6b1e5a2..b07aa5b979cc6803a19f7faf08bd6db56acbd25f 100644 (file)
@@ -41,6 +41,7 @@
 #include <lib/warpzone/common.qh>
 
 float autocvar_cl_viewmodel_alpha = 1;
+float autocvar_cl_viewmodel_alpha_while_invisible;
 
 bool autocvar_cl_bobmodel;
 float autocvar_cl_bobmodel_speed;
@@ -293,7 +294,14 @@ void viewmodel_animate(entity this)
 void viewmodel_draw(entity this)
 {
        int mask = (intermission || (STAT(HEALTH) <= 0) || autocvar_chase_active) ? 0 : MASK_NORMAL;
-       float a = ((autocvar_cl_viewmodel_alpha) ? bound(-1, autocvar_cl_viewmodel_alpha, this.m_alpha) : this.m_alpha);
+       float a;
+       if (this.m_alpha == 1) // check visibility
+               a = bound(-1, autocvar_cl_viewmodel_alpha, this.m_alpha);
+       else
+               if (!autocvar_cl_viewmodel_alpha_while_invisible) // check if unset 0
+                       a = bound(-1, autocvar_cl_viewmodel_alpha, this.m_alpha);
+               else
+                       a = bound(-1, autocvar_cl_viewmodel_alpha_while_invisible, 1);
        int wepskin = this.m_skin;
        bool invehicle = player_localentnum > maxclients;
        if (invehicle) a = -1;
index 332c4b74198d0feb71bc050d75d4bf56561359cc..4ddd0e2cf79df2530bc68581cf7b7596ec1fcb4d 100644 (file)
@@ -805,7 +805,8 @@ seta cl_forcemyplayercolors 0 "set to the color value (encoding is same as _cl_c
 seta cl_movement_errorcompensation 1 "try to compensate for prediction errors and reduce perceived lag"
 seta cl_movement_intermissionrunning 0 "keep velocity after the match ends, players may appear to continue running while stationary"
 
-seta cl_viewmodel_alpha 1 "Maximum opacity of the view model, use a value between 0 and 1"
+seta cl_viewmodel_alpha 1 "Maximum opacity of the viewmodel, use a value between 0 and 1"
+seta cl_viewmodel_alpha_while_invisible 0 "Overrides the opacity of the viewmodel if invisible; -1 forces invisibility, 0 disables this override, and any value between 0 and 1 enables it with the value as opacity"
 
 set debugdraw 0
 set debugdraw_filter ""