//========= Copyright Valve Corporation, All rights reserved. ============// // // Purpose: // //============================================================================= #ifndef EPISODIC_SCREENSPACEEFFECTS_H #define EPISODIC_SCREENSPACEEFFECTS_H #ifdef _WIN32 #pragma once #endif #include "ScreenSpaceEffects.h" class CStunEffect : public IScreenSpaceEffect { public: CStunEffect(void) : m_flDuration(0.0f), m_flFinishTime(0.0f), m_bUpdateView(true) {} virtual void Init(void); virtual void Shutdown(void); virtual void SetParameters(KeyValues *params); virtual void Enable(bool bEnable){}; virtual bool IsEnabled() { return true; } virtual void Render(int x, int y, int w, int h); private: CTextureReference m_StunTexture; CMaterialReference m_EffectMaterial; float m_flDuration; float m_flFinishTime; bool m_bUpdateView; }; ADD_SCREENSPACE_EFFECT(CStunEffect, episodic_stun); // // EP1 Intro Blur // class CEP1IntroEffect : public IScreenSpaceEffect { public: CEP1IntroEffect(void) : m_flDuration(0.0f), m_flFinishTime(0.0f), m_bUpdateView(true), m_bEnabled(false), m_bFadeOut(false) {} virtual void Init(void); virtual void Shutdown(void); virtual void SetParameters(KeyValues *params); virtual void Enable(bool bEnable) { m_bEnabled = bEnable; } virtual bool IsEnabled() { return m_bEnabled; } virtual void Render(int x, int y, int w, int h); private: inline unsigned char GetFadeAlpha(void); CTextureReference m_StunTexture; CMaterialReference m_EffectMaterial; float m_flDuration; float m_flFinishTime; bool m_bUpdateView; bool m_bEnabled; bool m_bFadeOut; }; ADD_SCREENSPACE_EFFECT(CEP1IntroEffect, episodic_intro); // // EP2 Player Stunned Effect // // // EP1 Intro Blur // class CEP2StunEffect : public IScreenSpaceEffect { public: CEP2StunEffect(void) : m_flDuration(0.0f), m_flFinishTime(0.0f), m_bUpdateView(true), m_bEnabled(false), m_bFadeOut(false) {} virtual void Init(void); virtual void Shutdown(void); virtual void SetParameters(KeyValues *params); virtual void Enable(bool bEnable) { m_bEnabled = bEnable; } virtual bool IsEnabled() { return m_bEnabled; } virtual void Render(int x, int y, int w, int h); private: inline unsigned char GetFadeAlpha(void); CTextureReference m_StunTexture; CMaterialReference m_EffectMaterial; float m_flDuration; float m_flFinishTime; bool m_bUpdateView; bool m_bEnabled; bool m_bFadeOut; }; ADD_SCREENSPACE_EFFECT(CEP2StunEffect, ep2_groggy); #endif // EPISODIC_SCREENSPACEEFFECTS_H