From 6b07ce93d47ba8a1cb8da73e8323be5a7ae200db Mon Sep 17 00:00:00 2001 From: Samual Date: Tue, 15 Mar 2011 01:08:21 -0400 Subject: [PATCH] just use inner ring instead for when main ring is already used (for weapon reload information with weapons that already have rings) --- defaultXonotic.cfg | 3 ++- qcsrc/client/View.qc | 38 +++++++++++++++++++++++++------------- qcsrc/client/autocvars.qh | 3 ++- 3 files changed, 29 insertions(+), 15 deletions(-) diff --git a/defaultXonotic.cfg b/defaultXonotic.cfg index 930982dc8..a59930a79 100644 --- a/defaultXonotic.cfg +++ b/defaultXonotic.cfg @@ -206,8 +206,9 @@ seta crosshair_ring_minelayer 1 seta crosshair_ring_minelayer_alpha 0.15 seta crosshair_ring_reload 1 "main cvar to enable or disable ammo crosshair rings" +seta crosshair_ring_reload_inner 1 "allow switching to inner ring when the main ring is already used by the weapon" seta crosshair_ring_reload_size 2.5 "reload ring size" -seta crosshair_ring_reload_alpha 0.3 "reload ring alpha" +seta crosshair_ring_reload_alpha 0.2 "reload ring alpha" seta cl_reticle_stretch 0 "whether to stretch reticles so they fit the screen (brakes image proportions)" seta cl_reticle_item_nex 1 "draw aiming reticle for the nex weapon's zoom, 0 disables and values between 0 and 1 change alpha" diff --git a/qcsrc/client/View.qc b/qcsrc/client/View.qc index e1505c120..6cab5fefd 100644 --- a/qcsrc/client/View.qc +++ b/qcsrc/client/View.qc @@ -1100,9 +1100,9 @@ void CSQC_UpdateView(float w, float h) } ring_inner_alpha = wcross_alpha * autocvar_crosshair_ring_nex_inner_alpha; - ring_inner_image = "gfx/crosshair_ring_inner.tga"; ring_inner_rgb = eX * autocvar_crosshair_ring_nex_inner_color_red + eY * autocvar_crosshair_ring_nex_inner_color_green + eZ * autocvar_crosshair_ring_nex_inner_color_blue; - + ring_inner_image = "gfx/crosshair_ring_inner.tga"; + // draw the outer ring to show the current charge of the weapon ring_value = nex_charge; ring_alpha = wcross_alpha * autocvar_crosshair_ring_nex_alpha; @@ -1119,20 +1119,32 @@ void CSQC_UpdateView(float w, float h) if(autocvar_crosshair_ring_reload && weapon_clipsize) // forces there to be only an ammo ring { - ring_value = bound(0, weapon_clipload / weapon_clipsize, 1); - ring_scale = autocvar_crosshair_ring_reload_size; - ring_alpha = autocvar_crosshair_ring_reload_alpha; - ring_rgb = wcross_color; - - // Note: This is to stop Taoki from complaining that the image doesn't match all potential balances. - // if a new image for another weapon is added, add the code (and its respective file/value) here - if ((activeweapon == WEP_SNIPERRIFLE) && (weapon_clipsize == 80)) - ring_image = "gfx/crosshair_ring_sniperrifle.tga"; + // if the main ring is already used by another weapon, instead use the inner one for ammo. + // inner ring is secondary anyway and doesn't matter as much as main ring, so overriding it is no issue. + if(ring_value && autocvar_crosshair_ring_reload_inner) + { + ring_inner_value = bound(0, weapon_clipload / weapon_clipsize, 1); + ring_inner_alpha = autocvar_crosshair_ring_reload_alpha; + ring_inner_rgb = wcross_color; + ring_inner_image = "gfx/crosshair_ring_inner.tga"; + } else - ring_image = "gfx/crosshair_ring.tga"; + { + ring_value = bound(0, weapon_clipload / weapon_clipsize, 1); + ring_scale = autocvar_crosshair_ring_reload_size; + ring_alpha = autocvar_crosshair_ring_reload_alpha; + ring_rgb = wcross_color; + + // Note: This is to stop Taoki from complaining that the image doesn't match all potential balances. + // if a new image for another weapon is added, add the code (and its respective file/value) here + if ((activeweapon == WEP_SNIPERRIFLE) && (weapon_clipsize == 80)) + ring_image = "gfx/crosshair_ring_sniperrifle.tga"; + else + ring_image = "gfx/crosshair_ring.tga"; + } } - if (autocvar_crosshair_ring_inner && ring_inner_value) // lets draw a ring inside a ring so you can ring while you ring + if ((autocvar_crosshair_ring_inner || autocvar_crosshair_ring_reload_inner) && ring_inner_value) // lets draw a ring inside a ring so you can ring while you ring DrawCircleClippedPic(wcross_origin, wcross_size_x * ring_scale, ring_inner_image, ring_inner_value, ring_inner_rgb, ring_inner_alpha, DRAWFLAG_ADDITIVE); if (ring_value) diff --git a/qcsrc/client/autocvars.qh b/qcsrc/client/autocvars.qh index 5a87249cc..d380c7fc3 100644 --- a/qcsrc/client/autocvars.qh +++ b/qcsrc/client/autocvars.qh @@ -122,8 +122,9 @@ float autocvar_crosshair_ring_nex_inner_color_green; float autocvar_crosshair_ring_nex_inner_color_red; float autocvar_crosshair_ring_size; float autocvar_crosshair_ring_reload; -float autocvar_crosshair_ring_reload_size; float autocvar_crosshair_ring_reload_alpha; +float autocvar_crosshair_ring_reload_inner; +float autocvar_crosshair_ring_reload_size; float autocvar_crosshair_size; float autocvar_ekg; float autocvar_fov; -- 2.39.2