add EDIT_MODE_PRACTICE
This commit is contained in:
@@ -12,7 +12,7 @@ StepsTypesToHide=dance-couple,dance-solo,pump-halfdouble,lights-cabinet
|
|||||||
ScreenWidth=640
|
ScreenWidth=640
|
||||||
ScreenHeight=480
|
ScreenHeight=480
|
||||||
OverlayScreens=ScreenSystemLayer
|
OverlayScreens=ScreenSystemLayer
|
||||||
HomeEditMode=0
|
EditMode=2
|
||||||
MaxCourseEntriesBeforeShowVarious=6
|
MaxCourseEntriesBeforeShowVarious=6
|
||||||
|
|
||||||
[ModeSwitcher]
|
[ModeSwitcher]
|
||||||
@@ -2189,12 +2189,6 @@ MeterX=SCREEN_CENTER_X+170
|
|||||||
MeterY=SCREEN_CENTER_Y-20
|
MeterY=SCREEN_CENTER_Y-20
|
||||||
SourceMeterX=SCREEN_CENTER_X+170
|
SourceMeterX=SCREEN_CENTER_X+170
|
||||||
SourceMeterY=SCREEN_CENTER_Y+60
|
SourceMeterY=SCREEN_CENTER_Y+60
|
||||||
MeterNumberX=SCREEN_CENTER_X+100
|
|
||||||
MeterNumberY=SCREEN_CENTER_Y-20
|
|
||||||
MeterNumberOnCommand=zoom,0.7
|
|
||||||
SourceMeterNumberX=SCREEN_CENTER_X+100
|
|
||||||
SourceMeterNumberY=SCREEN_CENTER_Y+60
|
|
||||||
SourceMeterNumberOnCommand=zoom,0.7
|
|
||||||
RowLabelsX=SCREEN_LEFT+40
|
RowLabelsX=SCREEN_LEFT+40
|
||||||
RowLabelOnCommand=zoom,0.7
|
RowLabelOnCommand=zoom,0.7
|
||||||
RowValue1X=SCREEN_CENTER_X
|
RowValue1X=SCREEN_CENTER_X
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ ThemeMetric<CString> DEFAULT_MODIFIERS ("Common","DefaultModifiers" );
|
|||||||
ThemeMetric<CString> DEFAULT_CPU_MODIFIERS ("Common","DefaultCpuModifiers" );
|
ThemeMetric<CString> DEFAULT_CPU_MODIFIERS ("Common","DefaultCpuModifiers" );
|
||||||
ThemeMetric1D<RageColor> PLAYER_COLOR ("Common",PLAYER_COLOR_NAME,NUM_PLAYERS);
|
ThemeMetric1D<RageColor> PLAYER_COLOR ("Common",PLAYER_COLOR_NAME,NUM_PLAYERS);
|
||||||
ThemeMetric<CString> WINDOW_TITLE ("Common","WindowTitle");
|
ThemeMetric<CString> WINDOW_TITLE ("Common","WindowTitle");
|
||||||
ThemeMetric<bool> HOME_EDIT_MODE ("Common","HomeEditMode");
|
ThemeMetricEnum<EditMode> EDIT_MODE ("Common","EditMode");
|
||||||
ThemeMetric<int> MAX_COURSE_ENTRIES_BEFORE_VARIOUS ("Common","MaxCourseEntriesBeforeShowVarious");
|
ThemeMetric<int> MAX_COURSE_ENTRIES_BEFORE_VARIOUS ("Common","MaxCourseEntriesBeforeShowVarious");
|
||||||
ThemeMetric<float> TICK_EARLY_SECONDS ("ScreenGameplay","TickEarlySeconds");
|
ThemeMetric<float> TICK_EARLY_SECONDS ("ScreenGameplay","TickEarlySeconds");
|
||||||
ThemeMetricDifficultiesToShow DIFFICULTIES_TO_SHOW ("Common","DifficultiesToShow");
|
ThemeMetricDifficultiesToShow DIFFICULTIES_TO_SHOW ("Common","DifficultiesToShow");
|
||||||
|
|||||||
@@ -39,6 +39,14 @@ public:
|
|||||||
private:
|
private:
|
||||||
vector<StepsType> m_v;
|
vector<StepsType> m_v;
|
||||||
};
|
};
|
||||||
|
template <class T>
|
||||||
|
class ThemeMetricEnum : public ThemeMetric<int>
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
ThemeMetricEnum( const CString& sGroup, const CString& sName ) : ThemeMetric<int>(sGroup,sName) {}
|
||||||
|
T GetValue() const { return (T)ThemeMetric<int>::GetValue(); }
|
||||||
|
bool operator ==( T other ) const { return GetValue() == other; }
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
//
|
//
|
||||||
@@ -50,7 +58,7 @@ extern ThemeMetric<CString> DEFAULT_MODIFIERS;
|
|||||||
extern ThemeMetric<CString> DEFAULT_CPU_MODIFIERS;
|
extern ThemeMetric<CString> DEFAULT_CPU_MODIFIERS;
|
||||||
extern ThemeMetric1D<RageColor> PLAYER_COLOR;
|
extern ThemeMetric1D<RageColor> PLAYER_COLOR;
|
||||||
extern ThemeMetric<CString> WINDOW_TITLE;
|
extern ThemeMetric<CString> WINDOW_TITLE;
|
||||||
extern ThemeMetric<bool> HOME_EDIT_MODE;
|
extern ThemeMetricEnum<EditMode> EDIT_MODE;
|
||||||
extern ThemeMetric<int> MAX_COURSE_ENTRIES_BEFORE_VARIOUS;
|
extern ThemeMetric<int> MAX_COURSE_ENTRIES_BEFORE_VARIOUS;
|
||||||
extern ThemeMetric<float> TICK_EARLY_SECONDS;
|
extern ThemeMetric<float> TICK_EARLY_SECONDS;
|
||||||
extern ThemeMetricDifficultiesToShow DIFFICULTIES_TO_SHOW;
|
extern ThemeMetricDifficultiesToShow DIFFICULTIES_TO_SHOW;
|
||||||
|
|||||||
@@ -45,9 +45,9 @@ enum CourseEntryMenuRow
|
|||||||
|
|
||||||
static Menu g_CourseOptionsMenu(
|
static Menu g_CourseOptionsMenu(
|
||||||
"ScreenMiniMenuCourseOptions",
|
"ScreenMiniMenuCourseOptions",
|
||||||
MenuRow( repeat, "Repeat", true, true, 0, "NO","YES" ),
|
MenuRow( repeat, "Repeat", true, EDIT_MODE_FULL, 0, "NO","YES" ),
|
||||||
MenuRow( randomize, "Randomize", true, true, 0, "NO","YES" ),
|
MenuRow( randomize, "Randomize", true, EDIT_MODE_FULL, 0, "NO","YES" ),
|
||||||
MenuRow( lives, "Lives", true, true, 4, "Use Bar Life","1","2","3","4","5","6","7","8","9","10" )
|
MenuRow( lives, "Lives", true, EDIT_MODE_FULL, 4, "Use Bar Life","1","2","3","4","5","6","7","8","9","10" )
|
||||||
);
|
);
|
||||||
|
|
||||||
enum CourseOptionsMenuRow
|
enum CourseOptionsMenuRow
|
||||||
|
|||||||
+38
-72
@@ -58,7 +58,7 @@ static void GetSongsToShowForGroup( const CString &sGroup, vector<Song*> &vpSong
|
|||||||
{
|
{
|
||||||
vpSongsOut.clear();
|
vpSongsOut.clear();
|
||||||
SONGMAN->GetSongs( vpSongsOut, sGroup );
|
SONGMAN->GetSongs( vpSongsOut, sGroup );
|
||||||
if( HOME_EDIT_MODE )
|
if( EDIT_MODE == EDIT_MODE_HOME )
|
||||||
{
|
{
|
||||||
// strip groups that have no unlocked songs
|
// strip groups that have no unlocked songs
|
||||||
for( int i=vpSongsOut.size()-1; i>=0; i-- )
|
for( int i=vpSongsOut.size()-1; i>=0; i-- )
|
||||||
@@ -154,36 +154,6 @@ EditMenu::EditMenu()
|
|||||||
//
|
//
|
||||||
GetGroupsToShow( m_sGroups );
|
GetGroupsToShow( m_sGroups );
|
||||||
m_StepsTypes = STEPS_TYPES_TO_SHOW.GetValue();
|
m_StepsTypes = STEPS_TYPES_TO_SHOW.GetValue();
|
||||||
if( HOME_EDIT_MODE )
|
|
||||||
{
|
|
||||||
m_vDifficulties.push_back( DIFFICULTY_EDIT );
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
FOREACH_Difficulty( dc )
|
|
||||||
m_vDifficulties.push_back( dc );
|
|
||||||
}
|
|
||||||
|
|
||||||
m_vSourceDifficulties.push_back( DIFFICULTY_INVALID ); // "blank"
|
|
||||||
FOREACH_Difficulty( dc )
|
|
||||||
m_vSourceDifficulties.push_back( dc );
|
|
||||||
|
|
||||||
|
|
||||||
// start out on easy if available, or "blank"
|
|
||||||
{
|
|
||||||
vector<Difficulty>::const_iterator it = find( m_vDifficulties.begin(), m_vDifficulties.end(), DIFFICULTY_EASY );
|
|
||||||
if( it != m_vDifficulties.end() )
|
|
||||||
m_iSelection[ROW_STEPS] = it - m_vDifficulties.begin();
|
|
||||||
else
|
|
||||||
m_iSelection[ROW_STEPS] = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
// start out on easy
|
|
||||||
{
|
|
||||||
vector<Difficulty>::const_iterator it = find( m_vSourceDifficulties.begin(), m_vSourceDifficulties.end(), DIFFICULTY_EASY );
|
|
||||||
ASSERT( it != m_vDifficulties.end() );
|
|
||||||
m_iSelection[ROW_SOURCE_STEPS] = it - m_vSourceDifficulties.begin();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
RefreshAll();
|
RefreshAll();
|
||||||
@@ -226,7 +196,7 @@ void EditMenu::RefreshAll()
|
|||||||
|
|
||||||
for( unsigned i=0; i<m_vpSteps.size(); i++ )
|
for( unsigned i=0; i<m_vpSteps.size(); i++ )
|
||||||
{
|
{
|
||||||
const Steps *pSteps = m_vpSteps[i];
|
const Steps *pSteps = m_vpSteps[i].pSteps;
|
||||||
if( pSteps == GAMESTATE->m_pCurSteps[PLAYER_1] )
|
if( pSteps == GAMESTATE->m_pCurSteps[PLAYER_1] )
|
||||||
{
|
{
|
||||||
m_iSelection[ROW_STEPS] = i;
|
m_iSelection[ROW_STEPS] = i;
|
||||||
@@ -357,24 +327,36 @@ void EditMenu::OnRowValueChanged( EditMenuRow row )
|
|||||||
// fall through
|
// fall through
|
||||||
case ROW_STEPS_TYPE:
|
case ROW_STEPS_TYPE:
|
||||||
m_textValue[ROW_STEPS_TYPE].SetText( GAMEMAN->StepsTypeToThemedString(GetSelectedStepsType()) );
|
m_textValue[ROW_STEPS_TYPE].SetText( GAMEMAN->StepsTypeToThemedString(GetSelectedStepsType()) );
|
||||||
CLAMP( m_iSelection[ROW_STEPS], 0, m_vDifficulties.size()-1 ); // jump back to the slot for DIFFICULTY_EDIT
|
|
||||||
m_vpSteps.clear();
|
m_vpSteps.clear();
|
||||||
FOREACH( Difficulty, m_vDifficulties, dc )
|
|
||||||
|
FOREACH_Difficulty( dc )
|
||||||
{
|
{
|
||||||
if( *dc == DIFFICULTY_EDIT )
|
if( dc == DIFFICULTY_EDIT )
|
||||||
{
|
{
|
||||||
vector<Steps*> v;
|
vector<Steps*> v;
|
||||||
GetSelectedSong()->GetSteps( v, GetSelectedStepsType(), DIFFICULTY_EDIT );
|
GetSelectedSong()->GetSteps( v, GetSelectedStepsType(), DIFFICULTY_EDIT );
|
||||||
StepsUtil::SortStepsByDescription( v );
|
StepsUtil::SortStepsByDescription( v );
|
||||||
m_vpSteps.insert( m_vpSteps.end(), v.begin(), v.end() );
|
FOREACH_CONST( Steps*, v, p )
|
||||||
m_vpSteps.push_back( NULL ); // "New Edit"
|
m_vpSteps.push_back( StepsAndDifficulty(*p,dc) );
|
||||||
|
|
||||||
|
if( EDIT_MODE != EDIT_MODE_PRACTICE )
|
||||||
|
m_vpSteps.push_back( StepsAndDifficulty(NULL,dc) ); // "New Edit"
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Steps *pSteps = GetSelectedSong()->GetStepsByDifficulty( GetSelectedStepsType(), *dc );
|
// don't show non-edits in HomeMode
|
||||||
m_vpSteps.push_back( pSteps );
|
if( EDIT_MODE == EDIT_MODE_HOME )
|
||||||
|
continue;
|
||||||
|
|
||||||
|
Steps *pSteps = GetSelectedSong()->GetStepsByDifficulty( GetSelectedStepsType(), dc );
|
||||||
|
if( pSteps || EDIT_MODE != EDIT_MODE_PRACTICE )
|
||||||
|
m_vpSteps.push_back( StepsAndDifficulty(pSteps,dc) );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
CLAMP( m_iSelection[ROW_STEPS], 0, m_vpSteps.size()-1 );
|
||||||
|
|
||||||
// fall through
|
// fall through
|
||||||
case ROW_STEPS:
|
case ROW_STEPS:
|
||||||
{
|
{
|
||||||
@@ -393,7 +375,7 @@ void EditMenu::OnRowValueChanged( EditMenuRow row )
|
|||||||
s = DifficultyToThemedString(GetSelectedDifficulty());
|
s = DifficultyToThemedString(GetSelectedDifficulty());
|
||||||
|
|
||||||
// UGLY. "Edit" -> "New Edit"
|
// UGLY. "Edit" -> "New Edit"
|
||||||
if( HOME_EDIT_MODE )
|
if( EDIT_MODE == EDIT_MODE_HOME )
|
||||||
s = "New " + s;
|
s = "New " + s;
|
||||||
}
|
}
|
||||||
m_textValue[ROW_STEPS].SetText( s );
|
m_textValue[ROW_STEPS].SetText( s );
|
||||||
@@ -408,32 +390,28 @@ void EditMenu::OnRowValueChanged( EditMenuRow row )
|
|||||||
m_textValue[ROW_SOURCE_STEPS_TYPE].SetHidden( GetSelectedSteps() ? true : false );
|
m_textValue[ROW_SOURCE_STEPS_TYPE].SetHidden( GetSelectedSteps() ? true : false );
|
||||||
m_textValue[ROW_SOURCE_STEPS_TYPE].SetText( GAMEMAN->StepsTypeToThemedString(GetSelectedSourceStepsType()) );
|
m_textValue[ROW_SOURCE_STEPS_TYPE].SetText( GAMEMAN->StepsTypeToThemedString(GetSelectedSourceStepsType()) );
|
||||||
|
|
||||||
CLAMP( m_iSelection[ROW_SOURCE_STEPS], 0, m_vSourceDifficulties.size()-1 ); // jump back to the slot for DIFFICULTY_EDIT
|
|
||||||
|
|
||||||
m_vpSourceSteps.clear();
|
m_vpSourceSteps.clear();
|
||||||
FOREACH( Difficulty, m_vSourceDifficulties, dc )
|
m_vpSourceSteps.push_back( StepsAndDifficulty(NULL,DIFFICULTY_INVALID) ); // "blank"
|
||||||
|
FOREACH_Difficulty( dc )
|
||||||
{
|
{
|
||||||
if( *dc == DIFFICULTY_INVALID )
|
// fill in pSteps
|
||||||
|
if( dc != DIFFICULTY_EDIT )
|
||||||
{
|
{
|
||||||
m_vpSourceSteps.push_back( NULL );
|
Steps *pSteps = GetSelectedSong()->GetStepsByDifficulty( GetSelectedSourceStepsType(), dc );
|
||||||
}
|
m_vpSourceSteps.push_back( StepsAndDifficulty(pSteps,dc) );
|
||||||
else if( *dc == DIFFICULTY_EDIT )
|
|
||||||
{
|
|
||||||
vector<Steps*> v;
|
|
||||||
GetSelectedSong()->GetSteps( v, GetSelectedSourceStepsType(), DIFFICULTY_EDIT );
|
|
||||||
StepsUtil::SortStepsByDescription( v );
|
|
||||||
m_vpSourceSteps.insert( m_vpSourceSteps.end(), v.begin(), v.end() );
|
|
||||||
|
|
||||||
// if we don't have any edits, pad with NULL so that we have one slot for every difficulty
|
|
||||||
if( v.empty() )
|
|
||||||
m_vpSourceSteps.push_back( NULL );
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Steps *pSteps = GetSelectedSong()->GetStepsByDifficulty( GetSelectedSourceStepsType(), *dc );
|
vector<Steps*> v;
|
||||||
m_vpSourceSteps.push_back( pSteps );
|
GetSelectedSong()->GetSteps( v, GetSelectedSourceStepsType(), dc );
|
||||||
|
StepsUtil::SortStepsByDescription( v );
|
||||||
|
FOREACH_CONST( Steps*, v, pSteps )
|
||||||
|
m_vpSourceSteps.push_back( StepsAndDifficulty(*pSteps,dc) );
|
||||||
|
if( v.empty() )
|
||||||
|
m_vpSourceSteps.push_back( StepsAndDifficulty(NULL,dc) );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
CLAMP( m_iSelection[ROW_SOURCE_STEPS], 0, m_vpSourceSteps.size()-1 );
|
||||||
// fall through
|
// fall through
|
||||||
case ROW_SOURCE_STEPS:
|
case ROW_SOURCE_STEPS:
|
||||||
{
|
{
|
||||||
@@ -463,7 +441,8 @@ void EditMenu::OnRowValueChanged( EditMenuRow row )
|
|||||||
if( GetSelectedSteps() )
|
if( GetSelectedSteps() )
|
||||||
{
|
{
|
||||||
m_Actions.push_back( EDIT_MENU_ACTION_EDIT );
|
m_Actions.push_back( EDIT_MENU_ACTION_EDIT );
|
||||||
m_Actions.push_back( EDIT_MENU_ACTION_DELETE );
|
if( EDIT_MODE != EDIT_MODE_PRACTICE )
|
||||||
|
m_Actions.push_back( EDIT_MENU_ACTION_DELETE );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -480,19 +459,6 @@ void EditMenu::OnRowValueChanged( EditMenuRow row )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Difficulty EditMenu::GetSelectedDifficulty()
|
|
||||||
{
|
|
||||||
int i = m_iSelection[ROW_STEPS];
|
|
||||||
CLAMP( i, 0, m_vDifficulties.size()-1 );
|
|
||||||
return m_vDifficulties[i];
|
|
||||||
}
|
|
||||||
|
|
||||||
Difficulty EditMenu::GetSelectedSourceDifficulty()
|
|
||||||
{
|
|
||||||
int i = m_iSelection[ROW_SOURCE_STEPS];
|
|
||||||
CLAMP( i, 0, m_vSourceDifficulties.size()-1 );
|
|
||||||
return m_vSourceDifficulties[i];
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* (c) 2001-2004 Chris Danford
|
* (c) 2001-2004 Chris Danford
|
||||||
|
|||||||
@@ -62,14 +62,13 @@ public:
|
|||||||
CString GetSelectedGroup() const { ASSERT(m_iSelection[ROW_GROUP] < (int)m_sGroups.size()); return m_sGroups[m_iSelection[ROW_GROUP]]; }
|
CString GetSelectedGroup() const { ASSERT(m_iSelection[ROW_GROUP] < (int)m_sGroups.size()); return m_sGroups[m_iSelection[ROW_GROUP]]; }
|
||||||
Song* GetSelectedSong() const { ASSERT(m_iSelection[ROW_SONG] < (int)m_pSongs.size()); return m_pSongs[m_iSelection[ROW_SONG]]; }
|
Song* GetSelectedSong() const { ASSERT(m_iSelection[ROW_SONG] < (int)m_pSongs.size()); return m_pSongs[m_iSelection[ROW_SONG]]; }
|
||||||
StepsType GetSelectedStepsType() const { ASSERT(m_iSelection[ROW_STEPS_TYPE] < (int)m_StepsTypes.size()); return m_StepsTypes[m_iSelection[ROW_STEPS_TYPE]]; }
|
StepsType GetSelectedStepsType() const { ASSERT(m_iSelection[ROW_STEPS_TYPE] < (int)m_StepsTypes.size()); return m_StepsTypes[m_iSelection[ROW_STEPS_TYPE]]; }
|
||||||
Steps* GetSelectedSteps() const { ASSERT(m_iSelection[ROW_STEPS] < (int)m_vpSteps.size()); return m_vpSteps[m_iSelection[ROW_STEPS]]; }
|
Steps* GetSelectedSteps() const { ASSERT(m_iSelection[ROW_STEPS] < (int)m_vpSteps.size()); return m_vpSteps[m_iSelection[ROW_STEPS]].pSteps; }
|
||||||
|
Difficulty GetSelectedDifficulty() const { ASSERT(m_iSelection[ROW_STEPS] < (int)m_vpSteps.size()); return m_vpSteps[m_iSelection[ROW_STEPS]].dc; }
|
||||||
StepsType GetSelectedSourceStepsType() const { ASSERT(m_iSelection[ROW_SOURCE_STEPS_TYPE]< (int)m_StepsTypes.size()); return m_StepsTypes[m_iSelection[ROW_SOURCE_STEPS_TYPE]]; }
|
StepsType GetSelectedSourceStepsType() const { ASSERT(m_iSelection[ROW_SOURCE_STEPS_TYPE]< (int)m_StepsTypes.size()); return m_StepsTypes[m_iSelection[ROW_SOURCE_STEPS_TYPE]]; }
|
||||||
Steps* GetSelectedSourceSteps() const { ASSERT(m_iSelection[ROW_SOURCE_STEPS] < (int)m_vpSourceSteps.size()); return m_vpSourceSteps[m_iSelection[ROW_SOURCE_STEPS]]; }
|
Steps* GetSelectedSourceSteps() const { ASSERT(m_iSelection[ROW_SOURCE_STEPS] < (int)m_vpSourceSteps.size()); return m_vpSourceSteps[m_iSelection[ROW_SOURCE_STEPS]].pSteps; }
|
||||||
|
Difficulty GetSelectedSourceDifficulty() const { ASSERT(m_iSelection[ROW_SOURCE_STEPS] < (int)m_vpSourceSteps.size()); return m_vpSourceSteps[m_iSelection[ROW_SOURCE_STEPS]].dc; }
|
||||||
EditMenuAction GetSelectedAction() const { ASSERT(m_iSelection[ROW_ACTION] < (int)m_Actions.size()); return m_Actions[m_iSelection[ROW_ACTION]]; }
|
EditMenuAction GetSelectedAction() const { ASSERT(m_iSelection[ROW_ACTION] < (int)m_Actions.size()); return m_Actions[m_iSelection[ROW_ACTION]]; }
|
||||||
|
|
||||||
Difficulty GetSelectedDifficulty();
|
|
||||||
Difficulty GetSelectedSourceDifficulty();
|
|
||||||
|
|
||||||
EditMenuRow GetSelectedRow() const { return m_SelectedRow; }
|
EditMenuRow GetSelectedRow() const { return m_SelectedRow; }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
@@ -88,14 +87,18 @@ private:
|
|||||||
DifficultyMeter m_SourceMeter;
|
DifficultyMeter m_SourceMeter;
|
||||||
|
|
||||||
|
|
||||||
vector<Difficulty> m_vDifficulties;
|
struct StepsAndDifficulty
|
||||||
vector<Difficulty> m_vSourceDifficulties;
|
{
|
||||||
|
StepsAndDifficulty( Steps *s, Difficulty d ) { pSteps = s; dc = d; }
|
||||||
|
Steps *pSteps;
|
||||||
|
Difficulty dc;
|
||||||
|
};
|
||||||
|
|
||||||
CStringArray m_sGroups;
|
CStringArray m_sGroups;
|
||||||
vector<Song*> m_pSongs;
|
vector<Song*> m_pSongs;
|
||||||
vector<StepsType> m_StepsTypes;
|
vector<StepsType> m_StepsTypes;
|
||||||
vector<Steps*> m_vpSteps;
|
vector<StepsAndDifficulty> m_vpSteps;
|
||||||
vector<Steps*> m_vpSourceSteps;
|
vector<StepsAndDifficulty> m_vpSourceSteps;
|
||||||
vector<EditMenuAction> m_Actions;
|
vector<EditMenuAction> m_Actions;
|
||||||
|
|
||||||
void OnRowValueChanged( EditMenuRow row );
|
void OnRowValueChanged( EditMenuRow row );
|
||||||
|
|||||||
@@ -371,6 +371,16 @@ const CString& GoalTypeToString( GoalType gt );
|
|||||||
GoalType StringToGoalType( const CString& s );
|
GoalType StringToGoalType( const CString& s );
|
||||||
|
|
||||||
|
|
||||||
|
enum EditMode
|
||||||
|
{
|
||||||
|
EDIT_MODE_PRACTICE, // subset of EDIT_MODE_HOME
|
||||||
|
EDIT_MODE_HOME, // subset of EDIT_MODE_FULL
|
||||||
|
EDIT_MODE_FULL, // complete
|
||||||
|
NUM_EDIT_MODES,
|
||||||
|
EDIT_MODE_INVALID,
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
@@ -485,7 +485,7 @@ void NoteField::DrawPrimitives()
|
|||||||
//
|
//
|
||||||
// BGChange text
|
// BGChange text
|
||||||
//
|
//
|
||||||
if( !HOME_EDIT_MODE )
|
if( EDIT_MODE == EDIT_MODE_FULL )
|
||||||
{
|
{
|
||||||
vector<BackgroundChange> &aBackgroundChanges = GAMESTATE->m_pCurSong->m_BackgroundChanges;
|
vector<BackgroundChange> &aBackgroundChanges = GAMESTATE->m_pCurSong->m_BackgroundChanges;
|
||||||
for( unsigned i=0; i<aBackgroundChanges.size(); i++ )
|
for( unsigned i=0; i<aBackgroundChanges.size(); i++ )
|
||||||
|
|||||||
+197
-177
@@ -309,161 +309,161 @@ bool ScreenEdit::EditIsBeingPressed( EditButton button ) const
|
|||||||
|
|
||||||
const MapEditToDI *ScreenEdit::GetCurrentMap() const
|
const MapEditToDI *ScreenEdit::GetCurrentMap() const
|
||||||
{
|
{
|
||||||
switch( m_EditMode )
|
switch( m_EditState )
|
||||||
{
|
{
|
||||||
case MODE_EDITING: return &g_EditMappings;
|
case STATE_EDITING: return &g_EditMappings;
|
||||||
case MODE_PLAYING: return &g_PlayMappings;
|
case STATE_PLAYING: return &g_PlayMappings;
|
||||||
case MODE_RECORDING: return &g_RecordMappings;
|
case STATE_RECORDING: return &g_RecordMappings;
|
||||||
default: FAIL_M( ssprintf("%i",m_EditMode) );
|
default: FAIL_M( ssprintf("%i",m_EditState) );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static Menu g_EditHelp(
|
static Menu g_EditHelp(
|
||||||
"ScreenMiniMenuEditHelp",
|
"ScreenMiniMenuEditHelp",
|
||||||
#if defined(XBOX)
|
#if defined(XBOX)
|
||||||
MenuRow( -1, "L + Up/Down: Change zoom", false, true, 0, NULL ),
|
MenuRow( -1, "L + Up/Down: Change zoom", false, EDIT_MODE_PRACTICE, 0, NULL ),
|
||||||
MenuRow( -1, "R + Up/Down: Drag area marker", false, true, 0, NULL ),
|
MenuRow( -1, "R + Up/Down: Drag area marker", false, EDIT_MODE_PRACTICE, 0, NULL ),
|
||||||
MenuRow( -1, "L + Select: Play selection", false, true, 0, NULL ),
|
MenuRow( -1, "L + Select: Play selection", false, EDIT_MODE_PRACTICE, 0, NULL ),
|
||||||
MenuRow( -1, "R + Start: Play whole song", false, true, 0, NULL ),
|
MenuRow( -1, "R + Start: Play whole song", false, EDIT_MODE_PRACTICE, 0, NULL ),
|
||||||
MenuRow( -1, "R + Select: Record", false, true, 0, NULL ),
|
MenuRow( -1, "R + Select: Record", false, EDIT_MODE_PRACTICE, 0, NULL ),
|
||||||
MenuRow( -1, "L + Black: Toggle assist tick", false, true, 0, NULL ),
|
MenuRow( -1, "L + Black: Toggle assist tick", false, EDIT_MODE_PRACTICE, 0, NULL ),
|
||||||
MenuRow( -1, "R + White: Insert beat and shift down", false, true, 0, NULL ),
|
MenuRow( -1, "R + White: Insert beat and shift down", false, EDIT_MODE_PRACTICE, 0, NULL ),
|
||||||
MenuRow( -1, "R + Black: Delete beat and shift up", false, true, 0, NULL ),
|
MenuRow( -1, "R + Black: Delete beat and shift up", false, EDIT_MODE_PRACTICE, 0, NULL ),
|
||||||
MenuRow( -1, "R + button: Lay mine", false, true, 0, NULL ),
|
MenuRow( -1, "R + button: Lay mine", false, EDIT_MODE_PRACTICE, 0, NULL ),
|
||||||
MenuRow( -1, "L + button: Add to/remove from right half", false, true, 0, NULL )
|
MenuRow( -1, "L + button: Add to/remove from right half", false, EDIT_MODE_PRACTICE, 0, NULL )
|
||||||
#else
|
#else
|
||||||
MenuRow( -1, "PgUp/PgDn: jump measure", false, true, 0, NULL ),
|
MenuRow( -1, "PgUp/PgDn: jump measure", false, EDIT_MODE_PRACTICE, 0, NULL ),
|
||||||
MenuRow( -1, "Home/End: jump to first/last beat", false, true, 0, NULL ),
|
MenuRow( -1, "Home/End: jump to first/last beat", false, EDIT_MODE_PRACTICE, 0, NULL ),
|
||||||
MenuRow( -1, "Ctrl + Up/Down: Change zoom", false, true, 0, NULL ),
|
MenuRow( -1, "Ctrl + Up/Down: Change zoom", false, EDIT_MODE_PRACTICE, 0, NULL ),
|
||||||
MenuRow( -1, "Shift + Up/Down: Drag area marker", false, true, 0, NULL ),
|
MenuRow( -1, "Shift + Up/Down: Drag area marker", false, EDIT_MODE_PRACTICE, 0, NULL ),
|
||||||
MenuRow( -1, "P: Play selection", false, true, 0, NULL ),
|
MenuRow( -1, "P: Play selection", false, EDIT_MODE_PRACTICE, 0, NULL ),
|
||||||
MenuRow( -1, "Ctrl + P: Play whole song", false, true, 0, NULL ),
|
MenuRow( -1, "Ctrl + P: Play whole song", false, EDIT_MODE_PRACTICE, 0, NULL ),
|
||||||
MenuRow( -1, "Shift + P: Play current beat to end", false, true, 0, NULL ),
|
MenuRow( -1, "Shift + P: Play current beat to end", false, EDIT_MODE_PRACTICE, 0, NULL ),
|
||||||
MenuRow( -1, "Ctrl + R: Record", false, true, 0, NULL ),
|
MenuRow( -1, "Ctrl + R: Record", false, EDIT_MODE_PRACTICE, 0, NULL ),
|
||||||
MenuRow( -1, "F4: Toggle assist tick", false, true, 0, NULL ),
|
MenuRow( -1, "F4: Toggle assist tick", false, EDIT_MODE_PRACTICE, 0, NULL ),
|
||||||
MenuRow( -1, "F5/F6: Next/prev steps of same StepsType", false, true, 0, NULL ),
|
MenuRow( -1, "F5/F6: Next/prev steps of same StepsType", false, EDIT_MODE_PRACTICE, 0, NULL ),
|
||||||
MenuRow( -1, "F7/F8: Decrease/increase BPM at cur beat", false, true, 0, NULL ),
|
MenuRow( -1, "F7/F8: Decrease/increase BPM at cur beat", false, EDIT_MODE_PRACTICE, 0, NULL ),
|
||||||
MenuRow( -1, "F9/F10: Decrease/increase stop at cur beat", false, true, 0, NULL ),
|
MenuRow( -1, "F9/F10: Decrease/increase stop at cur beat", false, EDIT_MODE_PRACTICE, 0, NULL ),
|
||||||
MenuRow( -1, "F11/F12: Decrease/increase music offset", false, true, 0, NULL ),
|
MenuRow( -1, "F11/F12: Decrease/increase music offset", false, EDIT_MODE_PRACTICE, 0, NULL ),
|
||||||
/* XXX: This would be better as a single submenu, to let people tweak
|
/* XXX: This would be better as a single submenu, to let people tweak
|
||||||
* and play the sample several times (without having to re-enter the
|
* and play the sample several times (without having to re-enter the
|
||||||
* menu each time), so it doesn't use a whole bunch of hotkeys. */
|
* menu each time), so it doesn't use a whole bunch of hotkeys. */
|
||||||
MenuRow( -1, "[ and ]: Decrease/increase sample music start", false, true, 0, NULL ),
|
MenuRow( -1, "[ and ]: Decrease/increase sample music start", false, EDIT_MODE_PRACTICE, 0, NULL ),
|
||||||
MenuRow( -1, "{ and }: Decrease/increase sample music length", false, true, 0, NULL ),
|
MenuRow( -1, "{ and }: Decrease/increase sample music length", false, EDIT_MODE_PRACTICE, 0, NULL ),
|
||||||
MenuRow( -1, "M: Play sample music", false, true, 0, NULL ),
|
MenuRow( -1, "M: Play sample music", false, EDIT_MODE_PRACTICE, 0, NULL ),
|
||||||
MenuRow( -1, "B: Add/Edit Background Change", false, true, 0, NULL ),
|
MenuRow( -1, "B: Add/Edit Background Change", false, EDIT_MODE_PRACTICE, 0, NULL ),
|
||||||
MenuRow( -1, "Insert: Insert beat and shift down", false, true, 0, NULL ),
|
MenuRow( -1, "Insert: Insert beat and shift down", false, EDIT_MODE_PRACTICE, 0, NULL ),
|
||||||
MenuRow( -1, "Ctrl + Insert: Shift BPM changes and stops down one beat",
|
MenuRow( -1, "Ctrl + Insert: Shift BPM changes and stops down one beat",
|
||||||
false, true, 0, NULL ),
|
false, EDIT_MODE_PRACTICE, 0, NULL ),
|
||||||
MenuRow( -1, "Delete: Delete beat and shift up", false, true, 0, NULL ),
|
MenuRow( -1, "Delete: Delete beat and shift up", false, EDIT_MODE_PRACTICE, 0, NULL ),
|
||||||
MenuRow( -1, "Ctrl + Delete: Shift BPM changes and stops up one beat",
|
MenuRow( -1, "Ctrl + Delete: Shift BPM changes and stops up one beat",
|
||||||
false, true, 0, NULL ),
|
false, EDIT_MODE_PRACTICE, 0, NULL ),
|
||||||
MenuRow( -1, "Shift + number: Lay mine", false, true, 0, NULL ),
|
MenuRow( -1, "Shift + number: Lay mine", false, EDIT_MODE_PRACTICE, 0, NULL ),
|
||||||
MenuRow( -1, "Alt + number: Add to/remove from right half", false, true, 0, NULL )
|
MenuRow( -1, "Alt + number: Add to/remove from right half", false, EDIT_MODE_PRACTICE, 0, NULL )
|
||||||
#endif
|
#endif
|
||||||
);
|
);
|
||||||
|
|
||||||
static Menu g_MainMenu(
|
static Menu g_MainMenu(
|
||||||
"ScreenMiniMenuMainMenu",
|
"ScreenMiniMenuMainMenu",
|
||||||
MenuRow( ScreenEdit::edit_steps_information, "Edit Steps Information", true, true, 0, NULL ),
|
MenuRow( ScreenEdit::edit_steps_information, "Edit Steps Information", true, EDIT_MODE_PRACTICE, 0, NULL ),
|
||||||
MenuRow( ScreenEdit::play_whole_song, "Play Whole Song", true, true, 0, NULL ),
|
MenuRow( ScreenEdit::play_whole_song, "Play Whole Song", true, EDIT_MODE_PRACTICE, 0, NULL ),
|
||||||
MenuRow( ScreenEdit::play_current_beat_to_end, "Play Current Beat to End", true, true, 0, NULL ),
|
MenuRow( ScreenEdit::play_current_beat_to_end, "Play Current Beat to End", true, EDIT_MODE_PRACTICE, 0, NULL ),
|
||||||
MenuRow( ScreenEdit::save, "Save", true, true, 0, NULL ),
|
MenuRow( ScreenEdit::save, "Save", true, EDIT_MODE_HOME, 0, NULL ),
|
||||||
MenuRow( ScreenEdit::revert_to_last_save, "Revert to Last Save", true, true, 0, NULL ),
|
MenuRow( ScreenEdit::revert_to_last_save, "Revert to Last Save", true, EDIT_MODE_HOME, 0, NULL ),
|
||||||
MenuRow( ScreenEdit::player_options, "Player Options", true, true, 0, NULL ),
|
MenuRow( ScreenEdit::player_options, "Player Options", true, EDIT_MODE_PRACTICE, 0, NULL ),
|
||||||
MenuRow( ScreenEdit::song_options, "Song Options", true, true, 0, NULL ),
|
MenuRow( ScreenEdit::song_options, "Song Options", true, EDIT_MODE_PRACTICE, 0, NULL ),
|
||||||
MenuRow( ScreenEdit::edit_song_info, "Edit Song Info", true, false, 0, NULL ),
|
MenuRow( ScreenEdit::edit_song_info, "Edit Song Info", true, EDIT_MODE_FULL, 0, NULL ),
|
||||||
MenuRow( ScreenEdit::edit_bpm, "Edit BPM Change", true, false, 0, NULL ),
|
MenuRow( ScreenEdit::edit_bpm, "Edit BPM Change", true, EDIT_MODE_FULL, 0, NULL ),
|
||||||
MenuRow( ScreenEdit::edit_stop, "Edit Stop", true, false, 0, NULL ),
|
MenuRow( ScreenEdit::edit_stop, "Edit Stop", true, EDIT_MODE_FULL, 0, NULL ),
|
||||||
MenuRow( ScreenEdit::edit_bg_change, "Add/Edit Background Change", true, false, 0, NULL ),
|
MenuRow( ScreenEdit::edit_bg_change, "Add/Edit Background Change", true, EDIT_MODE_FULL, 0, NULL ),
|
||||||
MenuRow( ScreenEdit::play_preview_music, "Play Preview Music", true, false, 0, NULL ),
|
MenuRow( ScreenEdit::play_preview_music, "Play Preview Music", true, EDIT_MODE_FULL, 0, NULL ),
|
||||||
MenuRow( ScreenEdit::preferences, "Preferences", true, false, 0, NULL ),
|
MenuRow( ScreenEdit::preferences, "Preferences", true, EDIT_MODE_FULL, 0, NULL ),
|
||||||
MenuRow( ScreenEdit::exit, "Exit", true, true, 0, NULL )
|
MenuRow( ScreenEdit::exit, "Exit", true, EDIT_MODE_PRACTICE, 0, NULL )
|
||||||
);
|
);
|
||||||
|
|
||||||
static Menu g_AreaMenu(
|
static Menu g_AreaMenu(
|
||||||
"ScreenMiniMenuAreaMenu",
|
"ScreenMiniMenuAreaMenu",
|
||||||
MenuRow( ScreenEdit::cut, "Cut", true, true, 0, NULL ),
|
MenuRow( ScreenEdit::cut, "Cut", true, EDIT_MODE_PRACTICE, 0, NULL ),
|
||||||
MenuRow( ScreenEdit::copy, "Copy", true, true, 0, NULL ),
|
MenuRow( ScreenEdit::copy, "Copy", true, EDIT_MODE_PRACTICE, 0, NULL ),
|
||||||
MenuRow( ScreenEdit::paste_at_current_beat, "Paste at current beat", true, true, 0, NULL ),
|
MenuRow( ScreenEdit::paste_at_current_beat, "Paste at current beat", true, EDIT_MODE_PRACTICE, 0, NULL ),
|
||||||
MenuRow( ScreenEdit::paste_at_begin_marker, "Paste at begin marker", true, true, 0, NULL ),
|
MenuRow( ScreenEdit::paste_at_begin_marker, "Paste at begin marker", true, EDIT_MODE_PRACTICE, 0, NULL ),
|
||||||
MenuRow( ScreenEdit::clear, "Clear area", true, true, 0, NULL ),
|
MenuRow( ScreenEdit::clear, "Clear area", true, EDIT_MODE_PRACTICE, 0, NULL ),
|
||||||
MenuRow( ScreenEdit::quantize, "Quantize", true, true, 0, "4th","8th","12th","16th","24th","32nd","48th","64th","192nd"),
|
MenuRow( ScreenEdit::quantize, "Quantize", true, EDIT_MODE_PRACTICE, 0, "4th","8th","12th","16th","24th","32nd","48th","64th","192nd"),
|
||||||
MenuRow( ScreenEdit::turn, "Turn", true, true, 0, "Left","Right","Mirror","Shuffle","SuperShuffle" ),
|
MenuRow( ScreenEdit::turn, "Turn", true, EDIT_MODE_PRACTICE, 0, "Left","Right","Mirror","Shuffle","SuperShuffle" ),
|
||||||
MenuRow( ScreenEdit::transform, "Transform", true, true, 0, "NoHolds","NoMines","Little","Wide","Big","Quick","Skippy","Mines","Echo","Stomp","Planted","Floored","Twister","NoJumps","NoHands","NoQuads" ),
|
MenuRow( ScreenEdit::transform, "Transform", true, EDIT_MODE_PRACTICE, 0, "NoHolds","NoMines","Little","Wide","Big","Quick","Skippy","Mines","Echo","Stomp","Planted","Floored","Twister","NoJumps","NoHands","NoQuads" ),
|
||||||
MenuRow( ScreenEdit::alter, "Alter", true, true, 0, "Autogen To Fill Width","Backwards","Swap Sides","Copy Left To Right","Copy Right To Left","Clear Left","Clear Right","Collapse To One","Collapse Left","Shift Left","Shift Right" ),
|
MenuRow( ScreenEdit::alter, "Alter", true, EDIT_MODE_PRACTICE, 0, "Autogen To Fill Width","Backwards","Swap Sides","Copy Left To Right","Copy Right To Left","Clear Left","Clear Right","Collapse To One","Collapse Left","Shift Left","Shift Right" ),
|
||||||
MenuRow( ScreenEdit::tempo, "Tempo", true, false, 0, "Compress 2x","Compress 3->2","Compress 4->3","Expand 3->4","Expand 2->3","Expand 2x" ),
|
MenuRow( ScreenEdit::tempo, "Tempo", true, EDIT_MODE_FULL, 0, "Compress 2x","Compress 3->2","Compress 4->3","Expand 3->4","Expand 2->3","Expand 2x" ),
|
||||||
MenuRow( ScreenEdit::play, "Play selection", true, true, 0, NULL ),
|
MenuRow( ScreenEdit::play, "Play selection", true, EDIT_MODE_PRACTICE, 0, NULL ),
|
||||||
MenuRow( ScreenEdit::record, "Record in selection", true, true, 0, NULL ),
|
MenuRow( ScreenEdit::record, "Record in selection", true, EDIT_MODE_PRACTICE, 0, NULL ),
|
||||||
MenuRow( ScreenEdit::insert_and_shift, "Insert beat and shift down", true, true, 0, NULL ),
|
MenuRow( ScreenEdit::insert_and_shift, "Insert beat and shift down", true, EDIT_MODE_PRACTICE, 0, NULL ),
|
||||||
MenuRow( ScreenEdit::delete_and_shift, "Delete beat and shift up", true, true, 0, NULL ),
|
MenuRow( ScreenEdit::delete_and_shift, "Delete beat and shift up", true, EDIT_MODE_PRACTICE, 0, NULL ),
|
||||||
MenuRow( ScreenEdit::shift_pauses_forward, "Shift pauses and BPM changes down",true, false, 0, NULL ),
|
MenuRow( ScreenEdit::shift_pauses_forward, "Shift pauses and BPM changes down",true, EDIT_MODE_FULL, 0, NULL ),
|
||||||
MenuRow( ScreenEdit::shift_pauses_backward, "Shift pauses and BPM changes up", true, false, 0, NULL ),
|
MenuRow( ScreenEdit::shift_pauses_backward, "Shift pauses and BPM changes up", true, EDIT_MODE_FULL, 0, NULL ),
|
||||||
MenuRow( ScreenEdit::convert_beat_to_pause, "Convert beats to pause", true, false, 0, NULL ),
|
MenuRow( ScreenEdit::convert_beat_to_pause, "Convert beats to pause", true, EDIT_MODE_FULL, 0, NULL ),
|
||||||
MenuRow( ScreenEdit::convert_pause_to_beat, "Convert pause to beats", true, false, 0, NULL ),
|
MenuRow( ScreenEdit::convert_pause_to_beat, "Convert pause to beats", true, EDIT_MODE_FULL, 0, NULL ),
|
||||||
MenuRow( ScreenEdit::undo, "Undo", true, true, 0, NULL )
|
MenuRow( ScreenEdit::undo, "Undo", true, EDIT_MODE_PRACTICE, 0, NULL )
|
||||||
);
|
);
|
||||||
|
|
||||||
static Menu g_StepsInformation(
|
static Menu g_StepsInformation(
|
||||||
"ScreenMiniMenuStepsInformation",
|
"ScreenMiniMenuStepsInformation",
|
||||||
MenuRow( ScreenEdit::difficulty, "Difficulty", true, true, 0, "BEGINNER","EASY","MEDIUM","HARD","CHALLENGE","EDIT" ),
|
MenuRow( ScreenEdit::difficulty, "Difficulty", true, EDIT_MODE_PRACTICE, 0, "BEGINNER","EASY","MEDIUM","HARD","CHALLENGE","EDIT" ),
|
||||||
MenuRow( ScreenEdit::meter, "Meter", true, true, 0, "1","2","3","4","5","6","7","8","9","10","11","12","13" ),
|
MenuRow( ScreenEdit::meter, "Meter", true, EDIT_MODE_PRACTICE, 0, "1","2","3","4","5","6","7","8","9","10","11","12","13" ),
|
||||||
MenuRow( ScreenEdit::description, "Description", true, true, 0, NULL ),
|
MenuRow( ScreenEdit::description, "Description", true, EDIT_MODE_PRACTICE, 0, NULL ),
|
||||||
MenuRow( ScreenEdit::predict_meter, "Predicted Meter", false, true, 0, NULL ),
|
MenuRow( ScreenEdit::predict_meter, "Predicted Meter", false, EDIT_MODE_PRACTICE, 0, NULL ),
|
||||||
MenuRow( ScreenEdit::tap_notes, "Tap Steps", false, true, 0, NULL ),
|
MenuRow( ScreenEdit::tap_notes, "Tap Steps", false, EDIT_MODE_PRACTICE, 0, NULL ),
|
||||||
MenuRow( ScreenEdit::jumps, "Jumps", false, true, 0, NULL ),
|
MenuRow( ScreenEdit::jumps, "Jumps", false, EDIT_MODE_PRACTICE, 0, NULL ),
|
||||||
MenuRow( ScreenEdit::hands, "Hands", false, true, 0, NULL ),
|
MenuRow( ScreenEdit::hands, "Hands", false, EDIT_MODE_PRACTICE, 0, NULL ),
|
||||||
MenuRow( ScreenEdit::quads, "Quads", false, true, 0, NULL ),
|
MenuRow( ScreenEdit::quads, "Quads", false, EDIT_MODE_PRACTICE, 0, NULL ),
|
||||||
MenuRow( ScreenEdit::holds, "Holds", false, true, 0, NULL ),
|
MenuRow( ScreenEdit::holds, "Holds", false, EDIT_MODE_PRACTICE, 0, NULL ),
|
||||||
MenuRow( ScreenEdit::mines, "Mines", false, true, 0, NULL ),
|
MenuRow( ScreenEdit::mines, "Mines", false, EDIT_MODE_PRACTICE, 0, NULL ),
|
||||||
MenuRow( ScreenEdit::stream, "Stream", false, false, 0, NULL ),
|
MenuRow( ScreenEdit::stream, "Stream", false, EDIT_MODE_FULL, 0, NULL ),
|
||||||
MenuRow( ScreenEdit::voltage, "Voltage", false, false, 0, NULL ),
|
MenuRow( ScreenEdit::voltage, "Voltage", false, EDIT_MODE_FULL, 0, NULL ),
|
||||||
MenuRow( ScreenEdit::air, "Air", false, false, 0, NULL ),
|
MenuRow( ScreenEdit::air, "Air", false, EDIT_MODE_FULL, 0, NULL ),
|
||||||
MenuRow( ScreenEdit::freeze, "Freeze", false, false, 0, NULL ),
|
MenuRow( ScreenEdit::freeze, "Freeze", false, EDIT_MODE_FULL, 0, NULL ),
|
||||||
MenuRow( ScreenEdit::chaos, "Chaos", false, false, 0, NULL )
|
MenuRow( ScreenEdit::chaos, "Chaos", false, EDIT_MODE_FULL, 0, NULL )
|
||||||
);
|
);
|
||||||
|
|
||||||
static Menu g_SongInformation(
|
static Menu g_SongInformation(
|
||||||
"ScreenMiniMenuSongInfomation",
|
"ScreenMiniMenuSongInfomation",
|
||||||
MenuRow( ScreenEdit::main_title, "Main title", true, true, 0, NULL ),
|
MenuRow( ScreenEdit::main_title, "Main title", true, EDIT_MODE_PRACTICE, 0, NULL ),
|
||||||
MenuRow( ScreenEdit::sub_title, "Sub title", true, true, 0, NULL ),
|
MenuRow( ScreenEdit::sub_title, "Sub title", true, EDIT_MODE_PRACTICE, 0, NULL ),
|
||||||
MenuRow( ScreenEdit::artist, "Artist", true, true, 0, NULL ),
|
MenuRow( ScreenEdit::artist, "Artist", true, EDIT_MODE_PRACTICE, 0, NULL ),
|
||||||
MenuRow( ScreenEdit::credit, "Credit", true, true, 0, NULL ),
|
MenuRow( ScreenEdit::credit, "Credit", true, EDIT_MODE_PRACTICE, 0, NULL ),
|
||||||
MenuRow( ScreenEdit::main_title_transliteration, "Main title transliteration", true, true, 0, NULL ),
|
MenuRow( ScreenEdit::main_title_transliteration, "Main title transliteration", true, EDIT_MODE_PRACTICE, 0, NULL ),
|
||||||
MenuRow( ScreenEdit::sub_title_transliteration, "Sub title transliteration", true, true, 0, NULL ),
|
MenuRow( ScreenEdit::sub_title_transliteration, "Sub title transliteration", true, EDIT_MODE_PRACTICE, 0, NULL ),
|
||||||
MenuRow( ScreenEdit::artist_transliteration, "Artist transliteration", true, true, 0, NULL )
|
MenuRow( ScreenEdit::artist_transliteration, "Artist transliteration", true, EDIT_MODE_PRACTICE, 0, NULL )
|
||||||
);
|
);
|
||||||
|
|
||||||
static Menu g_BackgroundChange(
|
static Menu g_BackgroundChange(
|
||||||
"ScreenMiniMenuBackgroundChange",
|
"ScreenMiniMenuBackgroundChange",
|
||||||
MenuRow( ScreenEdit::rate, "Rate (applies to new adds)", true, true, 10, "0%","10%","20%","30%","40%","50%","60%","70%","80%","90%","100%","120%","140%","160%","180%","200%" ),
|
MenuRow( ScreenEdit::rate, "Rate (applies to new adds)", true, EDIT_MODE_PRACTICE, 10, "0%","10%","20%","30%","40%","50%","60%","70%","80%","90%","100%","120%","140%","160%","180%","200%" ),
|
||||||
MenuRow( ScreenEdit::fade_last, "Fade Last (applies to new adds)", true, true, 0, "NO","YES" ),
|
MenuRow( ScreenEdit::fade_last, "Fade Last (applies to new adds)", true, EDIT_MODE_PRACTICE, 0, "NO","YES" ),
|
||||||
MenuRow( ScreenEdit::rewind_movie, "Rewind Movie (applies to new adds)", true, true, 0, "NO","YES" ),
|
MenuRow( ScreenEdit::rewind_movie, "Rewind Movie (applies to new adds)", true, EDIT_MODE_PRACTICE, 0, "NO","YES" ),
|
||||||
MenuRow( ScreenEdit::loop, "Loop (applies to new adds)", true, true, 1, "NO","YES" ),
|
MenuRow( ScreenEdit::loop, "Loop (applies to new adds)", true, EDIT_MODE_PRACTICE, 1, "NO","YES" ),
|
||||||
MenuRow( ScreenEdit::add_random, "Add Change to random", true, true, 0, NULL ),
|
MenuRow( ScreenEdit::add_random, "Add Change to random", true, EDIT_MODE_PRACTICE, 0, NULL ),
|
||||||
MenuRow( ScreenEdit::add_song_bganimation, "Add Change to song BGAnimation", true, true, 0, NULL ),
|
MenuRow( ScreenEdit::add_song_bganimation, "Add Change to song BGAnimation", true, EDIT_MODE_PRACTICE, 0, NULL ),
|
||||||
MenuRow( ScreenEdit::add_song_movie, "Add Change to song Movie", true, true, 0, NULL ),
|
MenuRow( ScreenEdit::add_song_movie, "Add Change to song Movie", true, EDIT_MODE_PRACTICE, 0, NULL ),
|
||||||
MenuRow( ScreenEdit::add_song_still, "Add Change to song Still", true, true, 0, NULL ),
|
MenuRow( ScreenEdit::add_song_still, "Add Change to song Still", true, EDIT_MODE_PRACTICE, 0, NULL ),
|
||||||
MenuRow( ScreenEdit::add_global_random_movie, "Add Change to global Random Movie", true, true, 0, NULL ),
|
MenuRow( ScreenEdit::add_global_random_movie, "Add Change to global Random Movie", true, EDIT_MODE_PRACTICE, 0, NULL ),
|
||||||
MenuRow( ScreenEdit::add_global_bganimation, "Add Change to global BGAnimation", true, true, 0, NULL ),
|
MenuRow( ScreenEdit::add_global_bganimation, "Add Change to global BGAnimation", true, EDIT_MODE_PRACTICE, 0, NULL ),
|
||||||
MenuRow( ScreenEdit::add_global_visualization, "Add Change to global Visualization", true, true, 0, NULL ),
|
MenuRow( ScreenEdit::add_global_visualization, "Add Change to global Visualization", true, EDIT_MODE_PRACTICE, 0, NULL ),
|
||||||
MenuRow( ScreenEdit::delete_change, "Remove Change", true, true, 0, NULL )
|
MenuRow( ScreenEdit::delete_change, "Remove Change", true, EDIT_MODE_PRACTICE, 0, NULL )
|
||||||
);
|
);
|
||||||
|
|
||||||
static Menu g_Prefs(
|
static Menu g_Prefs(
|
||||||
"ScreenMiniMenuPreferences",
|
"ScreenMiniMenuPreferences",
|
||||||
MenuRow( ScreenEdit::pref_show_bgs_play, "Show BGChanges during Play/Record", true, true, 0, "NO","YES" )
|
MenuRow( ScreenEdit::pref_show_bgs_play, "Show BGChanges during Play/Record", true, EDIT_MODE_PRACTICE, 0, "NO","YES" )
|
||||||
);
|
);
|
||||||
|
|
||||||
static Menu g_InsertAttack(
|
static Menu g_InsertAttack(
|
||||||
"ScreenMiniMenuInsertAttack",
|
"ScreenMiniMenuInsertAttack",
|
||||||
MenuRow( -1, "Duration seconds", true, true, 3, "5","10","15","20","25","30","35","40","45" ),
|
MenuRow( -1, "Duration seconds", true, EDIT_MODE_PRACTICE, 3, "5","10","15","20","25","30","35","40","45" ),
|
||||||
MenuRow( -1, "Set modifiers", true, true, 0, "PRESS START" )
|
MenuRow( -1, "Set modifiers", true, EDIT_MODE_PRACTICE, 0, "PRESS START" )
|
||||||
);
|
);
|
||||||
|
|
||||||
static Menu g_CourseMode(
|
static Menu g_CourseMode(
|
||||||
"ScreenMiniMenuCourseDisplay",
|
"ScreenMiniMenuCourseDisplay",
|
||||||
MenuRow( -1, "Play mods from course", true, true, 0, NULL )
|
MenuRow( -1, "Play mods from course", true, EDIT_MODE_PRACTICE, 0, NULL )
|
||||||
);
|
);
|
||||||
|
|
||||||
// HACK: need to remember the track we're inserting on so
|
// HACK: need to remember the track we're inserting on so
|
||||||
@@ -525,8 +525,8 @@ void ScreenEdit::Init()
|
|||||||
|
|
||||||
g_iShiftAnchor = -1;
|
g_iShiftAnchor = -1;
|
||||||
|
|
||||||
m_EditMode = MODE_INVALID;
|
m_EditState = STATE_INVALID;
|
||||||
TransitionEditMode( MODE_EDITING );
|
TransitionEditState( STATE_EDITING );
|
||||||
|
|
||||||
this->AddChild( &m_Background );
|
this->AddChild( &m_Background );
|
||||||
|
|
||||||
@@ -616,7 +616,7 @@ ScreenEdit::~ScreenEdit()
|
|||||||
// play assist ticks
|
// play assist ticks
|
||||||
void ScreenEdit::PlayTicks()
|
void ScreenEdit::PlayTicks()
|
||||||
{
|
{
|
||||||
if( !GAMESTATE->m_SongOptions.m_bAssistTick || m_EditMode != MODE_PLAYING )
|
if( !GAMESTATE->m_SongOptions.m_bAssistTick || m_EditState != STATE_PLAYING )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
/* Sound cards have a latency between when a sample is Play()ed and when the sound
|
/* Sound cards have a latency between when a sample is Play()ed and when the sound
|
||||||
@@ -673,7 +673,7 @@ void ScreenEdit::Update( float fDeltaTime )
|
|||||||
GAMESTATE->UpdateSongPosition( fSeconds, GAMESTATE->m_pCurSong->m_Timing, tm );
|
GAMESTATE->UpdateSongPosition( fSeconds, GAMESTATE->m_pCurSong->m_Timing, tm );
|
||||||
}
|
}
|
||||||
|
|
||||||
if( m_EditMode == MODE_RECORDING )
|
if( m_EditState == STATE_RECORDING )
|
||||||
{
|
{
|
||||||
// add or extend holds
|
// add or extend holds
|
||||||
|
|
||||||
@@ -700,13 +700,13 @@ void ScreenEdit::Update( float fDeltaTime )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if( m_EditMode == MODE_RECORDING || m_EditMode == MODE_PLAYING )
|
if( m_EditState == STATE_RECORDING || m_EditState == STATE_PLAYING )
|
||||||
{
|
{
|
||||||
// check for end of playback/record
|
// check for end of playback/record
|
||||||
|
|
||||||
if( GAMESTATE->m_fSongBeat > NoteRowToBeat(m_NoteFieldEdit.m_iEndMarker) + 4 ) // give a one measure lead out
|
if( GAMESTATE->m_fSongBeat > NoteRowToBeat(m_NoteFieldEdit.m_iEndMarker) + 4 ) // give a one measure lead out
|
||||||
{
|
{
|
||||||
TransitionEditMode( MODE_EDITING );
|
TransitionEditState( STATE_EDITING );
|
||||||
GAMESTATE->m_fSongBeat = NoteRowToBeat( m_NoteFieldEdit.m_iEndMarker );
|
GAMESTATE->m_fSongBeat = NoteRowToBeat( m_NoteFieldEdit.m_iEndMarker );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -734,7 +734,7 @@ void ScreenEdit::UpdateTextInfo()
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
// Don't update the text during playback or record. It causes skips.
|
// Don't update the text during playback or record. It causes skips.
|
||||||
if( m_EditMode != MODE_EDITING )
|
if( m_EditState != STATE_EDITING )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if( !m_bTextInfoNeedsUpdate )
|
if( !m_bTextInfoNeedsUpdate )
|
||||||
@@ -755,10 +755,9 @@ void ScreenEdit::UpdateTextInfo()
|
|||||||
sText += ssprintf( "Current sec:\n %.3f\n", m_pSong->GetElapsedTimeFromBeat(GAMESTATE->m_fSongBeat) );
|
sText += ssprintf( "Current sec:\n %.3f\n", m_pSong->GetElapsedTimeFromBeat(GAMESTATE->m_fSongBeat) );
|
||||||
sText += ssprintf( "Snap to:\n %s\n", sNoteType.c_str() );
|
sText += ssprintf( "Snap to:\n %s\n", sNoteType.c_str() );
|
||||||
sText += ssprintf( "Selection beat:\n %s\n %s\n", m_NoteFieldEdit.m_iBeginMarker==-1 ? "----" : ssprintf("%.3f",NoteRowToBeat(m_NoteFieldEdit.m_iBeginMarker)).c_str(), m_NoteFieldEdit.m_iEndMarker==-1 ? "----" : ssprintf("%.3f",NoteRowToBeat(m_NoteFieldEdit.m_iEndMarker)).c_str() );
|
sText += ssprintf( "Selection beat:\n %s\n %s\n", m_NoteFieldEdit.m_iBeginMarker==-1 ? "----" : ssprintf("%.3f",NoteRowToBeat(m_NoteFieldEdit.m_iBeginMarker)).c_str(), m_NoteFieldEdit.m_iEndMarker==-1 ? "----" : ssprintf("%.3f",NoteRowToBeat(m_NoteFieldEdit.m_iEndMarker)).c_str() );
|
||||||
if( !HOME_EDIT_MODE )
|
if( EDIT_MODE == EDIT_MODE_FULL )
|
||||||
sText += ssprintf( "Difficulty:\n %s\n", DifficultyToString( m_pSteps->GetDifficulty() ).c_str() );
|
|
||||||
if( !HOME_EDIT_MODE )
|
|
||||||
{
|
{
|
||||||
|
sText += ssprintf( "Difficulty:\n %s\n", DifficultyToString( m_pSteps->GetDifficulty() ).c_str() );
|
||||||
sText += ssprintf( "Description:\n %s\n", GAMESTATE->m_pCurSteps[PLAYER_1] ? GAMESTATE->m_pCurSteps[PLAYER_1]->GetDescription().c_str() : "no description" );
|
sText += ssprintf( "Description:\n %s\n", GAMESTATE->m_pCurSteps[PLAYER_1] ? GAMESTATE->m_pCurSteps[PLAYER_1]->GetDescription().c_str() : "no description" );
|
||||||
sText += ssprintf( "Main title:\n %s\n", m_pSong->m_sMainTitle.c_str() );
|
sText += ssprintf( "Main title:\n %s\n", m_pSong->m_sMainTitle.c_str() );
|
||||||
sText += ssprintf( "Sub title:\n %s\n", m_pSong->m_sSubTitle.c_str() );
|
sText += ssprintf( "Sub title:\n %s\n", m_pSong->m_sSubTitle.c_str() );
|
||||||
@@ -768,12 +767,12 @@ void ScreenEdit::UpdateTextInfo()
|
|||||||
sText += ssprintf( "Hands:\n %d\n", iNumHands );
|
sText += ssprintf( "Hands:\n %d\n", iNumHands );
|
||||||
sText += ssprintf( "Holds:\n %d\n", iNumHolds );
|
sText += ssprintf( "Holds:\n %d\n", iNumHolds );
|
||||||
sText += ssprintf( "Mines:\n %d\n", iNumMines );
|
sText += ssprintf( "Mines:\n %d\n", iNumMines );
|
||||||
if( !HOME_EDIT_MODE )
|
if( EDIT_MODE == EDIT_MODE_FULL )
|
||||||
|
{
|
||||||
sText += ssprintf( "Beat 0 Offset:\n %.3f secs\n", m_pSong->m_Timing.m_fBeat0OffsetInSeconds );
|
sText += ssprintf( "Beat 0 Offset:\n %.3f secs\n", m_pSong->m_Timing.m_fBeat0OffsetInSeconds );
|
||||||
if( !HOME_EDIT_MODE )
|
|
||||||
sText += ssprintf( "Preview Start:\n %.2f secs\n", m_pSong->m_fMusicSampleStartSeconds );
|
sText += ssprintf( "Preview Start:\n %.2f secs\n", m_pSong->m_fMusicSampleStartSeconds );
|
||||||
if( !HOME_EDIT_MODE )
|
|
||||||
sText += ssprintf( "Preview Length:\n %.2f secs\n",m_pSong->m_fMusicSampleLengthSeconds );
|
sText += ssprintf( "Preview Length:\n %.2f secs\n",m_pSong->m_fMusicSampleLengthSeconds );
|
||||||
|
}
|
||||||
|
|
||||||
m_textInfo.SetText( sText );
|
m_textInfo.SetText( sText );
|
||||||
}
|
}
|
||||||
@@ -800,16 +799,16 @@ void ScreenEdit::Input( const DeviceInput& DeviceI, const InputEventType type, c
|
|||||||
|
|
||||||
EditButton EditB;
|
EditButton EditB;
|
||||||
DeviceToEdit( di, EditB );
|
DeviceToEdit( di, EditB );
|
||||||
switch( m_EditMode )
|
switch( m_EditState )
|
||||||
{
|
{
|
||||||
case MODE_EDITING:
|
case STATE_EDITING:
|
||||||
InputEdit( di, type, GameI, MenuI, StyleI, EditB );
|
InputEdit( di, type, GameI, MenuI, StyleI, EditB );
|
||||||
m_bTextInfoNeedsUpdate = true;
|
m_bTextInfoNeedsUpdate = true;
|
||||||
break;
|
break;
|
||||||
case MODE_RECORDING:
|
case STATE_RECORDING:
|
||||||
InputRecord( di, type, GameI, MenuI, StyleI, EditB );
|
InputRecord( di, type, GameI, MenuI, StyleI, EditB );
|
||||||
break;
|
break;
|
||||||
case MODE_PLAYING:
|
case STATE_PLAYING:
|
||||||
InputPlay( di, type, GameI, MenuI, StyleI, EditB );
|
InputPlay( di, type, GameI, MenuI, StyleI, EditB );
|
||||||
break;
|
break;
|
||||||
default: ASSERT(0);
|
default: ASSERT(0);
|
||||||
@@ -1350,7 +1349,7 @@ void ScreenEdit::InputRecord( const DeviceInput& DeviceI, const InputEventType t
|
|||||||
{
|
{
|
||||||
if( EditB == EDIT_BUTTON_RETURN_TO_EDIT )
|
if( EditB == EDIT_BUTTON_RETURN_TO_EDIT )
|
||||||
{
|
{
|
||||||
TransitionEditMode( MODE_EDITING );
|
TransitionEditState( STATE_EDITING );
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1397,7 +1396,7 @@ void ScreenEdit::InputPlay( const DeviceInput& DeviceI, const InputEventType typ
|
|||||||
switch( EditB )
|
switch( EditB )
|
||||||
{
|
{
|
||||||
case EDIT_BUTTON_RETURN_TO_EDIT:
|
case EDIT_BUTTON_RETURN_TO_EDIT:
|
||||||
TransitionEditMode( MODE_EDITING );
|
TransitionEditState( STATE_EDITING );
|
||||||
break;
|
break;
|
||||||
case EDIT_BUTTON_TOGGLE_ASSIST_TICK:
|
case EDIT_BUTTON_TOGGLE_ASSIST_TICK:
|
||||||
GAMESTATE->m_SongOptions.m_bAssistTick ^= 1;
|
GAMESTATE->m_SongOptions.m_bAssistTick ^= 1;
|
||||||
@@ -1443,13 +1442,13 @@ void ScreenEdit::InputPlay( const DeviceInput& DeviceI, const InputEventType typ
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void ScreenEdit::TransitionEditMode( EditMode em )
|
void ScreenEdit::TransitionEditState( EditState em )
|
||||||
{
|
{
|
||||||
EditMode old = m_EditMode;
|
EditState old = m_EditState;
|
||||||
|
|
||||||
switch( em )
|
switch( em )
|
||||||
{
|
{
|
||||||
case MODE_EDITING:
|
case STATE_EDITING:
|
||||||
m_sprOverlay->PlayCommand( "Edit" );
|
m_sprOverlay->PlayCommand( "Edit" );
|
||||||
|
|
||||||
/* Important: people will stop playing, change the BG and start again; make sure we reload */
|
/* Important: people will stop playing, change the BG and start again; make sure we reload */
|
||||||
@@ -1472,7 +1471,7 @@ void ScreenEdit::TransitionEditMode( EditMode em )
|
|||||||
GAMESTATE->RebuildPlayerOptionsFromActiveAttacks( PLAYER_1 );
|
GAMESTATE->RebuildPlayerOptionsFromActiveAttacks( PLAYER_1 );
|
||||||
GAMESTATE->m_pPlayerState[PLAYER_1]->m_CurrentPlayerOptions = GAMESTATE->m_pPlayerState[PLAYER_1]->m_PlayerOptions;
|
GAMESTATE->m_pPlayerState[PLAYER_1]->m_CurrentPlayerOptions = GAMESTATE->m_pPlayerState[PLAYER_1]->m_PlayerOptions;
|
||||||
|
|
||||||
if( old == MODE_RECORDING )
|
if( old == STATE_RECORDING )
|
||||||
{
|
{
|
||||||
SaveUndo();
|
SaveUndo();
|
||||||
|
|
||||||
@@ -1484,9 +1483,9 @@ void ScreenEdit::TransitionEditMode( EditMode em )
|
|||||||
CheckNumberOfNotesAndUndo();
|
CheckNumberOfNotesAndUndo();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case MODE_RECORDING:
|
case STATE_RECORDING:
|
||||||
break;
|
break;
|
||||||
case MODE_PLAYING:
|
case STATE_PLAYING:
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
ASSERT(0);
|
ASSERT(0);
|
||||||
@@ -1496,26 +1495,26 @@ void ScreenEdit::TransitionEditMode( EditMode em )
|
|||||||
//
|
//
|
||||||
// Show/hide depending on em
|
// Show/hide depending on em
|
||||||
//
|
//
|
||||||
m_Background.SetHidden( !PREFSMAN->m_bEditorShowBGChangesPlay || em == MODE_EDITING );
|
m_Background.SetHidden( !PREFSMAN->m_bEditorShowBGChangesPlay || em == STATE_EDITING );
|
||||||
m_sprUnderlay->SetHidden( em != MODE_EDITING );
|
m_sprUnderlay->SetHidden( em != STATE_EDITING );
|
||||||
m_sprOverlay->SetHidden( em != MODE_EDITING );
|
m_sprOverlay->SetHidden( em != STATE_EDITING );
|
||||||
m_textInputTips.SetHidden( em != MODE_EDITING );
|
m_textInputTips.SetHidden( em != STATE_EDITING );
|
||||||
m_textInfo.SetHidden( em != MODE_EDITING );
|
m_textInfo.SetHidden( em != STATE_EDITING );
|
||||||
// Play the OnCommands again so that these will be re-hidden if the OnCommand hides them.
|
// Play the OnCommands again so that these will be re-hidden if the OnCommand hides them.
|
||||||
if( em == MODE_EDITING )
|
if( em == STATE_EDITING )
|
||||||
{
|
{
|
||||||
m_textInputTips.PlayCommand( "On" );
|
m_textInputTips.PlayCommand( "On" );
|
||||||
m_textInfo.PlayCommand( "On" );
|
m_textInfo.PlayCommand( "On" );
|
||||||
}
|
}
|
||||||
m_textPlayRecordHelp.SetHidden( em == MODE_EDITING );
|
m_textPlayRecordHelp.SetHidden( em == STATE_EDITING );
|
||||||
m_SnapDisplay.SetHidden( em != MODE_EDITING );
|
m_SnapDisplay.SetHidden( em != STATE_EDITING );
|
||||||
m_NoteFieldEdit.SetHidden( em != MODE_EDITING );
|
m_NoteFieldEdit.SetHidden( em != STATE_EDITING );
|
||||||
m_NoteFieldRecord.SetHidden( em != MODE_RECORDING );
|
m_NoteFieldRecord.SetHidden( em != STATE_RECORDING );
|
||||||
m_Player.SetHidden( em != MODE_PLAYING );
|
m_Player.SetHidden( em != STATE_PLAYING );
|
||||||
m_Foreground.SetHidden( !PREFSMAN->m_bEditorShowBGChangesPlay || em == MODE_EDITING );
|
m_Foreground.SetHidden( !PREFSMAN->m_bEditorShowBGChangesPlay || em == STATE_EDITING );
|
||||||
|
|
||||||
|
|
||||||
m_EditMode = em;
|
m_EditState = em;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ScreenEdit::HandleScreenMessage( const ScreenMessage SM )
|
void ScreenEdit::HandleScreenMessage( const ScreenMessage SM )
|
||||||
@@ -1773,10 +1772,11 @@ void ScreenEdit::HandleMainMenuChoice( MainMenuChoice c, const vector<int> &iAns
|
|||||||
float fMusicSeconds = m_soundMusic.GetLengthSeconds();
|
float fMusicSeconds = m_soundMusic.GetLengthSeconds();
|
||||||
|
|
||||||
g_StepsInformation.rows[difficulty].iDefaultChoice = pSteps->GetDifficulty();
|
g_StepsInformation.rows[difficulty].iDefaultChoice = pSteps->GetDifficulty();
|
||||||
g_StepsInformation.rows[difficulty].bEnabled = !HOME_EDIT_MODE;
|
g_StepsInformation.rows[difficulty].bEnabled = EDIT_MODE == EDIT_MODE_FULL;
|
||||||
|
g_StepsInformation.rows[difficulty].bEnabled = EDIT_MODE <= EDIT_MODE_HOME;
|
||||||
g_StepsInformation.rows[meter].iDefaultChoice = clamp( pSteps->GetMeter()-1, 0, MAX_METER+1 );
|
g_StepsInformation.rows[meter].iDefaultChoice = clamp( pSteps->GetMeter()-1, 0, MAX_METER+1 );
|
||||||
g_StepsInformation.rows[predict_meter].choices.resize(1);g_StepsInformation.rows[predict_meter].choices[0] = ssprintf("%.2f",pSteps->PredictMeter());
|
g_StepsInformation.rows[predict_meter].choices.resize(1);g_StepsInformation.rows[predict_meter].choices[0] = ssprintf("%.2f",pSteps->PredictMeter());
|
||||||
g_StepsInformation.rows[description].choices.resize(1); g_StepsInformation.rows[description].choices[0] = pSteps->GetDescription(); g_StepsInformation.rows[description].bEnabled = !HOME_EDIT_MODE;
|
g_StepsInformation.rows[description].choices.resize(1); g_StepsInformation.rows[description].choices[0] = pSteps->GetDescription(); g_StepsInformation.rows[description].bEnabled = EDIT_MODE == EDIT_MODE_FULL;
|
||||||
g_StepsInformation.rows[tap_notes].choices.resize(1); g_StepsInformation.rows[tap_notes].choices[0] = ssprintf("%d", m_NoteDataEdit.GetNumTapNotes());
|
g_StepsInformation.rows[tap_notes].choices.resize(1); g_StepsInformation.rows[tap_notes].choices[0] = ssprintf("%d", m_NoteDataEdit.GetNumTapNotes());
|
||||||
g_StepsInformation.rows[jumps].choices.resize(1); g_StepsInformation.rows[jumps].choices[0] = ssprintf("%d", m_NoteDataEdit.GetNumJumps());
|
g_StepsInformation.rows[jumps].choices.resize(1); g_StepsInformation.rows[jumps].choices[0] = ssprintf("%d", m_NoteDataEdit.GetNumJumps());
|
||||||
g_StepsInformation.rows[hands].choices.resize(1); g_StepsInformation.rows[hands].choices[0] = ssprintf("%d", m_NoteDataEdit.GetNumHands());
|
g_StepsInformation.rows[hands].choices.resize(1); g_StepsInformation.rows[hands].choices[0] = ssprintf("%d", m_NoteDataEdit.GetNumHands());
|
||||||
@@ -1818,34 +1818,43 @@ void ScreenEdit::HandleMainMenuChoice( MainMenuChoice c, const vector<int> &iAns
|
|||||||
pSteps->SetNoteData( m_NoteDataEdit );
|
pSteps->SetNoteData( m_NoteDataEdit );
|
||||||
pSteps->CalculateRadarValues( pSong->m_fMusicLengthSeconds );
|
pSteps->CalculateRadarValues( pSong->m_fMusicLengthSeconds );
|
||||||
|
|
||||||
if( HOME_EDIT_MODE )
|
switch( EDIT_MODE )
|
||||||
{
|
{
|
||||||
CString s;
|
case EDIT_MODE_HOME:
|
||||||
switch( c )
|
|
||||||
{
|
{
|
||||||
case save: s = "ScreenMemcardSaveEditsAfterSave"; break;
|
CString s;
|
||||||
case save_on_exit: s = "ScreenMemcardSaveEditsAfterExit"; break;
|
switch( c )
|
||||||
default: ASSERT(0);
|
{
|
||||||
|
case save: s = "ScreenMemcardSaveEditsAfterSave"; break;
|
||||||
|
case save_on_exit: s = "ScreenMemcardSaveEditsAfterExit"; break;
|
||||||
|
default: ASSERT(0);
|
||||||
|
}
|
||||||
|
SCREENMAN->AddNewScreenToTop( s );
|
||||||
}
|
}
|
||||||
SCREENMAN->AddNewScreenToTop( s );
|
break;
|
||||||
}
|
case EDIT_MODE_FULL:
|
||||||
else
|
{
|
||||||
{
|
pSteps->SetSavedToDisk( true );
|
||||||
pSteps->SetSavedToDisk( true );
|
CopyToLastSave();
|
||||||
CopyToLastSave();
|
|
||||||
|
|
||||||
GAMESTATE->m_pCurSong->Save();
|
GAMESTATE->m_pCurSong->Save();
|
||||||
SCREENMAN->ZeroNextUpdate();
|
SCREENMAN->ZeroNextUpdate();
|
||||||
|
|
||||||
// we shouldn't say we're saving a DWI if we're on any game besides
|
// we shouldn't say we're saving a DWI if we're on any game besides
|
||||||
// dance, it just looks tacky and people may be wondering where the
|
// dance, it just looks tacky and people may be wondering where the
|
||||||
// DWI file is :-)
|
// DWI file is :-)
|
||||||
if ((int)pSteps->m_StepsType <= (int)STEPS_TYPE_DANCE_SOLO)
|
if ((int)pSteps->m_StepsType <= (int)STEPS_TYPE_DANCE_SOLO)
|
||||||
SCREENMAN->SystemMessage( "Saved as SM and DWI." );
|
SCREENMAN->SystemMessage( "Saved as SM and DWI." );
|
||||||
else
|
else
|
||||||
SCREENMAN->SystemMessage( "Saved as SM." );
|
SCREENMAN->SystemMessage( "Saved as SM." );
|
||||||
|
|
||||||
HandleScreenMessage( SM_Success );
|
HandleScreenMessage( SM_Success );
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case EDIT_MODE_PRACTICE:
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
ASSERT(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
m_soundSave.Play();
|
m_soundSave.Play();
|
||||||
@@ -2013,10 +2022,21 @@ void ScreenEdit::HandleMainMenuChoice( MainMenuChoice c, const vector<int> &iAns
|
|||||||
PlayPreviewMusic();
|
PlayPreviewMusic();
|
||||||
break;
|
break;
|
||||||
case exit:
|
case exit:
|
||||||
SCREENMAN->Prompt(
|
switch( EDIT_MODE )
|
||||||
SM_DoSaveAndExit,
|
{
|
||||||
"Do you want to save changes before exiting?",
|
case EDIT_MODE_FULL:
|
||||||
PROMPT_YES_NO_CANCEL, ANSWER_CANCEL );
|
case EDIT_MODE_HOME:
|
||||||
|
SCREENMAN->Prompt(
|
||||||
|
SM_DoSaveAndExit,
|
||||||
|
"Do you want to save changes before exiting?",
|
||||||
|
PROMPT_YES_NO_CANCEL, ANSWER_CANCEL );
|
||||||
|
break;
|
||||||
|
case EDIT_MODE_PRACTICE:
|
||||||
|
SCREENMAN->SendMessageToTopScreen( SM_DoExit );
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
ASSERT(0);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
ASSERT(0);
|
ASSERT(0);
|
||||||
@@ -2271,7 +2291,7 @@ void ScreenEdit::HandleAreaMenuChoice( AreaMenuChoice c, const vector<int> &iAns
|
|||||||
|
|
||||||
SOUND->PlayMusic("");
|
SOUND->PlayMusic("");
|
||||||
|
|
||||||
TransitionEditMode( MODE_PLAYING );
|
TransitionEditState( STATE_PLAYING );
|
||||||
m_sprOverlay->PlayCommand( "Play" );
|
m_sprOverlay->PlayCommand( "Play" );
|
||||||
|
|
||||||
GAMESTATE->m_bPastHereWeGo = true;
|
GAMESTATE->m_bPastHereWeGo = true;
|
||||||
@@ -2323,7 +2343,7 @@ void ScreenEdit::HandleAreaMenuChoice( AreaMenuChoice c, const vector<int> &iAns
|
|||||||
|
|
||||||
SOUND->PlayMusic("");
|
SOUND->PlayMusic("");
|
||||||
|
|
||||||
TransitionEditMode( MODE_RECORDING );
|
TransitionEditState( STATE_RECORDING );
|
||||||
m_sprOverlay->PlayCommand( "Record" );
|
m_sprOverlay->PlayCommand( "Record" );
|
||||||
GAMESTATE->m_bPastHereWeGo = true;
|
GAMESTATE->m_bPastHereWeGo = true;
|
||||||
|
|
||||||
|
|||||||
@@ -139,8 +139,8 @@ public:
|
|||||||
protected:
|
protected:
|
||||||
ThemeMetric<CString> PREV_SCREEN;
|
ThemeMetric<CString> PREV_SCREEN;
|
||||||
|
|
||||||
enum EditMode { MODE_EDITING, MODE_RECORDING, MODE_PLAYING, NUM_EDIT_MODES, MODE_INVALID };
|
enum EditState { STATE_EDITING, STATE_RECORDING, STATE_PLAYING, NUM_EDIT_STATES, STATE_INVALID };
|
||||||
void TransitionEditMode( EditMode em );
|
void TransitionEditState( EditState em );
|
||||||
void PlayTicks();
|
void PlayTicks();
|
||||||
void PlayPreviewMusic();
|
void PlayPreviewMusic();
|
||||||
|
|
||||||
@@ -160,7 +160,7 @@ protected:
|
|||||||
float GetMaximumBeatForMoving() const; // don't allow Down key to go past this beat.
|
float GetMaximumBeatForMoving() const; // don't allow Down key to go past this beat.
|
||||||
|
|
||||||
|
|
||||||
EditMode m_EditMode;
|
EditState m_EditState;
|
||||||
|
|
||||||
Song* m_pSong;
|
Song* m_pSong;
|
||||||
Steps* m_pSteps;
|
Steps* m_pSteps;
|
||||||
|
|||||||
@@ -62,7 +62,7 @@ void DeleteCurSteps( void* pThrowAway )
|
|||||||
Song* pSong = GAMESTATE->m_pCurSong;
|
Song* pSong = GAMESTATE->m_pCurSong;
|
||||||
Steps* pStepsToDelete = GAMESTATE->m_pCurSteps[PLAYER_1];
|
Steps* pStepsToDelete = GAMESTATE->m_pCurSteps[PLAYER_1];
|
||||||
pSong->RemoveSteps( pStepsToDelete );
|
pSong->RemoveSteps( pStepsToDelete );
|
||||||
if( !HOME_EDIT_MODE )
|
if( EDIT_MODE == EDIT_MODE_FULL )
|
||||||
{
|
{
|
||||||
pSong->Save();
|
pSong->Save();
|
||||||
SCREENMAN->ZeroNextUpdate();
|
SCREENMAN->ZeroNextUpdate();
|
||||||
@@ -224,13 +224,16 @@ void ScreenEditMenu::MenuStart( PlayerNumber pn )
|
|||||||
break;
|
break;
|
||||||
case EDIT_MENU_ACTION_DELETE:
|
case EDIT_MENU_ACTION_DELETE:
|
||||||
ASSERT( pSteps );
|
ASSERT( pSteps );
|
||||||
if( HOME_EDIT_MODE )
|
switch( EDIT_MODE )
|
||||||
{
|
{
|
||||||
|
case EDIT_MODE_HOME:
|
||||||
SCREENMAN->AddNewScreenToTop( "ScreenEditMenuDeleteSteps" );
|
SCREENMAN->AddNewScreenToTop( "ScreenEditMenuDeleteSteps" );
|
||||||
}
|
break;
|
||||||
else
|
case EDIT_MODE_FULL:
|
||||||
{
|
|
||||||
SCREENMAN->Prompt( SM_RefreshSelector, "These steps will be lost permanently.\n\nContinue with delete?", PROMPT_YES_NO, ANSWER_NO, DeleteCurSteps );
|
SCREENMAN->Prompt( SM_RefreshSelector, "These steps will be lost permanently.\n\nContinue with delete?", PROMPT_YES_NO, ANSWER_NO, DeleteCurSteps );
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
ASSERT(0);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case EDIT_MENU_ACTION_CREATE:
|
case EDIT_MENU_ACTION_CREATE:
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ void ScreenMiniMenu::Init( const Menu* pDef, ScreenMessage SM_SendOnOK, ScreenMe
|
|||||||
FOREACH_CONST( MenuRow, pDef->rows, r )
|
FOREACH_CONST( MenuRow, pDef->rows, r )
|
||||||
{
|
{
|
||||||
// Don't add rows that aren't applicable to HomeEditMode.
|
// Don't add rows that aren't applicable to HomeEditMode.
|
||||||
if( !HOME_EDIT_MODE || r->bShowInHomeEditMode )
|
if( EDIT_MODE >= r->emShowIn )
|
||||||
m_vMenuRows.push_back( *r );
|
m_vMenuRows.push_back( *r );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -15,14 +15,14 @@ struct MenuRow
|
|||||||
int iRowCode;
|
int iRowCode;
|
||||||
CString sName;
|
CString sName;
|
||||||
bool bEnabled;
|
bool bEnabled;
|
||||||
bool bShowInHomeEditMode;
|
EditMode emShowIn;
|
||||||
int iDefaultChoice;
|
int iDefaultChoice;
|
||||||
vector<CString> choices;
|
vector<CString> choices;
|
||||||
|
|
||||||
MenuRow() {}
|
MenuRow() {}
|
||||||
MenuRow( int r, CString n, bool e, bool s, int d, const char *c0=NULL, const char *c1=NULL, const char *c2=NULL, const char *c3=NULL, const char *c4=NULL, const char *c5=NULL, const char *c6=NULL, const char *c7=NULL, const char *c8=NULL, const char *c9=NULL, const char *c10=NULL, const char *c11=NULL, const char *c12=NULL, const char *c13=NULL, const char *c14=NULL, const char *c15=NULL, const char *c16=NULL, const char *c17=NULL, const char *c18=NULL, const char *c19=NULL )
|
MenuRow( int r, CString n, bool e, EditMode s, int d, const char *c0=NULL, const char *c1=NULL, const char *c2=NULL, const char *c3=NULL, const char *c4=NULL, const char *c5=NULL, const char *c6=NULL, const char *c7=NULL, const char *c8=NULL, const char *c9=NULL, const char *c10=NULL, const char *c11=NULL, const char *c12=NULL, const char *c13=NULL, const char *c14=NULL, const char *c15=NULL, const char *c16=NULL, const char *c17=NULL, const char *c18=NULL, const char *c19=NULL )
|
||||||
{
|
{
|
||||||
iRowCode = r; sName = n; bEnabled = e; bShowInHomeEditMode = s; iDefaultChoice = d;
|
iRowCode = r; sName = n; bEnabled = e; emShowIn = s; iDefaultChoice = d;
|
||||||
#define PUSH( c ) if(c) choices.push_back(c);
|
#define PUSH( c ) if(c) choices.push_back(c);
|
||||||
PUSH(c0);PUSH(c1);PUSH(c2);PUSH(c3);PUSH(c4);PUSH(c5);PUSH(c6);PUSH(c7);PUSH(c8);PUSH(c9);PUSH(c10);PUSH(c11);PUSH(c12);PUSH(c13);PUSH(c14);PUSH(c15);PUSH(c16);PUSH(c17);PUSH(c18);PUSH(c19);
|
PUSH(c0);PUSH(c1);PUSH(c2);PUSH(c3);PUSH(c4);PUSH(c5);PUSH(c6);PUSH(c7);PUSH(c8);PUSH(c9);PUSH(c10);PUSH(c11);PUSH(c12);PUSH(c13);PUSH(c14);PUSH(c15);PUSH(c16);PUSH(c17);PUSH(c18);PUSH(c19);
|
||||||
#undef PUSH
|
#undef PUSH
|
||||||
|
|||||||
Reference in New Issue
Block a user