From fa12ff045b0bacc257541717719078cf69ffecc2 Mon Sep 17 00:00:00 2001 From: AJ Kelly Date: Sat, 27 Aug 2011 15:48:33 -0500 Subject: [PATCH] [ThemeManager] Added DoesThemeExist(sTheme), IsThemeSelectable(sTheme), DoesLanguageExist(sLang), GetCurThemeName(), HasMetric(sGroup,sValue), and HasString(sGroup,sValue) Lua bindings. --- Docs/Changelog_sm5.txt | 4 ++++ src/ThemeManager.cpp | 16 ++++++++++++++-- src/ThemeManager.h | 4 ++-- 3 files changed, 20 insertions(+), 4 deletions(-) diff --git a/Docs/Changelog_sm5.txt b/Docs/Changelog_sm5.txt index c90c5d29db..0ec3f787f4 100644 --- a/Docs/Changelog_sm5.txt +++ b/Docs/Changelog_sm5.txt @@ -10,6 +10,7 @@ StepMania 5.0 $next | 2011???? 2011/08/27 ---------- +* Updated libjpeg to 8c. * [SongManager] Added GetCoursesInGroup(sCourseGroup,bIncludeAutogen), GetSongGroupBannerPath(songGroup), GetCourseGroupBannerPath(courseGroup), DoesSongGroupExist(songGroup), DoesCourseGroupExist(courseGroup) and @@ -19,6 +20,9 @@ StepMania 5.0 $next | 2011???? * [SongManager] Add SongToPreferredSortSectionName(song), WasLoadedFromAdditionalSongs(song), and WasLoadedFromAdditionalCourses(course) Lua bindings. [AJ] * [CryptManager] Add GenerateRandomUUID() Lua binding. [AJ] +* [ThemeManager] Added DoesThemeExist(sTheme), IsThemeSelectable(sTheme), + DoesLanguageExist(sLang), GetCurThemeName(), HasMetric(sGroup,sValue), and + HasString(sGroup,sValue) Lua bindings. [AJ] 2011/08/23 ---------- diff --git a/src/ThemeManager.cpp b/src/ThemeManager.cpp index 0f85afcf5c..a0cb8b2d57 100644 --- a/src/ThemeManager.cpp +++ b/src/ThemeManager.cpp @@ -1242,8 +1242,10 @@ class LunaThemeManager: public Luna public: static int ReloadMetrics( T* p, lua_State *L ) { p->ReloadMetrics(); return 0; } - static int GetMetric( T* p, lua_State *L ) { p->PushMetric( L, SArg(1),SArg(2) ); return 1; } - static int GetString( T* p, lua_State *L ) { lua_pushstring(L, p->GetString(SArg(1),SArg(2)) ); return 1; } + static int HasMetric( T* p, lua_State *L ) { lua_pushboolean(L, p->HasMetric(SArg(1),SArg(2))); return 1; } + static int GetMetric( T* p, lua_State *L ) { p->PushMetric( L, SArg(1),SArg(2) ); return 1; } + static int HasString( T* p, lua_State *L ) { lua_pushboolean(L, p->HasString(SArg(1),SArg(2))); return 1; } + static int GetString( T* p, lua_State *L ) { lua_pushstring(L, p->GetString(SArg(1),SArg(2)) ); return 1; } static int GetPathInfoB( T* p, lua_State *L ) { ThemeManager::PathInfo pi; @@ -1277,6 +1279,10 @@ public: DEFINE_METHOD( GetCurLanguage, GetCurLanguage() ); static int GetThemeDisplayName( T* p, lua_State *L ) { lua_pushstring(L, p->GetThemeDisplayName(p->GetCurThemeName())); return 1; } static int GetThemeAuthor( T* p, lua_State *L ) { lua_pushstring(L, p->GetThemeAuthor(p->GetCurThemeName())); return 1; } + DEFINE_METHOD( DoesThemeExist, DoesThemeExist(SArg(1)) ); + DEFINE_METHOD( IsThemeSelectable, IsThemeSelectable(SArg(1)) ); + DEFINE_METHOD( DoesLanguageExist, DoesLanguageExist(SArg(1)) ); + DEFINE_METHOD( GetCurThemeName, GetCurThemeName() ); LunaThemeManager() { @@ -1296,6 +1302,12 @@ public: ADD_METHOD( GetCurLanguage ); ADD_METHOD( GetThemeDisplayName ); ADD_METHOD( GetThemeAuthor ); + ADD_METHOD( DoesThemeExist ); + ADD_METHOD( IsThemeSelectable ); + ADD_METHOD( DoesLanguageExist ); + ADD_METHOD( GetCurThemeName ); + ADD_METHOD( HasMetric ); + ADD_METHOD( HasString ); } }; diff --git a/src/ThemeManager.h b/src/ThemeManager.h index 2d5db224b9..24610521fd 100644 --- a/src/ThemeManager.h +++ b/src/ThemeManager.h @@ -75,7 +75,7 @@ public: bool HasMetric( const RString &sMetricsGroup, const RString &sValueName ); void PushMetric( Lua *L, const RString &sMetricsGroup, const RString &sValueName ); RString GetMetric( const RString &sMetricsGroup, const RString &sValueName ); - int GetMetricI( const RString &sMetricsGroup, const RString &sValueName ); + int GetMetricI( const RString &sMetricsGroup, const RString &sValueName ); float GetMetricF( const RString &sMetricsGroup, const RString &sValueName ); bool GetMetricB( const RString &sMetricsGroup, const RString &sValueName ); RageColor GetMetricC( const RString &sMetricsGroup, const RString &sValueName ); @@ -100,7 +100,7 @@ public: //needs to be public for its binding to work void RunLuaScripts( const RString &sMask ); - + // For self-registering metrics static void Subscribe( IThemeMetric *p ); static void Unsubscribe( IThemeMetric *p );