split SORT_MENU into SORT_SORT_MENU and SORT_MODE_MENU
This commit is contained in:
@@ -2705,8 +2705,10 @@ ShowRandom=1
|
||||
Use3D=0
|
||||
Wheel3DRadius=200 # Possibly safe defaults?
|
||||
CirclePercent=0.5
|
||||
MenuNames=GROUP:TITLE:BPM:PLAYERS' BEST:TOP GRADE:ARTIST:EASY METER:MEDIUM METER:HARD METER
|
||||
MenuActions=sort,GROUP:sort,TITLE:sort,BPM:sort,PLAYERS BEST:sort,TOP GRADE:sort,ARTIST:sort,EASY METER:sort,MEDIUM METER:sort,HARD METER
|
||||
SortMenuNames=GROUP:TITLE:BPM:PLAYERS' BEST:TOP GRADE:ARTIST:EASY METER:MEDIUM METER:HARD METER
|
||||
SortMenuActions=sort,GROUP:sort,TITLE:sort,BPM:sort,PLAYERS BEST:sort,TOP GRADE:sort,ARTIST:sort,EASY METER:sort,MEDIUM METER:sort,HARD METER
|
||||
ModeMenuNames=GROUP
|
||||
ModeMenuActions=sort,GROUP
|
||||
|
||||
[LifeMeterBar]
|
||||
MeterWidth=260
|
||||
@@ -3000,8 +3002,10 @@ NextSort1=MenuLeft-MenuRight-Start
|
||||
NextSort2=MenuLeft+MenuRight
|
||||
NextSort3=Left-Right-Start
|
||||
NextSort4=Left+Right
|
||||
Menu1=Up,Down,Up,Down
|
||||
Menu2=MenuUp,MenuDown,MenuUp,MenuDown
|
||||
SortMenu1=Up,Down,Up,Down
|
||||
SortMenu2=MenuUp,MenuDown,MenuUp,MenuDown
|
||||
ModeMenu1=
|
||||
ModeMenu2=
|
||||
Mirror=Up,Left,Right,Left,Right
|
||||
Left=Up,Down,Right,Left
|
||||
Right=Up,Down,Left,Right
|
||||
|
||||
@@ -31,8 +31,10 @@ const CString g_sCodeNames[CodeDetector::NUM_CODES] = {
|
||||
"NextSort2",
|
||||
"NextSort3",
|
||||
"NextSort4",
|
||||
"Menu1",
|
||||
"Menu2",
|
||||
"SortMenu1",
|
||||
"SortMenu2",
|
||||
"ModeMenu1",
|
||||
"ModeMenu2",
|
||||
"Mirror",
|
||||
"Left",
|
||||
"Right",
|
||||
@@ -214,9 +216,14 @@ bool CodeDetector::EnteredNextSort( GameController controller )
|
||||
EnteredCode(controller,CODE_NEXT_SORT4);
|
||||
}
|
||||
|
||||
bool CodeDetector::EnteredMenu( GameController controller )
|
||||
bool CodeDetector::EnteredSortMenu( GameController controller )
|
||||
{
|
||||
return EnteredCode(controller,CODE_MENU1) || EnteredCode(controller,CODE_MENU2);
|
||||
return EnteredCode(controller,CODE_SORT_MENU1) || EnteredCode(controller,CODE_SORT_MENU2);
|
||||
}
|
||||
|
||||
bool CodeDetector::EnteredModeMenu( GameController controller )
|
||||
{
|
||||
return EnteredCode(controller,CODE_MODE_MENU1) || EnteredCode(controller,CODE_MODE_MENU2);
|
||||
}
|
||||
|
||||
#define TOGGLE(v,a,b) if(v!=a) v=a; else v=b;
|
||||
|
||||
@@ -25,8 +25,10 @@ public:
|
||||
CODE_NEXT_SORT2,
|
||||
CODE_NEXT_SORT3,
|
||||
CODE_NEXT_SORT4,
|
||||
CODE_MENU1,
|
||||
CODE_MENU2,
|
||||
CODE_SORT_MENU1,
|
||||
CODE_SORT_MENU2,
|
||||
CODE_MODE_MENU1,
|
||||
CODE_MODE_MENU2,
|
||||
CODE_MIRROR,
|
||||
CODE_LEFT,
|
||||
CODE_RIGHT,
|
||||
@@ -61,7 +63,8 @@ public:
|
||||
static bool EnteredEasierDifficulty( GameController controller );
|
||||
static bool EnteredHarderDifficulty( GameController controller );
|
||||
static bool EnteredNextSort( GameController controller );
|
||||
static bool EnteredMenu( GameController controller );
|
||||
static bool EnteredSortMenu( GameController controller );
|
||||
static bool EnteredModeMenu( GameController controller );
|
||||
static bool DetectAndAdjustMusicOptions( GameController controller );
|
||||
static bool EnteredCode( GameController controller, Code code );
|
||||
static bool EnteredNextBannerGroup( GameController controller );
|
||||
|
||||
@@ -136,7 +136,8 @@ enum SongSortOrder {
|
||||
SORT_EASY_METER,
|
||||
SORT_MEDIUM_METER,
|
||||
SORT_HARD_METER,
|
||||
SORT_MENU,
|
||||
SORT_SORT_MENU,
|
||||
SORT_MODE_MENU,
|
||||
SORT_ALL_COURSES,
|
||||
SORT_NONSTOP_COURSES,
|
||||
SORT_ONI_COURSES,
|
||||
|
||||
@@ -56,8 +56,10 @@ CachedThemeMetricF CIRCLE_PERCENT ("MusicWheel","CirclePercent");
|
||||
CachedThemeMetricB USE_3D ("MusicWheel","Use3D");
|
||||
CachedThemeMetricI NUM_WHEEL_ITEMS_METRIC ("MusicWheel","NumWheelItems");
|
||||
#define NUM_WHEEL_ITEMS min( MAX_WHEEL_ITEMS, (int) NUM_WHEEL_ITEMS_METRIC )
|
||||
#define MENU_NAMES THEME->GetMetric ("MusicWheel","MenuNames")
|
||||
#define MENU_ACTIONS THEME->GetMetric ("MusicWheel","MenuActions")
|
||||
#define SORT_MENU_NAMES THEME->GetMetric ("MusicWheel","SortMenuNames")
|
||||
#define SORT_MENU_ACTIONS THEME->GetMetric ("MusicWheel","SortMenuActions")
|
||||
#define MODE_MENU_NAMES THEME->GetMetric ("MusicWheel","ModeMenuNames")
|
||||
#define MODE_MENU_ACTIONS THEME->GetMetric ("MusicWheel","ModeMenuActions")
|
||||
#define WHEEL_ITEM_ON_DELAY_CENTER THEME->GetMetricF("MusicWheel","WheelItemOnDelayCenter")
|
||||
#define WHEEL_ITEM_ON_DELAY_OFFSET THEME->GetMetricF("MusicWheel","WheelItemOnDelayOffset")
|
||||
#define WHEEL_ITEM_OFF_DELAY_CENTER THEME->GetMetricF("MusicWheel","WheelItemOffDelayCenter")
|
||||
@@ -76,8 +78,8 @@ static const SongSortOrder SortOrder[] =
|
||||
SORT_BPM,
|
||||
SORT_MOST_PLAYED,
|
||||
SORT_ARTIST,
|
||||
SORT_INVALID
|
||||
};
|
||||
// use ARRAYSIZE(SortOrder)
|
||||
|
||||
|
||||
MusicWheel::MusicWheel()
|
||||
@@ -377,10 +379,12 @@ void MusicWheel::BuildWheelItemDatas( vector<WheelItemData> &arrayWheelItemDatas
|
||||
|
||||
switch( so )
|
||||
{
|
||||
case SORT_MENU:
|
||||
case SORT_SORT_MENU:
|
||||
case SORT_MODE_MENU:
|
||||
{
|
||||
arrayWheelItemDatas.clear(); // clear out the previous wheel items
|
||||
CString sNames = MENU_NAMES, sActions = MENU_ACTIONS;
|
||||
CString sNames = so==SORT_SORT_MENU ? SORT_MENU_NAMES : MODE_MENU_NAMES;
|
||||
CString sActions = so==SORT_SORT_MENU ? SORT_MENU_ACTIONS : MODE_MENU_ACTIONS;
|
||||
vector<CString> Names, Actions;
|
||||
split( sNames, ":", Names );
|
||||
split( sActions, ":", Actions );
|
||||
@@ -910,7 +914,8 @@ void MusicWheel::Update( float fDeltaTime )
|
||||
if( GAMESTATE->m_pCurSong )
|
||||
SelectSong( GAMESTATE->m_pCurSong );
|
||||
break;
|
||||
case SORT_MENU:
|
||||
case SORT_SORT_MENU:
|
||||
case SORT_MODE_MENU:
|
||||
SelectSort( m_LastSongSortOrder );
|
||||
break;
|
||||
default:
|
||||
@@ -1139,29 +1144,26 @@ bool MusicWheel::ChangeSort( SongSortOrder new_so ) // return true if change suc
|
||||
|
||||
bool MusicWheel::NextSort() // return true if change successful
|
||||
{
|
||||
/* Is the current sort in the default sort order? */
|
||||
int cur = 0;
|
||||
while( SortOrder[cur] != SORT_INVALID && SortOrder[cur] != GAMESTATE->m_SongSortOrder )
|
||||
++cur;
|
||||
|
||||
SongSortOrder so;
|
||||
if( SortOrder[cur] == SORT_INVALID )
|
||||
// don't allow NextSort when on the sort menu or mode menu
|
||||
switch( GAMESTATE->m_SongSortOrder )
|
||||
{
|
||||
/* It isn't, which means we're either in the sort menu or in a sort selected
|
||||
* from the sort menu. If we're in the sort menu, return to the first sort.
|
||||
* Otherwise, return to the sort menu. */
|
||||
if( GAMESTATE->m_SongSortOrder == SORT_MENU )
|
||||
so = SortOrder[0];
|
||||
else
|
||||
so = SORT_MENU;
|
||||
} else {
|
||||
++cur;
|
||||
if( SortOrder[cur] == SORT_INVALID )
|
||||
cur = 0;
|
||||
so = SortOrder[cur];
|
||||
case SORT_SORT_MENU:
|
||||
case SORT_MODE_MENU:
|
||||
return false;
|
||||
}
|
||||
|
||||
return ChangeSort( so );
|
||||
// find the index of the current sort
|
||||
int cur = 0;
|
||||
while( cur < ARRAYSIZE(SortOrder) && SortOrder[cur] != GAMESTATE->m_SongSortOrder )
|
||||
++cur;
|
||||
|
||||
// move to the next sort with wrapping
|
||||
++cur;
|
||||
wrap( cur, ARRAYSIZE(SortOrder) );
|
||||
|
||||
// apply new sort
|
||||
SongSortOrder soNew = SortOrder[cur];
|
||||
return ChangeSort( soNew );
|
||||
}
|
||||
|
||||
bool MusicWheel::Select() // return true if this selection ends the screen
|
||||
@@ -1283,7 +1285,7 @@ void MusicWheel::SetOpenGroup(CString group, SongSortOrder so)
|
||||
|
||||
|
||||
//
|
||||
// Try to select the item that was selected before chaning groups
|
||||
// Try to select the item that was selected before changing groups
|
||||
//
|
||||
m_iSelection = 0;
|
||||
|
||||
|
||||
@@ -350,7 +350,8 @@ PaneModes PaneDisplay::GetMode() const
|
||||
case SORT_ONI_COURSES:
|
||||
case SORT_ENDLESS_COURSES:
|
||||
return PANEMODE_COURSE;
|
||||
case SORT_MENU:
|
||||
case SORT_SORT_MENU:
|
||||
case SORT_MODE_MENU:
|
||||
return m_CurMode; // leave it
|
||||
default:
|
||||
return PANEMODE_SONG;
|
||||
|
||||
@@ -597,9 +597,12 @@ void ScreenSelectMusic::TweenScoreOnAndOffAfterChangeSort()
|
||||
case SORT_ENDLESS_COURSES:
|
||||
EnterCourseDisplayMode();
|
||||
break;
|
||||
case SORT_SORT_MENU:
|
||||
case SORT_MODE_MENU:
|
||||
// do nothing
|
||||
break;
|
||||
default:
|
||||
if( GAMESTATE->m_SongSortOrder != SORT_MENU )
|
||||
ExitCourseDisplayMode();
|
||||
ExitCourseDisplayMode();
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -708,12 +711,20 @@ void ScreenSelectMusic::Input( const DeviceInput& DeviceI, InputEventType type,
|
||||
HarderDifficulty( pn );
|
||||
return;
|
||||
}
|
||||
if( CodeDetector::EnteredMenu(GameI.controller) )
|
||||
if( CodeDetector::EnteredSortMenu(GameI.controller) )
|
||||
{
|
||||
if( ( GAMESTATE->IsExtraStage() && !PREFSMAN->m_bPickExtraStage ) || GAMESTATE->IsExtraStage2() )
|
||||
m_soundLocked.Play();
|
||||
else
|
||||
m_MusicWheel.ChangeSort( SORT_MENU );
|
||||
m_MusicWheel.ChangeSort( SORT_SORT_MENU );
|
||||
return;
|
||||
}
|
||||
if( CodeDetector::EnteredModeMenu(GameI.controller) )
|
||||
{
|
||||
if( ( GAMESTATE->IsExtraStage() && !PREFSMAN->m_bPickExtraStage ) || GAMESTATE->IsExtraStage2() )
|
||||
m_soundLocked.Play();
|
||||
else
|
||||
m_MusicWheel.ChangeSort( SORT_MODE_MENU );
|
||||
return;
|
||||
}
|
||||
if( CodeDetector::EnteredNextSort(GameI.controller) )
|
||||
|
||||
@@ -1463,7 +1463,8 @@ CString GetSectionNameFromSongAndSort( const Song* pSong, SongSortOrder so )
|
||||
return ssprintf("%02d", pNotes->GetMeter() );
|
||||
return "N/A";
|
||||
}
|
||||
case SORT_MENU:
|
||||
case SORT_SORT_MENU:
|
||||
case SORT_MODE_MENU:
|
||||
return "";
|
||||
case SORT_ALL_COURSES:
|
||||
case SORT_NONSTOP_COURSES:
|
||||
|
||||
Reference in New Issue
Block a user