diff --git a/source/fx/fxgeyser.cpp b/source/fx/fxgeyser.cpp new file mode 100644 index 000000000..132d5a995 --- /dev/null +++ b/source/fx/fxgeyser.cpp @@ -0,0 +1,66 @@ +/***********************/ +/*** Anim Base Class ***/ +/***********************/ + +#include "system\global.h" +#include +#include "utils\utils.h" +#include "gfx\prim.h" +#include "gfx\sprbank.h" +#include +#include "level\level.h" +#include "game\game.h" + +#include "FX\FXBaseAnim.h" +#include "FX\FXAttachAnim.h" + +int MaxHeight=128; + +/*****************************************************************************/ +void CFXAttachAnim::init(DVECTOR const &_Pos) +{ + CFXBaseAnim::init(_Pos); + Height=TargetHeight=8; +} + +/*****************************************************************************/ +void CFXAttachAnim::thing(int Frames) +{ + CFXBaseAnim::think(Frames); +CThing *Parent=getParent(); + +int HDiff=TargetHeight-Height; + Height+=(HDiff+1)/2; + + if (Parent) + { + Pos2=Parent->getRenderPos(); + } + else + { + + } + +} +/*****************************************************************************/ +/*** Render ******************************************************************/ +/*****************************************************************************/ +void CFXAttachAnim::render() +{ + CFXBaseAnim::render(); + if (!canRender() || Flags & FX_FLAG_HIDDEN) return; + +int FrameW=Frame->x1-Frame->x0; +int HalfW=FrameW>>1; + + Frame->x0=Pos2.vx-HalfW; + Frame->y0=Pos2.vy; + Frame->x1=Pos2.vx+HalfW; + Frame->y1=Pos2.vy; + + int BY=Frame->y2-Frame->y0; +// setCollisionCentreOffset(0,BY>>1); + setCollisionSize(FrameW,BY*2); + +} + diff --git a/source/fx/fxgeyser.h b/source/fx/fxgeyser.h new file mode 100644 index 000000000..59e5905db --- /dev/null +++ b/source/fx/fxgeyser.h @@ -0,0 +1,23 @@ +/***********************/ +/*** Anim Base Class ***/ +/***********************/ + +#ifndef __FX_FX_ATTACH_ANIM_HEADER__ +#define __FX_FX_ATTACH_ANIM_HEADER__ + +#include "fx/fx.h" +#include "fx/fxbaseAnim.h" + +/*****************************************************************************/ +class CFXAttachAnim : public CFXBaseAnim +{ +public: +virtual void init(DVECTOR const &Pos); +virtual void thing(int Frames); +virtual void render(); + +protected: + DVECTOR Pos2; +}; + +#endif