Merge branch 'master' into Lyberta/StandaloneOverkillWeapons
authorLyberta <lyberta@lyberta.net>
Thu, 1 Jun 2017 13:09:53 +0000 (16:09 +0300)
committerLyberta <lyberta@lyberta.net>
Thu, 1 Jun 2017 13:09:53 +0000 (16:09 +0300)
1  2 
defaultXonotic.cfg
qcsrc/server/client.qc
qcsrc/server/defs.qh

diff --combined defaultXonotic.cfg
index f29fc86774578a0878d7b071758a0b50d301e826,2b431e8fe3a9436e9c7166acc0b848db6a31b6ac..ab7f0e56977f35b490484f1057e4d640ccea7868
@@@ -321,7 -321,7 +321,7 @@@ seta sv_spectate 1 "if set to 1, new cl
  seta sv_defaultcharacter 0 "master switch, if set to 1 the further configuration for replacing all player models, skins and colors is taken from the sv_defaultplayermodel, sv_defaultplayerskin and sv_defaultplayercolors variables"
  seta sv_defaultcharacterskin 0 "if set to 1 the further configuration for replacing all skins is taken from the sv_defaultplayerskin variables"
  seta sv_defaultplayermodel "models/player/erebus.iqm" "default model selection, only works if sv_defaultcharacter is set to 1; you may append a :<skinnumber> suffix to model names; you can specify multiple, separated by space, and a random one will be chosen"
- seta sv_defaultplayerskin 0 "each model has 1 or more skins (combination of model and skin = character), set which skin of the model you wish the default character to have, only works if sv_defaultcharacter is set to 1; can be overriden by :<skinnumber> suffix in sv_defaultplayermodel"
+ seta sv_defaultplayerskin 0 "each model has 1 or more skins (combination of model and skin = character), set which skin of the model you wish the default character to have, only works if sv_defaultcharacter is set to 1; can be overridden by :<skinnumber> suffix in sv_defaultplayermodel"
  seta sv_defaultplayermodel_red ""     "\"\" means see sv_defaultplayermodel"
  seta sv_defaultplayerskin_red 0
  seta sv_defaultplayermodel_blue "" "\"\" means see sv_defaultplayermodel"
@@@ -373,9 -373,9 +373,9 @@@ set bot_ai_keyboard_threshold 0.5
  set bot_ai_aimskill_offset 0.3 "Amount of error induced to the bots aim"
  set bot_ai_aimskill_think 1 "Aiming velocity. Use values below 1 for slower aiming"
  set bot_ai_custom_weapon_priority_distances "300 850" "Define close and far distances in any order. Based on the distance to the enemy bots will choose different weapons"
 -set bot_ai_custom_weapon_priority_far   "vaporizer vortex rifle electro devastator mortar hagar hlac crylink blaster machinegun fireball seeker shotgun shockwave tuba minelayer"     "Desired weapons for far distances ordered by priority"
 -set bot_ai_custom_weapon_priority_mid   "vaporizer devastator vortex fireball seeker mortar electro machinegun arc crylink hlac hagar shotgun shockwave blaster rifle tuba minelayer" "Desired weapons for middle distances ordered by priority"
 -set bot_ai_custom_weapon_priority_close "vaporizer vortex shotgun shockwave machinegun arc hlac tuba seeker hagar crylink mortar electro devastator blaster fireball rifle minelayer" "Desired weapons for close distances ordered by priority"
 +set bot_ai_custom_weapon_priority_far   "vaporizer okvortex vortex rifle electro devastator mortar hagar hlac crylink blaster okmachinegun machinegun fireball seeker okshotgun shotgun shockwave tuba minelayer"     "Desired weapons for far distances ordered by priority"
 +set bot_ai_custom_weapon_priority_mid   "vaporizer devastator okvortex vortex fireball seeker mortar electro okmachinegun machinegun arc crylink hlac hagar okshotgun shotgun shockwave blaster rifle tuba minelayer" "Desired weapons for middle distances ordered by priority"
 +set bot_ai_custom_weapon_priority_close "vaporizer okvortex vortex okshotgun shotgun shockwave okmachinegun machinegun arc hlac tuba seeker hagar crylink mortar electro devastator blaster fireball rifle minelayer" "Desired weapons for close distances ordered by priority"
  set bot_ai_weapon_combo 1     "Enable bots to do weapon combos"
  set bot_ai_weapon_combo_threshold 0.4 "Try to make a combo N seconds after the last attack"
  set bot_ai_friends_aware_pickup_radius "500"  "Bots will not pickup items if a team mate is this distance near the item"
