45 lines
1.1 KiB
C++
45 lines
1.1 KiB
C++
#pragma once
|
|
#include "etbaseeffect.h"
|
|
|
|
#define MAX_RAIN_DROP_SPLASH_COUNT 200
|
|
|
|
class CEtRainDropSplash;
|
|
typedef CSmartPtr< CEtRainDropSplash > EtRainDropSplashHandle;
|
|
|
|
class CEtRainDropSplash : public CEtBaseEffect
|
|
{
|
|
public:
|
|
CEtRainDropSplash(void);
|
|
~CEtRainDropSplash(void);
|
|
|
|
protected:
|
|
float m_fLifeTime;
|
|
float m_fInvLifeTime;
|
|
float m_fCreationRadius;
|
|
int m_nSplashPerSecond;
|
|
float m_fRemainCreationTime;
|
|
int m_nBaseIndex;
|
|
int m_nAllocSize;
|
|
std::vector< EtVector4 > m_vecPosition;
|
|
|
|
int m_nPositionParamIndex;
|
|
|
|
public:
|
|
void Initialize( const char *pSplashTexture, float fSplashSize );
|
|
|
|
void CalcAllocSize();
|
|
|
|
void SetLifeTime( float fLifeTime );
|
|
float GetLifeTime() { return m_fLifeTime; }
|
|
|
|
void SetCreationRadius( float fRadius ) { m_fCreationRadius = fRadius; }
|
|
float GetCreationRadius() { return m_fCreationRadius; }
|
|
|
|
void SetSplashPerSecond( int nSplash );
|
|
int GetSplashPerSecond() { return m_nSplashPerSecond; }
|
|
|
|
void Process( float fElapsedTime );
|
|
virtual void Render( float fElapsedTime );
|
|
|
|
static EtRainDropSplashHandle CreateRainDropSplash( const char *pSplashTexture, float fSplashSize );
|
|
};
|