ModeMenuAvailable metric removed; change Codes instead.

Merge the sort menu into the mode menu.
GAMESTATE->m_SortOrder is now GAMESTATE->m_PreferredSortOrder.
Allow the mode menu to have non-mutually-exclusive items.
This commit is contained in:
Glenn Maynard
2005-01-29 20:46:08 +00:00
parent 46f414e7e5
commit 8d48438c15
16 changed files with 116 additions and 141 deletions
-7
View File
@@ -27,7 +27,6 @@ void Banner::CacheGlobalBanners()
TEXTUREMAN->CacheTexture( SongBannerTexture(THEME->GetPathG("Common","fallback banner")) );
TEXTUREMAN->CacheTexture( SongBannerTexture(THEME->GetPathG("Banner","roulette")) );
TEXTUREMAN->CacheTexture( SongBannerTexture(THEME->GetPathG("Banner","random")) );
TEXTUREMAN->CacheTexture( SongBannerTexture(THEME->GetPathG("Banner","Sort")) );
TEXTUREMAN->CacheTexture( SongBannerTexture(THEME->GetPathG("Banner","Mode")) );
}
@@ -95,12 +94,6 @@ void Banner::LoadAllMusic()
m_bScrolling = false;
}
void Banner::LoadSort()
{
Load( THEME->GetPathG("Banner","Sort") );
m_bScrolling = false;
}
void Banner::LoadMode()
{
Load( THEME->GetPathG("Banner","Mode") );
-1
View File
@@ -21,7 +21,6 @@ public:
void LoadFromSong( Song* pSong ); // NULL means no song
void LoadAllMusic();
void LoadSort();
void LoadMode();
void LoadFromGroup( CString sGroupName );
void LoadFromCourse( Course* pCourse );
-6
View File
@@ -158,12 +158,6 @@ void FadingBanner::LoadAllMusic()
m_Banner[m_iIndexLatest].LoadAllMusic();
}
void FadingBanner::LoadSort()
{
BeforeChange();
m_Banner[m_iIndexLatest].LoadSort();
}
void FadingBanner::LoadMode()
{
BeforeChange();
-1
View File
@@ -17,7 +17,6 @@ public:
bool Load( RageTextureID ID );
void LoadFromSong( const Song* pSong ); // NULL means no song
void LoadAllMusic();
void LoadSort();
void LoadMode();
void LoadFromGroup( CString sGroupName );
void LoadFromCourse( const Course* pCourse );
+2 -2
View File
@@ -114,7 +114,7 @@ bool GameCommand::DescribesCurrentMode( PlayerNumber pn ) const
return false;
if( m_pTrail && GAMESTATE->m_pCurTrail[pn] != m_pTrail )
return false;
if( m_SortOrder != SORT_INVALID && GAMESTATE->m_SortOrder != m_SortOrder )
if( m_SortOrder != SORT_INVALID && GAMESTATE->m_PreferredSortOrder != m_SortOrder )
return false;
return true;
@@ -593,7 +593,7 @@ void GameCommand::Apply( const vector<PlayerNumber> &vpns ) const
if( !m_sSongGroup.empty() )
GAMESTATE->m_sPreferredSongGroup = m_sSongGroup;
if( m_SortOrder != SORT_INVALID )
GAMESTATE->m_SortOrder = m_SortOrder;
GAMESTATE->m_PreferredSortOrder = m_SortOrder;
if( m_iUnlockIndex != -1 )
UNLOCKMAN->UnlockCode( m_iUnlockIndex );
if( m_sSoundPath != "" )
-1
View File
@@ -84,7 +84,6 @@ static const CString SortOrderNames[NUM_SORT_ORDERS] = {
"MediumMeter",
"HardMeter",
"ChallengeMeter",
"Sort",
"Mode",
"Courses",
"Nonstop",
-1
View File
@@ -105,7 +105,6 @@ enum SortOrder {
SORT_MEDIUM_METER,
SORT_HARD_METER,
SORT_CHALLENGE_METER,
SORT_SORT_MENU,
SORT_MODE_MENU,
SORT_ALL_COURSES,
SORT_NONSTOP_COURSES,
+5 -5
View File
@@ -131,7 +131,7 @@ void GameState::Reset()
m_PreferredDifficulty[p] = DIFFICULTY_INVALID;
m_PreferredCourseDifficulty[p] = DIFFICULTY_MEDIUM;
}
m_SortOrder = SORT_INVALID;
m_PreferredSortOrder = SORT_INVALID;
m_PlayMode = PLAY_MODE_INVALID;
m_bEditing = false;
m_bDemonstrationOrJukebox = false;
@@ -255,8 +255,8 @@ void GameState::PlayersFinalized()
GAMESTATE->ApplyModifiers( pn, sModifiers );
}
// Only set the sort order if it wasn't already set by a GameCommand (or by an earlier profile)
if( m_SortOrder == SORT_INVALID && pProfile->m_SortOrder != SORT_INVALID )
m_SortOrder = pProfile->m_SortOrder;
if( m_PreferredSortOrder == SORT_INVALID && pProfile->m_SortOrder != SORT_INVALID )
m_PreferredSortOrder = pProfile->m_SortOrder;
if( pProfile->m_LastDifficulty != DIFFICULTY_INVALID )
m_PreferredDifficulty[pn] = pProfile->m_LastDifficulty;
if( pProfile->m_LastCourseDifficulty != DIFFICULTY_INVALID )
@@ -388,8 +388,8 @@ void GameState::SaveCurrentSettingsToProfile( PlayerNumber pn )
Profile* pProfile = PROFILEMAN->GetProfile(pn);
pProfile->SetDefaultModifiers( this->m_pCurGame, m_pPlayerState[pn]->m_PlayerOptions.GetSavedPrefsString() );
if( IsSongSort(m_SortOrder) )
pProfile->m_SortOrder = m_SortOrder;
if( IsSongSort(m_PreferredSortOrder) )
pProfile->m_SortOrder = m_PreferredSortOrder;
if( m_PreferredDifficulty[pn] != DIFFICULTY_INVALID )
pProfile->m_LastDifficulty = m_PreferredDifficulty[pn];
if( m_PreferredCourseDifficulty[pn] != DIFFICULTY_INVALID )
+1 -1
View File
@@ -99,7 +99,7 @@ public:
CString m_sPreferredSongGroup; // GROUP_ALL_MUSIC denotes no preferred group
bool m_bChangedFailType; // true if FailType was changed in the song options screen
Difficulty m_PreferredDifficulty[NUM_PLAYERS];
SortOrder m_SortOrder; // used by MusicWheel
SortOrder m_PreferredSortOrder; // used by MusicWheel
bool m_bEditing; // NoteField does special stuff when this is true
bool m_bDemonstrationOrJukebox; // ScreenGameplay does special stuff when this is true
bool m_bJukeboxUsesModifiers;
+82 -77
View File
@@ -50,7 +50,6 @@ ThemeMetric<bool> USE_3D ("MusicWheel","Use3D");
ThemeMetric<float> NUM_WHEEL_ITEMS_TO_DRAW ("MusicWheel","NumWheelItems");
#define NUM_WHEEL_ITEMS ((int)ceil(NUM_WHEEL_ITEMS_TO_DRAW+2))
#define MOST_PLAYED_SONGS_TO_SHOW THEME->GetMetricI("MusicWheel","MostPlayedSongsToShow")
#define SORT_MENU_CHOICE_NAMES THEME->GetMetric ("MusicWheel","SortMenuChoiceNames")
#define MODE_MENU_CHOICE_NAMES THEME->GetMetric ("MusicWheel","ModeMenuChoiceNames")
#define CHOICE( sChoiceName ) THEME->GetMetricM("MusicWheel",ssprintf("Choice%s",sChoiceName.c_str()))
#define WHEEL_ITEM_ON_DELAY_CENTER THEME->GetMetricF("MusicWheel","WheelItemOnDelayCenter")
@@ -79,6 +78,38 @@ MusicWheel::MusicWheel()
{
}
SortOrder ForceAppropriateSort( PlayMode pm, SortOrder so )
{
switch( pm )
{
// in course modes, force a particular sort
case PLAY_MODE_ONI: return SORT_ONI_COURSES;
case PLAY_MODE_NONSTOP: return SORT_NONSTOP_COURSES;
case PLAY_MODE_ENDLESS: return SORT_ENDLESS_COURSES;
}
/* If we're not in a course mode, don't start in a course sort. */
switch( so )
{
case SORT_ONI_COURSES:
case SORT_NONSTOP_COURSES:
case SORT_ENDLESS_COURSES:
so = SORT_INVALID;
break;
}
// if no preferred sort, fall back to theme default
if( so == SORT_INVALID )
{
so = StringToSortOrder( DEFAULT_SORT );
ASSERT( so != SORT_INVALID );
return so;
}
return so;
}
void MusicWheel::Load()
{
LOG->Trace( "MusicWheel::MusicWheel()" );
@@ -113,7 +144,6 @@ void MusicWheel::Load()
m_iSelection = 0;
m_LastSortOrder = SORT_INVALID;
m_WheelState = STATE_SELECTING_MUSIC;
m_fTimeLeftInState = 0;
@@ -152,31 +182,13 @@ void MusicWheel::Load()
GAMESTATE->m_SongOptions = so;
}
/* Never start in the sort or mode menu. We won't have a valid m_LastSortOrder
* and some elements may not initialize correctly. */
switch( GAMESTATE->m_SortOrder )
{
case SORT_SORT_MENU:
case SORT_MODE_MENU:
GAMESTATE->m_SortOrder = SORT_INVALID;
}
m_SortOrder = GAMESTATE->m_PreferredSortOrder;
switch( GAMESTATE->m_PlayMode )
{
// in course modes, force a particular sort
case PLAY_MODE_ONI: GAMESTATE->m_SortOrder = SORT_ONI_COURSES; break;
case PLAY_MODE_NONSTOP: GAMESTATE->m_SortOrder = SORT_NONSTOP_COURSES; break;
case PLAY_MODE_ENDLESS: GAMESTATE->m_SortOrder = SORT_ENDLESS_COURSES; break;
default:
// if no player preferred sort, fall back to theme default
if( GAMESTATE->m_SortOrder == SORT_INVALID )
{
GAMESTATE->m_SortOrder = StringToSortOrder( DEFAULT_SORT );
ASSERT( GAMESTATE->m_SortOrder != SORT_INVALID );
}
/* Never start in the mode menu; some elements may not initialize correctly. */
if( m_SortOrder == SORT_MODE_MENU )
m_SortOrder = SORT_INVALID;
break;
}
m_SortOrder = ForceAppropriateSort( GAMESTATE->m_PlayMode, m_SortOrder );
/* Update for SORT_MOST_PLAYED. */
SONGMAN->UpdateBest();
@@ -197,6 +209,19 @@ void MusicWheel::Load()
}
LOG->Trace( "took: %s", times.c_str() );
/* Set m_LastModeMenuItem to the first item that matches the current mode. (Do this
* after building wheel item data.) */
{
const vector<WheelItemData> &from = m_WheelItemDatas[SORT_MODE_MENU];
for( unsigned i=0; i<from.size(); i++ )
if( from[i].m_Action.DescribesCurrentModeForAllPlayers() )
{
m_sLastModeMenuItem = from[i].m_Action.m_sName;
break;
}
}
// HACK: invalidate currently selected song in the case that it
// cannot be played due to lack of stages remaining
// checking for event mode shouldn't be necessary here
@@ -236,7 +261,7 @@ bool MusicWheel::SelectSongOrCourse()
return true;
// Select the first selectable song based on the sort order...
vector<WheelItemData> &wiWheelItems = m_WheelItemDatas[GAMESTATE->m_SortOrder];
vector<WheelItemData> &wiWheelItems = m_WheelItemDatas[m_SortOrder];
for( unsigned i = 0; i < wiWheelItems.size(); i++ )
{
if( wiWheelItems[i].m_pSong )
@@ -271,7 +296,7 @@ bool MusicWheel::SelectSong( Song *p )
return false;
unsigned i;
vector<WheelItemData> &from = m_WheelItemDatas[GAMESTATE->m_SortOrder];
vector<WheelItemData> &from = m_WheelItemDatas[m_SortOrder];
for( i=0; i<from.size(); i++ )
{
if( from[i].m_pSong == p )
@@ -301,7 +326,7 @@ bool MusicWheel::SelectCourse( Course *p )
GAMESTATE->m_pCurCourse = p;
unsigned i;
vector<WheelItemData> &from = m_WheelItemDatas[GAMESTATE->m_SortOrder];
vector<WheelItemData> &from = m_WheelItemDatas[m_SortOrder];
for( i=0; i<from.size(); i++ )
{
if( from[i].m_pCourse == p )
@@ -324,26 +349,17 @@ bool MusicWheel::SelectCourse( Course *p )
return true;
}
static bool DescribesCurrentModeForAllPlayersAndSort( const GameCommand &gc, SortOrder so )
bool MusicWheel::SelectModeMenuItem()
{
const SortOrder OldSortOrder = GAMESTATE->m_SortOrder;
GAMESTATE->m_SortOrder = so;
bool bRet = gc.DescribesCurrentModeForAllPlayers();
GAMESTATE->m_SortOrder = OldSortOrder;
return bRet;
}
bool MusicWheel::SelectSort( SortOrder so )
{
if(so == SORT_INVALID)
return false;
const vector<WheelItemData> &from = m_WheelItemDatas[GAMESTATE->m_SortOrder];
/* Select the last-chosen option. */
const vector<WheelItemData> &from = m_WheelItemDatas[m_SortOrder];
unsigned i;
for( i=0; i<from.size(); i++ )
if( DescribesCurrentModeForAllPlayersAndSort( from[i].m_Action, so) )
{
const GameCommand &gc = from[i].m_Action;
if( gc.m_sName == m_sLastModeMenuItem )
break;
}
if( i == from.size() )
return false;
@@ -352,7 +368,7 @@ bool MusicWheel::SelectSort( SortOrder so )
for( i=0; i<m_CurWheelItemData.size(); i++ )
{
if( !DescribesCurrentModeForAllPlayersAndSort( m_CurWheelItemData[i]->m_Action, so) )
if( m_CurWheelItemData[i]->m_Action.m_sName != m_sLastModeMenuItem )
continue;
m_iSelection = i; // select it
break;
@@ -437,11 +453,10 @@ void MusicWheel::BuildWheelItemDatas( vector<WheelItemData> &arrayWheelItemDatas
{
switch( so )
{
case SORT_SORT_MENU:
case SORT_MODE_MENU:
{
arrayWheelItemDatas.clear(); // clear out the previous wheel items
CString sNames = (so==SORT_SORT_MENU) ? SORT_MENU_CHOICE_NAMES : MODE_MENU_CHOICE_NAMES;
CString sNames = MODE_MENU_CHOICE_NAMES;
vector<CString> vsNames;
split( sNames, ",", vsNames );
for( unsigned i=0; i<vsNames.size(); ++i )
@@ -939,30 +954,29 @@ void MusicWheel::Update( float fDeltaTime )
SCREENMAN->PostMessageToTopScreen( SM_SortOrderChanged, 0 );
SetOpenGroup(SongUtil::GetSectionNameFromSongAndSort( pPrevSelectedSong, GAMESTATE->m_SortOrder ));
SetOpenGroup(SongUtil::GetSectionNameFromSongAndSort( pPrevSelectedSong, m_SortOrder ));
m_iSelection = 0;
//
// Select the previously selected item
//
switch( GAMESTATE->m_SortOrder )
switch( m_SortOrder )
{
default:
// Look for the last selected song or course
SelectSongOrCourse();
break;
case SORT_SORT_MENU:
case SORT_MODE_MENU:
SelectSort( m_LastSortOrder );
SelectModeMenuItem();
break;
}
//
// Change difficulty for sorts by meter
// Change difficulty for sorts by meter - XXX: with GameCommand?
//
Difficulty dc = DIFFICULTY_INVALID;
switch( GAMESTATE->m_SortOrder )
switch( m_SortOrder )
{
case SORT_EASY_METER: dc = DIFFICULTY_EASY; break;
case SORT_MEDIUM_METER: dc = DIFFICULTY_MEDIUM; break;
@@ -1142,18 +1156,12 @@ void MusicWheel::ChangeMusic(int dist)
bool MusicWheel::ChangeSort( SortOrder new_so ) // return true if change successful
{
ASSERT( new_so < NUM_SORT_ORDERS );
if( GAMESTATE->m_SortOrder == new_so )
if( m_SortOrder == new_so )
return false;
/* Don't change to SORT_SORT_MENU or SORT_MODE_MENU if they don't have at least
* two choices. */
switch( new_so )
{
case SORT_SORT_MENU:
case SORT_MODE_MENU:
if( m_WheelItemDatas[new_so].size() < 2 )
return false;
}
/* Don't change to SORT_MODE_MENU if it doesn't have at least two choices. */
if( new_so == SORT_MODE_MENU && m_WheelItemDatas[new_so].size() < 2 )
return false;
switch( m_WheelState )
{
@@ -1170,8 +1178,11 @@ bool MusicWheel::ChangeSort( SortOrder new_so ) // return true if change success
TweenOffScreen(true);
m_LastSortOrder = GAMESTATE->m_SortOrder;
GAMESTATE->m_SortOrder = new_so;
/* Save the new preference. */
if( IsSongSort(new_so) )
GAMESTATE->m_PreferredSortOrder = new_so;
m_SortOrder = new_so;
m_WheelState = STATE_FLYING_OFF_BEFORE_NEXT_SORT;
return true;
@@ -1180,16 +1191,12 @@ bool MusicWheel::ChangeSort( SortOrder new_so ) // return true if change success
bool MusicWheel::NextSort() // return true if change successful
{
// don't allow NextSort when on the sort menu or mode menu
switch( GAMESTATE->m_SortOrder )
{
case SORT_SORT_MENU:
case SORT_MODE_MENU:
if( m_SortOrder == SORT_MODE_MENU )
return false;
}
// find the index of the current sort
int cur = 0;
while( cur < int(ARRAYSIZE(SORT_ORDERS)) && SORT_ORDERS[cur] != GAMESTATE->m_SortOrder )
while( cur < int(ARRAYSIZE(SORT_ORDERS)) && SORT_ORDERS[cur] != m_SortOrder )
++cur;
// move to the next sort with wrapping
@@ -1263,11 +1270,9 @@ bool MusicWheel::Select() // return true if this selection ends the screen
LOG->Trace("New sort order selected: %s - %s",
m_CurWheelItemData[m_iSelection]->m_sLabel.c_str(),
SortOrderToString(m_CurWheelItemData[m_iSelection]->m_Action.m_SortOrder).c_str() );
ChangeSort( m_CurWheelItemData[m_iSelection]->m_Action.m_SortOrder );
// Do this after ChangeSort so that be don't mess with
// GAMESTATE->m_SortOrder before ChangeSort gets a crack at it.
m_CurWheelItemData[m_iSelection]->m_Action.ApplyToAllPlayers();
ChangeSort( GAMESTATE->m_PreferredSortOrder );
m_sLastModeMenuItem = m_CurWheelItemData[m_iSelection]->m_Action.m_sName;
return false;
default:
ASSERT(0);
@@ -1307,7 +1312,7 @@ void MusicWheel::StartRandom()
void MusicWheel::SetOpenGroup(CString group, SortOrder so)
{
if( so == SORT_INVALID)
so = GAMESTATE->m_SortOrder;
so = m_SortOrder;
m_sExpandedSectionName = group;
@@ -1544,7 +1549,7 @@ Song *MusicWheel::GetPreferredSelectionForRandomOrPortal()
}
CString sPreferredGroup = m_sExpandedSectionName;
vector<WheelItemData> &wid = m_WheelItemDatas[GAMESTATE->m_SortOrder];
vector<WheelItemData> &wid = m_WheelItemDatas[m_SortOrder];
StepsType st = GAMESTATE->GetCurrentStyle()->m_StepsType;
+4 -2
View File
@@ -74,13 +74,14 @@ public:
bool SelectSong( Song *p );
bool SelectSection( const CString & SectionName );
void SetOpenGroup(CString group, SortOrder so = SORT_INVALID);
SortOrder GetSortOrder() const { return m_SortOrder; }
protected:
void GetSongList(vector<Song*> &arraySongs, SortOrder so, CString sPreferredGroup );
void BuildWheelItemDatas( vector<WheelItemData> &arrayWheelItems, SortOrder so );
bool SelectSongOrCourse();
bool SelectCourse( Course *p );
bool SelectSort( SortOrder so );
bool SelectModeMenuItem();
void ChangeMusic(int dist); /* +1 or -1 */
ScrollBar m_ScrollBar;
@@ -93,7 +94,8 @@ protected:
int m_iSelection; // index into m_CurWheelItemData
CString m_sExpandedSectionName;
SortOrder m_LastSortOrder;
CString m_sLastModeMenuItem;
SortOrder m_SortOrder;
int m_iSwitchesLeftInSpinDown;
float m_fLockedWheelVelocity;
+4 -4
View File
@@ -328,8 +328,9 @@ done:
}
}
void PaneDisplay::SetFromGameState()
void PaneDisplay::SetFromGameState( SortOrder so )
{
m_SortOrder = so;
m_CurMode = GetMode();
if( PaneMode[m_CurPane] != m_CurMode )
SetFocus( GetNext( m_PreferredPaneForMode[m_CurMode], 0 ) );
@@ -345,14 +346,13 @@ void PaneDisplay::SetFromGameState()
PaneModes PaneDisplay::GetMode() const
{
switch( GAMESTATE->m_SortOrder )
switch( m_SortOrder )
{
case SORT_ALL_COURSES:
case SORT_NONSTOP_COURSES:
case SORT_ONI_COURSES:
case SORT_ENDLESS_COURSES:
return PANEMODE_COURSE;
case SORT_SORT_MENU:
case SORT_MODE_MENU:
return m_CurMode; // leave it
default:
@@ -386,7 +386,7 @@ void PaneDisplay::SetFocus( PaneTypes NewPane )
m_CurPane = NewPane;
m_PreferredPaneForMode[m_CurMode] = NewPane;
SetFromGameState();
SetFromGameState( m_SortOrder );
}
bool PaneDisplay::PaneIsValid( PaneTypes p ) const
+2 -1
View File
@@ -72,7 +72,7 @@ public:
PaneDisplay();
void Load( PlayerNumber pn );
void SetFromGameState();
void SetFromGameState( SortOrder so );
void Move( int dir );
void Update( float fDeltaTime );
@@ -85,6 +85,7 @@ private:
PaneModes GetMode() const;
void SetContent( PaneContents c );
SortOrder m_SortOrder;
AutoActor m_sprPaneUnder;
AutoActor m_sprPaneOver;
+4 -4
View File
@@ -125,12 +125,12 @@ void ScreenNetSelectMusic::Input( const DeviceInput& DeviceI, const InputEventTy
if ( bHoldingCtrl && ( c >= 'A' ) && ( c <= 'Z' ) )
{
SortOrder so = GAMESTATE->m_SortOrder;
SortOrder so = GAMESTATE->m_PreferredSortOrder;
if ( ( so != SORT_TITLE ) && ( so != SORT_ARTIST ) )
so = SORT_TITLE;
GAMESTATE->m_SortOrder = so;
GAMESTATE->m_PreferredSortOrder = so;
m_MusicWheel.SetOpenGroup( ssprintf("%c", c ), so );
m_MusicWheel.SelectSection( ssprintf("%c", c ) );
m_MusicWheel.Move( +1 );
@@ -280,7 +280,7 @@ void ScreenNetSelectMusic::MenuLeft( PlayerNumber pn, const InputEventType type
if ( type == IET_FIRST_PRESS )
if ( bLeftAndRightPressed )
m_MusicWheel.ChangeSort( SORT_SORT_MENU );
m_MusicWheel.ChangeSort( SORT_MODE_MENU );
else
m_MusicWheel.Move( -1 );
}
@@ -293,7 +293,7 @@ void ScreenNetSelectMusic::MenuRight( PlayerNumber pn, const InputEventType type
if ( type == IET_FIRST_PRESS )
if ( bLeftAndRightPressed )
m_MusicWheel.ChangeSort( SORT_SORT_MENU );
m_MusicWheel.ChangeSort( SORT_MODE_MENU );
else
m_MusicWheel.Move( +1 );
}
+12 -27
View File
@@ -279,7 +279,7 @@ ScreenSelectMusic::ScreenSelectMusic( CString sClassName ) : ScreenWithMenuEleme
}
m_MusicSortDisplay.SetName( "SortIcon" );
m_MusicSortDisplay.Set( GAMESTATE->m_SortOrder );
m_MusicSortDisplay.Set( m_MusicWheel.GetSortOrder() );
SET_XY( m_MusicSortDisplay );
this->AddChild( &m_MusicSortDisplay );
@@ -470,7 +470,7 @@ void ScreenSelectMusic::TweenOnScreen()
TweenSongPartsOnScreen( true );
TweenCoursePartsOnScreen( true );
switch( GAMESTATE->m_SortOrder )
switch( m_MusicWheel.GetSortOrder() )
{
case SORT_ALL_COURSES:
case SORT_NONSTOP_COURSES:
@@ -526,7 +526,7 @@ void ScreenSelectMusic::TweenOnScreen()
void ScreenSelectMusic::TweenOffScreen()
{
switch( GAMESTATE->m_SortOrder )
switch( m_MusicWheel.GetSortOrder() )
{
case SORT_ALL_COURSES:
case SORT_NONSTOP_COURSES:
@@ -619,7 +619,7 @@ void ScreenSelectMusic::TweenScoreOnAndOffAfterChangeSort()
m_sprHighScoreFrame[p].RunCommands( SCORE_FRAME_SORT_CHANGE_COMMAND(p) );
}
switch( GAMESTATE->m_SortOrder )
switch( m_MusicWheel.GetSortOrder() )
{
case SORT_ALL_COURSES:
case SORT_NONSTOP_COURSES:
@@ -627,7 +627,6 @@ void ScreenSelectMusic::TweenScoreOnAndOffAfterChangeSort()
case SORT_ENDLESS_COURSES:
SwitchDisplayMode( DISPLAY_COURSES );
break;
case SORT_SORT_MENU:
case SORT_MODE_MENU:
SwitchDisplayMode( DISPLAY_MODES );
break;
@@ -873,19 +872,6 @@ void ScreenSelectMusic::Input( const DeviceInput& DeviceI, InputEventType type,
ChangeDifficulty( pn, +1 );
return;
}
if( CodeDetector::EnteredSortMenu(GameI.controller) )
{
/* Ignore the SortMenu when in course mode. However, still check for the code, so
* if people try pressing left+right+start in course mode, we don't pick the selected
* course on them. */
if( GAMESTATE->IsCourseMode() )
; /* nothing */
else if( ( GAMESTATE->IsExtraStage() && !PREFSMAN->m_bPickExtraStage ) || GAMESTATE->IsExtraStage2() )
m_soundLocked.Play();
else
m_MusicWheel.ChangeSort( SORT_SORT_MENU );
return;
}
if( CodeDetector::EnteredModeMenu(GameI.controller) )
{
if( ( GAMESTATE->IsExtraStage() && !PREFSMAN->m_bPickExtraStage ) || GAMESTATE->IsExtraStage2() )
@@ -1259,7 +1245,7 @@ void ScreenSelectMusic::AfterStepsChange( PlayerNumber pn )
m_GrooveRadar.SetFromSteps( pn, pSteps );
m_MusicWheel.NotesOrTrailChanged( pn );
if( SHOW_PANES )
m_PaneDisplay[pn].SetFromGameState();
m_PaneDisplay[pn].SetFromGameState( m_MusicWheel.GetSortOrder() );
}
void ScreenSelectMusic::AfterTrailChange( PlayerNumber pn )
@@ -1304,7 +1290,7 @@ void ScreenSelectMusic::AfterTrailChange( PlayerNumber pn )
m_GrooveRadar.SetEmpty( pn );
m_MusicWheel.NotesOrTrailChanged( pn );
if( SHOW_PANES )
m_PaneDisplay[pn].SetFromGameState();
m_PaneDisplay[pn].SetFromGameState( m_MusicWheel.GetSortOrder() );
}
void ScreenSelectMusic::SwitchToPreferredDifficulty()
@@ -1451,11 +1437,8 @@ void ScreenSelectMusic::AfterMusicChange()
break;
case TYPE_SORT:
bWantBanner = false; /* we load it ourself */
switch( GAMESTATE->m_SortOrder )
switch( m_MusicWheel.GetSortOrder() )
{
case SORT_SORT_MENU:
m_Banner.LoadSort();
break;
case SORT_MODE_MENU:
m_Banner.LoadMode();
break;
@@ -1729,15 +1712,17 @@ void ScreenSelectMusic::UpdateOptionsDisplays()
void ScreenSelectMusic::SortOrderChanged()
{
m_MusicSortDisplay.Set( GAMESTATE->m_SortOrder );
m_MusicSortDisplay.Set( m_MusicWheel.GetSortOrder() );
if( SHOW_PANES )
FOREACH_HumanPlayer(pn)
m_PaneDisplay[pn].SetFromGameState( m_MusicWheel.GetSortOrder() );
switch( GAMESTATE->m_SortOrder )
switch( m_MusicWheel.GetSortOrder() )
{
case SORT_ALL_COURSES:
case SORT_NONSTOP_COURSES:
case SORT_ONI_COURSES:
case SORT_ENDLESS_COURSES:
case SORT_SORT_MENU:
case SORT_MODE_MENU:
// do nothing
break;
-1
View File
@@ -282,7 +282,6 @@ CString SongUtil::GetSectionNameFromSongAndSort( const Song* pSong, SortOrder so
return ssprintf("%02d", pSteps->GetMeter() );
return "N/A";
}
case SORT_SORT_MENU:
case SORT_MODE_MENU:
return "";
case SORT_ALL_COURSES: