Merge branch 'master' into samual/water_and_damage_blur
authorSamual <samual@xonotic.org>
Tue, 18 Jan 2011 19:58:03 +0000 (14:58 -0500)
committerSamual <samual@xonotic.org>
Tue, 18 Jan 2011 19:58:03 +0000 (14:58 -0500)
1  2 
defaultXonotic.cfg
qcsrc/client/View.qc

diff --combined defaultXonotic.cfg
@@@ -461,6 -461,7 +461,7 @@@ locs_enable 
  pausable 0
  seta g_spawnshieldtime 1.000000 "number of seconds you are invincible after you spawned, this shield is lost after you fire"
  seta g_antilag 2      "AntiLag (0 = no AntiLag, 1 = verified client side hit scan, 2 = server side hit scan in the past, 3 = unverified client side hit scan)"
+ set g_trueaim_minrange 44 "TrueAim minimum range (TrueAim adjusts shots so they hit the crosshair point even though the gun is not at the screen center)"
  set g_antilag_nudge 0 "don't touch"
  set g_antilag_bullets 1 "Bullets AntiLag (0 = no AntiLag, 1 = server side hit scan in the past) - DO NOT TOUCH (severely changes weapon balance)"
  set g_shootfromclient 1 "let client decide if it has the gun left or right; if set to 2, center handedness is allowed, and defaulted to, too; see also cl_gunalign"
@@@ -643,6 -644,7 +644,7 @@@ seta g_mirrordamage 0.700000       "for teamp
  seta g_mirrordamage_virtual 1 "for teamplay 4: do not actually apply mirror damage, just show graphics effect for it"
  seta g_friendlyfire 0.500000  "for teamplay 4: fiendly fire factor"
  seta g_friendlyfire_virtual 1 "for teamplay 4: do not actually apply friendly fire, just show graphics effect for it"
+ seta g_friendlyfire_virtual_force 1   "for teamplay 4: apply force even though damage was made virtual only"
  seta g_teamdamage_threshold 40        "for teamplay 4: threshold over which to apply mirror damage"
  seta g_teamdamage_resetspeed 20       "for teamplay 4: how fast player's teamdamage count decreases"
  
@@@ -1274,23 -1276,25 +1276,25 @@@ set g_keyhunt_teams 
  
  // keepaway
  set g_keepaway 0 "game mode which focuses around a ball, look at g_keepaway_win_mode for further details"
- set g_keepaway_bckillscore 1 "enable scoring points (y/n) for ball carrier kills"
- set g_keepaway_pointlimit     -1      "total amount of points you can get, -1 for unlimited"
- set g_keepaway_pointleadlimit -1      "mercy rule, -1 for unlimited"
- set g_keepaway_ballcarrier_alpha 0.6 "alpha when the player is the ballcarrier"
- set g_keepaway_ballcarrier_highspeed 1.5 "speed multiplier done to the person holding the ball"
- set g_keepaway_ballcarrier_damage     1.5     "damage multiplier while having powerup"
- set g_keepaway_ballcarrier_force      1.5     "force multiplier while having powerup"
- set g_keepaway_ballcarrier_selfdamage 1       "self damage multiplier while having powerup"
- set g_keepaway_ballcarrier_selfforce  1.5     "self force multiplier while having powerup"
- set g_keepaway_noncarrier_warn        0       "warn players when they kill without holding the ball"
- set g_keepaway_noncarrier_damage      0.5     "damage done to other players if both you and they don't have the ball"
- set g_keepaway_noncarrier_force       0.5     "force done to other players if both you and they don't have the ball"
+ set g_keepaway_score_bckill 1 "enable scoring points (y/n) for ball carrier kills (value is how many points to award)"
+ set g_keepaway_score_killac 1 "amount of points to give when you kill someone while you have the ball"
+ set g_keepaway_score_timeinterval 1 "amount of time it takes between intervals for timepoints to be added to the score"
+ set g_keepaway_score_timepoints 0 "points to add to score per timeinterval, 0 for no points"
+ set g_keepaway_ballcarrier_effects 8 "Add together the numbers you want: EF_ADDITIVE (32) / EF_NODEPTHTEST (8192) / EF_DIMLIGHT (8)"
+ set g_keepaway_ballcarrier_highspeed 1 "speed multiplier done to the person holding the ball (recommended when used with some mutators)"
+ set g_keepaway_ballcarrier_damage     1       "damage multiplier while holding the ball"
+ set g_keepaway_ballcarrier_force      1       "force multiplier while holding the ball"
+ set g_keepaway_ballcarrier_selfdamage 1       "self damage multiplier while holding the ball"
+ set g_keepaway_ballcarrier_selfforce  1       "self force multiplier while holding the ball"
+ set g_keepaway_noncarrier_warn        1       "warn players when they kill without holding the ball"
+ set g_keepaway_noncarrier_damage      1       "damage done to other players if both you and they don't have the ball"
+ set g_keepaway_noncarrier_force       1       "force done to other players if both you and they don't have the ball"
  set g_keepaway_noncarrier_selfdamage  1       "self damage if you don't have the ball"
  set g_keepaway_noncarrier_selfforce   1       "self force if you don't have the ball"
