lordned

CReward_Token::ItemTouch + DoSoundEffects

Apr 5th, 2011
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.41 KB | None | 0 0
  1. //-----------------------------------------------------------------------------
  2. // Purpose: Give the points, and play a sound
  3. // Input  : *pOther - An Entity that collides with it,
  4. // Output :
  5. //-----------------------------------------------------------------------------
  6. void CReward_Token::ItemTouch( CBaseEntity *pOther )
  7. {
  8.     if (!pOther) return;
  9.     int numPointsToAdd = 0;
  10.     switch ( m_iTimesRespawned )
  11.     {
  12.     case 1:
  13.         numPointsToAdd = m_iPointsToGive1stTime;
  14.         break;
  15.     case 2:
  16.         numPointsToAdd = m_iPointsToGive2ndTime;
  17.         break;
  18.     case 3:
  19.         numPointsToAdd = m_iPointsToGive3rdTime;
  20.         break;
  21.     }
  22.  
  23.     if ( pOther->IsPlayer() )
  24.     {
  25.         pOther->AddPoints( numPointsToAdd, true );
  26.         CSDKPlayer *pPlayer = dynamic_cast<CSDKPlayer*>( pOther );
  27.         DoSoundEffects( pPlayer );
  28.     }
  29.     CRollerBall *pRollerBall = dynamic_cast<CRollerBall*>( pOther );
  30.     if ( pRollerBall)
  31.     {
  32.         CSDKPlayer *pPlayer = pRollerBall->GetCommander();
  33.         if (!pPlayer ) return;
  34.         pPlayer->AddPoints( numPointsToAdd, true );
  35.     }
  36.    
  37.     Respawn();  //Respawn
  38. }
  39.  
  40. void CReward_Token::DoSoundEffects( CBasePlayer *pPlayer )
  41. {
  42.     CSingleUserRecipientFilter user( pPlayer );
  43.     user.MakeReliable();
  44.  
  45.     UserMessageBegin( user, "ItemPickup" );
  46.         WRITE_STRING( GetClassname() );
  47.     MessageEnd();
  48.  
  49.     //Output a sound
  50.     CPASAttenuationFilter filter( pPlayer, "RollerBall.RewardTokenPickup" );
  51.     EmitSound( filter, pPlayer->entindex(), "RollerBall.RewardTokenPickup" );
  52. }
Advertisement
Add Comment
Please, Sign In to add comment