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

Reply via email to