]> git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Merge branch 'terencehill/crosshair_colors' into fruitiex/panelhud
authorFruitieX <fruitiex@gmail.com>
Fri, 12 Nov 2010 06:49:55 +0000 (08:49 +0200)
committerFruitieX <fruitiex@gmail.com>
Fri, 12 Nov 2010 06:49:55 +0000 (08:49 +0200)
1  2 
defaultXonotic.cfg
qcsrc/client/View.qc

diff --combined defaultXonotic.cfg
index 7d0c2e61a348ed603a7406c488913d940131cc09,ee119b2262b0c6a76168c89a790bf60bb66958f1..8af70b4776968f8b493729d7ff810ee8400c1d84
@@@ -90,9 -90,7 +90,7 @@@ _cl_name Playe
  _cl_playermodel models/player/umbra.iqm
  _cl_playerskin 0
  seta crosshair 3
- seta crosshair_color_red 0.6
- seta crosshair_color_green 0.8
- seta crosshair_color_blue 1
+ seta crosshair_color "0.6 0.8 1"
  seta crosshair_alpha 1
  seta crosshair_size 0.35
  seta crosshair_dot 1
@@@ -108,124 -106,80 +106,88 @@@ seta crosshair_hittest 1 "do a crosshai
  seta crosshair_hittest_blur 1 "blur the crosshair if the shot is obstructed"
  seta crosshair_hittest_showimpact 0 "move the crosshair to the actual impact location if obstructed"
  seta crosshair_laser ""       "crosshair to display when wielding the laser"
- seta crosshair_laser_color_red 1      "crosshair color red component to display when wielding the laser"
- seta crosshair_laser_color_green 0.35 "crosshair color green component to display when wielding the laser"
- seta crosshair_laser_color_blue 0.2   "crosshair color blue component to display when wielding the laser"
+ seta crosshair_laser_color "1 0.35 0.2"       "crosshair color to display when wielding the laser"
  seta crosshair_laser_alpha 0.75       "crosshair alpha value to display when wielding the laser"
  seta crosshair_laser_size 0.4 "crosshair size when wielding the laser"
  seta crosshair_shotgun ""     "crosshair to display when wielding the shotgun"
- seta crosshair_shotgun_color_red 0.7  "crosshair color red component to display when wielding the shotgun"
- seta crosshair_shotgun_color_green 0.7        "crosshair color green component to display when wielding the shotgun"
- seta crosshair_shotgun_color_blue 0.7 "crosshair color blue component to display when wielding the shotgun"
+ seta crosshair_shotgun_color "0.7 0.7 0.7"    "crosshair color to display when wielding the shotgun"
  seta crosshair_shotgun_alpha 1.1      "crosshair alpha value to display when wielding the shotgun"
  seta crosshair_shotgun_size 0.65      "crosshair size when wielding the shotgun"
  seta crosshair_uzi "" "crosshair to display when wielding the machinegun"
- seta crosshair_uzi_color_red 0.4      "crosshair color red component to display when wielding the machinegun"
- seta crosshair_uzi_color_green 0.9    "crosshair color green component to display when wielding the machinegun"
- seta crosshair_uzi_color_blue 0.35    "crosshair color blue component to display when wielding the machinegun"
+ seta crosshair_uzi_color "0.4 0.9 0.35"       "crosshair color to display when wielding the machinegun"
  seta crosshair_uzi_alpha 0.9  "crosshair alpha value to display when wielding the machinegun"
  seta crosshair_uzi_size 0.6   "crosshair size when wielding the machinegun"
  seta crosshair_grenadelauncher ""     "crosshair to display when wielding the mortar"
- seta crosshair_grenadelauncher_color_red 1    "crosshair color red component to display when wielding the mortar"
- seta crosshair_grenadelauncher_color_green 0.15       "crosshair color green component to display when wielding the mortar"
- seta crosshair_grenadelauncher_color_blue 0   "crosshair color blue component to display when wielding the mortar"
+ seta crosshair_grenadelauncher_color "1 0.15 0"       "crosshair color to display when wielding the mortar"
  seta crosshair_grenadelauncher_alpha 1.15     "crosshair alpha value to display when wielding the mortar"
  seta crosshair_grenadelauncher_size 0.7       "crosshair size when wielding the mortar"
  seta crosshair_minelayer ""   "crosshair to display when wielding the mortar"
