diff --git a/Graphics/levels/FMA/ShadyShoals/ShadyShoals.Mep b/Graphics/levels/FMA/ShadyShoals/ShadyShoals.Mep index a05905610..05a509532 100644 Binary files a/Graphics/levels/FMA/ShadyShoals/ShadyShoals.Mep and b/Graphics/levels/FMA/ShadyShoals/ShadyShoals.Mep differ diff --git a/Graphics/levels/FMA/ShadyShoals/ShadyShoals.Mex b/Graphics/levels/FMA/ShadyShoals/ShadyShoals.Mex index 2756d8b3c..a47a298e0 100644 Binary files a/Graphics/levels/FMA/ShadyShoals/ShadyShoals.Mex and b/Graphics/levels/FMA/ShadyShoals/ShadyShoals.Mex differ diff --git a/source/fx/fxbaseanim.cpp b/source/fx/fxbaseanim.cpp index f17c7e87c..6e72b7477 100644 --- a/source/fx/fxbaseanim.cpp +++ b/source/fx/fxbaseanim.cpp @@ -76,8 +76,9 @@ int ThisFrame=CurrentFrame>>BaseData->FrameShift; /*****************************************************************************/ void CFXBaseAnim::render() { -DVECTOR RenderPos; + if (!HasInit) return; +DVECTOR RenderPos; getFXRenderPos(RenderPos); if (!canRender() || Flags & FX_FLAG_HIDDEN) return; diff --git a/source/fx/fxtvexplode.cpp b/source/fx/fxtvexplode.cpp index 6aa0f3141..1c0d51cf2 100644 --- a/source/fx/fxtvexplode.cpp +++ b/source/fx/fxtvexplode.cpp @@ -30,20 +30,29 @@ CFXBaseAnim::sFXBaseData FXValveBaseData= /*****************************************************************************/ -int TVExplodeVel=8; -int TVExplodeCogs=8; -int TVExplodeValves=8; -void CFXTVExplode::init(DVECTOR const &Pos) +static const int TVExplodeVel=8; +static const int TVExplodeCogs=4; +static const int TVExplodeValves=4; + +/*****************************************************************************/ +void CFXTVExplode::init(DVECTOR const &_Pos) +{ + CFX::init(_Pos); +} + +/*****************************************************************************/ +void CFXTVExplode::think(int _frames) { CFX *NewFX; int VelX,VelY; -// NewFX=CFX::Create(CFX::FX_TYPE_SMOKE,Pos); NewFX=CFX::Create(CFX::FX_TYPE_SMOKE_PUFF,Pos); + NewFX->SetOtPos(1); NewFX=CFX::Create(CFX::FX_TYPE_EXPLODE,Pos); ((CFXBaseAnim*)NewFX)->SetScale(ONE*2); + NewFX->SetOtPos(1); for (int i=0;isetVelocity(VelX,VelY); + NewFX->SetOtPos(1); } for (int i=0;isetVelocity(VelX,VelY); + NewFX->SetOtPos(1); } + killFX(); } diff --git a/source/fx/fxtvexplode.h b/source/fx/fxtvexplode.h index 4c1a394e6..3bc89f8e9 100644 --- a/source/fx/fxtvexplode.h +++ b/source/fx/fxtvexplode.h @@ -12,6 +12,8 @@ class CFXTVExplode : public CFX { public: void init(DVECTOR const &Pos); + void think(int _frames); + }; #endif