@@@ -788,12 -788,11 +788,11 @@@ alias "g_waypointsprite_team_danger_d"  
  alias "g_waypointsprite_clear_personal"       "impulse 47"
  alias "g_waypointsprite_clear"        "impulse 48"
  alias "g_waypointsprite_toggle"       "toggle cl_hidewaypoints"
- // key for that?
  seta cl_hidewaypoints 0 "disable static waypoints, only show team waypoints"
  
  seta g_waypointsprite_turrets 1 "disable turret waypoints"
- seta g_waypointsprite_turrets_maxdist 5000 "max distace for turret sprites"
- seta g_waypointsprite_tactical 1 "tactical overlay on turrets when in a vehicle"
+ seta g_waypointsprite_turrets_maxdist 5000 "max distance for turret waypoints"
  
  seta cl_damagetext "1" "Draw damage dealt where you hit the enemy"
  seta cl_damagetext_format "-{total}" "How to format the damage text. {health}, {armor}, {total}, {potential}: full damage not capped to target's health, {potential_health}: health damage not capped to target's health"
@@@ -1059,13 -1058,13 +1058,13 @@@ sv_allowdownloads 0 // download protoco
  
  set g_jump_grunt 0    "Do you make a grunting noise every time you jump? Is it the same grunting noise every time?"
  
 -seta cl_weaponpriority "vaporizer hmg rpc vortex fireball mortar machinegun hagar rifle arc electro devastator crylink minelayer shotgun shockwave hlac tuba blaster porto seeker hook" "weapon priority list"
 +seta cl_weaponpriority "vaporizer hmg rpc okvortex okshotgun okmachinegun vortex fireball mortar machinegun hagar rifle arc electro devastator crylink minelayer shotgun shockwave hlac tuba blaster porto seeker hook" "weapon priority list"
  seta cl_weaponpriority_useforcycling 0 "when set, weapon cycling by the mouse wheel makes use of the weapon priority list (the special value 2 uses the weapon ID list for cycling)"
  seta cl_weaponpriority0 "rpc devastator mortar hagar seeker fireball"                   "use weapon_priority_0_prev for prev gun from this list, weapon_priority_0_best for best gun, weapon_priority_0_next for next gun.  Default value: explosives"
 -seta cl_weaponpriority1 "vaporizer vortex crylink hlac arc electro blaster shockwave"   "use weapon_priority_1_prev for prev gun from this list, weapon_priority_1_best for best gun, weapon_priority_1_next for next gun.  Default value: energy"
 -seta cl_weaponpriority2 "vaporizer vortex rifle"                                        "use weapon_priority_2_prev for prev gun from this list, weapon_priority_2_best for best gun, weapon_priority_2_next for next gun.  Default value: hitscan exact"
 -seta cl_weaponpriority3 "vaporizer hmg vortex rifle machinegun shotgun shockwave"       "use weapon_priority_3_prev for prev gun from this list, weapon_priority_3_best for best gun, weapon_priority_3_next for next gun.  Default value: hitscan all"
 -seta cl_weaponpriority4 "mortar minelayer hlac hagar crylink seeker shotgun shockwave"  "use weapon_priority_4_prev for prev gun from this list, weapon_priority_4_best for best gun, weapon_priority_4_next for next gun.  Default value: spam weapons"
 +seta cl_weaponpriority1 "vaporizer okvortex vortex crylink hlac arc electro blaster shockwave"   "use weapon_priority_1_prev for prev gun from this list, weapon_priority_1_best for best gun, weapon_priority_1_next for next gun.  Default value: energy"
 +seta cl_weaponpriority2 "vaporizer okvortex vortex rifle"                                        "use weapon_priority_2_prev for prev gun from this list, weapon_priority_2_best for best gun, weapon_priority_2_next for next gun.  Default value: hitscan exact"
 +seta cl_weaponpriority3 "vaporizer hmg okvortex vortex rifle okmachinegun machinegun okshotgun shotgun shockwave"       "use weapon_priority_3_prev for prev gun from this list, weapon_priority_3_best for best gun, weapon_priority_3_next for next gun.  Default value: hitscan all"
 +seta cl_weaponpriority4 "mortar minelayer hlac hagar crylink seeker okshotgun shotgun shockwave"  "use weapon_priority_4_prev for prev gun from this list, weapon_priority_4_best for best gun, weapon_priority_4_next for next gun.  Default value: spam weapons"
  seta cl_weaponpriority5 "blaster shockwave hook porto"                                  "use weapon_priority_5_prev for prev gun from this list, weapon_priority_5_best for best gun, weapon_priority_5_next for next gun.  Default value: weapons for moving"
  seta cl_weaponpriority6 ""                                                              "use weapon_priority_6_prev for prev gun from this list, weapon_priority_6_best for best gun, weapon_priority_6_next for next gun"
  seta cl_weaponpriority7 ""                                                              "use weapon_priority_7_prev for prev gun from this list, weapon_priority_7_best for best gun, weapon_priority_7_next for next gun"