+ set g_keepawayball_effects 0 "Add together the numbers you want: EF_ADDITIVE (32) / EF_NODEPTHTEST (8192) / EF_DIMLIGHT (8)"
  set g_keepawayball_trail_color        254     "particle trail color from player/ball"
- set g_keepawayball_damageforcescale   2 "Scale of force which is applied to the ball by weapons/explosions/etc"
- set g_keepawayball_respawntime        15      "if no one picks up the ball, how long to wait until the ball respawns"
+ set g_keepawayball_damageforcescale   3 "Scale of force which is applied to the ball by weapons/explosions/etc"
+ set g_keepawayball_respawntime        10      "if no one picks up the ball, how long to wait until the ball respawns"
  seta g_keepaway_teams_override 0
  set g_keepaway_teams 0
  
@@@ -1424,10 -1428,7 +1428,10 @@@ seta hud_showbinds_limit 2    "maximum num
  
  seta hud_colorflash_alpha 0.5 "starting alpha of the color flash"
  
 -seta hud_damage 0.55 "an improved version of gl_polyblend, draw an image instead when hurt"
 +seta hud_damage 0.55 "an improved version of gl_polyblend for damage, draw an image or blur instead when hurt"
 +seta hud_damage_blur 0 "Use postprocessing to blur the screen when you have taken damage. This can be paired with current hud damage or just used alone. Higher values = more blur"
 +seta hud_damage_blur_alpha 0.5 "Amount of alpha to use when merging the blurred layers back into the render. Turning this up higher will remove bloom, so it's best to find a balance"
 +seta hud_damage_image 1 "Enable the drawing of an image for damage. This allows you to disable the image if you want to only have damage blur"
  seta hud_damage_gentle_alpha_multiplier 0.10 "how much to multiply alpha of flash when using the cl_gentle version, it's much more opaque than the non-gentle version"
  seta hud_damage_gentle_color "1 0.7 1" "color of flash for cl_gentle version"
  seta hud_damage_color "1 0 0" "color of flash"
@@@ -1440,22 -1441,6 +1444,22 @@@ seta hud_damage_pain_threshold_lower_he
  seta hud_damage_pain_threshold_pulsating_min 0.6 "minimum value when calculating the pulse: max(pulsating_min, fabs(sin(PI * time / period))"
  seta hud_damage_pain_threshold_pulsating_period 0.8 "one pulse every X seconds"
  
 +seta hud_postprocessing 1 "enables the ability for effects such as hud_damage_blur and hud_contents to apply a postprocessing method upon the screen - enabling this disables manual editing of the postprocess cvars"
 +seta hud_postprocessing_maxbluralpha 0.5 "maximum alpha which the blur postprocess can be"
 +seta hud_postprocessing_maxblurradius 10 "maximum radius which the blur postprocess can be"
 +
 +seta hud_contents 1 "an improved version of gl_polyblend for liquids such as water/lava/slime, draw a filler or blur when inside the liquid"
 +seta hud_contents_blur 0 "Use postprocessing to blur the screen when you are inside a liquid. Higher values = more blur"
 +seta hud_contents_blur_alpha 0.5 "Amount of alpha to use when merging the blurred layers back into the render. Turning this up higher will remove bloom, so it's best to find a balance"
 +seta hud_contents_factor 1 "factor at which to multiply the current faded value."
 +seta hud_contents_fadetime 0.1 "factor of time for average alpha level to go to the actual content value"
 +seta hud_contents_lava_alpha 0.7 "alpha of the lava color blend when inside it"
 +seta hud_contents_lava_color "0.8 0.1 0" 
 +seta hud_contents_slime_alpha 0.7 "alpha of the slime color blend when inside it"
 +seta hud_contents_slime_color "0 0.5 0.2"
 +seta hud_contents_water_alpha 0.5 "alpha of the water color blend when inside it"
 +seta hud_contents_water_color "0 0.5 0.7"
 +
  // scoreboard
  seta scoreboard_columns default
  seta scoreboard_border_thickness 1 "scoreboard border thickness"
