diff --git a/makefile.gaz b/makefile.gaz index ff5d73ef6..a99a48463 100644 --- a/makefile.gaz +++ b/makefile.gaz @@ -140,8 +140,8 @@ hazard_src := hazard \ hbbarrel fx_src := fx \ + fxtrail \ fxfallingtile \ - fxcloud \ fxsteam diff --git a/source/fx/fx.cpp b/source/fx/fx.cpp index 722a475a7..f97be99c1 100644 --- a/source/fx/fx.cpp +++ b/source/fx/fx.cpp @@ -14,7 +14,6 @@ #include "FX\FX.h" #include "FX\FXjfish.h" #include "FX\FXfallingTile.h" -#include "FX\FXCloud.h" #include "FX\FXSteam.h" /* FX @@ -64,6 +63,21 @@ Level Effect Emitters */ +/*****************************************************************************/ +CFXSteam *TestFXPtr=0; +void TestFX(DVECTOR Pos) +{ + if (!TestFXPtr) + { + TestFXPtr=(CFXSteam*)CFX::Create(CFX::FX_TYPE_STEAM,Pos); + } + else + { + TestFXPtr->setDie(); + TestFXPtr=0; + } +} + /*****************************************************************************/ CFX *CFX::Create(const FX_TYPE Type) { @@ -74,10 +88,7 @@ CFX *NewFX; case FX_TYPE_FALLINGTILE: NewFX=new ("Falling Tile") CFXFallingTile(); break; - case FX_TYPE_CLOUD: - NewFX=new ("Cloud ") CFXCloud(); - break; - case FX_TYPE_STEAM: + case FX_TYPE_STEAM: NewFX=new ("Steam") CFXSteam(); break; @@ -109,8 +120,8 @@ CFX *NewFX; case FX_TYPE_CASCADE: case FX_TYPE_CASCADE_SPLASH: case FX_TYPE_FIREBALL: - case FX_TYPE_CLOUD_SMOKE: - case FX_TYPE_CLOUD_GAS: + case FX_TYPE_SMOKE: + case FX_TYPE_GAS: case FX_TYPE_FLAMES: case FX_TYPE_EXPLODE: case FX_TYPE_DEBRIS: diff --git a/source/fx/fx.h b/source/fx/fx.h index cedaf043a..6af9881ef 100644 --- a/source/fx/fx.h +++ b/source/fx/fx.h @@ -41,10 +41,9 @@ public: FX_TYPE_CASCADE, FX_TYPE_CASCADE_SPLASH, FX_TYPE_FIREBALL, - FX_TYPE_CLOUD, FX_TYPE_STEAM, - FX_TYPE_CLOUD_SMOKE, - FX_TYPE_CLOUD_GAS, + FX_TYPE_SMOKE, + FX_TYPE_GAS, FX_TYPE_FLAMES, FX_TYPE_EXPLODE, FX_TYPE_DEBRIS, @@ -68,4 +67,9 @@ protected: s32 OtPos; }; +/*****************************************************************************/ +/*****************************************************************************/ +/*****************************************************************************/ +void TestFX(DVECTOR Pos); + #endif diff --git a/source/fx/fxsteam.cpp b/source/fx/fxsteam.cpp index 47f3821cf..5fd908ebe 100644 --- a/source/fx/fxsteam.cpp +++ b/source/fx/fxsteam.cpp @@ -12,29 +12,21 @@ #include "FX\FXSteam.h" -static s16 SteamSize=1; -const s16 SteamAngleInc=1111; +static const s16 SteamSize=4; +static const s16 SteamAngleInc=999; -int SLife=64; /*****************************************************************************/ /*****************************************************************************/ /*****************************************************************************/ void CFXSteam::init(DVECTOR const &_Pos) { - CFXCloud::init(_Pos); - Life=SLife; - - RBase=255; - GBase=255; - BBase=255; - RInc=-8; - GInc=-8; - BInc=-8; + CFXTrail::init(_Pos); + ColBase=255; + ColInc=-8; Trans=3; - + DieOut=false; SetSize(SteamSize); - } /*****************************************************************************/ @@ -48,27 +40,55 @@ void CFXSteam::SetSize(int Size) { ScaleInc=(4096/LIST_SIZE)*Size; AngleInc=SteamAngleInc; - Vel.vx=0; - Vel.vy=-Size; + BaseVel.vx=0; + BaseVel.vy=-Size; +} + +/*****************************************************************************/ +void CFXSteam::setDie() +{ + CFXTrail::setDie(); + for (int i=0; i