- seta crosshair_minelayer_color_red 0.75       "crosshair color red component to display when wielding the mortar"
- seta crosshair_minelayer_color_green 0.75     "crosshair color green component to display when wielding the mortar"
- seta crosshair_minelayer_color_blue 0 "crosshair color blue component to display when wielding the mortar"
+ seta crosshair_minelayer_color "0.75 0.75 0"  "crosshair color to display when wielding the mortar"
  seta crosshair_minelayer_alpha 1.15   "crosshair alpha value to display when wielding the mortar"
  seta crosshair_minelayer_size 0.9     "crosshair size when wielding the mortar"
  seta crosshair_electro ""     "crosshair to display when wielding the electro"
- seta crosshair_electro_color_red 0.35 "crosshair color red component to display when wielding the electro"
- seta crosshair_electro_color_green 0.5        "crosshair color green component to display when wielding the electro"
- seta crosshair_electro_color_blue 1   "crosshair color blue component to display when wielding the electro"
+ seta crosshair_electro_color "0.35 0.5 1"     "crosshair color to display when wielding the electro"
  seta crosshair_electro_alpha 1        "crosshair alpha value to display when wielding the electro"
  seta crosshair_electro_size 0.5       "crosshair size when wielding the electro"
  seta crosshair_crylink ""     "crosshair to display when wielding the crylink"
- seta crosshair_crylink_color_red 0.85 "crosshair color red component to display when wielding the crylink"
- seta crosshair_crylink_color_green 0.25       "crosshair color green component to display when wielding the crylink"
- seta crosshair_crylink_color_blue 1   "crosshair color blue component to display when wielding the crylink"
+ seta crosshair_crylink_color "0.85 0.25 1"    "crosshair color to display when wielding the crylink"
  seta crosshair_crylink_alpha 0.85     "crosshair alpha value to display when wielding the crylink"
  seta crosshair_crylink_size 0.4       "crosshair size when wielding the crylink"
  seta crosshair_nex "" "crosshair to display when wielding the nex gun"
- seta crosshair_nex_color_red 0        "crosshair color red component to display when wielding the nex gun"
- seta crosshair_nex_color_green 0.9    "crosshair color green component to display when wielding the nex gun"
- seta crosshair_nex_color_blue 1       "crosshair color blue component to display when wielding the nex gun"
+ seta crosshair_nex_color "0 0.9 1"    "crosshair color to display when wielding the nex gun"
  seta crosshair_nex_alpha 0.85 "crosshair alpha value to display when wielding the nex gun"
  seta crosshair_nex_size 0.65  "crosshair size when wielding the nex gun"
  seta crosshair_hagar ""       "crosshair to display when wielding the hagar"
- seta crosshair_hagar_color_red 0.85   "crosshair color red component to display when wielding the hagar"
- seta crosshair_hagar_color_green 0.5  "crosshair color green component to display when wielding the hagar"
- seta crosshair_hagar_color_blue 0.35  "crosshair color blue component to display when wielding the hagar"
+ seta crosshair_hagar_color "0.85 0.5 0.35"    "crosshair color to display when wielding the hagar"
  seta crosshair_hagar_alpha 1  "crosshair alpha value to display when wielding the hagar"
  seta crosshair_hagar_size 0.8 "crosshair size when wielding the hagar"
  seta crosshair_rocketlauncher ""      "crosshair to display when wielding the rocketlauncher"
- seta crosshair_rocketlauncher_color_red 1     "crosshair color red component to display when wielding the rocketlauncher"
- seta crosshair_rocketlauncher_color_green 0.75        "crosshair color green component to display when wielding the rocketlauncher"
- seta crosshair_rocketlauncher_color_blue 0.2  "crosshair color blue component to display when wielding the rocketlauncher"
+ seta crosshair_rocketlauncher_color "1 0.75 0.2"      "crosshair color to display when wielding the rocketlauncher"
  seta crosshair_rocketlauncher_alpha 1 "crosshair alpha value to display when wielding the rocketlauncher"
  seta crosshair_rocketlauncher_size 0.5875     "crosshair size when wielding the rocketlauncher"
  seta crosshair_porto ""       "crosshair to display when wielding the porto"
