Moving selection over roulette or section header doesn't stop previous sample music.

This commit is contained in:
Chris Danford
2002-10-02 16:56:09 +00:00
parent 8ca696c739
commit 29e7a8c19a
4 changed files with 12 additions and 31 deletions
+1 -1
View File
@@ -219,6 +219,7 @@ OptionIconsP2Y=86
HelpText=! or " change music Hold ! and " then press START to change sort::## easier difficulty $$ harder difficulty::#$#$ to change sort HelpText=! or " change music Hold ! and " then press START to change sort::## easier difficulty $$ harder difficulty::#$#$ to change sort
TimerSeconds=60 TimerSeconds=60
ScoreConnectedToMusicWheel=1 ScoreConnectedToMusicWheel=1
SampleMusicDelay=0.15
[ScreenEz2SelectMusic] [ScreenEz2SelectMusic]
BannerX=320 // central banner BannerX=320 // central banner
@@ -447,7 +448,6 @@ GradeP2X=118
[MusicWheel] [MusicWheel]
FadeSeconds=1 FadeSeconds=1
SwitchSeconds=0.10 SwitchSeconds=0.10
SampleMusicDelay=0.2
RouletteSwitchSeconds=0.05 RouletteSwitchSeconds=0.05
RouletteSlowDownSwitches=5 RouletteSlowDownSwitches=5
LockedInitialVelocity=7 LockedInitialVelocity=7
+2 -18
View File
@@ -37,7 +37,6 @@
// MusicWheel stuff // MusicWheel stuff
#define FADE_SECONDS THEME->GetMetricF("MusicWheel","FadeSeconds") #define FADE_SECONDS THEME->GetMetricF("MusicWheel","FadeSeconds")
#define SWITCH_SECONDS THEME->GetMetricF("MusicWheel","SwitchSeconds") #define SWITCH_SECONDS THEME->GetMetricF("MusicWheel","SwitchSeconds")
#define SAMPLE_MUSIC_DELAY THEME->GetMetricF("MusicWheel","SampleMusicDelay")
#define ROULETTE_SWITCH_SECONDS THEME->GetMetricF("MusicWheel","RouletteSwitchSeconds") #define ROULETTE_SWITCH_SECONDS THEME->GetMetricF("MusicWheel","RouletteSwitchSeconds")
#define ROULETTE_SLOW_DOWN_SWITCHES THEME->GetMetricI("MusicWheel","RouletteSlowDownSwitches") #define ROULETTE_SLOW_DOWN_SWITCHES THEME->GetMetricI("MusicWheel","RouletteSlowDownSwitches")
#define LOCKED_INITIAL_VELOCITY THEME->GetMetricF("MusicWheel","LockedInitialVelocity") #define LOCKED_INITIAL_VELOCITY THEME->GetMetricF("MusicWheel","LockedInitialVelocity")
@@ -299,8 +298,6 @@ MusicWheel::MusicWheel()
m_soundLocked.Load( THEME->GetPathTo("Sounds","select music wheel locked") ); m_soundLocked.Load( THEME->GetPathTo("Sounds","select music wheel locked") );
m_fTimeLeftBeforePlayMusicSample = 0;
// init m_mapGroupNameToBannerColor // init m_mapGroupNameToBannerColor
CArray<Song*, Song*> arraySongs; CArray<Song*, Song*> arraySongs;
@@ -761,13 +758,6 @@ void MusicWheel::Update( float fDeltaTime )
NextMusic( false ); // spin as fast as possible NextMusic( false ); // spin as fast as possible
} }
if( m_fTimeLeftBeforePlayMusicSample > 0 )
{
m_fTimeLeftBeforePlayMusicSample -= fDeltaTime;
if( m_fTimeLeftBeforePlayMusicSample < 0 )
SCREENMAN->SendMessageToTopScreen( SM_PlaySongSample, 0 );
}
// update wheel state // update wheel state
m_fTimeLeftInState -= fDeltaTime; m_fTimeLeftInState -= fDeltaTime;
if( m_fTimeLeftInState <= 0 ) // time to go to a new state if( m_fTimeLeftInState <= 0 ) // time to go to a new state
@@ -836,11 +826,9 @@ void MusicWheel::Update( float fDeltaTime )
} }
break; break;
case STATE_FLYING_ON_AFTER_NEXT_SORT: case STATE_FLYING_ON_AFTER_NEXT_SORT:
SCREENMAN->SendMessageToTopScreen( SM_PlaySongSample, 0 );
m_WheelState = STATE_SELECTING_MUSIC; // now, wait for input m_WheelState = STATE_SELECTING_MUSIC; // now, wait for input
break; break;
case STATE_TWEENING_ON_SCREEN: case STATE_TWEENING_ON_SCREEN:
SCREENMAN->SendMessageToTopScreen( SM_PlaySongSample, 0 );
m_fTimeLeftInState = 0; m_fTimeLeftInState = 0;
if( GAMESTATE->IsExtraStage() || GAMESTATE->IsExtraStage2() ) if( GAMESTATE->IsExtraStage() || GAMESTATE->IsExtraStage2() )
{ {
@@ -943,7 +931,7 @@ void MusicWheel::Update( float fDeltaTime )
if( m_fPositionOffsetFromSelection < 0 ) if( m_fPositionOffsetFromSelection < 0 )
{ {
m_fPositionOffsetFromSelection = 0; m_fPositionOffsetFromSelection = 0;
m_fTimeLeftBeforePlayMusicSample = SAMPLE_MUSIC_DELAY; // m_fTimeLeftBeforePlayMusicSample = SAMPLE_MUSIC_DELAY;
} }
} }
else if( m_fPositionOffsetFromSelection < 0 ) else if( m_fPositionOffsetFromSelection < 0 )
@@ -952,7 +940,7 @@ void MusicWheel::Update( float fDeltaTime )
if( m_fPositionOffsetFromSelection > 0 ) if( m_fPositionOffsetFromSelection > 0 )
{ {
m_fPositionOffsetFromSelection = 0; m_fPositionOffsetFromSelection = 0;
m_fTimeLeftBeforePlayMusicSample = SAMPLE_MUSIC_DELAY; // m_fTimeLeftBeforePlayMusicSample = SAMPLE_MUSIC_DELAY;
} }
} }
} }
@@ -971,8 +959,6 @@ void MusicWheel::PrevMusic( bool bSendSongChangedMessage )
if( fabsf(m_fPositionOffsetFromSelection) > 0.5f ) // wheel is busy spinning if( fabsf(m_fPositionOffsetFromSelection) > 0.5f ) // wheel is busy spinning
return; return;
m_fTimeLeftBeforePlayMusicSample = 0;
switch( m_WheelState ) switch( m_WheelState )
{ {
case STATE_SELECTING_MUSIC: case STATE_SELECTING_MUSIC:
@@ -1016,8 +1002,6 @@ void MusicWheel::NextMusic( bool bSendSongChangedMessage )
if( fabsf(m_fPositionOffsetFromSelection) > 0.5f ) // wheel is very busy spinning if( fabsf(m_fPositionOffsetFromSelection) > 0.5f ) // wheel is very busy spinning
return; return;
m_fTimeLeftBeforePlayMusicSample = 0;
switch( m_WheelState ) switch( m_WheelState )
{ {
case STATE_SELECTING_MUSIC: case STATE_SELECTING_MUSIC:
+1 -3
View File
@@ -32,8 +32,7 @@ const int NUM_WHEEL_ITEMS_TO_DRAW = 13;
const ScreenMessage SM_SongChanged = ScreenMessage(SM_User+47); // this should be unique! const ScreenMessage SM_SongChanged = ScreenMessage(SM_User+47); // this should be unique!
const ScreenMessage SM_PlaySongSample = ScreenMessage(SM_User+48); const ScreenMessage SM_SortOrderChanged = ScreenMessage(SM_User+48);
const ScreenMessage SM_SortOrderChanged = ScreenMessage(SM_User+49);
enum WheelItemType { TYPE_SECTION, TYPE_SONG, TYPE_ROULETTE, TYPE_COURSE }; enum WheelItemType { TYPE_SECTION, TYPE_SONG, TYPE_ROULETTE, TYPE_COURSE };
@@ -141,7 +140,6 @@ protected:
int m_iSwitchesLeftInSpinDown; int m_iSwitchesLeftInSpinDown;
float m_fLockedWheelVelocity; float m_fLockedWheelVelocity;
float m_fTimeLeftBeforePlayMusicSample; // Triggers a message send when crosses 0
enum WheelState { enum WheelState {
STATE_SELECTING_MUSIC, STATE_SELECTING_MUSIC,
+8 -9
View File
@@ -69,12 +69,14 @@
#define HELP_TEXT THEME->GetMetric("ScreenSelectMusic","HelpText") #define HELP_TEXT THEME->GetMetric("ScreenSelectMusic","HelpText")
#define TIMER_SECONDS THEME->GetMetricI("ScreenSelectMusic","TimerSeconds") #define TIMER_SECONDS THEME->GetMetricI("ScreenSelectMusic","TimerSeconds")
#define SCORE_CONNECTED_TO_MUSIC_WHEEL THEME->GetMetricB("ScreenSelectMusic","ScoreConnectedToMusicWheel") #define SCORE_CONNECTED_TO_MUSIC_WHEEL THEME->GetMetricB("ScreenSelectMusic","ScoreConnectedToMusicWheel")
#define SAMPLE_MUSIC_DELAY THEME->GetMetricF("ScreenSelectMusic","SampleMusicDelay")
const float TWEEN_TIME = 0.5f; const float TWEEN_TIME = 0.5f;
const ScreenMessage SM_GoToPrevScreen = ScreenMessage(SM_User+1); const ScreenMessage SM_GoToPrevScreen = ScreenMessage(SM_User+1);
const ScreenMessage SM_GoToNextScreen = ScreenMessage(SM_User+2); const ScreenMessage SM_GoToNextScreen = ScreenMessage(SM_User+2);
const ScreenMessage SM_PlaySongSample = ScreenMessage(SM_User+3);
@@ -544,9 +546,6 @@ void ScreenSelectMusic::MenuLeft( PlayerNumber pn, const InputEventType type )
if( type >= IET_SLOW_REPEAT && INPUTMAPPER->IsButtonDown( MenuInput(pn, MENU_BUTTON_RIGHT) ) ) if( type >= IET_SLOW_REPEAT && INPUTMAPPER->IsButtonDown( MenuInput(pn, MENU_BUTTON_RIGHT) ) )
return; // ignore return; // ignore
if( ! m_MusicWheel.WheelIsLocked() )
MUSIC->Stop();
m_MusicWheel.PrevMusic(); m_MusicWheel.PrevMusic();
} }
@@ -556,9 +555,6 @@ void ScreenSelectMusic::MenuRight( PlayerNumber pn, const InputEventType type )
if( type >= IET_SLOW_REPEAT && INPUTMAPPER->IsButtonDown( MenuInput(pn, MENU_BUTTON_LEFT) ) ) if( type >= IET_SLOW_REPEAT && INPUTMAPPER->IsButtonDown( MenuInput(pn, MENU_BUTTON_LEFT) ) )
return; // ignore return; // ignore
if( ! m_MusicWheel.WheelIsLocked() )
MUSIC->Stop();
m_MusicWheel.NextMusic(); m_MusicWheel.NextMusic();
} }
@@ -723,6 +719,9 @@ void ScreenSelectMusic::AfterMusicChange()
break; break;
case TYPE_SONG: case TYPE_SONG:
{ {
MUSIC->Stop();
this->SendScreenMessage( SM_PlaySongSample, SAMPLE_MUSIC_DELAY );
for( int pn = 0; pn < NUM_PLAYERS; ++pn) { for( int pn = 0; pn < NUM_PLAYERS; ++pn) {
pSong->GetNotesThatMatch( GAMESTATE->GetCurrentStyleDef(), pn, m_arrayNotes[pn] ); pSong->GetNotesThatMatch( GAMESTATE->GetCurrentStyleDef(), pn, m_arrayNotes[pn] );
SortNotesArrayByDifficulty( m_arrayNotes[pn] ); SortNotesArrayByDifficulty( m_arrayNotes[pn] );
@@ -766,7 +765,7 @@ void ScreenSelectMusic::AfterMusicChange()
void ScreenSelectMusic::PlayMusicSample() void ScreenSelectMusic::PlayMusicSample()
{ {
//LOG->Trace( "ScreenSelectSong::PlaySONGample()" ); //LOG->Trace( "ScreenSelectSong::PlayMusicSample()" );
Song* pSong = m_MusicWheel.GetSelectedSong(); Song* pSong = m_MusicWheel.GetSelectedSong();
if( pSong && pSong->HasMusic() ) if( pSong && pSong->HasMusic() )
@@ -775,8 +774,8 @@ void ScreenSelectMusic::PlayMusicSample()
MUSIC->Load( pSong->GetMusicPath() ); MUSIC->Load( pSong->GetMusicPath() );
MUSIC->Play( true, pSong->m_fMusicSampleStartSeconds, pSong->m_fMusicSampleLengthSeconds ); MUSIC->Play( true, pSong->m_fMusicSampleStartSeconds, pSong->m_fMusicSampleLengthSeconds );
} }
else // else
MUSIC->LoadAndPlayIfNotAlready( THEME->GetPathTo("Sounds","select music music") ); // MUSIC->LoadAndPlayIfNotAlready( THEME->GetPathTo("Sounds","select music music") );
} }
void ScreenSelectMusic::UpdateOptionsDisplays() void ScreenSelectMusic::UpdateOptionsDisplays()