From d03587dd308f8dbead608fa063cab2dc8f928ac2 Mon Sep 17 00:00:00 2001 From: Glenn Maynard Date: Tue, 13 May 2008 01:26:02 +0000 Subject: [PATCH] Add HideIncompleteCourses; in some environments, it doesn't make sense to show incomplete courses. --- stepmania/src/Course.cpp | 1 + stepmania/src/CourseLoaderCRS.cpp | 2 ++ stepmania/src/SongManager.cpp | 8 ++++++++ 3 files changed, 11 insertions(+) diff --git a/stepmania/src/Course.cpp b/stepmania/src/Course.cpp index 733c0315a2..8c37bc3f5a 100644 --- a/stepmania/src/Course.cpp +++ b/stepmania/src/Course.cpp @@ -219,6 +219,7 @@ void Course::Init() m_SortOrder_Ranking = 0; m_LoadedFromProfile = ProfileSlot_Invalid; + m_bIncomplete = false; m_TrailCache.clear(); m_iTrailCacheSeed = 0; m_RadarCache.clear(); diff --git a/stepmania/src/CourseLoaderCRS.cpp b/stepmania/src/CourseLoaderCRS.cpp index 1f4907f548..5eb32e975d 100644 --- a/stepmania/src/CourseLoaderCRS.cpp +++ b/stepmania/src/CourseLoaderCRS.cpp @@ -185,6 +185,7 @@ bool CourseLoaderCRS::LoadFromMsd( const RString &sPath, const MsdFile &msd, Cou { LOG->UserLog( "Course file", sPath, "random_within_group entry \"%s\" specifies a group that doesn't exist. " "This entry will be ignored.", sSong.c_str() ); + out.m_bIncomplete = true; continue; // skip this #SONG } } @@ -211,6 +212,7 @@ bool CourseLoaderCRS::LoadFromMsd( const RString &sPath, const MsdFile &msd, Cou { LOG->UserLog( "Course file", sPath, "contains a fixed song entry \"%s\" that does not exist. " "This entry will be ignored.", sSong.c_str()); + out.m_bIncomplete = true; continue; // skip this #SONG } } diff --git a/stepmania/src/SongManager.cpp b/stepmania/src/SongManager.cpp index 5b68093513..f46ae87151 100644 --- a/stepmania/src/SongManager.cpp +++ b/stepmania/src/SongManager.cpp @@ -53,6 +53,7 @@ static const ThemeMetric MOVE_UNLOCKS_TO_BOTTOM_OF_PREFERRED_SORT ( "Song static const ThemeMetric EXTRA_STAGE2_DIFFICULTY_MAX ( "SongManager", "ExtraStage2DifficultyMax" ); static Preference g_sDisabledSongs( "DisabledSongs", "" ); +static Preference g_bHideIncompleteCourses( "HideIncompleteCourses", false ); RString SONG_GROUP_COLOR_NAME( size_t i ) { return ssprintf( "SongGroupColor%i", (int) i+1 ); } RString COURSE_GROUP_COLOR_NAME( size_t i ) { return ssprintf( "CourseGroupColor%i", (int) i+1 ); } @@ -705,6 +706,13 @@ void SongManager::InitCoursesFromDisk( LoadingWindow *ld ) Course* pCourse = new Course; CourseLoaderCRS::LoadFromCRSFile( *sCoursePath, *pCourse ); + + if( g_bHideIncompleteCourses.Get() && pCourse->m_bIncomplete ) + { + delete pCourse; + continue; + } + m_pCourses.push_back( pCourse ); } }