this.wait = false;
this.cnt = this.count + 1; // init countdown
round_starttime = time + this.count;
- reset_map(true);
+ reset_map(true, false);
}
if (this.cnt > 0) // countdown running
this.cnt = 0;
this.round_endtime = (this.round_timelimit) ? time + this.round_timelimit : 0;
this.nextthink = time;
+ rounds_played++;
if (this.roundStart) this.roundStart();
return;
}
else
{
round_handler_Reset(0);
+ round_starttime = -1; // can't start
}
this.nextthink = time + 1; // canRoundStart every second
}
this.count = fabs(floor(the_count));
this.cnt = this.count + 1;
this.round_timelimit = (the_round_timelimit > 0) ? the_round_timelimit : 0;
+ round_limit = the_round_timelimit;
}
// NOTE: this is only needed because if round_handler spawns at time 1
backtrace("Can't spawn round_handler again!");
return;
}
- entity this = round_handler = new(round_handler);
+ entity this = round_handler = new_pure(round_handler);
setthink(this, round_handler_FirstThink);
this.canRoundStart = canRoundStart_func;
if (this.count)
if (this.cnt < this.count + 1) this.cnt = this.count + 1;
this.nextthink = next_think;
- round_starttime = (next_think) ? (next_think + this.count) : -1;
+ if (next_think)
+ {
+ if (next_think <= game_starttime) rounds_played = 0;
+ round_starttime = next_think + this.count;
+ }
}
void round_handler_Remove()