- seta crosshair_porto_color_red 0.5    "crosshair color red component to display when wielding the porto"
- seta crosshair_porto_color_green 1    "crosshair color green component to display when wielding the porto"
- seta crosshair_porto_color_blue 0.5   "crosshair color blue component to display when wielding the porto"
+ seta crosshair_porto_color "0.5 1 0.5"        "crosshair color to display when wielding the porto"
  seta crosshair_porto_alpha 0.85       "crosshair alpha value to display when wielding the porto"
  seta crosshair_porto_size 0.6 "crosshair size when wielding the porto"
  seta crosshair_minstanex ""   "crosshair to display when wielding the minstanex gun"
- seta crosshair_minstanex_color_red 0.65       "crosshair color red component to display when wielding the minstanex gun"
- seta crosshair_minstanex_color_green 0.65     "crosshair color green component to display when wielding the minstanex gun"
- seta crosshair_minstanex_color_blue 1 "crosshair color blue component to display when wielding the minstanex gun"
+ seta crosshair_minstanex_color "0.65 0.65 1"  "crosshair color to display when wielding the minstanex gun"
  seta crosshair_minstanex_alpha 1      "crosshair alpha value to display when wielding the minstanex gun"
  seta crosshair_minstanex_size 0.4     "crosshair size when wielding the minstanex gun"
  seta crosshair_hook ""        "crosshair to display when wielding the hook"
- seta crosshair_hook_color_red 0.65    "crosshair color red component to display when wielding the hook"
- seta crosshair_hook_color_green 1     "crosshair color green component to display when wielding the hook"
- seta crosshair_hook_color_blue 0.85   "crosshair color blue component to display when wielding the hook"
+ seta crosshair_hook_color "0.65 1 0.85"       "crosshair color to display when wielding the hook"
  seta crosshair_hook_alpha 0.85        "crosshair alpha value to display when wielding the hook"
  seta crosshair_hook_size 0.5  "crosshair size when wielding the hook"
  seta crosshair_hlac ""        "crosshair to display when wielding the H.L.A.C"
- seta crosshair_hlac_color_red 1       "crosshair color red component to display when wielding the H.L.A.C."
- seta crosshair_hlac_color_green 0.65  "crosshair color green component to display when wielding the H.L.A.C."
- seta crosshair_hlac_color_blue 0.2    "crosshair color blue component to display when wielding the H.L.A.C."
+ seta crosshair_hlac_color "1 0.65 0.2"        "crosshair color to display when wielding the H.L.A.C."
  seta crosshair_hlac_alpha 1   "crosshair alpha value to display when wielding the H.L.A.C."
  seta crosshair_hlac_size 0.6  "crosshair size when wielding the H.L.A.C."
  seta crosshair_seeker ""      "crosshair to display when wielding the TAG Seeker"
- seta crosshair_seeker_color_red 1     "crosshair color red component to display when wielding the TAG seeker"
- seta crosshair_seeker_color_green 0.35        "crosshair color green component to display when wielding the TAG seeker"
- seta crosshair_seeker_color_blue 0.35 "crosshair color blue component to display when wielding the TAG seeker"
+ seta crosshair_seeker_color "1 0.35 0.35"     "crosshair color to display when wielding the TAG seeker"
  seta crosshair_seeker_alpha 0.9       "crosshair alpha value to display when wielding the TAG seeker"
  seta crosshair_seeker_size 0.8        "crosshair size when wielding the TAG seeker"
  seta crosshair_campingrifle ""        "crosshair to display when wielding the campingrifle"
- seta crosshair_campingrifle_color_red 0.85    "crosshair color red component to display when wielding the campingrifle"
- seta crosshair_campingrifle_color_green 0.5   "crosshair color green component to display when wielding the campingrifle"
- seta crosshair_campingrifle_color_blue 0.25   "crosshair color blue component to display when wielding the campingrifle"
+ seta crosshair_campingrifle_color "0.85 0.5 0.25"     "crosshair color to display when wielding the campingrifle"
  seta crosshair_campingrifle_alpha 1   "crosshair alpha value to display when wielding the campingrifle"
  seta crosshair_campingrifle_size 0.65 "crosshair size when wielding the campingrifle"
  seta crosshair_tuba ""        "crosshair to display when wielding the tuba"
