]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/server/miscfunctions.qc
fix pressedkeys and do minor cleanups
[xonotic/xonotic-data.pk3dir.git] / qcsrc / server / miscfunctions.qc
index f31f4f9203eb34e2fef82821c5e63ba025a04009..7aa9166cf9b978e4d41be948bcafe179c12c91a1 100644 (file)
@@ -593,13 +593,18 @@ float w_getbestweapon(entity e);
 void GetCvars(float f)
 {
        string s;
+
        if (f > 0)
                s = strcat1(argv(f));
+
+       get_cvars_f = f;
+       get_cvars_s = s;
+       MUTATOR_CALLHOOK(GetCvars);
        GetCvars_handleFloat(s, f, autoswitch, "cl_autoswitch");
        GetCvars_handleFloat(s, f, cvar_cl_playerdetailreduction, "cl_playerdetailreduction");
        GetCvars_handleFloat(s, f, cvar_scr_centertime, "scr_centertime");
        GetCvars_handleFloat(s, f, cvar_cl_shownames, "cl_shownames");
-       GetCvars_handleString(s, f, cvar_g_nexuizversion, "g_nexuizversion");
+       GetCvars_handleString(s, f, cvar_g_xonoticversion, "g_xonoticversion");
        GetCvars_handleFloat(s, f, cvar_cl_handicap, "cl_handicap");
        GetCvars_handleString_Fixup(s, f, cvar_cl_weaponpriority, "cl_weaponpriority", W_FixWeaponOrder_ForceComplete);
        GetCvars_handleString_Fixup(s, f, cvar_cl_weaponpriorities[0], "cl_weaponpriority0", W_FixWeaponOrder_AllowIncomplete);
@@ -612,6 +617,7 @@ void GetCvars(float f)
        GetCvars_handleString_Fixup(s, f, cvar_cl_weaponpriorities[7], "cl_weaponpriority7", W_FixWeaponOrder_AllowIncomplete);
        GetCvars_handleString_Fixup(s, f, cvar_cl_weaponpriorities[8], "cl_weaponpriority8", W_FixWeaponOrder_AllowIncomplete);
        GetCvars_handleString_Fixup(s, f, cvar_cl_weaponpriorities[9], "cl_weaponpriority9", W_FixWeaponOrder_AllowIncomplete);
+       GetCvars_handleFloat(s, f, cvar_cl_weaponimpulsemode, "cl_weaponimpulsemode");
        GetCvars_handleFloat(s, f, cvar_cl_autotaunt, "cl_autotaunt");
        GetCvars_handleFloat(s, f, cvar_cl_noantilag, "cl_noantilag");
        GetCvars_handleFloat(s, f, cvar_cl_voice_directional, "cl_voice_directional");
@@ -625,7 +631,7 @@ void GetCvars(float f)
 
 #ifdef ALLOW_FORCEMODELS
        GetCvars_handleFloat(s, f, cvar_cl_forceplayermodels, "cl_forceplayermodels");
-       GetCvars_handleFloat(s, f, cvar_cl_forceplayermodelsfromnexuiz, "cl_forceplayermodelsfromnexuiz");
+       GetCvars_handleFloat(s, f, cvar_cl_forceplayermodelsfromxonotic, "cl_forceplayermodelsfromxonotic");
 #endif
        GetCvars_handleFloatOnce(s, f, cvar_cl_gunalign, "cl_gunalign");
 
@@ -896,7 +902,6 @@ float want_weapon(string cvarprefix, entity weaponinfo, float allguns)
        return t;
 }
 
