]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Merge branch 'fruitiex/balance' into fruitiex/ctsfix
authorFruitieX <fruitiex@gmail.com>
Sun, 12 Dec 2010 10:53:24 +0000 (12:53 +0200)
committerFruitieX <fruitiex@gmail.com>
Sun, 12 Dec 2010 10:53:24 +0000 (12:53 +0200)
Conflicts:
defaultXonotic.cfg

1  2 
defaultXonotic.cfg
qcsrc/server/miscfunctions.qc

diff --combined defaultXonotic.cfg
index 1369075aa474627ce6c2e160bf45b86a8a353111,03882aeffd4664bb4df6dd86a83bce068858a5f8..51eff15108e60aee0c3ff741ee23e46ac138d67f
@@@ -596,40 -596,56 +596,56 @@@ set g_respawn_waves 0 "respawn in wave
  // to force disable delay or waves, set them to 0.125
  set g_ctf_respawn_delay 0
  set g_ctf_respawn_waves 0
+ set g_ctf_weapon_stay 1
  set g_dm_respawn_delay 0
  set g_dm_respawn_waves 0
+ set g_dm_weapon_stay 0
  set g_dom_respawn_delay 0
  set g_dom_respawn_waves 0
+ set g_dom_weapon_stay 0
  set g_lms_respawn_delay 0
  set g_lms_respawn_waves 0
+ set g_lms_weapon_stay 0
  set g_rune_respawn_delay 0
  set g_rune_respawn_waves 0
+ set g_rune_weapon_stay 0
  set g_tdm_respawn_delay 0
  set g_tdm_respawn_waves 0
+ set g_tdm_weapon_stay 0
  set g_kh_respawn_delay 0
  set g_kh_respawn_waves 0
+ set g_kh_weapon_stay 0
  set g_arena_respawn_delay 0
  set g_arena_respawn_waves 0
+ set g_arena_weapon_stay 0
  set g_ca_respawn_delay 0
  set g_ca_respawn_waves 0
+ set g_ca_weapon_stay 0
  set g_ca_damage2score_multiplier 0.01
  set g_ca_round_timelimit 180
  set g_nexball_respawn_delay 0
  set g_nexball_respawn_waves 0
+ set g_nexball_weapon_stay 0
  set g_as_respawn_delay 0
  set g_as_respawn_waves 0
+ set g_as_weapon_stay 1
  set g_ons_respawn_delay 0
  set g_ons_respawn_waves 0
+ set g_ons_weapon_stay 0
  set g_rc_respawn_waves 0
  set g_rc_respawn_delay 0
+ set g_rc_weapon_stay 0
  set g_cts_respawn_waves 0
 -set g_cts_respawn_delay 0.25
 +set g_cts_respawn_delay 0
  set g_cts_selfdamage 1 "0 = disable all selfdamage and falldamage in cts"
  set g_cts_finish_kill_delay 10 "prevent cheating by running back to the start line, and starting out with more speed than otherwise possible"
+ set g_cts_weapon_stay 1
  set g_freezetag_respawn_waves 0
 -set g_freezetag_respawn_delay 0.25
 +set g_freezetag_respawn_delay 0
+ set g_freezetag_weapon_stay 1
  set g_ka_respawn_delay 0
  set g_ka_respawn_waves 0
+ set g_ka_weapon_stay 0
  
  // overtime
  seta timelimit_overtime 2 "duration in minutes of one added overtime, added to the timelimit"
index 28f86af2f0dc54ceb2ee9ab4286f8cf021609b07,445c5eb38df8e554cea13b9780cd99c2e8d8d131..225a3453f397e35496e9cb955930cc329ed3e85e
@@@ -880,10 -880,8 +880,10 @@@ float want_weapon(string cvarprefix, en
                        t = (weaponinfo.spawnflags & WEP_FLAG_NORMAL);
                else if(t < -1)
                        t = 0;
 -              else if (g_race || g_cts)
 -                      t = (i == WEP_LASER);
 +              else if (g_race)
 +                      t = (i == WEP_LASER || i == WEP_SHOTGUN);
 +              else if (g_cts)
 +                      t = (i == WEP_SHOTGUN);
                else if (g_nexball)
                        t = 0; // weapon is set a few lines later
                else
@@@ -1216,8 -1214,6 +1216,8 @@@ void readlevelcvars(void
        sv_gentle = cvar("sv_gentle");
        sv_foginterval = cvar("sv_foginterval");
        g_cloaked = cvar("g_cloaked");
 +    if(g_cts)
 +        g_cloaked = 1; // always enable cloak in CTS
        g_jump_grunt = cvar("g_jump_grunt");
        g_footsteps = cvar("g_footsteps");
        g_grappling_hook = cvar("g_grappling_hook");
  
        g_pinata = cvar("g_pinata");
  
-       g_weapon_stay = cvar("g_weapon_stay");
+     g_weapon_stay = cvar(strcat("g_", GetGametype(), "_weapon_stay"));
+     if(!g_weapon_stay)
+         g_weapon_stay = cvar("g_weapon_stay");
  
        if (!g_weapon_stay && (cvar("deathmatch") == 2))
                g_weapon_stay = 1;
@@@ -1754,14 -1752,6 +1756,14 @@@ void objerror(string s
      objerror_builtin(s);
  }
  
 +.float remove_except_protected_forbidden;
 +void remove_except_protected(entity e)
 +{
 +      if(e.remove_except_protected_forbidden)
 +              error("not allowed to remove this at this point");
 +      remove_builtin(e);
 +}
 +
  void remove_unsafely(entity e)
  {
      remove_builtin(e);
@@@ -1812,11 -1802,6 +1814,11 @@@ void InitializeEntitiesRun(
      entity startoflist;
      startoflist = initialize_entity_first;
      initialize_entity_first = world;
 +    remove = remove_except_protected;
 +    for (self = startoflist; self; self = self.initialize_entity_next)
 +    {
 +      self.remove_except_protected_forbidden = 1;
 +    }
      for (self = startoflist; self; )
      {
          entity e;
          self.initialize_entity_order = 0;
          self.initialize_entity = func_null;
          self.initialize_entity_next = world;
 +      self.remove_except_protected_forbidden = 0;
          if (self.classname == "initialize_entity")
          {
              entity e_old;
              self = e_old;
          }
          //dprint("Delayed initialization: ", self.classname, "\n");
 -        func();
 +        if(func != func_null)
 +            func();
 +        else
 +        {
 +            eprint(self);
 +            backtrace(strcat("Null function in: ", self.classname, "\n"));
 +        }
          self = e;
      }
 +    remove = remove_unsafely;
  }
  
  .float uncustomizeentityforclient_set;