//----------------------------------------------------------------------------- // Purpose: // Input : *pObject - // *pFluid - //----------------------------------------------------------------------------- void CCollisionEvent::FluidStartTouch( IPhysicsObject *pObject, IPhysicsFluidController *pFluid ) { CallbackContext callback(this); if ( ( pObject == NULL ) || ( pFluid == NULL ) ) return; CBaseEntity *pEntity = static_cast<CBaseEntity *>(pObject->GetGameData()); if ( pEntity ) { float timeSinceLastCollision = DeltaTimeSinceLastFluid( pEntity ); if ( timeSinceLastCollision < 0.5f ) return; #ifdef INFESTED_DLL // prevent too many splashes spawning at once across different entities float flGlobalTimeSinceLastSplash = gpGlobals->curtime - m_flLastSplashTime; if ( flGlobalTimeSinceLastSplash < 0.1f ) return; #endif //Msg( "ent %d %s doing splash. delta = %f\n", pEntity->entindex(), pEntity->GetModelName(), timeSinceLastCollision ); PhysicsSplash( pFluid, pObject, pEntity ); m_flLastSplashTime = gpGlobals->curtime; } }
//----------------------------------------------------------------------------- // Purpose: // Input : *pObject - // *pFluid - //----------------------------------------------------------------------------- void CCollisionEvent::FluidStartTouch( IPhysicsObject *pObject, IPhysicsFluidController *pFluid ) { CallbackContext callback(this); if ( ( pObject == NULL ) || ( pFluid == NULL ) ) return; CBaseEntity *pEntity = static_cast<CBaseEntity *>(pObject->GetGameData()); if ( pEntity ) { float timeSinceLastCollision = DeltaTimeSinceLastFluid( pEntity ); if ( timeSinceLastCollision < 0.5f ) return; PhysicsSplash( pFluid, pObject, pEntity ); } }