void CSDKPlayer::PickupObject( CBaseEntity *pObject, bool bLimitMassAndSize ) { // can't pick up what you're standing on if ( GetGroundEntity() == pObject ) { DevMsg("Failed to pickup object: Player is standing on object!\n"); PlayUseDenySound(); return; } if ( bLimitMassAndSize == true ) { if ( CanPickupObject( pObject, PLAYER_MAX_LIFT_MASS, PLAYER_MAX_LIFT_SIZE ) == false ) { DevMsg("Failed to pickup object: Object too heavy!\n"); PlayUseDenySound(); return; } } // Can't be picked up if NPCs are on me if ( pObject->HasNPCsOnIt() ) return; // Bool is to tell the client that we have an object. This is incase you want to change the crosshair // or something for your project. m_bPlayerPickedUpObject = true; PlayerPickupObject( this, pObject ); }
// Pull the func_pushable void CPushable::Use( CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value ) { #ifdef HL1_DLL if( m_spawnflags & SF_PUSH_NO_USE ) return; // Allow pushables to be dragged by player CBasePlayer *pPlayer = ToBasePlayer( pActivator ); if ( pPlayer ) { if ( useType == USE_ON ) { PlayerPickupObject( pPlayer, this ); } } #else BaseClass::Use( pActivator, pCaller, useType, value ); #endif }