]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Merge branch 'master' into Mario/overkill
authorMario <mario.mario@y7mail.com>
Thu, 20 Mar 2014 01:25:51 +0000 (12:25 +1100)
committerMario <mario.mario@y7mail.com>
Thu, 20 Mar 2014 01:25:51 +0000 (12:25 +1100)
1  2 
defaultXonotic.cfg
qcsrc/client/View.qc
qcsrc/client/autocvars.qh
qcsrc/client/waypointsprites.qc
qcsrc/server/autocvars.qh
qcsrc/server/mutators/mutator_nades.qc

diff --combined defaultXonotic.cfg
index b98c8ca194bb550b9e54bbb82b1c3fade548f496,747e0c4192e9a77e434719bbeaf6cc4d0268ccdf..cf100849dd855aa309edeee632e244edd4b0e68c
@@@ -470,7 -470,10 +470,10 @@@ set g_spawn_alloweffects 1 "allow clien
  set g_spawn_furthest 1 "this amount of the spawns shall be far away from any players"
  set g_spawn_useallspawns 0 "use all spawns, e.g. also team spawns in non-teamplay, and all spawns, even enemy spawns, in teamplay"
  // respawn delay
- set g_respawn_delay 2 "number of seconds you have to wait before you can respawn again"
+ set g_respawn_delay_small 2 "small game number of seconds you have to wait before you can respawn again"
+ set g_respawn_delay_small_count 0 "Player count per team for g_respawn_delay_small. <=0 values mean the minimum amount of players to have gameplay (typically 2 in FFA, 1 in teamplay)."
+ set g_respawn_delay_large 2 "large game number of seconds you have to wait before you can respawn again"
+ set g_respawn_delay_large_count 8 "Player count per team for g_respawn_delay_large. <=0 values mean the minimum amount of players to have gameplay (typically 2 in FFA, 1 in teamplay)."
  set g_respawn_delay_max 0 "number of seconds you can wait before you're forced to respawn (only effective with g_forced_respawn 1)"
  set g_respawn_waves 0 "respawn in waves (every n seconds), intended to decrease overwhelming base attacks"
  
@@@ -1385,8 -1388,6 +1388,8 @@@ set g_weaponreplace_minstanex "
  set g_weaponreplace_hook ""
  set g_weaponreplace_tuba ""
  set g_weaponreplace_fireball ""
 +set g_weaponreplace_hmg ""
 +set g_weaponreplace_rpc ""
  set sv_q3acompat_machineshotgunswap 0 "shorthand for swapping uzi and shotgun (for Q3A map compatibility in mapinfo files)"
  
  set g_movement_highspeed 1 "movement speed modification factor (only changes movement when above maxspeed)"
@@@ -1583,3 -1584,8 +1586,8 @@@ set cl_simpleitems_postfix "_simple" "p
  set cl_fullbright_items 0 "enable fullbright items (if server allows, controled by g_fullbrightitems)"
  set cl_weapon_stay_color "2 0.5 0.5" "Color of picked up weapons when g_weapon_stay > 0"
  set cl_weapon_stay_alpha 0.75 "Alpha of picked up weapons when g_weapon_stay > 0"
