Moving selection over roulette or section header doesn't stop previous sample music.
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user