CTB match end time should respect the matchmode setting.

All games will have their level start time set after the first LCA goes
off rather then at map load.
This commit is contained in:
Scott Brooks 2009-06-29 02:35:20 +00:00
parent 8fb3170747
commit bb4b71d09d
2 changed files with 16 additions and 2 deletions

View file

@ -1340,7 +1340,7 @@ void G_InitGame(int levelTime, int randomSeed, int restart)
// set some level globals // set some level globals
memset(&level, 0, sizeof(level)); memset(&level, 0, sizeof(level));
level.time = levelTime; level.time = levelTime;
level.startTime = levelTime; level.startTime = 0; // Our start time will be set when we finish "Action" the first time
level.snd_fry = G_SoundIndex("sound/player/fry.wav"); // FIXME standing in lava / slime level.snd_fry = G_SoundIndex("sound/player/fry.wav"); // FIXME standing in lava / slime

View file

@ -675,7 +675,18 @@ void CheckTeamRules()
} }
if (g_gametype.integer == GT_CTF || g_gametype.integer == GT_TEAM) { if (g_gametype.integer == GT_CTF || g_gametype.integer == GT_TEAM) {
if (level.time - level.startTime >= g_timelimit.integer * 60000) { qboolean matchOver = qfalse;
if ( g_RQ3_matchmode.integer && g_RQ3_roundtimelimit.integer &&
(level.current_round_length > g_RQ3_roundtimelimit.integer * 60 * level.fps))
{
matchOver = qtrue;
} else if ( !g_RQ3_matchmode.integer && level.time - level.startTime >= g_timelimit.integer * 60000)
{
matchOver = qtrue;
}
if ( matchOver )
{
trap_SendServerCommand(-1, "print \"^1Timelimit hit.\n\""); trap_SendServerCommand(-1, "print \"^1Timelimit hit.\n\"");
trap_SendServerCommand(-1, va("print \"^6Scores:^7 %s [^3%d^7] - %s [^3%d^7]\n\"", trap_SendServerCommand(-1, va("print \"^6Scores:^7 %s [^3%d^7] - %s [^3%d^7]\n\"",
g_RQ3_team1name.string, level.teamScores[TEAM_RED], g_RQ3_team1name.string, level.teamScores[TEAM_RED],
@ -734,6 +745,9 @@ void ContinueLCA()
trap_Cvar_Set("g_RQ3_lca", "0"); trap_Cvar_Set("g_RQ3_lca", "0");
level.team_round_going = 1; level.team_round_going = 1;
level.current_round_length = 0; level.current_round_length = 0;
if ( level.startTime == 0 ) {
level.startTime = level.time;
}
} }
level.lights_camera_action--; level.lights_camera_action--;
} }