@@@ -1152,7 -1151,7 +1151,7 @@@ seta sv_gentle 0                "force gentle mode fo
  seta cl_gentle 0              "client side gentle mode, master switch for removing both gibs and messages"
  seta cl_gentle_gibs 0         "client side gentle mode (only replaces gibs); when set to 1, white smoke replaces gibs, when set to 2, colorful clouds replace gibs"
  seta cl_gentle_messages 0     "client side gentle mode (only replaces frag messages/centerprints)"
- seta cl_gentle_damage 0               "client side gentle mode (only replaces damage flash); when set to 1, a white flash replaces the blood image, when set to 2, a randomily colored flash is used instead"
+ seta cl_gentle_damage 0       "client side gentle mode (only replaces damage flash); when set to 1, a white flash replaces the blood image, when set to 2, a randomly colored flash is used instead"
  
  set g_jetpack 0 "Jetpack mutator"
  
@@@ -1236,7 -1235,7 +1235,7 @@@ seta cl_forceplayercolors 0 "make enemi
  seta cl_forcemyplayermodel "" "set to the model file name you want to show yourself as (does not affect how enemies look with cl_forceplayermodels)"
  seta cl_forcemyplayerskin 0 "set to the skin number you want to show yourself as (does not affect how enemies look with cl_forceplayermodels)"
  seta cl_forcemyplayercolors 0 "set to the color value (encoding is same as _cl_color) for your own player model (ignored in teamplay; does not affect how enemies look with cl_forceplayermodels)"
- seta cl_movement_errorcompensation 1 "try to compensate for prediction errors and reduce preceived lag"
+ 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"
  
  // campaign internal, set when loading a campaign map1G
@@@ -1498,7 -1497,7 +1497,7 @@@ seta cl_ghost_items_color "-1 -1 -1" "c
  set sv_simple_items 1 "allow or forbid client use of simple items"
  seta cl_simple_items 0 "enable simple items (if server allows)"
  set cl_simpleitems_postfix "_luma" "posfix to add fo model name when simple items are enabled"
- set cl_fullbright_items 0 "enable fullbright items (if server allows, controled by g_fullbrightitems)"
+ set cl_fullbright_items 0 "enable fullbright items (if server allows, controlled 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"
  