- seta crosshair_tuba_color_red 0.85    "crosshair color red component to display when wielding the tuba"
- seta crosshair_tuba_color_green 0.5   "crosshair color green component to display when wielding the tuba"
- seta crosshair_tuba_color_blue 0.25   "crosshair color blue component to display when wielding the tuba"
+ seta crosshair_tuba_color "0.85 0.5 0.25"     "crosshair color to display when wielding the tuba"
  seta crosshair_tuba_alpha 1   "crosshair alpha value to display when wielding the tuba"
  seta crosshair_tuba_size 1    "crosshair size when wielding the tuba"
  seta crosshair_fireball ""    "crosshair to display when wielding the fireball"
- seta crosshair_fireball_color_red 0.2 "crosshair color red component to display when wielding the fireball"
- seta crosshair_fireball_color_green 1.0       "crosshair color green component to display when wielding the fireball"
- seta crosshair_fireball_color_blue 0.2        "crosshair color blue component to display when wielding the fireball"
+ seta crosshair_fireball_color "0.2 1.0 0.2"   "crosshair color to display when wielding the fireball"
  seta crosshair_fireball_alpha 1       "crosshair alpha value to display when wielding the fireball"
  seta crosshair_fireball_size 1        "crosshair size when wielding the fireball"
  seta crosshair_ring_size 2    "bullet counter ring size for Rifle, velocity ring for Nex"
  seta crosshair_campingrifle_bulletcounter_alpha 0.15
 +
  seta crosshair_nexvelocity_alpha 0.15
 +seta crosshair_nexvelocity_currentcharge_scale 30
 +seta crosshair_nexvelocity_currentcharge_alpha 0.15
 +seta crosshair_nexvelocity_currentcharge_color_red 0.8
 +seta crosshair_nexvelocity_currentcharge_color_green 0
 +seta crosshair_nexvelocity_currentcharge_color_blue 0
 +seta crosshair_nexvelocity_currentcharge_movingavg_rate 0.05
 +
  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 recticle for the nex weapon's zoom, 0 disables and values between 0 and 1 change alpha"
  seta cl_reticle_item_normal 1 "draw recticle when zooming with the zoom button, 0 disables and values between 0 and 1 change alpha"
@@@ -369,11 -323,11 +331,11 @@@ set sv_fragmessage_information_typefra
  
  // use default physics
  set sv_friction_on_land 0
 -exec physicsNoQWBunny-xpmbased.cfg
  
 -set sv_player_viewoffset "0 0 42" "view offset of the player model"
 +set sv_player_viewoffset "0 0 35" "view offset of the player model"
  set sv_player_mins "-16 -16 -24" "playermodel mins"
  set sv_player_maxs "16 16 45" "playermodel maxs"
 +set sv_player_headsize "24 24 12" "playermodel headshot bbox size (centered at top of player bbox, preview with r_showbboxes)" // actually SHOULD be 19.2 19.2 10 according to docs
  set sv_player_crouch_viewoffset "0 0 20" "view offset of the player model when crouched"
  set sv_player_crouch_mins "-16 -16 -24" "mins of a crouched playermodel"
  set sv_player_crouch_maxs "16 16 25" "maxs of a crouched playermodel"
@@@ -698,6 -652,8 +660,6 @@@ set g_ctf_flag_pickup_effects 
  set g_ctf_flag_capture_effects 1
  set g_ctf_captimerecord_always 0 "if enabled, assisted CTF records (with other players on the server) are recorded too"
  
 -exec ctfscoring-ai.cfg
 -
  // runematch
  set g_runematch                                               0 "Runematch: pick up and hold the runes, special items that give you points, a special power (rune) and a disadvantage (curse)"
  set g_runematch_pointrate                             5
@@@ -869,6 -825,11 +831,6 @@@ set g_nexball_trail_color     254  "1-2
  
  set g_nexball_radar_showallplayers 1  "1: show every player and the ball on the radar  0: only show teammates and the ball on the radar"
  
 -// server game balance settings
 -// powerup balance settings
 -// weapon balance settings follow
 -exec balanceXonotic.cfg
 -
  set g_bloodloss 0   "amount of health below which blood loss occurs"
  
  set g_footsteps 1     "serverside footstep sounds"
@@@ -916,6 -877,7 +878,6 @@@ r_glsl_offsetmapping_reliefmapping 
  r_glsl_offsetmapping_scale 0.02
  // execute effects-normal.cfg to make sure that all effect settings are reset
  alias menu_sync "" // will be re-aliased later
 -exec effects-normal.cfg
  
  // misc
  fs_empty_files_in_pack_mark_deletions 1 // makes patches able to delete files