+ // Facility for config.cfg use ONLY.
+ // Interpreted in post-config.cfg.
+ seta menu_forced_saved_cvars "" "These cvars will always be saved, despite engine/Xonotic cvar saving status"
+ set menu_reverted_nonsaved_cvars "" "These cvars are currently marked as saved in the flags, but have been reverted and won't stay saved. INTERNAL USE ONLY."
diff --combined qcsrc/client/View.qc
index af6272de010ff1411e6381968b7471bef03a03be,85dfe547c15518ca455ff455bdd2dfe4cade9904..a4cf324d3d55d11366518c55c4ea6289cd5118f2
@@@ -1439,10 -1439,6 +1439,10 @@@ void CSQC_UpdateView(float w, float h
                                        float nex_charge, nex_chargepool;
                                        nex_charge = getstatf(STAT_NEX_CHARGE);
                                        nex_chargepool = getstatf(STAT_NEX_CHARGEPOOL);
 +                                      
 +                                      float ok_ammo_charge, ok_ammo_chargepool;
 +                                      ok_ammo_charge = getstatf(STAT_OK_AMMO_CHARGE);
 +                                      ok_ammo_chargepool = getstatf(STAT_OK_AMMO_CHARGEPOOl);
  
                                        if(nex_charge_movingavg == 0) // this should only happen if we have just loaded up the game
                                                nex_charge_movingavg = nex_charge;
                                                ring_rgb = wcross_color;
                                                ring_image = "gfx/crosshair_ring.tga";
                                        }
 -
 -                                      if(autocvar_crosshair_ring_reload && weapon_clipsize) // forces there to be only an ammo ring
 +                                      else if (ok_ammo_charge)
 +                                      {
 +                                              ring_value = ok_ammo_chargepool;
 +                                              ring_alpha = autocvar_crosshair_ring_reload_alpha;
 +                                              ring_rgb = wcross_color;
 +                                              ring_image = "gfx/crosshair_ring.tga";
 +                                      }
 +                                      else 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;
@@@ -1670,32 -1660,16 +1670,16 @@@ void CSQC_common_hud(void
        if(!(gametype == MAPINFO_TYPE_RACE || gametype == MAPINFO_TYPE_CTS))
                Accuracy_LoadLevels();
  
-     HUD_Main(); // always run these functions for alpha checks
-     HUD_DrawScoreboard();
+       HUD_Main(); // always run these functions for alpha checks
+       HUD_DrawScoreboard();
  
-     if (scoreboard_active) // scoreboard/accuracy
-         HUD_Reset();
-     else if (intermission == 2) // map voting screen
-     {
-         HUD_FinaleOverlay();
-         HUD_Reset();
-     }
-       /*
-       switch(hud)
+       if (scoreboard_active) // scoreboard/accuracy
+               HUD_Reset();
+       else if (intermission == 2) // map voting screen
        {
-               case HUD_SPIDERBOT:
-                       CSQC_SPIDER_HUD();
-                       break;
-               case HUD_WAKIZASHI:
-                       CSQC_WAKIZASHI_HUD();
-                       break;
-         case HUD_BUMBLEBEE:
-             CSQC_BUMBLE_HUD();
-             break;
+               MapVote_Draw();
+               HUD_Reset();
        }
-       */
  }
  
  
index f4cc0ba6c1803bcbadcb5c1d628e65fe13b25e38,5ba321ae17d89456f3411c36eff91d8144fcdf65..b8ad43a3eb1a3012f96eed6bbce29ce61f736569
@@@ -341,7 -341,17 +341,17 @@@ float autocvar_hud_panel_weapons_timeou
  float autocvar_hud_panel_weapons_timeout_fadefgmin;
  var float autocvar_hud_panel_weapons_timeout_speed_in = 0.25;
  var float autocvar_hud_panel_weapons_timeout_speed_out = 0.75;
+ vector autocvar_hud_progressbar_acceleration_color;
+ vector autocvar_hud_progressbar_acceleration_neg_color;
  float autocvar_hud_progressbar_alpha;
+ vector autocvar_hud_progressbar_armor_color;
+ vector autocvar_hud_progressbar_fuel_color;
+ vector autocvar_hud_progressbar_health_color;
+ vector autocvar_hud_progressbar_nexball_color;
+ vector autocvar_hud_progressbar_shield_color;
+ vector autocvar_hud_progressbar_speed_color;
+ vector autocvar_hud_progressbar_strength_color;
+ vector autocvar_hud_progressbar_superweapons_color;
  float autocvar_hud_showbinds;
  float autocvar_hud_showbinds_limit;
  float autocvar__hud_showbinds_reload;
@@@ -429,13 -439,3 +439,13 @@@ string autocvar__cl_playermodel
  float autocvar_cl_deathglow;
  float autocvar_developer_csqcentities;
  float autocvar_g_jetpack_attenuation;
 +
 +// OK Crosshair
 +var string autocvar_crosshair_hmg = ""; 
 +var vector autocvar_crosshair_hmg_color = '0.2 1.0 0.2';
 +var float autocvar_crosshair_hmg_alpha = 1;
 +var float autocvar_crosshair_hmg_size = 1;
 +var string autocvar_crosshair_rpc = ""; 
 +var vector autocvar_crosshair_rpc_color = '0.2 1.0 0.2';
 +var float autocvar_crosshair_rpc_alpha = 1;
 +var float autocvar_crosshair_rpc_size = 1;
