As I got a bit curious now, I looked it up myself. :-)
The code is in the SDK, dlls\multiplay_gamerules.cpp:
void CHalfLifeMultiplay :: Think ( void )
{
[...]
if ( g_fGameOver ) // someone else quit the game already
{
[...]
m_flIntermissionEndTime = g_flIntermissionStartTime +
mp_chattime.value;
// check to see if we should change levels now
if ( m_flIntermissionEndTime < gpGlobals->time )
{
if ( m_iEndIntermissionButtonHit // check that someone
has pressed a key, or the max intermission time is over
|| ( ( g_flIntermissionStartTime +
MAX_INTERMISSION_TIME ) < gpGlobals->time) )
ChangeLevel(); // intermission is over
}
return;
}
Translation: if the game is over, wait at least mp_chattime seconds. If
m_iEndIntermissionButtonHit becomes true after that, or
MAX_INTERMISSION_TIME (120) seconds pass, change the map.
A related function is:
void CHalfLifeMultiplay :: PlayerThink( CBasePlayer *pPlayer )
{
if ( g_fGameOver )
{
// check for button presses
if ( pPlayer->m_afButtonPressed & ( IN_DUCK | IN_ATTACK |
IN_ATTACK2 | IN_USE | IN_JUMP ) )
m_iEndIntermissionButtonHit = TRUE;
[...]
}
}
This checks if any player presses duck, attack, attack2, use or jump
after the game ends, and then sets m_iEndIntermissionButtonHit to true.
So, at least one player needs to press one of those buttons, or the
server will wait MAX_INTERMISSION_TIME (2 minutes) before changing the
map.
Maarten
--
A: Because it fouls the order in which people normally read text.
Q: Why is top-posting such a bad thing?
A: Top-posting.
Q: What is the most annoying thing on usenet and in e-mail?
_______________________________________________
To unsubscribe, edit your list preferences, or view the list archives, please
visit:
http://list.valvesoftware.com/mailman/listinfo/hlds_linux