@@@ -1612,9 -1597,6 +1616,6 @@@ set capturelimit 
  seta hud_fontsize 11
  seta scr_centersize 12
  seta hud_width 560
- // alias hud_font "loadfont user1 ${1},gfx/fallback ${2-}; loadfont user2 ${1}-big ${2-}; scoreboard_columns_set"
- alias sbar_font "set _requested_sbar_font \"${*}\""
- sbar_font gfx/vera-sans 8 12 16 24 32
  
  // these entities are not referenced by anything directly, they just represent
  // teams and are found by find() when needed
@@@ -2008,9 -1990,10 +2009,10 @@@ scr_conscroll_y -0.
  
  scr_loadingscreen_background 0
  scr_loadingscreen_barcolor "0 0.5 1"
- scr_loadingscreen_barheight 20
+ scr_loadingscreen_barheight 12
  scr_loadingscreen_count 1
  scr_conforcewhiledisconnected 0
+ scr_infobar_height 12
  
  // DP cannot properly detect this, so rather turn off the detection
  r_texture_dds_load_dxt1_noalpha 1
@@@ -2102,7 -2085,7 +2104,7 @@@ exec ctfscoring-ai.cf
  exec effects-normal.cfg
  exec physicsX0.cfg
  exec turrets.cfg
- exec font-nimbussansl.cfg
+ exec font-xolonium.cfg
  
  // hud cvar descriptions
  exec _hud_descriptions.cfg