-float NixNex_CanChooseWeapon(float wpn);
 void readplayerstartcvars()
 {
        entity e;
@@ -977,17 +982,7 @@ void readplayerstartcvars()
        else
                g_weaponarena_random = 0;
 
-       if (g_nixnex)
-       {
-               start_weapons = 0;
-               // will be done later
-               for (i = WEP_FIRST; i <= WEP_LAST; ++i)
-                       if (NixNex_CanChooseWeapon(i))
-                               weapon_action(i, WR_PRECACHE);
-               if(!cvar("g_use_ammunition"))
-                       start_items |= IT_UNLIMITED_AMMO;
-       }
-       else if (g_weaponarena)
+       if (g_weaponarena)
        {
                start_weapons = g_weaponarena;
                if (g_weaponarena & (WEPBIT_GRENADE_LAUNCHER | WEPBIT_HAGAR | WEPBIT_ROCKET_LAUNCHER))
@@ -1027,7 +1022,7 @@ void readplayerstartcvars()
                        start_health = cvar("g_lms_start_health");
                        start_armorvalue = cvar("g_lms_start_armor");
                }
-               else if (cvar("g_use_ammunition"))
+               else
                {
                        start_ammo_shells = cvar("g_start_ammo_shells");
                        start_ammo_nails = cvar("g_start_ammo_nails");
@@ -1035,24 +1030,12 @@ void readplayerstartcvars()
                        start_ammo_cells = cvar("g_start_ammo_cells");
                        start_ammo_fuel = cvar("g_start_ammo_fuel");
                }
-               else
-               {
-                       start_ammo_shells = cvar("g_pickup_shells_max");
-                       start_ammo_nails = cvar("g_pickup_nails_max");
-                       start_ammo_rockets = cvar("g_pickup_rockets_max");
-                       start_ammo_cells = cvar("g_pickup_cells_max");
-                       start_ammo_fuel = cvar("g_pickup_fuel_max");
-                       start_items |= IT_UNLIMITED_AMMO;
-               }
 
                for (i = WEP_FIRST; i <= WEP_LAST; ++i)
                {
                        e = get_weaponinfo(i);
                        if(want_weapon("g_start_weapon_", e, FALSE))
-                       {
                                start_weapons |= e.weapons;
-                               weapon_action(e.weapon, WR_PRECACHE);
-                       }
                }
        }
 
@@ -1067,16 +1050,13 @@ void readplayerstartcvars()
                warmup_start_armorvalue = start_armorvalue;
                warmup_start_weapons = start_weapons;
 
-               if (!g_weaponarena && !g_nixnex && !g_minstagib && !g_ca)
+               if (!g_weaponarena && !g_minstagib && !g_ca)
                {
-                       if (cvar("g_use_ammunition"))
-                       {
-                               warmup_start_ammo_shells = cvar("g_warmup_start_ammo_shells");
-                               warmup_start_ammo_cells = cvar("g_warmup_start_ammo_cells");
-                               warmup_start_ammo_nails = cvar("g_warmup_start_ammo_nails");
-                               warmup_start_ammo_rockets = cvar("g_warmup_start_ammo_rockets");
-                               warmup_start_ammo_fuel = cvar("g_warmup_start_ammo_fuel");
-                       }
+                       warmup_start_ammo_shells = cvar("g_warmup_start_ammo_shells");
+                       warmup_start_ammo_cells = cvar("g_warmup_start_ammo_cells");
+                       warmup_start_ammo_nails = cvar("g_warmup_start_ammo_nails");
+                       warmup_start_ammo_rockets = cvar("g_warmup_start_ammo_rockets");
+                       warmup_start_ammo_fuel = cvar("g_warmup_start_ammo_fuel");
                        warmup_start_health = cvar("g_warmup_start_health");
                        warmup_start_armorvalue = cvar("g_warmup_start_armor");
                        warmup_start_weapons = 0;
@@ -1084,10 +1064,7 @@ void readplayerstartcvars()
                        {
                                e = get_weaponinfo(i);
                                if(want_weapon("g_start_weapon_", e, cvar("g_warmup_allguns")))
-                               {
                                        warmup_start_weapons |= e.weapons;
-                                       weapon_action(e.weapon, WR_PRECACHE);
-                               }
                        }
                }
        }
