Counter Strike : Global Offensive Source Code
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
//========= Copyright 1996-2005, Valve Corporation, All rights reserved. ============//
//
// Purpose:
//
//=============================================================================//
#ifndef FX_WATER_H
#define FX_WATER_H
#ifdef _WIN32
#pragma once
#endif
#include "particles_simple.h"
#include "fx.h"
#include "tier0/memdbgon.h"
class CSplashParticle : public CSimpleEmitter { public: explicit CSplashParticle( const char *pDebugName ) : CSimpleEmitter( pDebugName ), m_bUseClipHeight( false ) {} // Create
static CSplashParticle *Create( const char *pDebugName ) { return new CSplashParticle( pDebugName ); }
// Roll
virtual float UpdateRoll( SimpleParticle *pParticle, float timeDelta );
// Velocity
virtual void UpdateVelocity( SimpleParticle *pParticle, float timeDelta );
// Alpha
virtual float UpdateAlpha( const SimpleParticle *pParticle );
void SetClipHeight( float flClipHeight );
// Simulation
void SimulateParticles( CParticleSimulateIterator *pIterator );
private: CSplashParticle( const CSplashParticle & ); float m_flClipHeight; bool m_bUseClipHeight; };
class WaterDebrisEffect : public CSimpleEmitter { public: explicit WaterDebrisEffect( const char *pDebugName ) : CSimpleEmitter( pDebugName ) {}
static WaterDebrisEffect* Create( const char *pDebugName );
virtual float UpdateAlpha( const SimpleParticle *pParticle );
private: WaterDebrisEffect( const WaterDebrisEffect & ); };
extern void FX_WaterRipple( const Vector &origin, float scale, Vector *pColor, float flLifetime=1.5, float flAlpha=1 ); extern void FX_GunshotSplash( const Vector &origin, const Vector &normal, float scale ); extern void FX_GunshotSlimeSplash( const Vector &origin, const Vector &normal, float scale );
//-----------------------------------------------------------------------------
// Purpose: Retrieve and alter lighting for splashes
// Input : position - point to check
// *color - tint of the lighting at this point
// *luminosity - adjusted luminosity at this point
//-----------------------------------------------------------------------------
inline void FX_GetSplashLighting( Vector position, Vector *color, float *luminosity ) { // Compute our lighting at our position
Vector totalColor = engine->GetLightForPoint( position, true ); // Get our lighting information
UTIL_GetNormalizedColorTintAndLuminosity( totalColor, color, luminosity ); // Fake a specular highlight (too dim otherwise)
if ( luminosity != NULL ) { *luminosity = MIN( 1.0f, (*luminosity) * 4.0f ); // Clamp so that we never go completely translucent
if ( *luminosity < 0.25f ) { *luminosity = 0.25f; } } // Only take a quarter of the tint, mostly we want to be white
if ( color != NULL ) { (*color) = ( (*color) * 0.25f ) + Vector( 0.75f, 0.75f, 0.75f ); } }
#include "tier0/memdbgoff.h"
#endif // FX_WATER_H
|