diff --combined qcsrc/client/View.qc
@@@ -306,6 -306,9 +306,9 @@@ float TrueAimCheck(
        traceline(view_origin, view_origin + view_forward * MAX_SHOT_DISTANCE, mv, ta);
        trueaimpoint = trace_endpos;
  
+       if(vlen(trueaimpoint - view_origin) < g_trueaim_minrange)
+               trueaimpoint = view_origin + view_forward * g_trueaim_minrange;
        if(vecs_x > 0)
                vecs_y = -vecs_y;
        else
@@@ -357,8 -360,6 +360,8 @@@ float myhealth_flash
  
  vector myhealth_gentlergb;
  
 +float contentavgalpha;
 +
  void CSQC_UpdateView(float w, float h)
  {
        entity e;
                        drawpic(reticle_pos, "gfx/reticle_nex", reticle_size, '1 1 1', f * autocvar_cl_reticle_item_nex, DRAWFLAG_NORMAL);
        }
  
 -      // improved polyblend
 +      // improved polyblend with post processing effects
        vector rgb;
 +      vector damage_blurpostprocess;
 +      vector content_blurpostprocess;
 +      if(autocvar_hud_contents)
 +      {
 +              float contentalpha_temp, incontent, liquidalpha;
 +              vector liquidcolor;
 +              
 +              switch(pointcontents(view_origin))
 +              {
 +                      case CONTENT_WATER:
 +                              liquidalpha = autocvar_hud_contents_water_alpha;
 +                              liquidcolor = stov(autocvar_hud_contents_water_color);
 +                              incontent = 1;
 +                              break;
 +                              
 +                      case CONTENT_LAVA:
 +                              liquidalpha = autocvar_hud_contents_lava_alpha;
 +                              liquidcolor = stov(autocvar_hud_contents_lava_color);
 +                              incontent = 1;
 +                              break;  
 +                                                      
 +                      case CONTENT_SLIME:
 +                              liquidalpha = autocvar_hud_contents_slime_alpha;
 +                              liquidcolor = stov(autocvar_hud_contents_slime_color);
 +                              incontent = 1;
 +                              break;
 +                              
 +                      default:
 +                              liquidalpha = 0;
 +                              liquidcolor = '0 0 0';
 +                              incontent = 0;
 +                              break;
 +              }
 +              
 +              contentalpha_temp = bound(0, drawframetime / max(0.0001, autocvar_hud_contents_fadetime), 1);
 +              contentavgalpha = contentavgalpha * (1 - contentalpha_temp) + incontent * contentalpha_temp;
 +              //contentalpha_temp = contentavgalpha;
 +              
 +              if(incontent)
 +                      drawfill('0 0 0', eX * vid_conwidth + eY * vid_conheight, liquidcolor, contentavgalpha * liquidalpha, DRAWFLAG_NORMAL);
 +              
 +              if(autocvar_hud_postprocessing)
 +              {
 +                      if(autocvar_hud_contents_blur)
 +                      {
 +                              content_blurpostprocess_x = 1;
 +                              content_blurpostprocess_y = contentavgalpha * autocvar_hud_contents_blur;
 +                              content_blurpostprocess_z = contentavgalpha * autocvar_hud_contents_blur_alpha;
 +                      }
 +                      else
 +                      {
 +                              content_blurpostprocess_x = 0;
 +                              content_blurpostprocess_y = 0;
 +                              content_blurpostprocess_z = 0;
 +                      }
 +              }
 +      }
 +      
        if(autocvar_hud_damage)
        {
                float myhealth_flash_temp;
  
                        drawfill('0 0 0', eX * vid_conwidth + eY * vid_conheight, myhealth_gentlergb, autocvar_hud_damage_gentle_alpha_multiplier * bound(0, myhealth_flash_temp, 1) * autocvar_hud_damage, DRAWFLAG_NORMAL);
                }
 -              else
 +              else if(autocvar_hud_damage_image)
                        drawpic(reticle_pos, "gfx/blood", reticle_size, stov(autocvar_hud_damage_color), bound(0, myhealth_flash_temp, 1) * autocvar_hud_damage, DRAWFLAG_NORMAL);
 +                      
 +              if(autocvar_hud_postprocessing)
 +              {
 +                      if(autocvar_hud_damage_blur)
 +                      {
 +                              damage_blurpostprocess_x = 1;
 +                              damage_blurpostprocess_y = bound(0, myhealth_flash_temp, 1) * autocvar_hud_damage_blur;
 +                              damage_blurpostprocess_z = bound(0, myhealth_flash_temp, 1) * autocvar_hud_damage_blur_alpha;
 +                      }
 +                      else
 +                      {
 +                              damage_blurpostprocess_x = 0;
 +                              damage_blurpostprocess_y = 0;
 +                              damage_blurpostprocess_z = 0;
 +                      }
 +              }
 +      }
 +      
 +      if(autocvar_hud_postprocessing)
 +      { // lets apply the postprocess effects from the previous two functions if needed
 +              if(damage_blurpostprocess_x || content_blurpostprocess_x)
 +              {
 +                      float blurradius = bound(0, damage_blurpostprocess_y + content_blurpostprocess_y, autocvar_hud_postprocessing_maxblurradius);
 +                      float bluralpha = bound(0, damage_blurpostprocess_z + content_blurpostprocess_z, autocvar_hud_postprocessing_maxbluralpha);
 +                      cvar_set("r_glsl_postprocess_uservec1", strcat(ftos(blurradius), " ", ftos(bluralpha), " 0 0"));
 +                      cvar_set("r_glsl_postprocess_uservec1_enable", "1");
 +              }
 +              else
 +              {
 +                      cvar_set("r_glsl_postprocess_uservec1", "0 0 0 0");
 +                      cvar_set("r_glsl_postprocess_uservec1_enable", "0");
 +              }
        }
 +      
  
        // Draw the mouse cursor
        // NOTE: drawpic must happen after R_RenderScene for some reason