@@ -1100,6 +1077,22 @@ void readplayerstartcvars()
                warmup_start_ammo_fuel = max(warmup_start_ammo_fuel, cvar("g_balance_fuel_rotstable"));
        }
 
+       if(!cvar("g_use_ammunition"))
+       {
+               start_ammo_shells = cvar("g_pickup_shells_max");
+               start_ammo_nails = cvar("g_pickup_nails_max");
+               start_ammo_rockets = cvar("g_pickup_rockets_max");
+               start_ammo_cells = cvar("g_pickup_cells_max");
+               start_ammo_fuel = cvar("g_pickup_fuel_max");
+               start_items |= IT_UNLIMITED_AMMO;
+               warmup_start_ammo_shells = cvar("g_pickup_shells_max");
+               warmup_start_ammo_nails = cvar("g_pickup_nails_max");
+               warmup_start_ammo_rockets = cvar("g_pickup_rockets_max");
+               warmup_start_ammo_cells = cvar("g_pickup_cells_max");
+               warmup_start_ammo_fuel = cvar("g_pickup_fuel_max");
+               //warmup_start_items |= IT_UNLIMITED_AMMO;
+       }
+
        if (g_jetpack)
                start_items |= IT_JETPACK;
 
@@ -1117,6 +1110,15 @@ void readplayerstartcvars()
                if (!warmup_start_ammo_fuel) warmup_start_ammo_fuel = g_pickup_fuel;
        }
 
+       MUTATOR_CALLHOOK(SetStartItems);
+
+       for (i = WEP_FIRST; i <= WEP_LAST; ++i)
+       {
+               e = get_weaponinfo(i);
+               if(e.weapons & (start_weapons | warmup_start_weapons))
+                       weapon_action(e.weapon, WR_PRECACHE);
+       }
+
        start_ammo_shells = max(0, start_ammo_shells);
        start_ammo_nails = max(0, start_ammo_nails);
        start_ammo_cells = max(0, start_ammo_cells);
@@ -1163,6 +1165,10 @@ float sv_accuracy_data_share;
 
 void readlevelcvars(void)
 {
+       // first load all the mutators
+       if(cvar("g_nix"))
+               MUTATOR_ADD(mutator_nix);
+
     g_bugrigs = cvar("g_bugrigs");
     g_bugrigs_planar_movement = cvar("g_bugrigs_planar_movement");
     g_bugrigs_planar_movement_car_jumping = cvar("g_bugrigs_planar_movement_car_jumping");
@@ -1205,8 +1211,6 @@ void readlevelcvars(void)
        g_laserguided_missile = cvar("g_laserguided_missile");
        g_midair = cvar("g_midair");
        g_minstagib = cvar("g_minstagib");
-       g_nixnex = cvar("g_nixnex");
-       g_nixnex_with_laser = cvar("g_nixnex_with_laser");
        g_norecoil = cvar("g_norecoil");
        g_vampire = cvar("g_vampire");
        g_bloodloss = cvar("g_bloodloss");
@@ -1239,10 +1243,6 @@ void readlevelcvars(void)
        g_pickup_respawntimejitter_long = cvar("g_pickup_respawntimejitter_long");
        g_pickup_respawntimejitter_powerup = cvar("g_pickup_respawntimejitter_powerup");
 
-       if (g_minstagib) g_nixnex = g_weaponarena = 0;
-       if (g_nixnex) g_weaponarena = 0;
-               g_weaponarena = 0;
-
        g_weaponspeedfactor = cvar("g_weaponspeedfactor");
        g_weaponratefactor = cvar("g_weaponratefactor");
        g_weapondamagefactor = cvar("g_weapondamagefactor");
@@ -1669,7 +1669,7 @@ void precache()
         precache_sound ("weapons/hook_impact.wav"); // hook
     }
 
-    if (cvar("sv_precacheweapons") || g_nixnex)
+    if(cvar("sv_precacheweapons"))
     {
         //precache weapon models/sounds
         local float wep;