From 7446a213dc36284ba189b76fa0f7fa56d6356d59 Mon Sep 17 00:00:00 2001 From: Chris Danford Date: Sun, 19 Mar 2006 05:59:24 +0000 Subject: [PATCH] add special coloring for unlock songs/courses --- stepmania/Themes/default/metrics.ini | 3 ++- stepmania/src/SongManager.cpp | 16 ++++++++++++---- stepmania/src/UnlockManager.h | 12 ++++++------ 3 files changed, 20 insertions(+), 11 deletions(-) diff --git a/stepmania/Themes/default/metrics.ini b/stepmania/Themes/default/metrics.ini index e995741ebe..cf82682d7e 100644 --- a/stepmania/Themes/default/metrics.ini +++ b/stepmania/Themes/default/metrics.ini @@ -2769,7 +2769,8 @@ NumCourseGroupColors=1 CourseGroupColor1=1,1,1,1 ExtraColor=1.0,0.0,0.0,1.0 // red ExtraColorMeter=10 - +UseUnlockColor=0 +UnlockColor=1,1,1,1 Loading songs...= Loading courses...= Reloading...= diff --git a/stepmania/src/SongManager.cpp b/stepmania/src/SongManager.cpp index b7ab59b61a..7e7c100aa2 100644 --- a/stepmania/src/SongManager.cpp +++ b/stepmania/src/SongManager.cpp @@ -41,8 +41,10 @@ SongManager* SONGMAN = NULL; // global and accessable from anywhere in our progr const RString SONGS_DIR = "Songs/"; const RString COURSES_DIR = "Courses/"; -static const ThemeMetric EXTRA_COLOR ("SongManager","ExtraColor"); +static const ThemeMetric EXTRA_COLOR ("SongManager","ExtraColor"); static const ThemeMetric EXTRA_COLOR_METER ("SongManager","ExtraColorMeter"); +static const ThemeMetric USE_UNLOCK_COLOR ("SongManager","UseUnlockColor"); +static const ThemeMetric UNLOCK_COLOR ("SongManager","UnlockColor"); 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); } @@ -51,9 +53,9 @@ RString COURSE_GROUP_COLOR_NAME( size_t i ) { return ssprintf("CourseGroupColor% SongManager::SongManager() { NUM_SONG_GROUP_COLORS .Load("SongManager","NumSongGroupColors"); - SONG_GROUP_COLOR .Load("SongManager",SONG_GROUP_COLOR_NAME,NUM_SONG_GROUP_COLORS); + SONG_GROUP_COLOR .Load("SongManager",SONG_GROUP_COLOR_NAME,NUM_SONG_GROUP_COLORS); NUM_COURSE_GROUP_COLORS .Load("SongManager","NumCourseGroupColors"); - COURSE_GROUP_COLOR .Load("SongManager",COURSE_GROUP_COLOR_NAME,NUM_COURSE_GROUP_COLORS); + COURSE_GROUP_COLOR .Load("SongManager",COURSE_GROUP_COLOR_NAME,NUM_COURSE_GROUP_COLORS); } SongManager::~SongManager() @@ -332,7 +334,7 @@ RageColor SongManager::GetSongGroupColor( const RString &sSongGroup ) for( unsigned i=0; iFindSong(pSong) != NULL ) + return UNLOCK_COLOR; + /* XXX: * Previously, this matched all notes, which set a song to "extra" if it * had any 10-foot steps at all, even edits or doubles. @@ -418,6 +423,9 @@ RageColor SongManager::GetCourseGroupColor( const RString &sCourseGroup ) RageColor SongManager::GetCourseColor( const Course* pCourse ) { + if( USE_UNLOCK_COLOR && UNLOCKMAN->FindCourse(pCourse) != NULL ) + return UNLOCK_COLOR; + return GetCourseGroupColor( pCourse->m_sGroupName ); } diff --git a/stepmania/src/UnlockManager.h b/stepmania/src/UnlockManager.h index d7988467f8..89392f10fd 100644 --- a/stepmania/src/UnlockManager.h +++ b/stepmania/src/UnlockManager.h @@ -118,7 +118,7 @@ public: void PreferUnlockEntryID( int iEntryID ); // Unlocks a song. - void UnlockSong( const Song *song ); + void UnlockSong( const Song *pSong ); // Return the associated EntryID. int FindEntryID( const RString &sName ) const; @@ -133,6 +133,11 @@ public: void GetSongsUnlockedByEntryID( vector &apSongsOut, int iEntryID ); void GetStepsUnlockedByEntryID( vector &apSongsOut, vector &apStepsOut, int iEntryID ); + const UnlockEntry *FindSong( const Song *pSong ) const; + const UnlockEntry *FindSteps( const Song *pSong, const Steps *pSteps ) const; + const UnlockEntry *FindCourse( const Course *pCourse ) const; + const UnlockEntry *FindModifier( const RString &sOneMod ) const; + // Lua void PushSelf( lua_State *L ); @@ -140,11 +145,6 @@ private: // read unlocks void Load(); - const UnlockEntry *FindSong( const Song *pSong ) const; - const UnlockEntry *FindSteps( const Song *pSong, const Steps *pSteps ) const; - const UnlockEntry *FindCourse( const Course *pCourse ) const; - const UnlockEntry *FindModifier( const RString &sOneMod ) const; - set m_RouletteCodes; // "codes" which are available in roulette and which unlock if rouletted };