@@@ -1372,11 -1334,21 +1334,11 @@@ seta hud_configure_grid_alpha 0.15 "alp
  
  seta sbar_info_pos 0 "Y-axis distance from lower right corner for engine info prints"
  
 -// hud cvar descriptions
 -exec _hud_descriptions.cfg
 -// exec the default skin config
 -// please add any new cvars into the hud_save script in qcsrc/client/hud.qc for consistency
 -exec hud_luminos.cfg
 -
  // user preference cvars (i.e. shouldn't be adjusted by a skin config) 
  seta hud_panel_weapons_label 1 "1 = show number of weapon, 2 = show bound key of weapon"
  seta hud_panel_weapons_complainbubble_time 1 "time that a new entry stays until it fades out"
  seta hud_panel_weapons_complainbubble_fadetime 0.25 "fade out time"
 -seta hud_panel_weapons_accuracy 1 "show accuracy color as the weapon icon background"
 -seta hud_panel_weapons_accuracy_color0 "1 0 0"
 -seta hud_panel_weapons_accuracy_color1 "1 1 0"
 -seta hud_panel_weapons_accuracy_color2 "0 1 0"
 -seta hud_panel_weapons_accuracy_color_levels "0 20 100" "accuracy values at which a specified color (hud_panel_weapons_accuracy_color<X>) will be used. If your accuracy is between 2 of these values then a mix of the Xth and X+1th colors will be used. You can specify up to 10 values, in increasing order"
 +seta hud_panel_weapons_accuracy 1 "show accuracy color as the weapon icon background; colors can be configured with accuracy_color* cvars"
  seta hud_panel_weapons_ammo 1 "show ammo as a status bar"
  seta hud_panel_weapons_ammo_full_shells 50 "show 100% of the status bar at this ammo count"
  seta hud_panel_weapons_ammo_full_nails 200 "show 100% of the status bar at this ammo count"
@@@ -1410,7 -1382,7 +1372,7 @@@ seta scoreboard_columns defaul
  seta scoreboard_border_thickness 1 "scoreboard border thickness"
  seta scoreboard_accuracy_border_thickness 1 "accuracy stats border thickness"
  seta scoreboard_accuracy_doublerows 0 "use two rows instead of one"
 -seta scoreboard_accuracy 1 "show weapon accuracy stats panel on scoreboard"
 +seta scoreboard_accuracy 1 "show weapon accuracy stats panel on scoreboard; colors can be configured with accuracy_color* cvars"
  seta scoreboard_color_bg_r 0 "red color component of the scoreboard background"
  seta scoreboard_color_bg_g 0.4 "green color component of the scoreboard background"
  seta scoreboard_color_bg_b 0.6 "blue color component of the scoreboard background"
@@@ -1428,11 -1400,6 +1390,11 @@@ seta scoreboard_offset_left 0.04 "how m
  seta scoreboard_offset_right 0.148 "how many pixels the scoreboard is offset from the right screen edge"
  seta scoreboard_bg_scale 0.25 "scale for the tiled scoreboard background"
  
 +seta accuracy_color_levels "0 20 100" "accuracy values at which a specified color (accuracy_color<X>) will be used. If your accuracy is between 2 of these values then a mix of the Xth and X+1th colors will be used. You can specify up to 10 values, in increasing order"
 +seta accuracy_color0 "1 0 0"
 +seta accuracy_color1 "1 1 0"
 +seta accuracy_color2 "0 1 0"
 +
  // for menu server list (eventually make them have engine support?)
  seta menu_slist_showfull 1 "show servers even if they are full and have no slots to join"
  seta menu_slist_showempty 1 "show servers even if they are no empty and have no opponents to play against"
@@@ -1611,6 -1578,8 +1573,6 @@@ set sv_clones 0 "number of clones a pla
  
  set cl_handicap 1     "the higher, the more damage you will receive (client setting)"
  
 -exec turrets.cfg
 -
  // must be at the bottom of this file:
  // alias for switching the teamselect menu
  alias menu_showteamselect "menu_cmd directmenu TeamSelect"
