From 8d5b50e8767e5171a4fbcf75ec45c4835cd67c2f Mon Sep 17 00:00:00 2001 From: AJ Kelly Date: Sat, 27 Aug 2011 13:18:41 -0500 Subject: [PATCH] [SongManager] Added GetCoursesInGroup(sCourseGroup,bIncludeAutogen), GetSongGroupBannerPath(songGroup), GetCourseGroupBannerPath(courseGroup), DoesSongGroupExist(songGroup), DoesCourseGroupExist(courseGroup), GetPopularSongs() Lua bindings. --- Docs/Changelog_sm5.txt | 7 +++++++ src/SongManager.cpp | 34 ++++++++++++++++++++++++++++++++++ src/SongManager.h | 6 +++--- 3 files changed, 44 insertions(+), 3 deletions(-) diff --git a/Docs/Changelog_sm5.txt b/Docs/Changelog_sm5.txt index 2072007162..0df5ebe053 100644 --- a/Docs/Changelog_sm5.txt +++ b/Docs/Changelog_sm5.txt @@ -8,6 +8,13 @@ ________________________________________________________________________________ StepMania 5.0 $next | 2011???? -------------------------------------------------------------------------------- +2011/08/27 +---------- +* [SongManager] Added GetCoursesInGroup(sCourseGroup,bIncludeAutogen), + GetSongGroupBannerPath(songGroup), GetCourseGroupBannerPath(courseGroup), + DoesSongGroupExist(songGroup), DoesCourseGroupExist(courseGroup) and + GetPopularSongs() Lua bindings. [AJ] + 2011/08/23 ---------- * [Makefile.am] Fixed version date and time handling. [AJ] diff --git a/src/SongManager.cpp b/src/SongManager.cpp index 948bc16033..34eb36ad46 100644 --- a/src/SongManager.cpp +++ b/src/SongManager.cpp @@ -1934,6 +1934,14 @@ public: return 1; } + static int GetCoursesInGroup( T* p, lua_State *L ) + { + vector v; + p->GetCoursesInGroup(v,SArg(1),BArg(2)); + LuaHelpers::CreateTableFromArray( v, L ); + return 1; + } + DEFINE_METHOD( ShortenGroupName, ShortenGroupName( SArg(1) ) ) static int GetCourseGroupNames( T* p, lua_State *L ) @@ -1944,6 +1952,18 @@ public: return 1; } + DEFINE_METHOD( GetSongGroupBannerPath, GetSongGroupBannerPath(SArg(1)) ); + DEFINE_METHOD( GetCourseGroupBannerPath, GetCourseGroupBannerPath(SArg(1)) ); + DEFINE_METHOD( DoesSongGroupExist, DoesSongGroupExist(SArg(1)) ); + DEFINE_METHOD( DoesCourseGroupExist, DoesCourseGroupExist(SArg(1)) ); + + static int GetPopularSongs( T* p, lua_State *L ) + { + const vector &v = p->GetPopularSongs(); + LuaHelpers::CreateTableFromArray( v, L ); + return 1; + } + LunaSongManager() { ADD_METHOD( GetAllSongs ); @@ -1969,9 +1989,23 @@ public: ADD_METHOD( GetSongRank ); ADD_METHOD( GetSongGroupNames ); ADD_METHOD( GetSongsInGroup ); + ADD_METHOD( GetCoursesInGroup ); ADD_METHOD( ShortenGroupName ); ADD_METHOD( SetPreferredSongs ); ADD_METHOD( SetPreferredCourses ); + //ADD_METHOD( GetPreferredSortCourses ); + ADD_METHOD( GetSongGroupBannerPath ); + ADD_METHOD( GetCourseGroupBannerPath ); + ADD_METHOD( DoesSongGroupExist ); + ADD_METHOD( DoesCourseGroupExist ); + //ADD_METHOD( GetSongsFromGroup ); + ADD_METHOD( GetPopularSongs ); + //ADD_METHOD( GetPopularCourses ); + //ADD_METHOD( GetSongsOfCurrentGame ); + //ADD_METHOD( GetAllSongsOfCurrentGame ); + //ADD_METHOD( SongToPreferredSortSectionName ); + //ADD_METHOD( WasLoadedFromAdditionalSongs ); + //ADD_METHOD( WasLoadedFromAdditionalCourses ); } }; diff --git a/src/SongManager.h b/src/SongManager.h index 727f06fd8f..807b8f7e99 100644 --- a/src/SongManager.h +++ b/src/SongManager.h @@ -81,7 +81,7 @@ public: RageColor GetCourseGroupColor( const RString &sCourseGroupName ) const; RageColor GetCourseColor( const Course* pCourse ) const; - void ResetGroupColors(); // sm-ssc add + void ResetGroupColors(); static RString ShortenGroupName( RString sLongGroupName ); @@ -108,12 +108,12 @@ public: * valid step for the current gametype. * @param sGroupName the name of the group. * @return the songs within the group that have at least one valid Step. */ - const vector & GetSongsOfCurrentGame( const RString &sGroupName ) const; + const vector &GetSongsOfCurrentGame( const RString &sGroupName ) const; /** * @brief Retrieve all of the songs in the game that have at least one * valid step for the current gametype. * @return the songs within the game that have at least one valid Step. */ - const vector & GetAllSongsOfCurrentGame() const; + const vector &GetAllSongsOfCurrentGame() const; void GetPreferredSortSongs( vector &AddTo ) const; RString SongToPreferredSortSectionName( const Song *pSong ) const;