diff --combined qcsrc/server/client.qc
index 7ff2f028f0faf330492b3f4dcb41546c72723495,2ab3160ed7e951f390e402b4a480ed68e87e16be..af5cdb1315258d4a5c91301843778e5305b047e2
@@@ -56,8 -56,6 +56,8 @@@
  
  #include "../lib/warpzone/server.qh"
  
 +#include <common/mutators/mutator/overkill/okvortex.qh>
 +
  STATIC_METHOD(Client, Add, void(Client this, int _team))
  {
      ClientConnect(this);
@@@ -912,7 -910,7 +912,7 @@@ void KillIndicator_Think(entity this
                ClientKill_Now(this.owner);
                return;
        }
-     else if(g_cts && this.health == 1) // health == 1 means that it's silent
+     else if(this.health == 1) // health == 1 means that it's silent
      {
          this.nextthink = time + 1;
          this.cnt -= 1;
@@@ -942,11 -940,9 +942,9 @@@ void ClientKill_TeamChange (entity this
  
        killtime = autocvar_g_balance_kill_delay;
  
-       if(g_race_qualifying || g_cts)
-               killtime = 0;
      if(MUTATOR_CALLHOOK(ClientKill, this, killtime))
        return;
+     killtime = M_ARGV(1, float);
  
        this.killindicator_teamchange = targetteam;
  
@@@ -1045,6 -1041,9 +1043,9 @@@ void FixClientCvars(entity e
        if(autocvar_sv_gentle)
                stuffcmd(e, "cl_cmd settemp cl_gentle 1\n");
  
+       stuffcmd(e, sprintf("\ncl_jumpspeedcap_min \"%s\"\n", autocvar_sv_jumpspeedcap_min));
+       stuffcmd(e, sprintf("\ncl_jumpspeedcap_max \"%s\"\n", autocvar_sv_jumpspeedcap_max));
        MUTATOR_CALLHOOK(FixClientCvars, e);
  }
  
@@@ -1705,8 -1704,6 +1706,8 @@@ void SpectateCopy(entity this, entity s
        this.dual_weapons = spectatee.dual_weapons;
        this.vortex_charge = spectatee.vortex_charge;
        this.vortex_chargepool_ammo = spectatee.vortex_chargepool_ammo;
 +      this.okvortex_charge = spectatee.okvortex_charge;
 +      this.okvortex_chargepool_ammo = spectatee.okvortex_chargepool_ammo;
        this.hagar_load = spectatee.hagar_load;
        this.arc_heat_percent = spectatee.arc_heat_percent;
        this.minelayer_mines = spectatee.minelayer_mines;
@@@ -2536,13 -2533,7 +2537,13 @@@ void PlayerPreThink (entity this
                {
                        .entity weaponentity = weaponentities[slot];
                        if (WEP_CVAR(vortex, charge_rot_rate) && this.(weaponentity).vortex_charge > WEP_CVAR(vortex, charge_limit) && this.(weaponentity).vortex_charge_rottime < time)
 +                      {
                                this.(weaponentity).vortex_charge = bound(WEP_CVAR(vortex, charge_limit), this.(weaponentity).vortex_charge - WEP_CVAR(vortex, charge_rot_rate) * frametime / W_TICSPERFRAME, 1);
 +                      }
 +                      if (WEP_CVAR(okvortex, charge_rot_rate) && this.(weaponentity).okvortex_charge > WEP_CVAR(okvortex, charge_limit) && this.(weaponentity).okvortex_charge_rottime < time)
 +                      {
 +                              this.(weaponentity).okvortex_charge = bound(WEP_CVAR(okvortex, charge_limit), this.(weaponentity).okvortex_charge - WEP_CVAR(okvortex, charge_rot_rate) * frametime / W_TICSPERFRAME, 1);
 +                      }
                }
  
                if (frametime) player_anim(this);
diff --combined qcsrc/server/defs.qh
index 1c339ceba33f7036d883658e16ce2b61ef375691,11b915027c8b2deb3029a2370013a86d00ac05fe..db879a05bd985919be09ff7456cb59e862e4c26a
@@@ -86,7 -86,7 +86,7 @@@ const float MAX_DAMAGEEXTRARADIUS = 16
  .float                dmg;
  
  // for railgun damage (hitting multiple enemies)
- .float railgunhit;
+ .bool railgunhit;
  .float railgunhitsolidbackup;
  .vector railgunhitloc;
  
@@@ -338,9 -338,6 +338,9 @@@ float client_cefc_accumulatortime
  .float vortex_charge = _STAT(VORTEX_CHARGE);
  .float vortex_charge_rottime;
  .float vortex_chargepool_ammo = _STAT(VORTEX_CHARGEPOOL);
 +.float okvortex_charge = _STAT(OVERKILL_VORTEX_CHARGE);
 +.float okvortex_charge_rottime;
 +.float okvortex_chargepool_ammo = _STAT(OVERKILL_VORTEX_CHARGEPOOL);
  .float hagar_load = _STAT(HAGAR_LOAD);
  
  .int grab; // 0 = can't grab, 1 = owner can grab, 2 = owner and team mates can grab, 3 = anyone can grab
@@@ -470,3 -467,15 +470,15 @@@ STATIC_INIT(g_bot_dodge) { g_bot_dodge 
  
  IntrusiveList g_damagedbycontents;
  STATIC_INIT(g_damagedbycontents) { g_damagedbycontents = IL_NEW(); }
+ IntrusiveList g_railgunhit;
+ STATIC_INIT(g_railgunhit) { g_railgunhit = IL_NEW(); }
+ IntrusiveList g_ladders;
+ STATIC_INIT(g_ladders) { g_ladders = IL_NEW(); }
+ IntrusiveList g_locations;
+ STATIC_INIT(g_locations) { g_locations = IL_NEW(); }
+ IntrusiveList g_saved_team;
+ STATIC_INIT(g_saved_team) { g_saved_team = IL_NEW(); }