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,
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=
{
FRM__SPLASH001,FRM__SPLASH006,1,
FX_FLAG_NO_THINK_KILL,
0,0,
0,0,0,
};
CFXBaseAnim::sFXBaseData FXExplodeBaseData=
{
FRM__EXPLOSION0001,FRM__EXPLOSION0008,1,
FX_FLAG_NO_THINK_KILL,
CSoundMediator::SFX_HAZARD__FIREBALL_LAND,0,
CSoundMediator::SFX_HAZARD__FIREBALL_LAND,0,0,
};
CFXBaseAnim::sFXBaseData FXFireBaseData=
{
FRM__FIRE01,FRM__FIRE08,1,
FX_FLAG_LOOP | FX_FLAG_TRANS,
0,0,
0,CSoundMediator::SFX_FIRE_CRACKLING,0,
};
CFXBaseAnim::sFXBaseData FXBubbleBaseData=
{
FRM__BUBBLE_2,FRM__BUBBLE_2,1,
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);
}
}
else
{
if(!CSoundMediator::isSfxStillPlaying(m_soundId))
{
CSoundMediator::stopAndUnlockSfx(m_soundId);
m_soundId=NOT_PLAYING;
}
}
EndSnd=BaseData->EndSnd;
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);
@ -85,6 +91,14 @@ int ThisFrame=CurrentFrame>>BaseData->FrameShift;
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;
u16 Flags;
u16 StartSnd,EndSnd;
u16 StartSnd,MainSnd,EndSnd;
};
virtual void init(DVECTOR const &Pos);