split SORT_MENU into SORT_SORT_MENU and SORT_MODE_MENU

This commit is contained in:
Chris Danford
2004-01-11 08:15:44 +00:00
parent f2769a19b5
commit 5b08f9dae2
8 changed files with 75 additions and 45 deletions
+8 -4
View File
@@ -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
+11 -4
View File
@@ -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;
+6 -3
View File
@@ -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 );
+2 -1
View File
@@ -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,
+29 -27
View File
@@ -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;
+2 -1
View File
@@ -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;
+15 -4
View File
@@ -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) )
+2 -1
View File
@@ -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: