fade out music betwen course songs
This commit is contained in:
@@ -72,6 +72,7 @@ const ScreenMessage SM_PlayGo = ScreenMessage(SM_User+1);
|
|||||||
|
|
||||||
// received while STATE_DANCING
|
// received while STATE_DANCING
|
||||||
const ScreenMessage SM_LoadNextSong = ScreenMessage(SM_User+11);
|
const ScreenMessage SM_LoadNextSong = ScreenMessage(SM_User+11);
|
||||||
|
const ScreenMessage SM_StartLoadingNextSong = ScreenMessage(SM_User+12);
|
||||||
|
|
||||||
// received while STATE_OUTRO
|
// received while STATE_OUTRO
|
||||||
const ScreenMessage SM_SaveChangedBeforeGoingBack = ScreenMessage(SM_User+20);
|
const ScreenMessage SM_SaveChangedBeforeGoingBack = ScreenMessage(SM_User+20);
|
||||||
@@ -91,6 +92,7 @@ ScreenGameplay::ScreenGameplay( CString sName ) : Screen(sName)
|
|||||||
PLAYER_TYPE.Load( sName, "PlayerType" );
|
PLAYER_TYPE.Load( sName, "PlayerType" );
|
||||||
GIVE_UP_TEXT.Load( sName, "GiveUpText" );
|
GIVE_UP_TEXT.Load( sName, "GiveUpText" );
|
||||||
GIVE_UP_ABORTED_TEXT.Load( sName, "GiveUpAbortedText" );
|
GIVE_UP_ABORTED_TEXT.Load( sName, "GiveUpAbortedText" );
|
||||||
|
MUSIC_FADE_OUT_SECONDS.Load( sName, "MusicFadeOutSeconds" );
|
||||||
START_GIVES_UP.Load( sName, "StartGivesUp" );
|
START_GIVES_UP.Load( sName, "StartGivesUp" );
|
||||||
BACK_GIVES_UP.Load( sName, "BackGivesUp" );
|
BACK_GIVES_UP.Load( sName, "BackGivesUp" );
|
||||||
GIVING_UP_FAILS.Load( sName, "GivingUpFails" );
|
GIVING_UP_FAILS.Load( sName, "GivingUpFails" );
|
||||||
@@ -2141,31 +2143,14 @@ void ScreenGameplay::HandleScreenMessage( const ScreenMessage SM )
|
|||||||
|
|
||||||
if( !bAllReallyFailed && !IsLastSong() )
|
if( !bAllReallyFailed && !IsLastSong() )
|
||||||
{
|
{
|
||||||
/* Next song. */
|
/* Load the next course song. First, fade out and stop the music. */
|
||||||
FOREACH_EnabledPlayer(p)
|
float fFadeLengthSeconds = MUSIC_FADE_OUT_SECONDS;
|
||||||
{
|
RageSoundParams p = m_pSoundMusic->GetParams();
|
||||||
if( !STATSMAN->m_CurStageStats.m_player[p].bFailed )
|
p.m_FadeLength = fFadeLengthSeconds;
|
||||||
{
|
p.m_LengthSeconds = GAMESTATE->m_fMusicSeconds + fFadeLengthSeconds;
|
||||||
// give a little life back between stages
|
m_pSoundMusic->SetParams(p);
|
||||||
if( m_pLifeMeter[p] )
|
|
||||||
m_pLifeMeter[p]->OnSongEnded();
|
|
||||||
if( m_pCombinedLifeMeter )
|
|
||||||
m_pCombinedLifeMeter->OnSongEnded();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
int iPlaySongIndex = GAMESTATE->GetCourseSongIndex()+1;
|
SCREENMAN->PostMessageToTopScreen( SM_StartLoadingNextSong, fFadeLengthSeconds );
|
||||||
iPlaySongIndex %= m_apSongsQueue.size();
|
|
||||||
m_apSongsQueue[iPlaySongIndex]->PushSelf( LUA->L );
|
|
||||||
GAMESTATE->m_Environment->Set( "NextSong" );
|
|
||||||
MESSAGEMAN->Broadcast( "NextCourseSong" );
|
|
||||||
GAMESTATE->m_Environment->Unset( "NextSong" );
|
|
||||||
|
|
||||||
m_NextSong.PlayCommand( "Start" );
|
|
||||||
m_NextSong.Reset();
|
|
||||||
m_NextSong.StartTransitioning( SM_LoadNextSong );
|
|
||||||
LoadCourseSongNumber( GAMESTATE->GetCourseSongIndex()+1 );
|
|
||||||
COMMAND( m_sprCourseSongNumber, "ChangeIn" );
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2240,6 +2225,37 @@ void ScreenGameplay::HandleScreenMessage( const ScreenMessage SM )
|
|||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
case SM_StartLoadingNextSong:
|
||||||
|
{
|
||||||
|
m_pSoundMusic->Stop();
|
||||||
|
|
||||||
|
/* Next song. */
|
||||||
|
FOREACH_EnabledPlayer(p)
|
||||||
|
{
|
||||||
|
if( !STATSMAN->m_CurStageStats.m_player[p].bFailed )
|
||||||
|
{
|
||||||
|
// give a little life back between stages
|
||||||
|
if( m_pLifeMeter[p] )
|
||||||
|
m_pLifeMeter[p]->OnSongEnded();
|
||||||
|
if( m_pCombinedLifeMeter )
|
||||||
|
m_pCombinedLifeMeter->OnSongEnded();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
int iPlaySongIndex = GAMESTATE->GetCourseSongIndex()+1;
|
||||||
|
iPlaySongIndex %= m_apSongsQueue.size();
|
||||||
|
m_apSongsQueue[iPlaySongIndex]->PushSelf( LUA->L );
|
||||||
|
GAMESTATE->m_Environment->Set( "NextSong" );
|
||||||
|
MESSAGEMAN->Broadcast( "NextCourseSong" );
|
||||||
|
GAMESTATE->m_Environment->Unset( "NextSong" );
|
||||||
|
|
||||||
|
m_NextSong.PlayCommand( "Start" );
|
||||||
|
m_NextSong.Reset();
|
||||||
|
m_NextSong.StartTransitioning( SM_LoadNextSong );
|
||||||
|
LoadCourseSongNumber( GAMESTATE->GetCourseSongIndex()+1 );
|
||||||
|
COMMAND( m_sprCourseSongNumber, "ChangeIn" );
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
case SM_LoadNextSong:
|
case SM_LoadNextSong:
|
||||||
SongFinished();
|
SongFinished();
|
||||||
|
|||||||
@@ -47,6 +47,7 @@ protected:
|
|||||||
ThemeMetric<CString> PLAYER_TYPE;
|
ThemeMetric<CString> PLAYER_TYPE;
|
||||||
ThemeMetric<CString> GIVE_UP_TEXT;
|
ThemeMetric<CString> GIVE_UP_TEXT;
|
||||||
ThemeMetric<CString> GIVE_UP_ABORTED_TEXT;
|
ThemeMetric<CString> GIVE_UP_ABORTED_TEXT;
|
||||||
|
ThemeMetric<float> MUSIC_FADE_OUT_SECONDS;
|
||||||
ThemeMetric<bool> START_GIVES_UP;
|
ThemeMetric<bool> START_GIVES_UP;
|
||||||
ThemeMetric<bool> BACK_GIVES_UP;
|
ThemeMetric<bool> BACK_GIVES_UP;
|
||||||
ThemeMetric<bool> GIVING_UP_FAILS;
|
ThemeMetric<bool> GIVING_UP_FAILS;
|
||||||
|
|||||||
Reference in New Issue
Block a user