Files
FC1/CryCommon/CREFlashBang.h
romkazvo 34d6c5d489 123
2023-08-07 19:29:24 +08:00

93 lines
1.8 KiB
C++

/*
=====================================================================
FILE : CREFlashBang.h
DESC : render element, simple fx
PROJ : Crytek Engine
CODER: Tiago Sousa
Last Update: 15/04/2003
=====================================================================
*/
#ifndef __CREFLASHBANG_H__
#define __CREFLASHBANG_H__
class CREFlashBang : public CRendElement
{
public:
CREFlashBang():m_fTimeScale(1.0f), m_bIsActive(0), m_fPosX(200), m_fPosY(100), m_fSizeX(400), m_fSizeY(400), m_fFlashTimeOut(1.0f)
{
mfSetType(eDATA_FlashBang);
mfUpdateFlags(FCEF_TRANSFORM);
};
virtual ~CREFlashBang()
{
};
virtual void mfPrepare();
virtual bool mfDraw(SShader *ef, SShaderPass *sfm);
// set/get methods
// activate flashbang
void SetIsActive(bool bActive)
{
m_bIsActive=bActive;
// reset flash time out
if(m_bIsActive)
m_fFlashTimeOut=1.0f;
};
bool GetIsActive(void)
{
return m_bIsActive;
};
// set speed of flashbang fade out
void SetTimeScale(float fTimeScale)
{
m_fTimeScale=fTimeScale;
};
float GetTimeScale(void)
{
return m_fTimeScale;
};
// set flashbangflash properties, fPosX/fPosY - position in screen space, sizeX/sizeY flash size
void SetProperties(float fPosX, float fPosY, float fSizeX, float fSizeY)
{
m_fPosX=fPosX;
m_fPosY=fPosY;
m_fSizeX=fSizeX;
m_fSizeY=fSizeY;
};
void GetProperties(float &fPosX, float &fPosY, float &fSizeX, float &fSizeY)
{
fPosX=m_fPosX;
fPosY=m_fPosY;
fSizeX=m_fSizeX;
fSizeY=m_fSizeY;
};
float GetFlashTimeOut(void)
{
return m_fFlashTimeOut;
};
private:
// active flag
bool m_bIsActive;
// time scale
float m_fTimeScale, m_fFlashTimeOut;
// flashbang flash properties
float m_fPosX, m_fPosY, m_fSizeX, m_fSizeY;
};
#endif