@@@ -2003,25 -1972,8 +1965,25 @@@ seta cl_allow_uid2name -1 "-1 = ask if 
  // polygonoffset for submodel SUCKS SUCKS SUCKS (only a hack for quake1, we don't need that)
  r_polygonoffset_submodel_offset 0
  r_polygonoffset_submodel_factor 0
 -// workaround for "decals flicker all the time" - note that this polygonoffset still is not perfect, also, why do decals need higher polygonoffset when in a warpzone
 -// this workaround causes decals to sometimes be visible through walls! (not seen it happen yet though other than on zfightometer)
 -// once the issue is found, please revert back to the default of -14
 -r_polygonoffset_decals_offset -100
 +// decals: need a higher polygonoffset than default to not compete with _decal surfaces too much
 +r_polygonoffset_decals_offset -28
  r_polygonoffset_decals_factor 0
 +// this is mainly for _decal entities (their shaders should use "polygonoffset" shader parameter) - this is "good enough" as it seems, but smaller than the decals one so these don't zfight decals
 +mod_q3shader_default_polygonoffset -14
 +mod_q3shader_default_polygonfactor 0
 +
 +// allow fullbright
 +set sv_allow_fullbright 0 "when set, clients may use r_fullbright on this server without getting a night vision effect overlay"
 +
 +// other config files
 +exec balanceXonotic.cfg
 +exec ctfscoring-ai.cfg
 +exec effects-normal.cfg
 +exec physicsNoQWBunny-xpmbased.cfg
 +exec turrets.cfg
 +
 +// hud cvar descriptions
 +exec _hud_descriptions.cfg
 +// exec the default skin config
 +// please add any new cvars into the hud_save script in qcsrc/client/hud.qc for consistency
 +exec hud_luminos.cfg
