]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/server/teamplay.qc
Merge commit '40b7b8b8f77676', fixes #1937
[xonotic/xonotic-data.pk3dir.git] / qcsrc / server / teamplay.qc
index 81c877db902fd38fda510aeb97525e962b6226fa..a0c80dbd2132b144f2ce0929249aca17d12050d5 100644 (file)
@@ -56,7 +56,7 @@ void InitGameplayMode()
        teamplay = 0;
        serverflags &= ~SERVERFLAG_TEAMPLAY;
 
-       if not(cvar_value_issafe(world.fog))
+       if (!cvar_value_issafe(world.fog))
        {
                print("The current map contains a potentially harmful fog setting, ignored\n");
                world.fog = string_null;
@@ -115,19 +115,14 @@ void InitGameplayMode()
                MUTATOR_ADD(gamemode_lms);
        }
 
-       if(g_arena)
-       {
-               fraglimit_override = autocvar_g_arena_point_limit;
-               leadlimit_override = autocvar_g_arena_point_leadlimit;
-               MUTATOR_ADD(gamemode_arena);
-       }
-
        if(g_ca)
        {
                ActivateTeamplay();
                fraglimit_override = autocvar_g_ca_point_limit;
                leadlimit_override = autocvar_g_ca_point_leadlimit;
                MUTATOR_ADD(gamemode_ca);
+               if(autocvar_g_ca_team_spawns)
+                       have_team_spawns = -1; // request team spawns
        }
 
        if(g_keyhunt)
@@ -144,6 +139,8 @@ void InitGameplayMode()
                fraglimit_override = autocvar_g_freezetag_point_limit;
                leadlimit_override = autocvar_g_freezetag_point_leadlimit;
                MUTATOR_ADD(gamemode_freezetag);
+               if(autocvar_g_freezetag_team_spawns)
+                       have_team_spawns = -1; // request team spawns
        }
 
        if(g_assault)
@@ -192,12 +189,24 @@ void InitGameplayMode()
         have_team_spawns = -1; // request team spawns
            MUTATOR_ADD(gamemode_nexball);
        }
-        
+
        if(g_keepaway)
        {
                MUTATOR_ADD(gamemode_keepaway);
        }
 
+       if(g_invasion)
+       {
+               fraglimit_override = autocvar_g_invasion_point_limit;
+               if(autocvar_g_invasion_teams >= 2)
+               {
+                       ActivateTeamplay();
+                       if(autocvar_g_invasion_team_spawns)
+                               have_team_spawns = -1; // request team spawns
+               }
+               MUTATOR_ADD(gamemode_invasion);
+       }
+
        if(teamplay)
                entcs_init();
 
@@ -280,7 +289,7 @@ string getwelcomemessage(void)
        }
        if(autocvar_g_start_weapon_laser == 0)
                modifications = strcat(modifications, ", No start weapons");
-       if(autocvar_sv_gravity < 800)
+       if(cvar("sv_gravity") < stof(cvar_defstring("sv_gravity")))
                modifications = strcat(modifications, ", Low gravity");
        if(g_cloaked && !g_cts)
                modifications = strcat(modifications, ", Cloaked");
@@ -600,7 +609,7 @@ float TeamSmallerEqThanTeam(float ta, float tb, entity e)
                        cb -= cbb * 0.999;
                }
        }
-       
+
        // keep teams alive (teams of size 0 always count as smaller, ignoring score)
        if(ca < 1)
                if(cb >= 1)
@@ -671,7 +680,7 @@ float FindSmallestTeam(entity pl, float ignore_pl)
                GetTeamCounts(world);
 
        RandomSelection_Init();
-       
+
        t = 1;
        if(TeamSmallerEqThanTeam(2, t, pl))
                t = 2;