// Game logic for warmup
// =======================
-// Resets the state of all clients, items, flags, runes, keys, weapons, waypoints, ... of the map.
+// Resets the state of all clients, items, weapons, waypoints, ... of the map.
void reset_map(float dorespawn)
{
entity oldself;
oldself = self;
if(time <= game_starttime && round_handler_IsActive())
- round_handler_Reset(game_starttime + 1);
+ round_handler_Reset(game_starttime);
if(g_race || g_cts)
race_ReadyRestart();
if (restart_mapalreadyrestarted || (time < game_starttime))
{
//NEW: changed behaviour so that it prevents that previous spectators/observers suddenly spawn as players
- if (self.classname == "player") {
+ if (IS_PLAYER(self)) {
//PlayerScore_Clear(self);
if(g_lms)
PlayerScore_Add(self, SP_LMS_LIVES, LMS_NewPlayerLives());
}
if(g_keyhunt)
- kh_Controller_SetThink_NoMsg(autocvar_g_balance_keyhunt_delay_round+(game_starttime - time), kh_StartRound);
+ kh_Controller_SetThink(autocvar_g_balance_keyhunt_delay_round + (game_starttime - time), kh_StartRound);
self = oldself;
}
checkrules_suddendeathend = checkrules_overtimesadded = checkrules_suddendeathwarning = 0;
readyrestart_happened = 1;
- game_starttime = time;
- if(!g_arena) { game_starttime += RESTART_COUNTDOWN; }
+ game_starttime = time + RESTART_COUNTDOWN;
// clear alivetime
FOR_EACH_CLIENT(tmp_player)
}
//initiate the restart-countdown-announcer entity
- if(autocvar_sv_ready_restart_after_countdown && !g_arena)
+ if(autocvar_sv_ready_restart_after_countdown)
{
restart_timer = spawn();
restart_timer.think = ReadyRestart_think;
FOR_EACH_REALCLIENT(tmp_player)
{
- if(tmp_player.classname == "player" || tmp_player.caplayer == 1)
+ if(IS_PLAYER(tmp_player) || tmp_player.caplayer == 1)
{
++t_players;
if(tmp_player.ready) { ++t_ready; }