]> git.rm.cloudns.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Better handling of the initial game delay in freezetag
authorterencehill <piuntn@gmail.com>
Sat, 17 Nov 2012 15:29:09 +0000 (16:29 +0100)
committerterencehill <piuntn@gmail.com>
Sat, 17 Nov 2012 15:29:09 +0000 (16:29 +0100)
qcsrc/server/arena.qc
qcsrc/server/mutators/gamemode_freezetag.qc

index 71457c0e51d9fb2be0126e135f2ce2932be9b77d..6917458152dd0b6c4d017616438176dfbbff2e20 100644 (file)
@@ -38,7 +38,7 @@ void reset_map(float dorespawn)
        }
        else if(g_freezetag)
        {
-               warmup = time + autocvar_g_freezetag_warmup;
+               warmup = max(time, game_starttime) + autocvar_g_freezetag_warmup;
        }
 
        lms_lowest_lives = 999;
index aedfd6364c942ef5f1d967b38d0dac04fa8d202f..de325c3d1b9d5b0ba39b77a0a4d8e48273a2e228 100644 (file)
@@ -1,7 +1,7 @@
 void freezetag_Initialize()
 {
        precache_model("models/ice/ice.md3");
-       warmup = time + autocvar_g_start_delay + autocvar_g_freezetag_warmup;
+       warmup = max(time, game_starttime) + autocvar_g_freezetag_warmup;
        ScoreRules_freezetag();
 }
 
@@ -302,9 +302,12 @@ MUTATOR_HOOKFUNCTION(freezetag_PlayerDies)
 
 MUTATOR_HOOKFUNCTION(freezetag_PlayerSpawn)
 {
+       if(time <= game_starttime)
+               return 1;
+
        freezetag_Unfreeze(world); // start by making sure that all ice blocks are removed
 
-       if(total_players == 1 && time > game_starttime) // only one player active on server, start a new match immediately
+       if(total_players == 1) // only one player active on server, start a new match immediately
        if(!next_round && warmup && (time < warmup - autocvar_g_freezetag_warmup || time > warmup)) // not awaiting next round
        {
                next_round = time;
@@ -452,7 +455,7 @@ MUTATOR_HOOKFUNCTION(freezetag_BotRoles)
                else
                        self.havocbot_role = havocbot_role_ft_offense;
        }
-       
+
        return TRUE;
 }