diff --git a/stepmania/src/MusicWheel.cpp b/stepmania/src/MusicWheel.cpp index e52f7a7a38..8a297ceef1 100644 --- a/stepmania/src/MusicWheel.cpp +++ b/stepmania/src/MusicWheel.cpp @@ -251,18 +251,23 @@ MusicWheel::MusicWheel() m_fPositionOffsetFromSelection = 0; - // find the previously selected song (if any), and select it + // build all of the wheel item datas + for( int so=0; som_pCurSong ) - m_iSelection = i; + { + m_iSelection = i; // select it + m_sExpandedSectionName = GetCurWheelItemDatas()[m_iSelection].m_sSectionName; // make its group the currently expanded group + } } - - for( int so=0; so &arr // Make an array of Song*, then sort them /////////////////////////////////// CArray arraySongs; - arraySongs.Copy( GAMEINFO->m_pSongs ); + // copy only song that have at least one Steps for the current GameMode + for( int i=0; im_pSongs.GetSize(); i++ ) + { + Song* pSong = GAMEINFO->m_pSongs[i]; + + CArray arraySteps; + pSong->GetStepsThatMatchGameMode( GAMEINFO->m_GameMode, arraySteps ); + + if( arraySteps.GetSize() > 0 ) + arraySongs.Add( pSong ); + } + + // sort the songs switch( so ) { @@ -765,4 +782,7 @@ void MusicWheel::TweenOffScreen() m_sprSelectionBackground.SetTweenZoomY( 0 ); m_sprSelectionOverlay.BeginTweening( FADE_TIME ); m_sprSelectionOverlay.SetTweenZoomY( 0 ); + + m_MusicSortDisplay.BeginTweening( FADE_TIME, TWEEN_BIAS_END ); + m_MusicSortDisplay.SetTweenXY( SORT_ICON_OFF_SCREEN_X, SORT_ICON_OFF_SCREEN_Y ); } \ No newline at end of file diff --git a/stepmania/src/Player.cpp b/stepmania/src/Player.cpp index 983e7d1296..7064d74770 100644 --- a/stepmania/src/Player.cpp +++ b/stepmania/src/Player.cpp @@ -254,7 +254,7 @@ void Player::SetX( float fX ) } -void Player::SetSteps( const Steps& newSteps, bool bLoadOnlyLeftSide, bool bLoadOnlyRightSide ) +void Player::SetSteps( Steps* pNewSteps, bool bLoadOnlyLeftSide, bool bLoadOnlyRightSide ) { Step tempSteps[MAX_STEP_ELEMENTS]; CArray tempHoldSteps; @@ -262,7 +262,7 @@ void Player::SetSteps( const Steps& newSteps, bool bLoadOnlyLeftSide, bool bLoad // copy the steps into our tempSteps where we will transform them for( int i=0; im_Steps[i]; if( bLoadOnlyLeftSide ) { @@ -285,9 +285,9 @@ void Player::SetSteps( const Steps& newSteps, bool bLoadOnlyLeftSide, bool bLoad if( m_PlayerOptions.m_bAllowFreezeArrows ) { // copy the HoldSteps and transform them later - for( int i=0; im_HoldSteps.GetSize(); i++ ) { - HoldStep &hs = newSteps.m_HoldSteps[i]; + HoldStep &hs = pNewSteps->m_HoldSteps[i]; if( bLoadOnlyLeftSide ) { diff --git a/stepmania/src/Player.h b/stepmania/src/Player.h index c482ea4e83..4cbd901a7d 100644 --- a/stepmania/src/Player.h +++ b/stepmania/src/Player.h @@ -42,7 +42,7 @@ public: virtual void Update( float fDeltaTime, float fSongBeat, float fMaxBeatDifference ); virtual void RenderPrimitives(); - void SetSteps( const Steps& newSteps, bool bLoadOnlyLeftSide = false, bool bLoadOnlyRightSide = false ); + void SetSteps( Steps* pNewSteps, bool bLoadOnlyLeftSide = false, bool bLoadOnlyRightSide = false ); void SetX( float fX ); void CrossedIndex( int iIndex ); diff --git a/stepmania/src/Song.cpp b/stepmania/src/Song.cpp index 594633a907..0f433caea9 100644 --- a/stepmania/src/Song.cpp +++ b/stepmania/src/Song.cpp @@ -448,6 +448,7 @@ bool Song::LoadSongInfoFromDWIFile( CString sPath ) split( sValueString, ":", arrayValueTokens ); CString sValueName = arrayValueTokens.GetAt( 0 ); + sValueName.TrimLeft(); // handle the data if( sValueName == "#FILE" ) diff --git a/stepmania/src/StepMania.dsp b/stepmania/src/StepMania.dsp index 5a4ed63f0a..7466e240b5 100644 --- a/stepmania/src/StepMania.dsp +++ b/stepmania/src/StepMania.dsp @@ -508,6 +508,14 @@ SOURCE=.\TransitionFadeWipeWithLogo.h # End Source File # Begin Source File +SOURCE=.\TransitionInvisible.cpp +# End Source File +# Begin Source File + +SOURCE=.\TransitionInvisible.h +# End Source File +# Begin Source File + SOURCE=.\TransitionRectWipe.cpp # End Source File # Begin Source File diff --git a/stepmania/src/Transition.h b/stepmania/src/Transition.h index d853db0da4..03f2dcf8c1 100644 --- a/stepmania/src/Transition.h +++ b/stepmania/src/Transition.h @@ -71,11 +71,13 @@ protected: case opening_right: case opening_left: return 1.0f - m_fPercentThroughTransition; - break; case closing_right: case closing_left: return m_fPercentThroughTransition; - break; + case opened: + return 0; + case closed: + return 1; default: ASSERT( true ); return 0;