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
|
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
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
@@ -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,
|
||||||
|
|||||||
@@ -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()
|
||||||
|
|||||||
Reference in New Issue
Block a user