mirror of
https://github.com/nillerusr/source-engine.git
synced 2026-08-29 21:49:20 +00:00
upload "kind" alien swarm
This commit is contained in:
@@ -1,15 +1,21 @@
|
||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||
//====== Copyright © 1996-2004, Valve Corporation, All rights reserved. =======
|
||||
//
|
||||
// Purpose:
|
||||
//
|
||||
//=============================================================================
|
||||
|
||||
#include "cbase.h"
|
||||
#include "env_tonemap_controller.h"
|
||||
#include "baseentity.h"
|
||||
#include "entityoutput.h"
|
||||
#include "convar.h"
|
||||
#include "triggers.h"
|
||||
|
||||
|
||||
// memdbgon must be the last include file in a .cpp file!!!
|
||||
#include "tier0/memdbgon.h"
|
||||
// Spawn Flags
|
||||
#define SF_TONEMAP_MASTER 0x0001
|
||||
|
||||
ConVar mat_hdr_tonemapscale( "mat_hdr_tonemapscale", "1.0", FCVAR_CHEAT, "The HDR tonemap scale. 1 = Use autoexposure, 0 = eyes fully closed, 16 = eyes wide open." );
|
||||
|
||||
@@ -27,10 +33,14 @@ public:
|
||||
DECLARE_DATADESC();
|
||||
DECLARE_SERVERCLASS();
|
||||
|
||||
CEnvTonemapController();
|
||||
|
||||
void Spawn( void );
|
||||
int UpdateTransmitState( void );
|
||||
void UpdateTonemapScaleBlend( void );
|
||||
|
||||
bool IsMaster( void ) const { return HasSpawnFlags( SF_TONEMAP_MASTER ); }
|
||||
|
||||
// Inputs
|
||||
void InputSetTonemapScale( inputdata_t &inputdata );
|
||||
void InputBlendTonemapScale( inputdata_t &inputdata );
|
||||
@@ -42,12 +52,16 @@ public:
|
||||
void InputUseDefaultBloomScale( inputdata_t &inputdata );
|
||||
void InputSetBloomScaleRange( inputdata_t &inputdata );
|
||||
|
||||
void InputSetBloomExponent( inputdata_t &inputdata );
|
||||
void InputSetBloomSaturation( inputdata_t &inputdata );
|
||||
|
||||
private:
|
||||
float m_flBlendTonemapStart; // HDR Tonemap at the start of the blend
|
||||
float m_flBlendTonemapEnd; // Target HDR Tonemap at the end of the blend
|
||||
float m_flBlendEndTime; // Time at which the blend ends
|
||||
float m_flBlendStartTime; // Time at which the blend started
|
||||
|
||||
public:
|
||||
CNetworkVar( bool, m_bUseCustomAutoExposureMin );
|
||||
CNetworkVar( bool, m_bUseCustomAutoExposureMax );
|
||||
CNetworkVar( bool, m_bUseCustomBloomScale );
|
||||
@@ -55,6 +69,8 @@ private:
|
||||
CNetworkVar( float, m_flCustomAutoExposureMax );
|
||||
CNetworkVar( float, m_flCustomBloomScale);
|
||||
CNetworkVar( float, m_flCustomBloomScaleMinimum);
|
||||
CNetworkVar( float, m_flBloomExponent);
|
||||
CNetworkVar( float, m_flBloomSaturation);
|
||||
};
|
||||
|
||||
LINK_ENTITY_TO_CLASS( env_tonemap_controller, CEnvTonemapController );
|
||||
@@ -72,6 +88,9 @@ BEGIN_DATADESC( CEnvTonemapController )
|
||||
DEFINE_FIELD( m_flCustomBloomScaleMinimum, FIELD_FLOAT ),
|
||||
DEFINE_FIELD( m_bUseCustomBloomScale, FIELD_BOOLEAN ),
|
||||
|
||||
DEFINE_FIELD( m_flBloomExponent, FIELD_FLOAT ),
|
||||
DEFINE_FIELD( m_flBloomSaturation, FIELD_FLOAT ),
|
||||
|
||||
DEFINE_THINKFUNC( UpdateTonemapScaleBlend ),
|
||||
|
||||
// Inputs
|
||||
@@ -84,6 +103,9 @@ BEGIN_DATADESC( CEnvTonemapController )
|
||||
DEFINE_INPUTFUNC( FIELD_VOID, "UseDefaultBloomScale", InputUseDefaultBloomScale ),
|
||||
DEFINE_INPUTFUNC( FIELD_FLOAT, "SetBloomScale", InputSetBloomScale ),
|
||||
DEFINE_INPUTFUNC( FIELD_FLOAT, "SetBloomScaleRange", InputSetBloomScaleRange ),
|
||||
|
||||
DEFINE_INPUTFUNC( FIELD_FLOAT, "SetBloomExponent", InputSetBloomExponent ),
|
||||
DEFINE_INPUTFUNC( FIELD_FLOAT, "SetBloomSaturation", InputSetBloomSaturation ),
|
||||
END_DATADESC()
|
||||
|
||||
IMPLEMENT_SERVERCLASS_ST( CEnvTonemapController, DT_EnvTonemapController )
|
||||
@@ -94,8 +116,20 @@ IMPLEMENT_SERVERCLASS_ST( CEnvTonemapController, DT_EnvTonemapController )
|
||||
SendPropFloat( SENDINFO(m_flCustomAutoExposureMax), 0, SPROP_NOSCALE),
|
||||
SendPropFloat( SENDINFO(m_flCustomBloomScale), 0, SPROP_NOSCALE),
|
||||
SendPropFloat( SENDINFO(m_flCustomBloomScaleMinimum), 0, SPROP_NOSCALE),
|
||||
|
||||
SendPropFloat( SENDINFO(m_flBloomExponent), 0, SPROP_NOSCALE),
|
||||
SendPropFloat( SENDINFO(m_flBloomSaturation), 0, SPROP_NOSCALE),
|
||||
END_SEND_TABLE()
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Purpose:
|
||||
//-----------------------------------------------------------------------------
|
||||
CEnvTonemapController::CEnvTonemapController()
|
||||
{
|
||||
m_flBloomExponent = 2.5f;
|
||||
m_flBloomSaturation = 1.0f;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Purpose:
|
||||
//-----------------------------------------------------------------------------
|
||||
@@ -169,7 +203,7 @@ void CEnvTonemapController::InputSetBloomScaleRange( inputdata_t &inputdata )
|
||||
return;
|
||||
}
|
||||
m_flCustomBloomScale=bloom_max;
|
||||
m_flCustomBloomScaleMinimum=bloom_min;
|
||||
m_flCustomBloomScale=bloom_min;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
@@ -247,3 +281,124 @@ void CEnvTonemapController::InputUseDefaultBloomScale( inputdata_t &inputdata )
|
||||
{
|
||||
m_bUseCustomBloomScale = false;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Purpose:
|
||||
//-----------------------------------------------------------------------------
|
||||
void CEnvTonemapController::InputSetBloomExponent( inputdata_t &inputdata )
|
||||
{
|
||||
m_flBloomExponent = inputdata.value.Float();
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Purpose:
|
||||
//-----------------------------------------------------------------------------
|
||||
void CEnvTonemapController::InputSetBloomSaturation( inputdata_t &inputdata )
|
||||
{
|
||||
m_flBloomSaturation = inputdata.value.Float();
|
||||
}
|
||||
|
||||
|
||||
//--------------------------------------------------------------------------------------------------------
|
||||
LINK_ENTITY_TO_CLASS( trigger_tonemap, CTonemapTrigger );
|
||||
|
||||
BEGIN_DATADESC( CTonemapTrigger )
|
||||
DEFINE_KEYFIELD( m_tonemapControllerName, FIELD_STRING, "TonemapName" ),
|
||||
END_DATADESC()
|
||||
|
||||
|
||||
//--------------------------------------------------------------------------------------------------------
|
||||
void CTonemapTrigger::Spawn( void )
|
||||
{
|
||||
AddSpawnFlags( SF_TRIGGER_ALLOW_CLIENTS );
|
||||
|
||||
BaseClass::Spawn();
|
||||
InitTrigger();
|
||||
|
||||
m_hTonemapController = gEntList.FindEntityByName( NULL, m_tonemapControllerName );
|
||||
}
|
||||
|
||||
|
||||
//--------------------------------------------------------------------------------------------------------
|
||||
void CTonemapTrigger::StartTouch( CBaseEntity *other )
|
||||
{
|
||||
if ( !PassesTriggerFilters( other ) )
|
||||
return;
|
||||
|
||||
BaseClass::StartTouch( other );
|
||||
|
||||
CBasePlayer *player = ToBasePlayer( other );
|
||||
if ( !player )
|
||||
return;
|
||||
|
||||
player->OnTonemapTriggerStartTouch( this );
|
||||
}
|
||||
|
||||
|
||||
//--------------------------------------------------------------------------------------------------------
|
||||
void CTonemapTrigger::EndTouch( CBaseEntity *other )
|
||||
{
|
||||
if ( !PassesTriggerFilters( other ) )
|
||||
return;
|
||||
|
||||
BaseClass::EndTouch( other );
|
||||
|
||||
CBasePlayer *player = ToBasePlayer( other );
|
||||
if ( !player )
|
||||
return;
|
||||
|
||||
player->OnTonemapTriggerEndTouch( this );
|
||||
}
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Purpose: Clear out the tonemap controller.
|
||||
//-----------------------------------------------------------------------------
|
||||
void CTonemapSystem::LevelInitPreEntity( void )
|
||||
{
|
||||
m_hMasterController = NULL;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Purpose: On level load find the master fog controller. If no controller is
|
||||
// set as Master, use the first fog controller found.
|
||||
//-----------------------------------------------------------------------------
|
||||
void CTonemapSystem::LevelInitPostEntity( void )
|
||||
{
|
||||
// Overall master controller
|
||||
CEnvTonemapController *pTonemapController = NULL;
|
||||
do
|
||||
{
|
||||
pTonemapController = static_cast<CEnvTonemapController*>( gEntList.FindEntityByClassname( pTonemapController, "env_tonemap_controller" ) );
|
||||
if ( pTonemapController )
|
||||
{
|
||||
if ( m_hMasterController == NULL )
|
||||
{
|
||||
m_hMasterController = pTonemapController;
|
||||
}
|
||||
else
|
||||
{
|
||||
if ( pTonemapController->IsMaster() )
|
||||
{
|
||||
m_hMasterController = pTonemapController;
|
||||
}
|
||||
}
|
||||
}
|
||||
} while ( pTonemapController );
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
//--------------------------------------------------------------------------------------------------------
|
||||
CTonemapSystem s_TonemapSystem( "TonemapSystem" );
|
||||
|
||||
|
||||
//--------------------------------------------------------------------------------------------------------
|
||||
CTonemapSystem *TheTonemapSystem( void )
|
||||
{
|
||||
return &s_TonemapSystem;
|
||||
}
|
||||
|
||||
|
||||
//--------------------------------------------------------------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user