index f821bd897a290c94281d62fa2f2f7682f6bfdbaa,dd7ae36b91fc09897bacb967633819e7cc61db34..4c6dfde286aa46d083c6916897d725792b57014d
@@@ -115,39 -115,31 +115,31 @@@ void drawhealthbar(vector org, float ro
  // returns location of sprite text
  vector drawspritearrow(vector o, float ang, vector rgb, float a, float t)
  {
-       float SQRT2 = 1.414;
-       float BORDER; BORDER = 1.5 * t;
-       float TSIZE; TSIZE = 8 * t;
-       float RLENGTH; RLENGTH = 8 * t;
-       float RWIDTH; RWIDTH = 4 * t;
-       float MLENGTH; MLENGTH = 4 * t;
+       float size   = 9.0 * t;
+       float border = 1.5 * t;
+       float margin = 4.0 * t;
+       float borderDiag = border * 1.414;
+       vector arrowX  = eX * size;
+       vector arrowY  = eY * (size+borderDiag);
+       vector borderX = eX * (size+borderDiag);
+       vector borderY = eY * (size+borderDiag+border);
  
        R_BeginPolygon("", DRAWFLAG_NORMAL);
-       R_PolygonVertex(o + rotate(eX * -(TSIZE + BORDER * (1 + SQRT2)) + eY * (TSIZE + BORDER), ang), '0 0 0', '0 0 0', a);
-       R_PolygonVertex(o + rotate(eX *  (TSIZE + BORDER * (1 + SQRT2)) + eY * (TSIZE + BORDER), ang), '0 0 0', '0 0 0', a);
-       R_PolygonVertex(o + rotate(eY * -(        BORDER *      SQRT2),                          ang), '0 0 0', '0 0 0', a);
-       R_EndPolygon();
-       R_BeginPolygon("", DRAWFLAG_NORMAL);
-       R_PolygonVertex(o + rotate(eX * -(RWIDTH + BORDER) + eY * (TSIZE           + BORDER), ang), '0 0 0', '0 0 0', a);
-       R_PolygonVertex(o + rotate(eX * -(RWIDTH + BORDER) + eY * (TSIZE + RLENGTH + BORDER), ang), '0 0 0', '0 0 0', a);
-       R_PolygonVertex(o + rotate(eX *  (RWIDTH + BORDER) + eY * (TSIZE + RLENGTH + BORDER), ang), '0 0 0', '0 0 0', a);
-       R_PolygonVertex(o + rotate(eX *  (RWIDTH + BORDER) + eY * (TSIZE           + BORDER), ang), '0 0 0', '0 0 0', a);
+       R_PolygonVertex(o,                                  '0 0 0', '0 0 0', a);
+       R_PolygonVertex(o + rotate(arrowY  - borderX, ang), '0 0 0', '0 0 0', a);
+       R_PolygonVertex(o + rotate(borderY - borderX, ang), '0 0 0', '0 0 0', a);
+       R_PolygonVertex(o + rotate(borderY + borderX, ang), '0 0 0', '0 0 0', a);
+       R_PolygonVertex(o + rotate(arrowY  + borderX, ang), '0 0 0', '0 0 0', a);
        R_EndPolygon();
  
        R_BeginPolygon("", DRAWFLAG_ADDITIVE);
-       R_PolygonVertex(o + rotate(eX * -TSIZE + eY * TSIZE, ang), '0 0 0', rgb, a);
-       R_PolygonVertex(o + rotate(eX *  TSIZE + eY * TSIZE, ang), '0 0 0', rgb, a);
-       R_PolygonVertex(o + rotate('0 0 0',                  ang), '0 0 0', rgb, a);
-       R_EndPolygon();
-       R_BeginPolygon("", DRAWFLAG_ADDITIVE);
-       R_PolygonVertex(o + rotate(eX * -RWIDTH + eY *  TSIZE,            ang), '0 0 0', rgb, a);
-       R_PolygonVertex(o + rotate(eX * -RWIDTH + eY * (TSIZE + RLENGTH), ang), '0 0 0', rgb, a);
-       R_PolygonVertex(o + rotate(eX *  RWIDTH + eY * (TSIZE + RLENGTH), ang), '0 0 0', rgb, a);
-       R_PolygonVertex(o + rotate(eX *  RWIDTH + eY *  TSIZE,            ang), '0 0 0', rgb, a);
+       R_PolygonVertex(o + rotate(eY * borderDiag, ang), '0 0 0', rgb, a);
+       R_PolygonVertex(o + rotate(arrowY - arrowX, ang), '0 0 0', rgb, a);
+       R_PolygonVertex(o + rotate(arrowY + arrowX, ang), '0 0 0', rgb, a);
        R_EndPolygon();
  
-       return
-               o + rotate(eY * (TSIZE + RLENGTH + MLENGTH), ang);
+       return o + rotate(eY * (borderDiag+size+margin), ang);
  }
  
  // returns location of sprite healthbar
@@@ -304,8 -296,6 +296,8 @@@ string spritelookuptext(string s
                case "wpn-hlac": return _("HLAC");
                case "wpn-campingrifle": return _("Rifle");
                case "wpn-minelayer": return _("Mine Layer");
 +              case "wpn-ok_hmg": return _("Heavy Machine Gun");
 +              case "wpn-ok_rl": return _("Rocket-Propelled Chainsaw");
                case "dom-neut": return _("Control point");
                case "dom-red": return _("Control point");
                case "dom-blue": return _("Control point");
index 333b17bacfc457f446b398618e062541b417e147,674c95b14ea735e2b67e0cb063f21702e2a1c754..02fc2678bc3b2a5e4315dd2bc1b60fbae080fa66
@@@ -795,7 -795,6 +795,6 @@@ float autocvar_g_domination_point_leadl
  float autocvar_g_domination_point_rate;
  float autocvar_g_domination_teams_override;
  float autocvar_g_forced_respawn;
- float autocvar_g_respawn_delay_max;
  string autocvar_g_forced_team_blue;
  string autocvar_g_forced_team_otherwise;
  string autocvar_g_forced_team_pink;
@@@ -944,7 -943,11 +943,11 @@@ float autocvar_g_projectiles_spread_sty
  float autocvar_g_race_qualifying_timelimit;
  float autocvar_g_race_qualifying_timelimit_override;
  float autocvar_g_race_teams;
- float autocvar_g_respawn_delay;
+ float autocvar_g_respawn_delay_small;
+ float autocvar_g_respawn_delay_small_count;
+ float autocvar_g_respawn_delay_large;
+ float autocvar_g_respawn_delay_large_count;
+ float autocvar_g_respawn_delay_max;
  float autocvar_g_respawn_ghosts;
  float autocvar_g_respawn_ghosts_maxtime;
  float autocvar_g_respawn_ghosts_speed;
@@@ -1196,31 -1199,6 +1199,31 @@@ float autocvar_waypoint_benchmark
  float autocvar_sv_gameplayfix_gravityunaffectedbyticrate;
  float autocvar_g_trueaim_minrange;
  float autocvar_g_debug_defaultsounds;
 +float autocvar_g_balance_hmg_solidpenetration;
 +float autocvar_g_balance_hmg_spread_add;
 +float autocvar_g_balance_hmg_spread_max;
 +float autocvar_g_balance_hmg_spread_min;
 +float autocvar_g_balance_hmg_sustained_ammo;
 +float autocvar_g_balance_hmg_sustained_damage;
 +float autocvar_g_balance_hmg_sustained_force;
 +float autocvar_g_balance_hmg_sustained_refire;
 +float autocvar_g_balance_hmg_reload_ammo;
 +float autocvar_g_balance_hmg_reload_time;
 +float autocvar_g_balance_rpc_ammo;
 +float autocvar_g_balance_rpc_animtime;
 +float autocvar_g_balance_rpc_damage;
 +float autocvar_g_balance_rpc_damage2;
 +float autocvar_g_balance_rpc_damageforcescale;
 +float autocvar_g_balance_rpc_edgedamage;
 +float autocvar_g_balance_rpc_force;
 +float autocvar_g_balance_rpc_health;
 +float autocvar_g_balance_rpc_lifetime;
 +float autocvar_g_balance_rpc_radius;
 +float autocvar_g_balance_rpc_refire;
 +float autocvar_g_balance_rpc_speed;
 +float autocvar_g_balance_rpc_speedaccel;
 +float autocvar_g_balance_rpc_reload_ammo;
 +float autocvar_g_balance_rpc_reload_time;
  float autocvar_g_grab_range;
  float autocvar_g_sandbox_info;
  float autocvar_g_sandbox_readonly;
@@@ -1294,14 -1272,6 +1297,14 @@@ float autocvar_g_campcheck_damage
  float autocvar_g_campcheck_distance;
  float autocvar_g_campcheck_interval;
  float autocvar_g_jump_grunt;
 +float autocvar_g_overkill_powerups_replace;
 +float autocvar_g_overkill_superguns_respawn_time;
 +float autocvar_g_overkill_100h_anyway;
 +float autocvar_g_overkill_100a_anyway;
 +float autocvar_g_overkill_ammo_start;
 +float autocvar_g_overkill_ammo_charge;
 +float autocvar_g_overkill_ammo_charge_notice;
 +float autocvar_g_overkill_ammo_charge_limit;
  float autocvar_g_spawn_near_teammate_distance;
  float autocvar_g_spawn_near_teammate_ignore_spawnpoint;
  float autocvar_g_spawn_near_teammate_ignore_spawnpoint_delay;
index 37ad373a38430c4dec39cd250485d75c4317f215,2fad6022673c855e4fae529dfe8dc6158bba0954..2b200ffc90cea73696d5a37634c4505adc4b3e9e
@@@ -169,16 -169,15 +169,15 @@@ void toss_nade(entity e, vector _veloci
        if (trace_startsolid)
                setorigin(_nade, e.origin);
  
-       if(e.crouch)
-               _nade.velocity = '0 0 -10';
+       if(self.v_angle_x >= 70 && self.v_angle_x <= 110)
+               _nade.velocity = '0 0 100';
        else if(autocvar_g_nades_nade_newton_style == 1)
                _nade.velocity = e.velocity + _velocity;
        else if(autocvar_g_nades_nade_newton_style == 2)
                _nade.velocity = _velocity;
        else
                _nade.velocity = W_CalculateProjectileVelocity(e.velocity, _velocity, TRUE);
-       //_nade.solid = SOLID_BBOX; // TODO: remember why this was needed
+               
        _nade.touch = nade_touch;
        _nade.health = autocvar_g_nades_nade_health;
        _nade.max_health = _nade.health;
@@@ -286,12 -285,6 +285,12 @@@ void nades_CheckThrow(
        }
  }
  
 +MUTATOR_HOOKFUNCTION(nades_CheckThrow)
 +{
 +      if(MUTATOR_RETURNVALUE) { nades_CheckThrow(); }
 +      return FALSE;
 +}
 +
  MUTATOR_HOOKFUNCTION(nades_VehicleEnter)
  {
        if(other.nade)
@@@ -375,7 -368,6 +374,7 @@@ MUTATOR_HOOKFUNCTION(nades_BuildMutator
  
  MUTATOR_DEFINITION(mutator_nades)
  {
 +      MUTATOR_HOOK(ForbidThrowCurrentWeapon, nades_CheckThrow, CBC_ORDER_LAST);
        MUTATOR_HOOK(VehicleEnter, nades_VehicleEnter, CBC_ORDER_ANY);
        MUTATOR_HOOK(PlayerPreThink, nades_PlayerPreThink, CBC_ORDER_ANY);
        MUTATOR_HOOK(PlayerSpawn, nades_PlayerSpawn, CBC_ORDER_ANY);