CBasePlayer *GetPlayerHoldingEntity( CBaseEntity *pEntity ) { for( int i = 1; i <= gpGlobals->maxClients; ++i ) { CBasePlayer *pPlayer = UTIL_PlayerByIndex( i ); if ( pPlayer ) { if ( GetPlayerHeldEntity( pPlayer ) == pEntity) return pPlayer; } } return NULL; }
void CWeaponPortalgun::Activate() { BaseClass::Activate(); CreateSounds(); CBasePlayer *pPlayer = ToBasePlayer( GetOwner() ); if ( pPlayer ) { CBaseEntity *pHeldObject = GetPlayerHeldEntity( pPlayer ); OpenProngs( ( pHeldObject ) ? ( false ) : ( true ) ); OpenProngs( ( pHeldObject ) ? ( true ) : ( false ) ); if( GameRules()->IsMultiplayer() ) m_iPortalLinkageGroupID = pPlayer->entindex(); Assert( (m_iPortalLinkageGroupID >= 0) && (m_iPortalLinkageGroupID < 256) ); } // HACK HACK! Used to make the gun visually change when going through a cleanser! m_fEffectsMaxSize1 = 4.0f; m_fEffectsMaxSize2 = 4.0f; }