]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/server/sv_main.qc
Merge remote-tracking branch 'origin/Mario/lsmaps_count'
[xonotic/xonotic-data.pk3dir.git] / qcsrc / server / sv_main.qc
index 043cb7713d24cc61c91b162efba963ec0dd73065..73e733be8f97d927c521c62a48751cfa0ca88c48 100644 (file)
@@ -10,6 +10,7 @@ void CreatureFrame (void)
 
                float vehic = (self.vehicle_flags & VHF_ISVEHICLE);
                float projectile = (self.flags & FL_PROJECTILE);
+               float monster = (self.flags & FL_MONSTER);
 
                if (self.watertype <= CONTENT_WATER && self.waterlevel > 0) // workaround a retarded bug made by id software :P (yes, it's that old of a bug)
                {
@@ -19,7 +20,7 @@ void CreatureFrame (void)
                                self.dmgtime = 0;
                        }
 
-                       if(!vehic && !projectile) // vehicles and projectiles don't drown
+                       if(!vehic && !projectile && !monster) // vehicles, monsters and projectiles don't drown
                        {
                                if (self.waterlevel != WATERLEVEL_SUBMERGED)
                                {
@@ -219,23 +220,26 @@ void StartFrame (void)
 
        game_delay_last = game_delay;
 
+       CreatureFrame ();
+       CheckRules_World ();
+
        // if in warmup stage and limit for warmup is hit start match
-       if (warmup_stage)
-       if ((g_warmup_limit > 0 && time >= g_warmup_limit)
+       if(warmup_stage)
+       if(!gameover)
+       if((g_warmup_limit > 0 && time >= g_warmup_limit)
         || (g_warmup_limit == 0 && autocvar_timelimit != 0 && time >= autocvar_timelimit * 60))
        {
                ReadyRestart();
                return;
        }
 
-       CreatureFrame ();
-       CheckRules_World ();
-
        bot_serverframe();
 
        FOR_EACH_PLAYER(self)
                self.porto_forbidden = max(0, self.porto_forbidden - 1);
 
+       anticheat_startframe();
+
        MUTATOR_CALLHOOK(SV_StartFrame);
 }