This commit is contained in:
Charles 2001-07-24 19:48:17 +00:00
parent 54c7cfc803
commit 7101daf48a
3 changed files with 28 additions and 14 deletions

View file

@ -53,35 +53,35 @@ CFXBaseAnim::sFXBaseData FXDropBaseData=
{ {
FRM__DRIP,FRM__DRIP,1, FRM__DRIP,FRM__DRIP,1,
FX_FLAG_LOOP | FX_FLAG_COLLIDE_KILL | FX_FLAG_HAS_GRAVITY | FX_FLAG_NO_THINK_KILL, FX_FLAG_LOOP | FX_FLAG_COLLIDE_KILL | FX_FLAG_HAS_GRAVITY | FX_FLAG_NO_THINK_KILL,
0,CSoundMediator::SFX_HAZARD__ACID_DROP, 0,0,CSoundMediator::SFX_HAZARD__ACID_DROP,
}; };
CFXBaseAnim::sFXBaseData FXSplashBaseData= CFXBaseAnim::sFXBaseData FXSplashBaseData=
{ {
FRM__SPLASH001,FRM__SPLASH006,1, FRM__SPLASH001,FRM__SPLASH006,1,
FX_FLAG_NO_THINK_KILL, FX_FLAG_NO_THINK_KILL,
0,0, 0,0,0,
}; };
CFXBaseAnim::sFXBaseData FXExplodeBaseData= CFXBaseAnim::sFXBaseData FXExplodeBaseData=
{ {
FRM__EXPLOSION0001,FRM__EXPLOSION0008,1, FRM__EXPLOSION0001,FRM__EXPLOSION0008,1,
FX_FLAG_NO_THINK_KILL, FX_FLAG_NO_THINK_KILL,
CSoundMediator::SFX_HAZARD__FIREBALL_LAND,0, CSoundMediator::SFX_HAZARD__FIREBALL_LAND,0,0,
}; };
CFXBaseAnim::sFXBaseData FXFireBaseData= CFXBaseAnim::sFXBaseData FXFireBaseData=
{ {
FRM__FIRE01,FRM__FIRE08,1, FRM__FIRE01,FRM__FIRE08,1,
FX_FLAG_LOOP | FX_FLAG_TRANS, FX_FLAG_LOOP | FX_FLAG_TRANS,
0,0, 0,CSoundMediator::SFX_FIRE_CRACKLING,0,
}; };
CFXBaseAnim::sFXBaseData FXBubbleBaseData= CFXBaseAnim::sFXBaseData FXBubbleBaseData=
{ {
FRM__BUBBLE_2,FRM__BUBBLE_2,1, FRM__BUBBLE_2,FRM__BUBBLE_2,1,
FX_FLAG_LOOP | FX_FLAG_COLLIDE_KILL | FX_FLAG_NO_THINK_KILL, FX_FLAG_LOOP | FX_FLAG_COLLIDE_KILL | FX_FLAG_NO_THINK_KILL,
0,0, 0,0,0,
}; };
/*****************************************************************************/ /*****************************************************************************/

View file

@ -51,17 +51,23 @@ void CFXBaseAnim::think(int _frames)
m_soundId=CSoundMediator::playSfx((CSoundMediator::SFXID)BaseData->StartSnd,true,true); m_soundId=CSoundMediator::playSfx((CSoundMediator::SFXID)BaseData->StartSnd,true,true);
} }
} }
else
{
if(!CSoundMediator::isSfxStillPlaying(m_soundId))
{
CSoundMediator::stopAndUnlockSfx(m_soundId);
m_soundId=NOT_PLAYING;
}
}
EndSnd=BaseData->EndSnd; EndSnd=BaseData->EndSnd;
HasInit=true; HasInit=true;
} }
else
{
if ( !( Flags & FX_FLAG_HIDDEN ) )
{
if(m_soundId==NOT_PLAYING)
{
if (BaseData->MainSnd)
{
m_soundId=CSoundMediator::playSfx((CSoundMediator::SFXID)BaseData->MainSnd,true,true);
}
}
}
}
CFX::think(_frames); CFX::think(_frames);
@ -85,6 +91,14 @@ int ThisFrame=CurrentFrame>>BaseData->FrameShift;
renderFrame=BaseData->StartFrame+ThisFrame; renderFrame=BaseData->StartFrame+ThisFrame;
} }
if ( m_soundId != NOT_PLAYING )
{
if(!CSoundMediator::isSfxStillPlaying(m_soundId))
{
CSoundMediator::stopAndUnlockSfx(m_soundId);
m_soundId=NOT_PLAYING;
}
}
} }
/*****************************************************************************/ /*****************************************************************************/

View file

@ -15,7 +15,7 @@ public:
{ {
s16 StartFrame,EndFrame,FrameShift; s16 StartFrame,EndFrame,FrameShift;
u16 Flags; u16 Flags;
u16 StartSnd,EndSnd; u16 StartSnd,MainSnd,EndSnd;
}; };
virtual void init(DVECTOR const &Pos); virtual void init(DVECTOR const &Pos);