first pass at merging CourseDifficulty into Difficulty
CourseDifficulty names still exist, since it's useful to distinguish them in command names
This commit is contained in:
@@ -204,7 +204,7 @@ void BPMDisplay::SetBPM( const Course* pCourse )
|
|||||||
ASSERT( pCourse );
|
ASSERT( pCourse );
|
||||||
|
|
||||||
StepsType st = GAMESTATE->GetCurrentStyleDef()->m_StepsType;
|
StepsType st = GAMESTATE->GetCurrentStyleDef()->m_StepsType;
|
||||||
Trail *pTrail = pCourse->GetTrail( st, COURSE_DIFFICULTY_REGULAR );
|
Trail *pTrail = pCourse->GetTrail( st );
|
||||||
ASSERT( pTrail );
|
ASSERT( pTrail );
|
||||||
|
|
||||||
DisplayBpms bpms;
|
DisplayBpms bpms;
|
||||||
|
|||||||
+23
-16
@@ -21,7 +21,7 @@
|
|||||||
#include "Foreach.h"
|
#include "Foreach.h"
|
||||||
|
|
||||||
/* Amount to increase meter ranges to make them difficult: */
|
/* Amount to increase meter ranges to make them difficult: */
|
||||||
const int COURSE_DIFFICULTY_CLASS_CHANGE[NUM_COURSE_DIFFICULTIES] = { -1, 0, 1 };
|
const int COURSE_DIFFICULTY_CLASS_CHANGE[NUM_DIFFICULTIES] = { -1, -1, 0, 1, 1 };
|
||||||
|
|
||||||
/* Maximum lower value of ranges when difficult: */
|
/* Maximum lower value of ranges when difficult: */
|
||||||
const int MAX_BOTTOM_RANGE = 10;
|
const int MAX_BOTTOM_RANGE = 10;
|
||||||
@@ -91,11 +91,11 @@ void Course::LoadFromCRSFile( CString sPath )
|
|||||||
else if( 0 == stricmp(sValueName, "METER") )
|
else if( 0 == stricmp(sValueName, "METER") )
|
||||||
{
|
{
|
||||||
if( sParams.params.size() == 2 )
|
if( sParams.params.size() == 2 )
|
||||||
m_iCustomMeter[COURSE_DIFFICULTY_REGULAR] = atoi( sParams[1] ); /* compat */
|
m_iCustomMeter[DIFFICULTY_MEDIUM] = atoi( sParams[1] ); /* compat */
|
||||||
else if( sParams.params.size() == 3 )
|
else if( sParams.params.size() == 3 )
|
||||||
{
|
{
|
||||||
const CourseDifficulty cd = StringToCourseDifficulty( sParams[1] );
|
const CourseDifficulty cd = StringToCourseDifficulty( sParams[1] );
|
||||||
if( cd == COURSE_DIFFICULTY_INVALID )
|
if( cd == DIFFICULTY_INVALID )
|
||||||
{
|
{
|
||||||
LOG->Warn( "Course file '%s' contains an invalid #METER string: \"%s\"",
|
LOG->Warn( "Course file '%s' contains an invalid #METER string: \"%s\"",
|
||||||
m_sPath.c_str(), sParams[1].c_str() );
|
m_sPath.c_str(), sParams[1].c_str() );
|
||||||
@@ -472,7 +472,7 @@ void Course::AutogenOniFromArtist( CString sArtistName, CString sArtistNameTrans
|
|||||||
|
|
||||||
bool Course::IsPlayableIn( StepsType st ) const
|
bool Course::IsPlayableIn( StepsType st ) const
|
||||||
{
|
{
|
||||||
return GetTrail( st, COURSE_DIFFICULTY_REGULAR ) != NULL;
|
return GetTrail( st ) != NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
static vector<Song*> GetFilteredBestSongs( StepsType st )
|
static vector<Song*> GetFilteredBestSongs( StepsType st )
|
||||||
@@ -533,7 +533,7 @@ CString Course::GetDisplayName() const
|
|||||||
* course difficulty doesn't exist, NULL is returned. */
|
* course difficulty doesn't exist, NULL is returned. */
|
||||||
Trail* Course::GetTrail( StepsType st, CourseDifficulty cd ) const
|
Trail* Course::GetTrail( StepsType st, CourseDifficulty cd ) const
|
||||||
{
|
{
|
||||||
ASSERT( cd != COURSE_DIFFICULTY_INVALID );
|
ASSERT( cd != DIFFICULTY_INVALID );
|
||||||
|
|
||||||
//
|
//
|
||||||
// Look in the Trail cache
|
// Look in the Trail cache
|
||||||
@@ -570,16 +570,16 @@ bool Course::GetTrailSorted( StepsType st, CourseDifficulty cd, Trail &trail ) c
|
|||||||
|
|
||||||
if( this->m_bSortByMeter )
|
if( this->m_bSortByMeter )
|
||||||
{
|
{
|
||||||
/* Sort according to COURSE_DIFFICULTY_REGULAR, since the order of songs
|
/* Sort according to DIFFICULTY_MEDIUM, since the order of songs
|
||||||
* must not change across difficulties. */
|
* must not change across difficulties. */
|
||||||
Trail SortTrail;
|
Trail SortTrail;
|
||||||
if( cd == COURSE_DIFFICULTY_REGULAR )
|
if( cd == DIFFICULTY_MEDIUM )
|
||||||
SortTrail = trail;
|
SortTrail = trail;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
bool bOK = GetTrailUnsorted( st, COURSE_DIFFICULTY_REGULAR, SortTrail );
|
bool bOK = GetTrailUnsorted( st, DIFFICULTY_MEDIUM, SortTrail );
|
||||||
|
|
||||||
/* If we have any other difficulty, we must have COURSE_DIFFICULTY_REGULAR. */
|
/* If we have any other difficulty, we must have DIFFICULTY_MEDIUM. */
|
||||||
ASSERT( bOK );
|
ASSERT( bOK );
|
||||||
}
|
}
|
||||||
ASSERT_M( trail.m_vEntries.size() == SortTrail.m_vEntries.size(),
|
ASSERT_M( trail.m_vEntries.size() == SortTrail.m_vEntries.size(),
|
||||||
@@ -606,6 +606,13 @@ bool Course::GetTrailUnsorted( StepsType st, CourseDifficulty cd, Trail &trail )
|
|||||||
{
|
{
|
||||||
trail.Init();
|
trail.Init();
|
||||||
|
|
||||||
|
switch( cd )
|
||||||
|
{
|
||||||
|
case DIFFICULTY_BEGINNER:
|
||||||
|
case DIFFICULTY_CHALLENGE:
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Construct a new Trail, add it to the cache, then return it.
|
// Construct a new Trail, add it to the cache, then return it.
|
||||||
//
|
//
|
||||||
@@ -637,13 +644,13 @@ bool Course::GetTrailUnsorted( StepsType st, CourseDifficulty cd, Trail &trail )
|
|||||||
trail.m_CourseDifficulty = cd;
|
trail.m_CourseDifficulty = cd;
|
||||||
|
|
||||||
/* Set to true if CourseDifficulty is able to change something. */
|
/* Set to true if CourseDifficulty is able to change something. */
|
||||||
bool bCourseDifficultyIsSignificant = (cd == COURSE_DIFFICULTY_REGULAR);
|
bool bCourseDifficultyIsSignificant = (cd == DIFFICULTY_MEDIUM);
|
||||||
for( unsigned i=0; i<entries.size(); i++ )
|
for( unsigned i=0; i<entries.size(); i++ )
|
||||||
{
|
{
|
||||||
const CourseEntry &e = entries[i];
|
const CourseEntry &e = entries[i];
|
||||||
CourseDifficulty entry_difficulty = cd;
|
CourseDifficulty entry_difficulty = cd;
|
||||||
if( e.no_difficult && entry_difficulty == COURSE_DIFFICULTY_DIFFICULT )
|
if( e.no_difficult && entry_difficulty == DIFFICULTY_HARD )
|
||||||
entry_difficulty = COURSE_DIFFICULTY_REGULAR;
|
entry_difficulty = DIFFICULTY_MEDIUM;
|
||||||
|
|
||||||
Song* pSong = NULL; // fill this in
|
Song* pSong = NULL; // fill this in
|
||||||
Steps* pSteps = NULL; // fill this in
|
Steps* pSteps = NULL; // fill this in
|
||||||
@@ -744,7 +751,7 @@ bool Course::GetTrailUnsorted( StepsType st, CourseDifficulty cd, Trail &trail )
|
|||||||
continue; // this song entry isn't playable. Skip.
|
continue; // this song entry isn't playable. Skip.
|
||||||
|
|
||||||
Difficulty dc = pSteps->GetDifficulty();
|
Difficulty dc = pSteps->GetDifficulty();
|
||||||
if( entry_difficulty != COURSE_DIFFICULTY_REGULAR )
|
if( entry_difficulty != DIFFICULTY_MEDIUM )
|
||||||
{
|
{
|
||||||
/* See if we can find a NoteData after adjusting the difficulty by COURSE_DIFFICULTY_CLASS_CHANGE.
|
/* See if we can find a NoteData after adjusting the difficulty by COURSE_DIFFICULTY_CLASS_CHANGE.
|
||||||
* If we can't, just use the one we already have. */
|
* If we can't, just use the one we already have. */
|
||||||
@@ -810,7 +817,7 @@ bool Course::GetTrailUnsorted( StepsType st, CourseDifficulty cd, Trail &trail )
|
|||||||
trail.m_iSpecifiedMeter = m_iCustomMeter[cd];
|
trail.m_iSpecifiedMeter = m_iCustomMeter[cd];
|
||||||
|
|
||||||
/* If the course difficulty never actually changed anything, then this difficulty
|
/* If the course difficulty never actually changed anything, then this difficulty
|
||||||
* is equivalent to COURSE_DIFFICULTY_REGULAR; it doesn't exist. */
|
* is equivalent to DIFFICULTY_MEDIUM; it doesn't exist. */
|
||||||
return bCourseDifficultyIsSignificant;
|
return bCourseDifficultyIsSignificant;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -923,7 +930,7 @@ bool Course::GetTotalSeconds( StepsType st, float& fSecondsOut ) const
|
|||||||
if( !IsFixed() )
|
if( !IsFixed() )
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
Trail* pTrail = GetTrail( st, COURSE_DIFFICULTY_REGULAR );
|
Trail* pTrail = GetTrail( st, DIFFICULTY_MEDIUM );
|
||||||
|
|
||||||
fSecondsOut = pTrail->GetLengthSeconds();
|
fSecondsOut = pTrail->GetLengthSeconds();
|
||||||
return true;
|
return true;
|
||||||
@@ -967,7 +974,7 @@ void Course::UpdateCourseStats( StepsType st )
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
Trail* pTrail = GetTrail( st, COURSE_DIFFICULTY_REGULAR );
|
Trail* pTrail = GetTrail( st, DIFFICULTY_MEDIUM );
|
||||||
|
|
||||||
m_SortOrder_TotalDifficulty += pTrail->GetTotalMeter();
|
m_SortOrder_TotalDifficulty += pTrail->GetTotalMeter();
|
||||||
|
|
||||||
|
|||||||
@@ -85,7 +85,7 @@ public:
|
|||||||
bool m_bRepeat; // repeat after last song? "Endless"
|
bool m_bRepeat; // repeat after last song? "Endless"
|
||||||
bool m_bRandomize; // play the songs in a random order
|
bool m_bRandomize; // play the songs in a random order
|
||||||
int m_iLives; // -1 means use bar life meter
|
int m_iLives; // -1 means use bar life meter
|
||||||
int m_iCustomMeter[NUM_COURSE_DIFFICULTIES]; // -1 = no meter specified
|
int m_iCustomMeter[NUM_DIFFICULTIES]; // -1 = no meter specified
|
||||||
bool m_bSortByMeter;
|
bool m_bSortByMeter;
|
||||||
|
|
||||||
vector<CourseEntry> m_entries;
|
vector<CourseEntry> m_entries;
|
||||||
@@ -95,9 +95,9 @@ public:
|
|||||||
CString GetTranslitName() const { return m_sNameTranslit.size()? m_sNameTranslit: m_sName; }
|
CString GetTranslitName() const { return m_sNameTranslit.size()? m_sNameTranslit: m_sName; }
|
||||||
|
|
||||||
// Dereferences course_entries and returns only the playable Songs and Steps
|
// Dereferences course_entries and returns only the playable Songs and Steps
|
||||||
Trail* GetTrail( StepsType st, CourseDifficulty cd ) const;
|
Trail* GetTrail( StepsType st, CourseDifficulty cd=DIFFICULTY_MEDIUM ) const;
|
||||||
void GetTrails( vector<Trail*> &AddTo, StepsType st ) const;
|
void GetTrails( vector<Trail*> &AddTo, StepsType st ) const;
|
||||||
float GetMeter( StepsType st, CourseDifficulty cd ) const;
|
float GetMeter( StepsType st, CourseDifficulty cd=DIFFICULTY_MEDIUM ) const;
|
||||||
bool HasMods() const;
|
bool HasMods() const;
|
||||||
bool AllSongsAreFixed() const;
|
bool AllSongsAreFixed() const;
|
||||||
|
|
||||||
@@ -135,9 +135,9 @@ private:
|
|||||||
bool GetTrailUnsorted( StepsType st, CourseDifficulty cd, Trail &trail ) const;
|
bool GetTrailUnsorted( StepsType st, CourseDifficulty cd, Trail &trail ) const;
|
||||||
bool GetTrailSorted( StepsType st, CourseDifficulty cd, Trail &trail ) const;
|
bool GetTrailSorted( StepsType st, CourseDifficulty cd, Trail &trail ) const;
|
||||||
|
|
||||||
mutable Trail m_TrailCache[NUM_STEPS_TYPES][NUM_COURSE_DIFFICULTIES];
|
mutable Trail m_TrailCache[NUM_STEPS_TYPES][NUM_DIFFICULTIES];
|
||||||
mutable bool m_TrailCacheValid[NUM_STEPS_TYPES][NUM_COURSE_DIFFICULTIES];
|
mutable bool m_TrailCacheValid[NUM_STEPS_TYPES][NUM_DIFFICULTIES];
|
||||||
mutable bool m_TrailCacheNull[NUM_STEPS_TYPES][NUM_COURSE_DIFFICULTIES];
|
mutable bool m_TrailCacheNull[NUM_STEPS_TYPES][NUM_DIFFICULTIES];
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -149,7 +149,7 @@ void CourseUtil::SortCoursePointerArrayByAvgDifficulty( vector<Course*> &apCours
|
|||||||
course_sort_val.clear();
|
course_sort_val.clear();
|
||||||
for(unsigned i = 0; i < apCourses.size(); ++i)
|
for(unsigned i = 0; i < apCourses.size(); ++i)
|
||||||
{
|
{
|
||||||
Trail* pTrail = apCourses[i]->GetTrail( GAMESTATE->GetCurrentStyleDef()->m_StepsType, COURSE_DIFFICULTY_REGULAR );
|
Trail* pTrail = apCourses[i]->GetTrail( GAMESTATE->GetCurrentStyleDef()->m_StepsType );
|
||||||
ASSERT( pTrail ); /* don't give unplayable courses! */
|
ASSERT( pTrail ); /* don't give unplayable courses! */
|
||||||
course_sort_val[apCourses[i]] = (float) pTrail->GetMeter();
|
course_sort_val[apCourses[i]] = (float) pTrail->GetMeter();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -43,11 +43,13 @@ Difficulty StringToDifficulty( const CString& sDC )
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static const CString CourseDifficultyNames[NUM_COURSE_DIFFICULTIES] =
|
static const CString CourseDifficultyNames[NUM_DIFFICULTIES] =
|
||||||
{
|
{
|
||||||
|
"(not used)",
|
||||||
"Easy",
|
"Easy",
|
||||||
"Regular",
|
"Regular",
|
||||||
"Difficult",
|
"Difficult",
|
||||||
|
"(not used)",
|
||||||
};
|
};
|
||||||
XToString( CourseDifficulty );
|
XToString( CourseDifficulty );
|
||||||
XToThemedString( CourseDifficulty );
|
XToThemedString( CourseDifficulty );
|
||||||
@@ -55,12 +57,12 @@ StringToX( CourseDifficulty );
|
|||||||
|
|
||||||
CourseDifficulty GetNextShownCourseDifficulty( CourseDifficulty cd )
|
CourseDifficulty GetNextShownCourseDifficulty( CourseDifficulty cd )
|
||||||
{
|
{
|
||||||
for( CourseDifficulty d=(CourseDifficulty)(cd+1); d<NUM_COURSE_DIFFICULTIES; ((int&)d)++ )
|
for( CourseDifficulty d=(CourseDifficulty)(cd+1); d<NUM_DIFFICULTIES; ((int&)d)++ )
|
||||||
{
|
{
|
||||||
if( GAMESTATE->IsCourseDifficultyShown(d) )
|
if( GAMESTATE->IsCourseDifficultyShown(d) )
|
||||||
return d;
|
return d;
|
||||||
}
|
}
|
||||||
return COURSE_DIFFICULTY_INVALID;
|
return DIFFICULTY_INVALID;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
@@ -23,22 +23,15 @@ CString DifficultyToThemedString( Difficulty dc );
|
|||||||
Difficulty StringToDifficulty( const CString& sDC );
|
Difficulty StringToDifficulty( const CString& sDC );
|
||||||
|
|
||||||
|
|
||||||
enum CourseDifficulty
|
typedef Difficulty CourseDifficulty;
|
||||||
{
|
#define FOREACH_CourseDifficulty FOREACH_Difficulty
|
||||||
COURSE_DIFFICULTY_EASY,
|
#define FOREACH_ShownCourseDifficulty( cd ) for( Difficulty cd=GetNextShownCourseDifficulty((CourseDifficulty)-1); cd!=DIFFICULTY_INVALID; cd=GetNextShownCourseDifficulty(cd) )
|
||||||
COURSE_DIFFICULTY_REGULAR,
|
|
||||||
COURSE_DIFFICULTY_DIFFICULT,
|
|
||||||
NUM_COURSE_DIFFICULTIES,
|
|
||||||
COURSE_DIFFICULTY_INVALID
|
|
||||||
};
|
|
||||||
#define FOREACH_CourseDifficulty( cd ) FOREACH_ENUM( CourseDifficulty, NUM_COURSE_DIFFICULTIES, cd )
|
|
||||||
#define FOREACH_ShownCourseDifficulty( cd ) for( CourseDifficulty cd=GetNextShownCourseDifficulty((CourseDifficulty)-1); cd!=COURSE_DIFFICULTY_INVALID; cd=GetNextShownCourseDifficulty(cd) )
|
|
||||||
|
|
||||||
const CString& CourseDifficultyToString( CourseDifficulty dc );
|
const CString& CourseDifficultyToString( Difficulty dc );
|
||||||
CString CourseDifficultyToThemedString( CourseDifficulty dc );
|
CString CourseDifficultyToThemedString( Difficulty dc );
|
||||||
CourseDifficulty StringToCourseDifficulty( const CString& sDC );
|
Difficulty StringToCourseDifficulty( const CString& sDC );
|
||||||
|
|
||||||
CourseDifficulty GetNextShownCourseDifficulty( CourseDifficulty pn );
|
Difficulty GetNextShownCourseDifficulty( Difficulty pn );
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|||||||
@@ -69,14 +69,8 @@ void DifficultyIcon::SetFromDifficulty( PlayerNumber pn, Difficulty dc )
|
|||||||
|
|
||||||
void DifficultyIcon::SetFromCourseDifficulty( PlayerNumber pn, CourseDifficulty cd )
|
void DifficultyIcon::SetFromCourseDifficulty( PlayerNumber pn, CourseDifficulty cd )
|
||||||
{
|
{
|
||||||
m_bBlank = false;
|
/* XXX remove */
|
||||||
switch( cd )
|
SetFromDifficulty( pn, cd );
|
||||||
{
|
|
||||||
case COURSE_DIFFICULTY_EASY: SetFromDifficulty(pn,DIFFICULTY_EASY); break;
|
|
||||||
case COURSE_DIFFICULTY_REGULAR: SetFromDifficulty(pn,DIFFICULTY_MEDIUM); break;
|
|
||||||
case COURSE_DIFFICULTY_DIFFICULT: SetFromDifficulty(pn,DIFFICULTY_HARD); break;
|
|
||||||
default: ASSERT(0);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
@@ -137,7 +137,7 @@ void DifficultyMeter::SetFromTrail( const Trail* pTrail )
|
|||||||
Unset();
|
Unset();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
/*
|
||||||
Difficulty FakeDifficulty;
|
Difficulty FakeDifficulty;
|
||||||
switch( pTrail->m_CourseDifficulty )
|
switch( pTrail->m_CourseDifficulty )
|
||||||
{
|
{
|
||||||
@@ -146,9 +146,9 @@ void DifficultyMeter::SetFromTrail( const Trail* pTrail )
|
|||||||
case COURSE_DIFFICULTY_DIFFICULT: FakeDifficulty = DIFFICULTY_HARD; break;
|
case COURSE_DIFFICULTY_DIFFICULT: FakeDifficulty = DIFFICULTY_HARD; break;
|
||||||
default: ASSERT(0);
|
default: ASSERT(0);
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
SetFromMeterAndDifficulty( pTrail->GetMeter(), FakeDifficulty );
|
SetFromMeterAndDifficulty( pTrail->GetMeter(), pTrail->m_CourseDifficulty );
|
||||||
SetDifficulty( DifficultyToString(FakeDifficulty) + "Course" );
|
SetDifficulty( CourseDifficultyToString(pTrail->m_CourseDifficulty) + "Course" );
|
||||||
}
|
}
|
||||||
|
|
||||||
void DifficultyMeter::Unset()
|
void DifficultyMeter::Unset()
|
||||||
|
|||||||
@@ -124,7 +124,7 @@ void GameState::Reset()
|
|||||||
FOREACH_PlayerNumber( p )
|
FOREACH_PlayerNumber( p )
|
||||||
{
|
{
|
||||||
m_PreferredDifficulty[p] = DIFFICULTY_INVALID;
|
m_PreferredDifficulty[p] = DIFFICULTY_INVALID;
|
||||||
m_PreferredCourseDifficulty[p] = COURSE_DIFFICULTY_REGULAR;
|
m_PreferredCourseDifficulty[p] = DIFFICULTY_MEDIUM;
|
||||||
}
|
}
|
||||||
m_SortOrder = SORT_INVALID;
|
m_SortOrder = SORT_INVALID;
|
||||||
m_PlayMode = PLAY_MODE_INVALID;
|
m_PlayMode = PLAY_MODE_INVALID;
|
||||||
@@ -273,7 +273,7 @@ void GameState::PlayersFinalized()
|
|||||||
m_SortOrder = pProfile->m_SortOrder;
|
m_SortOrder = pProfile->m_SortOrder;
|
||||||
if( pProfile->m_LastDifficulty != DIFFICULTY_INVALID )
|
if( pProfile->m_LastDifficulty != DIFFICULTY_INVALID )
|
||||||
m_PreferredDifficulty[pn] = pProfile->m_LastDifficulty;
|
m_PreferredDifficulty[pn] = pProfile->m_LastDifficulty;
|
||||||
if( pProfile->m_LastCourseDifficulty != COURSE_DIFFICULTY_INVALID )
|
if( pProfile->m_LastCourseDifficulty != DIFFICULTY_INVALID )
|
||||||
m_PreferredCourseDifficulty[pn] = pProfile->m_LastCourseDifficulty;
|
m_PreferredCourseDifficulty[pn] = pProfile->m_LastCourseDifficulty;
|
||||||
if( m_pPreferredSong == NULL && pProfile->m_pLastSong )
|
if( m_pPreferredSong == NULL && pProfile->m_pLastSong )
|
||||||
m_pPreferredSong = pProfile->m_pLastSong;
|
m_pPreferredSong = pProfile->m_pLastSong;
|
||||||
@@ -399,7 +399,7 @@ void GameState::SaveCurrentSettingsToProfile( PlayerNumber pn )
|
|||||||
pProfile->m_SortOrder = m_SortOrder;
|
pProfile->m_SortOrder = m_SortOrder;
|
||||||
if( m_PreferredDifficulty[pn] != DIFFICULTY_INVALID )
|
if( m_PreferredDifficulty[pn] != DIFFICULTY_INVALID )
|
||||||
pProfile->m_LastDifficulty = m_PreferredDifficulty[pn];
|
pProfile->m_LastDifficulty = m_PreferredDifficulty[pn];
|
||||||
if( m_PreferredCourseDifficulty[pn] != COURSE_DIFFICULTY_INVALID )
|
if( m_PreferredCourseDifficulty[pn] != DIFFICULTY_INVALID )
|
||||||
pProfile->m_LastCourseDifficulty = m_PreferredCourseDifficulty[pn];
|
pProfile->m_LastCourseDifficulty = m_PreferredCourseDifficulty[pn];
|
||||||
if( m_pPreferredSong )
|
if( m_pPreferredSong )
|
||||||
pProfile->m_pLastSong = m_pPreferredSong;
|
pProfile->m_pLastSong = m_pPreferredSong;
|
||||||
@@ -1511,7 +1511,7 @@ void GameState::GetRankingFeats( PlayerNumber pn, vector<RankingFeat> &asFeatsOu
|
|||||||
feat.Type = RankingFeat::COURSE;
|
feat.Type = RankingFeat::COURSE;
|
||||||
feat.pCourse = pCourse;
|
feat.pCourse = pCourse;
|
||||||
feat.Feat = ssprintf("MR #%d in %s", i+1, pCourse->m_sName.c_str() );
|
feat.Feat = ssprintf("MR #%d in %s", i+1, pCourse->m_sName.c_str() );
|
||||||
if( cd != COURSE_DIFFICULTY_REGULAR )
|
if( cd != DIFFICULTY_MEDIUM )
|
||||||
feat.Feat += " " + CourseDifficultyToThemedString(cd);
|
feat.Feat += " " + CourseDifficultyToThemedString(cd);
|
||||||
feat.pStringToFill = &hs.sName;
|
feat.pStringToFill = &hs.sName;
|
||||||
feat.grade = GRADE_NO_DATA;
|
feat.grade = GRADE_NO_DATA;
|
||||||
@@ -1704,7 +1704,7 @@ static void GetCourseDifficultiesToShow( set<CourseDifficulty> &ret )
|
|||||||
for( unsigned i = 0; i < asDiff.size(); ++i )
|
for( unsigned i = 0; i < asDiff.size(); ++i )
|
||||||
{
|
{
|
||||||
CourseDifficulty cd = StringToCourseDifficulty(asDiff[i]);
|
CourseDifficulty cd = StringToCourseDifficulty(asDiff[i]);
|
||||||
if( cd == NUM_COURSE_DIFFICULTIES )
|
if( cd == NUM_DIFFICULTIES )
|
||||||
RageException::Throw( "Unknown difficulty \"%s\" in CourseDifficultiesToShow", asDiff[i].c_str() );
|
RageException::Throw( "Unknown difficulty \"%s\" in CourseDifficultiesToShow", asDiff[i].c_str() );
|
||||||
cache.insert( cd );
|
cache.insert( cd );
|
||||||
}
|
}
|
||||||
@@ -1736,7 +1736,7 @@ bool GameState::ChangePreferredCourseDifficulty( PlayerNumber pn, int dir )
|
|||||||
while( 1 )
|
while( 1 )
|
||||||
{
|
{
|
||||||
cd = (CourseDifficulty)(cd+dir);
|
cd = (CourseDifficulty)(cd+dir);
|
||||||
if( cd < 0 || cd >= NUM_COURSE_DIFFICULTIES )
|
if( cd < 0 || cd >= NUM_DIFFICULTIES )
|
||||||
return false;
|
return false;
|
||||||
if( asDiff.find(cd) == asDiff.end() )
|
if( asDiff.find(cd) == asDiff.end() )
|
||||||
continue; /* not available */
|
continue; /* not available */
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ void ModeChoice::Init()
|
|||||||
m_style = STYLE_INVALID;
|
m_style = STYLE_INVALID;
|
||||||
m_pm = PLAY_MODE_INVALID;
|
m_pm = PLAY_MODE_INVALID;
|
||||||
m_dc = DIFFICULTY_INVALID;
|
m_dc = DIFFICULTY_INVALID;
|
||||||
m_CourseDifficulty = COURSE_DIFFICULTY_INVALID;
|
m_CourseDifficulty = DIFFICULTY_INVALID;
|
||||||
m_sModifiers = "";
|
m_sModifiers = "";
|
||||||
m_sAnnouncer = "";
|
m_sAnnouncer = "";
|
||||||
m_sScreen = "";
|
m_sScreen = "";
|
||||||
@@ -436,7 +436,7 @@ void ModeChoice::Apply( PlayerNumber pn ) const
|
|||||||
}
|
}
|
||||||
if( m_pTrail )
|
if( m_pTrail )
|
||||||
GAMESTATE->m_pCurTrail[pn] = m_pTrail;
|
GAMESTATE->m_pCurTrail[pn] = m_pTrail;
|
||||||
if( m_CourseDifficulty != COURSE_DIFFICULTY_INVALID )
|
if( m_CourseDifficulty != DIFFICULTY_INVALID )
|
||||||
GAMESTATE->ChangePreferredCourseDifficulty( pn, m_CourseDifficulty );
|
GAMESTATE->ChangePreferredCourseDifficulty( pn, m_CourseDifficulty );
|
||||||
if( m_pCharacter )
|
if( m_pCharacter )
|
||||||
GAMESTATE->m_pCurCharacters[pn] = m_pCharacter;
|
GAMESTATE->m_pCurCharacters[pn] = m_pCharacter;
|
||||||
@@ -470,7 +470,7 @@ bool ModeChoice::IsZero() const
|
|||||||
m_pCourse != NULL ||
|
m_pCourse != NULL ||
|
||||||
m_pTrail != NULL ||
|
m_pTrail != NULL ||
|
||||||
m_pCharacter != NULL ||
|
m_pCharacter != NULL ||
|
||||||
m_CourseDifficulty != COURSE_DIFFICULTY_INVALID )
|
m_CourseDifficulty != DIFFICULTY_INVALID )
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
@@ -83,7 +83,7 @@ void Profile::InitGeneralData()
|
|||||||
m_sDefaultModifiers = "";
|
m_sDefaultModifiers = "";
|
||||||
m_SortOrder = SORT_INVALID;
|
m_SortOrder = SORT_INVALID;
|
||||||
m_LastDifficulty = DIFFICULTY_INVALID;
|
m_LastDifficulty = DIFFICULTY_INVALID;
|
||||||
m_LastCourseDifficulty = COURSE_DIFFICULTY_INVALID;
|
m_LastCourseDifficulty = DIFFICULTY_INVALID;
|
||||||
m_pLastSong = NULL;
|
m_pLastSong = NULL;
|
||||||
m_pLastCourse = NULL;
|
m_pLastCourse = NULL;
|
||||||
m_iTotalPlays = 0;
|
m_iTotalPlays = 0;
|
||||||
|
|||||||
@@ -545,7 +545,7 @@ CString ScreenOptions::GetExplanationTitle( int iRow ) const
|
|||||||
{
|
{
|
||||||
Course *pCourse = GAMESTATE->m_pCurCourse;
|
Course *pCourse = GAMESTATE->m_pCurCourse;
|
||||||
StepsType st = GAMESTATE->GetCurrentStyleDef()->m_StepsType;
|
StepsType st = GAMESTATE->GetCurrentStyleDef()->m_StepsType;
|
||||||
Trail* pTrail = pCourse->GetTrail(st,COURSE_DIFFICULTY_REGULAR);
|
Trail* pTrail = pCourse->GetTrail( st );
|
||||||
ASSERT( pTrail );
|
ASSERT( pTrail );
|
||||||
pTrail->GetDisplayBpms( bpms );
|
pTrail->GetDisplayBpms( bpms );
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -327,7 +327,7 @@ ScreenRanking::ScreenRanking( CString sClassName ) : ScreenAttract( sClassName )
|
|||||||
if( pts.pCourse == NULL )
|
if( pts.pCourse == NULL )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
pts.pTrail = pts.pCourse->GetTrail( pts.nt, COURSE_DIFFICULTY_REGULAR );
|
pts.pTrail = pts.pCourse->GetTrail( pts.nt );
|
||||||
if( pts.pTrail == NULL )
|
if( pts.pTrail == NULL )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
|||||||
@@ -1532,7 +1532,7 @@ void ScreenSelectMusic::AfterMusicChange()
|
|||||||
{
|
{
|
||||||
Course* pCourse = m_MusicWheel.GetSelectedCourse();
|
Course* pCourse = m_MusicWheel.GetSelectedCourse();
|
||||||
StepsType st = GAMESTATE->GetCurrentStyleDef()->m_StepsType;
|
StepsType st = GAMESTATE->GetCurrentStyleDef()->m_StepsType;
|
||||||
Trail *pTrail = pCourse->GetTrail( st, COURSE_DIFFICULTY_REGULAR );
|
Trail *pTrail = pCourse->GetTrail( st );
|
||||||
ASSERT( pTrail );
|
ASSERT( pTrail );
|
||||||
|
|
||||||
pCourse->GetTrails( m_vpTrails, GAMESTATE->GetCurrentStyleDef()->m_StepsType );
|
pCourse->GetTrails( m_vpTrails, GAMESTATE->GetCurrentStyleDef()->m_StepsType );
|
||||||
|
|||||||
@@ -99,6 +99,9 @@ void SongManager::InitAll( LoadingWindow *ld )
|
|||||||
InitSongsFromDisk( ld );
|
InitSongsFromDisk( ld );
|
||||||
InitCoursesFromDisk( ld );
|
InitCoursesFromDisk( ld );
|
||||||
InitAutogenCourses();
|
InitAutogenCourses();
|
||||||
|
|
||||||
|
/* This shouldn't need to be here; if it's taking long enough that this is
|
||||||
|
* even visible, we should be fixing it, not showing a progress display. */
|
||||||
if( ld )
|
if( ld )
|
||||||
ld->SetText( "Saving Catalog.xml ..." );
|
ld->SetText( "Saving Catalog.xml ..." );
|
||||||
SaveCatalogXml( DATA_DIR );
|
SaveCatalogXml( DATA_DIR );
|
||||||
@@ -726,7 +729,7 @@ bool SongManager::GetExtraStageInfoFromCourse( bool bExtra2, CString sPreferredG
|
|||||||
course.LoadFromCRSFile( sCoursePath );
|
course.LoadFromCRSFile( sCoursePath );
|
||||||
if( course.GetEstimatedNumStages() <= 0 ) return false;
|
if( course.GetEstimatedNumStages() <= 0 ) return false;
|
||||||
|
|
||||||
Trail *pTrail = course.GetTrail( GAMESTATE->GetCurrentStyleDef()->m_StepsType, COURSE_DIFFICULTY_REGULAR );
|
Trail *pTrail = course.GetTrail( GAMESTATE->GetCurrentStyleDef()->m_StepsType );
|
||||||
if( pTrail->m_vEntries.empty() )
|
if( pTrail->m_vEntries.empty() )
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
|||||||
@@ -51,7 +51,7 @@ public:
|
|||||||
void Init()
|
void Init()
|
||||||
{
|
{
|
||||||
m_StepsType = STEPS_TYPE_INVALID;
|
m_StepsType = STEPS_TYPE_INVALID;
|
||||||
m_CourseDifficulty = COURSE_DIFFICULTY_INVALID;
|
m_CourseDifficulty = DIFFICULTY_INVALID;
|
||||||
m_iSpecifiedMeter = -1;
|
m_iSpecifiedMeter = -1;
|
||||||
m_vEntries.clear();
|
m_vEntries.clear();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ void TrailID::FromTrail( const Trail *p )
|
|||||||
if( p == NULL )
|
if( p == NULL )
|
||||||
{
|
{
|
||||||
st = STEPS_TYPE_INVALID;
|
st = STEPS_TYPE_INVALID;
|
||||||
cd = COURSE_DIFFICULTY_INVALID;
|
cd = DIFFICULTY_INVALID;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -24,7 +24,7 @@ Trail *TrailID::ToTrail( const Course *p, bool bAllowNull ) const
|
|||||||
{
|
{
|
||||||
ASSERT( p );
|
ASSERT( p );
|
||||||
|
|
||||||
if( st == STEPS_TYPE_INVALID || cd == COURSE_DIFFICULTY_INVALID )
|
if( st == STEPS_TYPE_INVALID || cd == DIFFICULTY_INVALID )
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
Trail *ret = p->GetTrail( st, cd );
|
Trail *ret = p->GetTrail( st, cd );
|
||||||
@@ -67,7 +67,7 @@ CString TrailID::ToString() const
|
|||||||
|
|
||||||
bool TrailID::IsValid() const
|
bool TrailID::IsValid() const
|
||||||
{
|
{
|
||||||
return st != STEPS_TYPE_INVALID && cd != COURSE_DIFFICULTY_INVALID;
|
return st != STEPS_TYPE_INVALID && cd != DIFFICULTY_INVALID;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool TrailID::operator<( const TrailID &rhs ) const
|
bool TrailID::operator<( const TrailID &rhs ) const
|
||||||
|
|||||||
Reference in New Issue
Block a user