diff --combined qcsrc/client/View.qc
index 15f151e18792d438f445e0ad4dc10e07a998dd15,90e0356cbb9376892c9aa8ba1c50551d76cfc36d..119941ad2c017ace633f6089070b4bca09ffa093
@@@ -566,8 -566,7 +566,8 @@@ void CSQC_UpdateView(float w, float h
        // next R_RenderScene call
        drawstring('0 0 0', "", '1 1 0', '1 1 1', 0, 0);
  
 -      if(cvar("r_fakelight") >= 2 || cvar("r_fullbright"))
 +      if(cvar("r_fakelight") >= 2 || cvar("r_fullbright") >= 1)
 +      if not(serverflags & SERVERFLAG_ALLOW_FULLBRIGHT)
        {
                // apply night vision effect
                vector rgb, tc_00, tc_01, tc_10, tc_11;
                        string wcross_wep, wcross_name;
                        float wcross_scale, wcross_blur;
  
-                       wcross_color_x = cvar("crosshair_color_red");
-                       wcross_color_y = cvar("crosshair_color_green");
-                       wcross_color_z = cvar("crosshair_color_blue");
-                       if (cvar("crosshair_per_weapon")) {
+                       if (cvar("crosshair_per_weapon") || cvar("crosshair_color_per_weapon")) {
                                e = get_weaponinfo(activeweapon);
                                if (e && e.netname != "")
                                {
                                        wcross_wep = e.netname;
-                                       wcross_resolution *= cvar(strcat("crosshair_", wcross_wep, "_size"));
-                                       if (wcross_resolution == 0)
-                                               return;
-                                       wcross_alpha *= cvar(strcat("crosshair_", wcross_wep, "_alpha"));
-                                       if (wcross_alpha == 0)
-                                               return;
-                                       wcross_style = cvar_string(strcat("crosshair_", wcross_wep));
-                                       if(wcross_style == "")
-                                               wcross_style = e.netname;
-                                       if(!cvar("crosshair_color_override"))
+                                       if(cvar("crosshair_per_weapon"))
                                        {
-                                               wcross_color_x = cvar(strcat("crosshair_", wcross_wep, "_color_red"));
-                                               wcross_color_y = cvar(strcat("crosshair_", wcross_wep, "_color_green"));
-                                               wcross_color_z = cvar(strcat("crosshair_", wcross_wep, "_color_blue"));
+                                               wcross_resolution *= cvar(strcat("crosshair_", wcross_wep, "_size"));
+                                               if (wcross_resolution == 0)
+                                                       return;
+                                               wcross_alpha *= cvar(strcat("crosshair_", wcross_wep, "_alpha"));
+                                               if (wcross_alpha == 0)
+                                                       return;
+                                               wcross_style = cvar_string(strcat("crosshair_", wcross_wep));
+                                               if(wcross_style == "" || wcross_style == "0")
+                                                       wcross_style = wcross_wep;
                                        }
                                }
                        }
+                       if(wcross_wep != "" && cvar("crosshair_color_per_weapon"))
+                               wcross_color = stov(cvar_string(strcat("crosshair_", wcross_wep, "_color")));
+                       else
+                               wcross_color = stov(cvar_string("crosshair_color"));
  
                        wcross_name = strcat("gfx/crosshair", wcross_style);
  
                        float nex_charge;
                        nex_charge = getstatf(STAT_NEX_CHARGE);
  
 +                      if(nex_charge_movingavg == 0) // this should only happen if we have just loaded up the game
 +                              nex_charge_movingavg = nex_charge;
 +
                        // ring around crosshair representing bullets left in camping rifle clip
                        if (activeweapon == WEP_CAMPINGRIFLE && cr_maxbullets)
                        {
                        }
                        else if (activeweapon == WEP_NEX && nex_charge) // ring around crosshair representing velocity-dependent damage for the nex
                        {
 +                              vector rgb;
 +                              // indicate how much we're charging right now with an inner circle
 +                              a = cvar("crosshair_nexvelocity_currentcharge_alpha");
 +                              nex_charge_movingavg = (1 - cvar("crosshair_nexvelocity_currentcharge_movingavg_rate")) * nex_charge_movingavg + cvar("crosshair_nexvelocity_currentcharge_movingavg_rate") * nex_charge;
 +
 +                              rgb = eX * cvar("crosshair_nexvelocity_currentcharge_color_red") + eY * cvar("crosshair_nexvelocity_currentcharge_color_green") + eZ * cvar("crosshair_nexvelocity_currentcharge_color_blue");
 +                              DrawCircleClippedPic(wcross_origin, wcross_size_x * ring_scale, "gfx/crosshair_ring_inner.tga", bound(0, cvar("crosshair_nexvelocity_currentcharge_scale") * (nex_charge - nex_charge_movingavg), 1), rgb, wcross_alpha * a, DRAWFLAG_ADDITIVE);
 +
 +                              // draw the charge
                                a = cvar("crosshair_nexvelocity_alpha");
                                DrawCircleClippedPic(wcross_origin, wcross_size_x * ring_scale, "gfx/crosshair_ring.tga", nex_charge, wcross_color, wcross_alpha * a, DRAWFLAG_ADDITIVE);
                        }
@@@ -1296,22 -1280,18 +1293,22 @@@ void CSQC_common_hud(void
                case HUD_NORMAL:
                        // do some accuracy var caching
                        float i;
 -                      if(cvar_string("hud_panel_weapons_accuracy_color_levels") != acc_color_levels)
                        if(!(gametype == GAME_RACE || gametype == GAME_CTS))
                        {
 -                              if(acc_color_levels)
 -                                      strunzone(acc_color_levels);
 -                              acc_color_levels = strzone(cvar_string("hud_panel_weapons_accuracy_color_levels"));
 -                              acc_levels = tokenize(acc_color_levels);
 -                              if (acc_levels > MAX_ACCURACY_LEVELS)
 -                                      acc_levels = MAX_ACCURACY_LEVELS;
 -
 -                              for (i = 0; i < acc_levels; ++i)
 -                                      acc_lev[i] = stof(argv(i));
 +                              if(cvar_string("accuracy_color_levels") != acc_color_levels)
 +                              {
 +                                      if(acc_color_levels)
 +                                              strunzone(acc_color_levels);
 +                                      acc_color_levels = strzone(cvar_string("accuracy_color_levels"));
 +                                      acc_levels = tokenize(acc_color_levels);
 +                                      if (acc_levels > MAX_ACCURACY_LEVELS)
 +                                              acc_levels = MAX_ACCURACY_LEVELS;
 +
 +                                      for (i = 0; i < acc_levels; ++i)
 +                                              acc_lev[i] = stof(argv(i));
 +                              }
 +                              // let know that acc_col[] needs to be loaded
 +                              acc_col_x[0] = -1;
                        }
  
                        HUD_Main(); // always run these functions for alpha checks