//***************************************************************************** // void medal_GiveMedal( ULONG ulPlayer, ULONG ulMedal ) { // Give the player the medal, and if we're the server, tell clients. MEDAL_GiveMedal( ulPlayer, ulMedal ); if ( NETWORK_GetState( ) == NETSTATE_SERVER ) SERVERCOMMANDS_GivePlayerMedal( ulPlayer, ulMedal ); }
//***************************************************************************** // void DUEL_DoWinSequence( ULONG ulPlayer ) { ULONG ulIdx; // Put the duel state in the win sequence state. if ( NETWORK_GetState( ) != NETSTATE_CLIENT ) DUEL_SetState( DS_WINSEQUENCE ); // Tell clients to do the win sequence. if ( NETWORK_GetState( ) == NETSTATE_SERVER ) SERVERCOMMANDS_DoGameModeWinSequence( ulPlayer ); if ( NETWORK_GetState( ) != NETSTATE_SERVER ) { char szString[64]; DHUDMessageFadeOut *pMsg; screen->SetFont( BigFont ); sprintf( szString, "%s \\c-WINS!", players[ulPlayer].userinfo.netname ); V_ColorizeString( szString ); // Display "%s WINS!" HUD message. pMsg = new DHUDMessageFadeOut( szString, 160.4f, 75.0f, 320, 200, CR_RED, 3.0f, 2.0f ); StatusBar->AttachMessage( pMsg, 'CNTR' ); screen->SetFont( SmallFont ); } // Award a victory or perfect medal to the winner. if ( NETWORK_GetState( ) != NETSTATE_CLIENT ) { LONG lMedal; // If the duel loser doesn't have any frags, give the winner a "Perfect!". if ( players[g_ulDuelLoser].fragcount <= 0 ) lMedal = MEDAL_PERFECT; else lMedal = MEDAL_VICTORY; // Give the player the medal. MEDAL_GiveMedal( ulPlayer, lMedal ); if ( NETWORK_GetState( ) == NETSTATE_SERVER ) SERVERCOMMANDS_GivePlayerMedal( ulPlayer, lMedal ); } for ( ulIdx = 0; ulIdx < MAXPLAYERS; ulIdx++ ) { if (( playeringame[ulIdx] ) && ( players[ulIdx].pSkullBot )) players[ulIdx].pSkullBot->PostEvent( BOTEVENT_DUEL_WINSEQUENCE ); } }
//***************************************************************************** // void LASTMANSTANDING_DoWinSequence( ULONG ulWinner ) { ULONG ulIdx; // Put the game state in the win sequence state. if (( NETWORK_GetState( ) != NETSTATE_CLIENT ) && ( CLIENTDEMO_IsPlaying( ) == false )) { LASTMANSTANDING_SetState( LMSS_WINSEQUENCE ); } // Tell clients to do the win sequence. if ( NETWORK_GetState( ) == NETSTATE_SERVER ) SERVERCOMMANDS_DoGameModeWinSequence( ulWinner ); if ( NETWORK_GetState( ) != NETSTATE_SERVER ) { char szString[64]; DHUDMessageFadeOut *pMsg; if ( teamlms ) { if ( ulWinner == teams.Size( ) ) sprintf( szString, "\\cdDraw Game!" ); else sprintf( szString, "\\c%c%s Wins!", V_GetColorChar( TEAM_GetTextColor( ulWinner ) ), TEAM_GetName( ulWinner )); } else if ( ulWinner == MAXPLAYERS ) sprintf( szString, "\\cdDRAW GAME!" ); else sprintf( szString, "%s \\c-WINS!", players[ulWinner].userinfo.netname ); V_ColorizeString( szString ); // Display "%s WINS!" HUD message. pMsg = new DHUDMessageFadeOut( BigFont, szString, 160.4f, 75.0f, 320, 200, CR_RED, 3.0f, 2.0f ); StatusBar->AttachMessage( pMsg, MAKE_ID('C','N','T','R') ); szString[0] = 0; pMsg = new DHUDMessageFadeOut( SmallFont, szString, 0.0f, 0.0f, 0, 0, CR_RED, 3.0f, 2.0f ); StatusBar->AttachMessage( pMsg, MAKE_ID('F','R','A','G') ); pMsg = new DHUDMessageFadeOut( SmallFont, szString, 0.0f, 0.0f, 0, 0, CR_RED, 3.0f, 2.0f ); StatusBar->AttachMessage( pMsg, MAKE_ID('P','L','A','C') ); } // Award a victory or perfect medal to the winner. if (( lastmanstanding ) && ( NETWORK_GetState( ) != NETSTATE_CLIENT ) && ( CLIENTDEMO_IsPlaying( ) == false )) { LONG lMedal; // If the winner has full health, give him a "Perfect!". if ( players[ulWinner].health == deh.MegasphereHealth ) lMedal = MEDAL_PERFECT; else lMedal = MEDAL_VICTORY; // Give the player the medal. MEDAL_GiveMedal( ulWinner, lMedal ); if ( NETWORK_GetState( ) == NETSTATE_SERVER ) SERVERCOMMANDS_GivePlayerMedal( ulWinner, lMedal ); } for ( ulIdx = 0; ulIdx < MAXPLAYERS; ulIdx++ ) { if (( playeringame[ulIdx] ) && ( players[ulIdx].pSkullBot )) players[ulIdx].pSkullBot->PostEvent( BOTEVENT_LMS_WINSEQUENCE ); } }