diff options
| author | Jørgen P. Tjernø <[email protected]> | 2013-12-02 19:31:46 -0800 |
|---|---|---|
| committer | Jørgen P. Tjernø <[email protected]> | 2013-12-02 19:46:31 -0800 |
| commit | f56bb35301836e56582a575a75864392a0177875 (patch) | |
| tree | de61ddd39de3e7df52759711950b4c288592f0dc /mp/src/game/client/geiger.cpp | |
| parent | Mark some more files as text. (diff) | |
| download | source-sdk-2013-f56bb35301836e56582a575a75864392a0177875.tar.xz source-sdk-2013-f56bb35301836e56582a575a75864392a0177875.zip | |
Fix line endings. WHAMMY.
Diffstat (limited to 'mp/src/game/client/geiger.cpp')
| -rw-r--r-- | mp/src/game/client/geiger.cpp | 432 |
1 files changed, 216 insertions, 216 deletions
diff --git a/mp/src/game/client/geiger.cpp b/mp/src/game/client/geiger.cpp index 47a0cd21..f1e0ae7f 100644 --- a/mp/src/game/client/geiger.cpp +++ b/mp/src/game/client/geiger.cpp @@ -1,216 +1,216 @@ -//========= Copyright Valve Corporation, All rights reserved. ============//
-//
-// Purpose:
-//
-// $NoKeywords: $
-//
-//=============================================================================//
-//
-// Geiger.cpp
-//
-// implementation of CHudAmmo class
-//
-#include "cbase.h"
-#include "hudelement.h"
-#include "hud_macros.h"
-#include "engine/IEngineSound.h"
-#include "SoundEmitterSystem/isoundemittersystembase.h"
-#include "iclientmode.h"
-#include <vgui_controls/Controls.h>
-#include <vgui_controls/Panel.h>
-#include <vgui/ISurface.h>
-
-using namespace vgui;
-
-// memdbgon must be the last include file in a .cpp file!!!
-#include "tier0/memdbgon.h"
-
-//-----------------------------------------------------------------------------
-// Purpose:
-//-----------------------------------------------------------------------------
-class CHudGeiger: public CHudElement, public vgui::Panel
-{
- DECLARE_CLASS_SIMPLE( CHudGeiger, vgui::Panel );
-public:
- CHudGeiger( const char *pElementName );
- void Init( void );
- void VidInit( void );
- bool ShouldDraw( void );
- virtual void ApplySchemeSettings( vgui::IScheme *scheme );
- virtual void Paint( void );
- void MsgFunc_Geiger(bf_read &msg);
-
-private:
- int m_iGeigerRange;
- float m_flLastSoundTestTime;
-};
-
-DECLARE_HUDELEMENT( CHudGeiger );
-DECLARE_HUD_MESSAGE( CHudGeiger, Geiger );
-
-//-----------------------------------------------------------------------------
-// Purpose:
-//-----------------------------------------------------------------------------
-CHudGeiger::CHudGeiger( const char *pElementName ) :
- CHudElement( pElementName ), BaseClass( NULL, "HudGeiger" )
-{
- vgui::Panel *pParent = g_pClientMode->GetViewport();
- SetParent( pParent );
- m_flLastSoundTestTime = -9999;
-
- SetHiddenBits( HIDEHUD_HEALTH );
-}
-
-void CHudGeiger::ApplySchemeSettings( IScheme *scheme )
-{
- BaseClass::ApplySchemeSettings( scheme );
-
- SetPaintBackgroundEnabled( false );
-}
-
-//-----------------------------------------------------------------------------
-// Purpose:
-//-----------------------------------------------------------------------------
-void CHudGeiger::Init(void)
-{
- HOOK_HUD_MESSAGE( CHudGeiger, Geiger );
-
- m_iGeigerRange = 0;
-};
-
-//-----------------------------------------------------------------------------
-// Purpose:
-//-----------------------------------------------------------------------------
-void CHudGeiger::VidInit(void)
-{
- m_iGeigerRange = 0;
-}
-
-//-----------------------------------------------------------------------------
-// Purpose:
-//-----------------------------------------------------------------------------
-void CHudGeiger::MsgFunc_Geiger( bf_read &msg )
-{
- // update geiger data
- m_iGeigerRange = msg.ReadByte();
- m_iGeigerRange = m_iGeigerRange << 2;
-}
-
-//-----------------------------------------------------------------------------
-// Purpose:
-//-----------------------------------------------------------------------------
-bool CHudGeiger::ShouldDraw( void )
-{
- return ( ( m_iGeigerRange > 0 && m_iGeigerRange < 1000 ) && CHudElement::ShouldDraw() );
-}
-
-//-----------------------------------------------------------------------------
-// Purpose:
-//-----------------------------------------------------------------------------
-void CHudGeiger::Paint()
-{
- int pct;
- float flvol=0;
- bool highsound = false;
-
- if ( gpGlobals->curtime - m_flLastSoundTestTime < 0.06 )
- {
- return;
- }
-
- m_flLastSoundTestTime = gpGlobals->curtime;
-
- // piecewise linear is better than continuous formula for this
- if (m_iGeigerRange > 800)
- {
- pct = 0; //Msg ( "range > 800\n");
- }
- else if (m_iGeigerRange > 600)
- {
- pct = 2;
- flvol = 0.2; //Msg ( "range > 600\n");
- }
- else if (m_iGeigerRange > 500)
- {
- pct = 4;
- flvol = 0.25; //Msg ( "range > 500\n");
- }
- else if (m_iGeigerRange > 400)
- {
- pct = 8;
- flvol = 0.3; //Msg ( "range > 400\n");
- highsound = true;
- }
- else if (m_iGeigerRange > 300)
- {
- pct = 8;
- flvol = 0.35; //Msg ( "range > 300\n");
- highsound = true;
- }
- else if (m_iGeigerRange > 200)
- {
- pct = 28;
- flvol = 0.39; //Msg ( "range > 200\n");
- highsound = true;
- }
- else if (m_iGeigerRange > 150)
- {
- pct = 40;
- flvol = 0.40; //Msg ( "range > 150\n");
- highsound = true;
- }
- else if (m_iGeigerRange > 100)
- {
- pct = 60;
- flvol = 0.425; //Msg ( "range > 100\n");
- highsound = true;
- }
- else if (m_iGeigerRange > 75)
- {
- pct = 80;
- flvol = 0.45; //Msg ( "range > 75\n");
- //gflGeigerDelay = cl.time + GEIGERDELAY * 0.75;
- highsound = true;
- }
- else if (m_iGeigerRange > 50)
- {
- pct = 90;
- flvol = 0.475; //Msg ( "range > 50\n");
- }
- else
- {
- pct = 95;
- flvol = 0.5; //Msg ( "range < 50\n");
- }
-
- flvol = (flvol * (random->RandomInt(0,127)) / 255) + 0.25;
-
- if ( random->RandomInt(0,127) < pct )
- {
- char sz[256];
- if ( highsound )
- {
- Q_strncpy( sz, "Geiger.BeepHigh", sizeof( sz ) );
- }
- else
- {
- Q_strncpy( sz, "Geiger.BeepLow", sizeof( sz ) );
- }
-
- CSoundParameters params;
-
- if ( C_BaseEntity::GetParametersForSound( sz, params, NULL ) )
- {
- CLocalPlayerFilter filter;
-
- EmitSound_t ep;
- ep.m_nChannel = params.channel;
- ep.m_pSoundName = params.soundname;
- ep.m_flVolume = flvol;
- ep.m_SoundLevel = params.soundlevel;
- ep.m_nPitch = params.pitch;
-
- C_BaseEntity::EmitSound( filter, SOUND_FROM_LOCAL_PLAYER, ep );
- }
- }
-}
+//========= Copyright Valve Corporation, All rights reserved. ============// +// +// Purpose: +// +// $NoKeywords: $ +// +//=============================================================================// +// +// Geiger.cpp +// +// implementation of CHudAmmo class +// +#include "cbase.h" +#include "hudelement.h" +#include "hud_macros.h" +#include "engine/IEngineSound.h" +#include "SoundEmitterSystem/isoundemittersystembase.h" +#include "iclientmode.h" +#include <vgui_controls/Controls.h> +#include <vgui_controls/Panel.h> +#include <vgui/ISurface.h> + +using namespace vgui; + +// memdbgon must be the last include file in a .cpp file!!! +#include "tier0/memdbgon.h" + +//----------------------------------------------------------------------------- +// Purpose: +//----------------------------------------------------------------------------- +class CHudGeiger: public CHudElement, public vgui::Panel +{ + DECLARE_CLASS_SIMPLE( CHudGeiger, vgui::Panel ); +public: + CHudGeiger( const char *pElementName ); + void Init( void ); + void VidInit( void ); + bool ShouldDraw( void ); + virtual void ApplySchemeSettings( vgui::IScheme *scheme ); + virtual void Paint( void ); + void MsgFunc_Geiger(bf_read &msg); + +private: + int m_iGeigerRange; + float m_flLastSoundTestTime; +}; + +DECLARE_HUDELEMENT( CHudGeiger ); +DECLARE_HUD_MESSAGE( CHudGeiger, Geiger ); + +//----------------------------------------------------------------------------- +// Purpose: +//----------------------------------------------------------------------------- +CHudGeiger::CHudGeiger( const char *pElementName ) : + CHudElement( pElementName ), BaseClass( NULL, "HudGeiger" ) +{ + vgui::Panel *pParent = g_pClientMode->GetViewport(); + SetParent( pParent ); + m_flLastSoundTestTime = -9999; + + SetHiddenBits( HIDEHUD_HEALTH ); +} + +void CHudGeiger::ApplySchemeSettings( IScheme *scheme ) +{ + BaseClass::ApplySchemeSettings( scheme ); + + SetPaintBackgroundEnabled( false ); +} + +//----------------------------------------------------------------------------- +// Purpose: +//----------------------------------------------------------------------------- +void CHudGeiger::Init(void) +{ + HOOK_HUD_MESSAGE( CHudGeiger, Geiger ); + + m_iGeigerRange = 0; +}; + +//----------------------------------------------------------------------------- +// Purpose: +//----------------------------------------------------------------------------- +void CHudGeiger::VidInit(void) +{ + m_iGeigerRange = 0; +} + +//----------------------------------------------------------------------------- +// Purpose: +//----------------------------------------------------------------------------- +void CHudGeiger::MsgFunc_Geiger( bf_read &msg ) +{ + // update geiger data + m_iGeigerRange = msg.ReadByte(); + m_iGeigerRange = m_iGeigerRange << 2; +} + +//----------------------------------------------------------------------------- +// Purpose: +//----------------------------------------------------------------------------- +bool CHudGeiger::ShouldDraw( void ) +{ + return ( ( m_iGeigerRange > 0 && m_iGeigerRange < 1000 ) && CHudElement::ShouldDraw() ); +} + +//----------------------------------------------------------------------------- +// Purpose: +//----------------------------------------------------------------------------- +void CHudGeiger::Paint() +{ + int pct; + float flvol=0; + bool highsound = false; + + if ( gpGlobals->curtime - m_flLastSoundTestTime < 0.06 ) + { + return; + } + + m_flLastSoundTestTime = gpGlobals->curtime; + + // piecewise linear is better than continuous formula for this + if (m_iGeigerRange > 800) + { + pct = 0; //Msg ( "range > 800\n"); + } + else if (m_iGeigerRange > 600) + { + pct = 2; + flvol = 0.2; //Msg ( "range > 600\n"); + } + else if (m_iGeigerRange > 500) + { + pct = 4; + flvol = 0.25; //Msg ( "range > 500\n"); + } + else if (m_iGeigerRange > 400) + { + pct = 8; + flvol = 0.3; //Msg ( "range > 400\n"); + highsound = true; + } + else if (m_iGeigerRange > 300) + { + pct = 8; + flvol = 0.35; //Msg ( "range > 300\n"); + highsound = true; + } + else if (m_iGeigerRange > 200) + { + pct = 28; + flvol = 0.39; //Msg ( "range > 200\n"); + highsound = true; + } + else if (m_iGeigerRange > 150) + { + pct = 40; + flvol = 0.40; //Msg ( "range > 150\n"); + highsound = true; + } + else if (m_iGeigerRange > 100) + { + pct = 60; + flvol = 0.425; //Msg ( "range > 100\n"); + highsound = true; + } + else if (m_iGeigerRange > 75) + { + pct = 80; + flvol = 0.45; //Msg ( "range > 75\n"); + //gflGeigerDelay = cl.time + GEIGERDELAY * 0.75; + highsound = true; + } + else if (m_iGeigerRange > 50) + { + pct = 90; + flvol = 0.475; //Msg ( "range > 50\n"); + } + else + { + pct = 95; + flvol = 0.5; //Msg ( "range < 50\n"); + } + + flvol = (flvol * (random->RandomInt(0,127)) / 255) + 0.25; + + if ( random->RandomInt(0,127) < pct ) + { + char sz[256]; + if ( highsound ) + { + Q_strncpy( sz, "Geiger.BeepHigh", sizeof( sz ) ); + } + else + { + Q_strncpy( sz, "Geiger.BeepLow", sizeof( sz ) ); + } + + CSoundParameters params; + + if ( C_BaseEntity::GetParametersForSound( sz, params, NULL ) ) + { + CLocalPlayerFilter filter; + + EmitSound_t ep; + ep.m_nChannel = params.channel; + ep.m_pSoundName = params.soundname; + ep.m_flVolume = flvol; + ep.m_SoundLevel = params.soundlevel; + ep.m_nPitch = params.pitch; + + C_BaseEntity::EmitSound( filter, SOUND_FROM_LOCAL_PLAYER, ep ); + } + } +} |