diff --git a/source/fx/fxgeyser.cpp b/source/fx/fxgeyser.cpp index 555cfcb34..024d58fec 100644 --- a/source/fx/fxgeyser.cpp +++ b/source/fx/fxgeyser.cpp @@ -22,6 +22,8 @@ void CFXGeyser::init(DVECTOR const &_Pos) Height=TargetHeight=8; currentFrame=FRM__GUSH000; SoundId = NOT_PLAYING; + BasePos=_Pos; + OtPos++; } /*****************************************************************************/ @@ -39,7 +41,7 @@ void CFXGeyser::shutdown() void CFXGeyser::think(int Frames) { CFX::think(Frames); - + Pos=BasePos; currentFrame++; if (currentFrame>FRM__GUSH003) { @@ -57,6 +59,7 @@ DVECTOR RenderPos; POLY_FT4 *Ft4; SpriteBank *SprBank=CGameScene::getSpriteBank(); CThing *Parent=getParent(); +int W; getFXRenderPos(RenderPos); if (!canRender() || Flags & FX_FLAG_HIDDEN) return; @@ -95,10 +98,13 @@ CThing *Parent=getParent(); } // top - Ft4=SprBank->printFT4(currentFrame,RenderPos.vx,RenderPos.vy-Height,0,0,OtPos); + Ft4=SprBank->printFT4(currentFrame,RenderPos.vx-8,RenderPos.vy-Height,0,0,OtPos); setShadeTex(Ft4,0); setRGB0(Ft4,RGB.R,RGB.G,RGB.B); setSemiTrans(Ft4,Flags & FX_FLAG_TRANS); + W=(Ft4->x1-Ft4->x0)/2; + Ft4->x0-=W; Ft4->x1+=W; + Ft4->x2-=W; Ft4->x3+=W; int FrameW=Ft4->x1-Ft4->x0; setCollisionCentreOffset(FrameW>>1,-Height/2); @@ -106,13 +112,18 @@ int FrameW=Ft4->x1-Ft4->x0; setCollisionSize(FrameW,Height); // Base - Ft4=SprBank->printFT4(FRM__GUSHBASE,RenderPos.vx,RenderPos.vy,0,0,OtPos); + Ft4=SprBank->printFT4(FRM__GUSHBASE,RenderPos.vx-8,RenderPos.vy,currentFrame&2,0/*currentFrame&2*/,OtPos); setShadeTex(Ft4,0); setRGB0(Ft4,RGB.R,RGB.G,RGB.B); setSemiTrans(Ft4,Flags & FX_FLAG_TRANS); + W=(Ft4->x1-Ft4->x0)/2; + Ft4->x0-=W+2; Ft4->x1+=W+2; + Ft4->x2-=W-2; Ft4->x3+=W-2; Ft4->y0=Ft4->y2-Height; Ft4->y1=Ft4->y3-Height; + Ft4->v0++; Ft4->v1++; Ft4->v2--; Ft4->v3--; + } diff --git a/source/fx/fxgeyser.h b/source/fx/fxgeyser.h index de8aaaccc..8b501ebbd 100644 --- a/source/fx/fxgeyser.h +++ b/source/fx/fxgeyser.h @@ -23,6 +23,7 @@ protected: s16 TargetHeight,Height; u16 currentFrame; int SoundId; + DVECTOR BasePos; }; #endif