2001-05-05 20:12:30 +02:00
|
|
|
/*********************/
|
|
|
|
/*** FX Base Class ***/
|
|
|
|
/*********************/
|
|
|
|
|
|
|
|
#ifndef __FX_FX_HEADER__
|
|
|
|
#define __FX_FX_HEADER__
|
|
|
|
|
|
|
|
#include "thing/thing.h"
|
|
|
|
|
|
|
|
/*****************************************************************************/
|
|
|
|
class SpriteBank;
|
|
|
|
class CFX : public CFXThing
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
enum FX_TYPE
|
|
|
|
{
|
|
|
|
FX_TYPE_JELLYFISH_LEGS,
|
2001-05-16 21:06:02 +02:00
|
|
|
FX_TYPE_FALLINGTILE,
|
2001-05-05 20:12:30 +02:00
|
|
|
FX_TYPE_BUBBLE,
|
|
|
|
FX_TYPE_BUBBLE_WATER,
|
|
|
|
FX_TYPE_BUBBLE_ACID,
|
|
|
|
FX_TYPE_BUBBLE_LAVA,
|
|
|
|
FX_TYPE_BUBBLE_OIL,
|
|
|
|
FX_TYPE_LIGHTNING_BOLT,
|
|
|
|
FX_TYPE_LIGHTNING_SHEET,
|
|
|
|
FX_TYPE_LIGHTNING_BLAST,
|
|
|
|
FX_TYPE_LIGHTNING_RADIAL,
|
|
|
|
FX_TYPE_LIGHTNING_PROJECTILE,
|
|
|
|
FX_TYPE_SHOCKWAVE,
|
|
|
|
FX_TYPE_DAZE,
|
|
|
|
FX_TYPE_DROP,
|
|
|
|
FX_TYPE_DROP_WATER,
|
|
|
|
FX_TYPE_DROP_ACID,
|
|
|
|
FX_TYPE_DROP_LAVA,
|
|
|
|
FX_TYPE_DROP_OIL,
|
|
|
|
FX_TYPE_SPLASH,
|
|
|
|
FX_TYPE_SPLASH_WATER,
|
|
|
|
FX_TYPE_SPLASH_ACID,
|
|
|
|
FX_TYPE_SPLASH_LAVA,
|
|
|
|
FX_TYPE_SPLASH_OIL,
|
|
|
|
FX_TYPE_CASCADE,
|
|
|
|
FX_TYPE_CASCADE_SPLASH,
|
|
|
|
FX_TYPE_FIREBALL,
|
2001-05-18 22:54:43 +02:00
|
|
|
FX_TYPE_STEAM,
|
2001-05-21 20:11:30 +02:00
|
|
|
FX_TYPE_SMOKE,
|
|
|
|
FX_TYPE_GAS,
|
2001-05-05 20:12:30 +02:00
|
|
|
FX_TYPE_FLAMES,
|
|
|
|
FX_TYPE_EXPLODE,
|
|
|
|
FX_TYPE_DEBRIS,
|
|
|
|
};
|
|
|
|
|
2001-05-16 21:06:02 +02:00
|
|
|
static CFX *Create(const FX_TYPE Type);
|
2001-05-05 20:12:30 +02:00
|
|
|
static CFX *Create(const FX_TYPE Type,CThing *Parent);
|
2001-05-16 21:06:02 +02:00
|
|
|
static CFX *Create(const FX_TYPE Type,DVECTOR const &Pos);
|
2001-05-05 20:12:30 +02:00
|
|
|
|
|
|
|
virtual void init();
|
2001-05-16 21:06:02 +02:00
|
|
|
virtual void init(DVECTOR const &Pos){};
|
2001-05-05 20:12:30 +02:00
|
|
|
virtual void shutdown();
|
|
|
|
virtual void think(int _frames);
|
|
|
|
virtual void render();
|
|
|
|
|
|
|
|
virtual int canCollide() {return false;}
|
2001-05-09 21:57:57 +02:00
|
|
|
virtual void SetOtPos(int Ot) {OtPos=Ot;}
|
2001-05-23 00:30:36 +02:00
|
|
|
virtual void setDie() {DieOut=true;}
|
|
|
|
virtual void setLife(int L) {Life=L;}
|
2001-05-09 21:57:57 +02:00
|
|
|
|
2001-05-05 20:12:30 +02:00
|
|
|
protected:
|
2001-05-16 21:06:02 +02:00
|
|
|
SpriteBank *m_spriteBank;
|
|
|
|
s32 OtPos;
|
2001-05-23 00:30:36 +02:00
|
|
|
|
|
|
|
u8 DieOut;
|
|
|
|
s16 Life;
|
|
|
|
|
2001-05-05 20:12:30 +02:00
|
|
|
};
|
|
|
|
|
2001-05-21 20:11:30 +02:00
|
|
|
/*****************************************************************************/
|
|
|
|
/*****************************************************************************/
|
|
|
|
/*****************************************************************************/
|
|
|
|
void TestFX(DVECTOR Pos);
|
|
|
|
|
2001-05-05 20:12:30 +02:00
|
|
|
#endif
|