From 660a63b903c80938436122f0166e9d48dd3a64f2 Mon Sep 17 00:00:00 2001 From: Daveo Date: Mon, 11 Jun 2001 23:37:59 +0000 Subject: [PATCH] --- source/fx/fx.cpp | 69 +++++++++++++++++++++++++++++++++++-- source/fx/fx.h | 7 +++- source/fx/fxbaseanim.cpp | 1 + source/fx/fxbaseanim.h | 1 + source/platform/pgeyser.cpp | 5 ++- 5 files changed, 76 insertions(+), 7 deletions(-) diff --git a/source/fx/fx.cpp b/source/fx/fx.cpp index f710ad983..049b50c0c 100644 --- a/source/fx/fx.cpp +++ b/source/fx/fx.cpp @@ -17,6 +17,8 @@ #include "FX\FXBaseAnim.h" #include "FX\FXBaseEmitter.h" +#include "FX\FXAttachAnim.h" + #include "FX\FXBubble.h" #include "FX\FXfallingTile.h" #include "FX\FXSteam.h" @@ -27,6 +29,7 @@ /*****************************************************************************/ /*****************************************************************************/ // Anim Data + CFXBaseAnim::sFXAnim FXWaterSplashData= { ONE, @@ -175,6 +178,47 @@ CFXBaseAnim::sFXAnim FXBubbleOilData= CFX::FX_TYPE_SPLASH_WATER }; +CFXBaseAnim::sFXAnim FXWaterFountainData= +{ + ONE, + FRM__GUSH000,FRM__GUSH002, + 3, + 127,127,255, + CFXBaseAnim::FXANIM_FLAG_LOOP, + {0,0}, + 0, +}; +CFXBaseAnim::sFXAnim FXAcidFountainData= +{ + ONE, + FRM__GUSH000,FRM__GUSH002, + 3, + 0,255,0, + CFXBaseAnim::FXANIM_FLAG_LOOP, + {0,0}, + 0, +}; +CFXBaseAnim::sFXAnim FXLavaFountainData= +{ + ONE, + FRM__GUSH000,FRM__GUSH002, + 3, + 255,0,0, + CFXBaseAnim::FXANIM_FLAG_LOOP, + {0,0}, + 0, +}; +CFXBaseAnim::sFXAnim FXOilFountainData= +{ + ONE, + FRM__GUSH000,FRM__GUSH002, + 3, + 32,32,32, + CFXBaseAnim::FXANIM_FLAG_LOOP, + {0,0}, + 0, +}; + /*****************************************************************************/ /* CFXSteam *TestFXPtr=0; @@ -197,10 +241,11 @@ void TestFX(DVECTOR Pos) } */ /*****************************************************************************/ -int FXType=(CFX::FX_TYPE)CFX::FX_TYPE_BUBBLE_WATER; -void TestFX(DVECTOR Pos) +int FXType=(CFX::FX_TYPE)CFX::FX_TYPE_FOUNTAIN_WATER; +void TestFX(DVECTOR Pos,CThing *Parent) { - CFX::Create((CFX::FX_TYPE)FXType,Pos); +CFXAttachAnim *FX=(CFXAttachAnim*)CFX::Create((CFX::FX_TYPE)FXType,Pos); + Parent->addChild(FX); // TestFXPtr->setLife(32); } @@ -260,6 +305,7 @@ CFX *NewFX; NewFX=new ("FXOilDrip") CFXBaseAnim(); NewFX->setData(&FXOilDripData); break; + case FX_TYPE_BUBBLE_WATER: NewFX=new ("FXBubbleWater") CFXBubble(); NewFX->setData(&FXBubbleWaterData); @@ -277,6 +323,23 @@ CFX *NewFX; NewFX->setData(&FXBubbleOilData); break; + case FX_TYPE_FOUNTAIN_WATER: + NewFX=new ("FXWaterFountain") CFXAttachAnim(); + NewFX->setData(&FXWaterFountainData); + break; + case FX_TYPE_FOUNTAIN_ACID: + NewFX=new ("FXAcidFountain") CFXAttachAnim(); + NewFX->setData(&FXAcidFountainData); + break; + case FX_TYPE_FOUNTAIN_LAVA: + NewFX=new ("FXLavaFountain") CFXAttachAnim(); + NewFX->setData(&FXLavaFountainData); + break; + case FX_TYPE_FOUNTAIN_OIL: + NewFX=new ("FXOilFountain") CFXAttachAnim(); + NewFX->setData(&FXOilFountainData); + break; + case FX_TYPE_NRG_BAR: NewFX=new ("NRG Bar") CFXNRGBar(); break; diff --git a/source/fx/fx.h b/source/fx/fx.h index a2e304ab2..adcfd3ccc 100644 --- a/source/fx/fx.h +++ b/source/fx/fx.h @@ -33,6 +33,11 @@ public: FX_TYPE_DROP_LAVA, FX_TYPE_DROP_OIL, + FX_TYPE_FOUNTAIN_WATER, + FX_TYPE_FOUNTAIN_ACID, + FX_TYPE_FOUNTAIN_LAVA, + FX_TYPE_FOUNTAIN_OIL, + FX_TYPE_LIGHTNING_BOLT, FX_TYPE_LIGHTNING_SHEET, FX_TYPE_LIGHTNING_BLAST, @@ -92,6 +97,6 @@ virtual void collidedWith(CThing *_thisThing); /*****************************************************************************/ /*****************************************************************************/ /*****************************************************************************/ -void TestFX(DVECTOR Pos); +void TestFX(DVECTOR Pos,CThing *Parent); #endif diff --git a/source/fx/fxbaseanim.cpp b/source/fx/fxbaseanim.cpp index e1e13abba..e4f50ac80 100644 --- a/source/fx/fxbaseanim.cpp +++ b/source/fx/fxbaseanim.cpp @@ -108,6 +108,7 @@ POLY_FT4 *Ft4=SprBank->printRotatedScaledSprite(renderFrame,RenderPos.vx,RenderP setShadeTex(Ft4,0); setRGB0(Ft4,DataPtr->R,DataPtr->G,DataPtr->B); setSemiTrans(Ft4,DataPtr->Flags & FXANIM_FLAG_TRANS); + Frame=Ft4; } /*****************************************************************************/ diff --git a/source/fx/fxbaseanim.h b/source/fx/fxbaseanim.h index 50ddc2ac8..10157babf 100644 --- a/source/fx/fxbaseanim.h +++ b/source/fx/fxbaseanim.h @@ -49,6 +49,7 @@ protected: virtual void collidedWith(CThing *_thisThing); sFXAnim *DataPtr; + POLY_FT4 *Frame; s16 VelY; s16 MaxFrame; s16 CurrentFrame; diff --git a/source/platform/pgeyser.cpp b/source/platform/pgeyser.cpp index 1627cd5f7..fe1ec3f9f 100644 --- a/source/platform/pgeyser.cpp +++ b/source/platform/pgeyser.cpp @@ -22,7 +22,7 @@ #include "fx\fxattachAnim.h" //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -const int DodgyYOffsetCosThePlatformAintInTheRightPosition_SortItOutCharles=32; +const int DodgyFXOffset=16; void CNpcGeyserPlatform::postInit() { CNpcPlatform::postInit(); @@ -32,11 +32,10 @@ void CNpcGeyserPlatform::postInit() m_state = GEYSER_READY; // Add fountain stuff DVECTOR Pos=getPos(); - Pos.vy+=DodgyYOffsetCosThePlatformAintInTheRightPosition_SortItOutCharles; + Pos.vy+=DodgyFXOffset; CThing *FX=CFX::Create(CFX::FX_TYPE_FOUNTAIN_OIL,Pos); addChild(FX); - CHARLES_DBGMSG("CNpcGeyserPlatform::postInit() - Reminder::Sort your platform positions out.\n"); } ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////