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
TimerSeconds=60
ScoreConnectedToMusicWheel=1
SampleMusicDelay=0.15
[ScreenEz2SelectMusic]
BannerX=320 // central banner
@@ -447,7 +448,6 @@ GradeP2X=118
[MusicWheel]
FadeSeconds=1
SwitchSeconds=0.10
SampleMusicDelay=0.2
RouletteSwitchSeconds=0.05
RouletteSlowDownSwitches=5
LockedInitialVelocity=7
+2 -18
View File
@@ -37,7 +37,6 @@
// MusicWheel stuff
#define FADE_SECONDS THEME->GetMetricF("MusicWheel","FadeSeconds")
#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_SLOW_DOWN_SWITCHES THEME->GetMetricI("MusicWheel","RouletteSlowDownSwitches")
#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_fTimeLeftBeforePlayMusicSample = 0;
// init m_mapGroupNameToBannerColor
CArray<Song*, Song*> arraySongs;
@@ -761,13 +758,6 @@ void MusicWheel::Update( float fDeltaTime )
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
m_fTimeLeftInState -= fDeltaTime;
if( m_fTimeLeftInState <= 0 ) // time to go to a new state
@@ -836,11 +826,9 @@ void MusicWheel::Update( float fDeltaTime )
}
break;
case STATE_FLYING_ON_AFTER_NEXT_SORT:
SCREENMAN->SendMessageToTopScreen( SM_PlaySongSample, 0 );
m_WheelState = STATE_SELECTING_MUSIC; // now, wait for input
break;
case STATE_TWEENING_ON_SCREEN:
SCREENMAN->SendMessageToTopScreen( SM_PlaySongSample, 0 );
m_fTimeLeftInState = 0;
if( GAMESTATE->IsExtraStage() || GAMESTATE->IsExtraStage2() )
{
@@ -943,7 +931,7 @@ void MusicWheel::Update( float fDeltaTime )
if( m_fPositionOffsetFromSelection < 0 )
{
m_fPositionOffsetFromSelection = 0;
m_fTimeLeftBeforePlayMusicSample = SAMPLE_MUSIC_DELAY;
// m_fTimeLeftBeforePlayMusicSample = SAMPLE_MUSIC_DELAY;
}
}
else if( m_fPositionOffsetFromSelection < 0 )
@@ -952,7 +940,7 @@ void MusicWheel::Update( float fDeltaTime )
if( 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
return;
m_fTimeLeftBeforePlayMusicSample = 0;
switch( m_WheelState )
{
case STATE_SELECTING_MUSIC:
@@ -1016,8 +1002,6 @@ void MusicWheel::NextMusic( bool bSendSongChangedMessage )
if( fabsf(m_fPositionOffsetFromSelection) > 0.5f ) // wheel is very busy spinning
return;
m_fTimeLeftBeforePlayMusicSample = 0;
switch( m_WheelState )
{
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_PlaySongSample = ScreenMessage(SM_User+48);
const ScreenMessage SM_SortOrderChanged = ScreenMessage(SM_User+49);
const ScreenMessage SM_SortOrderChanged = ScreenMessage(SM_User+48);
enum WheelItemType { TYPE_SECTION, TYPE_SONG, TYPE_ROULETTE, TYPE_COURSE };
@@ -141,7 +140,6 @@ protected:
int m_iSwitchesLeftInSpinDown;
float m_fLockedWheelVelocity;
float m_fTimeLeftBeforePlayMusicSample; // Triggers a message send when crosses 0
enum WheelState {
STATE_SELECTING_MUSIC,
+8 -9
View File
@@ -69,12 +69,14 @@
#define HELP_TEXT THEME->GetMetric("ScreenSelectMusic","HelpText")
#define TIMER_SECONDS THEME->GetMetricI("ScreenSelectMusic","TimerSeconds")
#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 ScreenMessage SM_GoToPrevScreen = ScreenMessage(SM_User+1);
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) ) )
return; // ignore
if( ! m_MusicWheel.WheelIsLocked() )
MUSIC->Stop();
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) ) )
return; // ignore
if( ! m_MusicWheel.WheelIsLocked() )
MUSIC->Stop();
m_MusicWheel.NextMusic();
}
@@ -723,6 +719,9 @@ void ScreenSelectMusic::AfterMusicChange()
break;
case TYPE_SONG:
{
MUSIC->Stop();
this->SendScreenMessage( SM_PlaySongSample, SAMPLE_MUSIC_DELAY );
for( int pn = 0; pn < NUM_PLAYERS; ++pn) {
pSong->GetNotesThatMatch( GAMESTATE->GetCurrentStyleDef(), pn, m_arrayNotes[pn] );
SortNotesArrayByDifficulty( m_arrayNotes[pn] );
@@ -766,7 +765,7 @@ void ScreenSelectMusic::AfterMusicChange()
void ScreenSelectMusic::PlayMusicSample()
{
//LOG->Trace( "ScreenSelectSong::PlaySONGample()" );
//LOG->Trace( "ScreenSelectSong::PlayMusicSample()" );
Song* pSong = m_MusicWheel.GetSelectedSong();
if( pSong && pSong->HasMusic() )
@@ -775,8 +774,8 @@ void ScreenSelectMusic::PlayMusicSample()
MUSIC->Load( pSong->GetMusicPath() );
MUSIC->Play( true, pSong->m_fMusicSampleStartSeconds, pSong->m_fMusicSampleLengthSeconds );
}
else
MUSIC->LoadAndPlayIfNotAlready( THEME->GetPathTo("Sounds","select music music") );
// else
// MUSIC->LoadAndPlayIfNotAlready( THEME->GetPathTo("Sounds","select music music") );
}
void ScreenSelectMusic::UpdateOptionsDisplays()