X-Git-Url: https://de.git.xonotic.org/?p=xonotic%2Fxonotic-data.pk3dir.git;a=blobdiff_plain;f=qcsrc%2Fserver%2Fcommand%2Fvote.qc;h=44b8acb8e7a8ff5fb9ea7e18688e269b3bd66be9;hp=337b428c5566defe5b16d15f2cfd4bb3310490b7;hb=429e52163f53e75b848135f076b77c4eb43935ac;hpb=10c0e93c75ef6f408e3357bd5fb46c721e7e0576 diff --git a/qcsrc/server/command/vote.qc b/qcsrc/server/command/vote.qc index 337b428c55..44b8acb8e7 100644 --- a/qcsrc/server/command/vote.qc +++ b/qcsrc/server/command/vote.qc @@ -1,5 +1,5 @@ #include "vote.qh" -#include +#include #include "vote.qh" #include "common.qh" @@ -10,9 +10,10 @@ #include "../round_handler.qh" #include "../scores.qh" -#include "../mutators/all.qh" +#include "../mutators/_mod.qh" #include +#include #include #include #include @@ -333,7 +334,13 @@ void VoteThink() // Resets the state of all clients, items, weapons, waypoints, ... of the map. void reset_map(bool dorespawn) { - if (time <= game_starttime && round_handler_IsActive()) round_handler_Reset(game_starttime); + if (time <= game_starttime) + { + if (gameover) + return; + if (round_handler_IsActive()) + round_handler_Reset(game_starttime); + } MUTATOR_CALLHOOK(reset_map_global); @@ -344,7 +351,7 @@ void reset_map(bool dorespawn) continue; } if (it.team_saved) it.team = it.team_saved; - if (it.flags & FL_PROJECTILE) remove(it); // remove any projectiles left + if (it.flags & FL_PROJECTILE) delete(it); // remove any projectiles left }); // Waypoints and assault start come LAST @@ -378,7 +385,7 @@ void reset_map(bool dorespawn) it.velocity = '0 0 0'; it.avelocity = '0 0 0'; it.movement = '0 0 0'; - WITHSELF(it, PutClientInServer()); + PutClientInServer(it); } } )); @@ -392,12 +399,15 @@ void ReadyRestart_think(entity this) restart_mapalreadyrestarted = true; reset_map(true); Score_ClearAll(); - remove(this); + delete(this); } // Forces a restart of the game without actually reloading the map // this is a mess... void ReadyRestart_force() { + if (time <= game_starttime && gameover) + return; + bprint("^1Server is restarting...\n"); VoteReset(); @@ -455,7 +465,7 @@ void ReadyRestart_force() void ReadyRestart() { // no assault support yet... - if (g_assault | gameover | intermission_running | race_completing) localcmd("restart\n"); + if (g_assault || gameover || race_completing) localcmd("restart\n"); else localcmd("\nsv_hook_gamerestart\n"); // Reset ALL scores, but only do that at the beginning of the countdown if sv_ready_restart_after_countdown is off!