113 lines
2.7 KiB
C++
113 lines
2.7 KiB
C++
//========= 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
|