From 7677c9d88f8b04f3188f526eb2244767b4a8ff91 Mon Sep 17 00:00:00 2001 From: Glenn Maynard Date: Tue, 22 Feb 2005 03:36:51 +0000 Subject: [PATCH] GetPreference, SetPreference. (not yet decided if I want to bring Preference itself into Lua) --- stepmania/src/PrefsManager.cpp | 31 +++++++++++++++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/stepmania/src/PrefsManager.cpp b/stepmania/src/PrefsManager.cpp index 4690a650bc..e00a842343 100644 --- a/stepmania/src/PrefsManager.cpp +++ b/stepmania/src/PrefsManager.cpp @@ -832,11 +832,38 @@ class LunaPrefsManager : public Luna public: LunaPrefsManager() { LUA->Register( Register ); } -// static int GetEventMode( T* p, lua_State *L ) { lua_pushboolean(L, p->m_bEventMode ); return 1; } + static int GetPreference( T* p, lua_State *L ) + { + CString sName = SArg(1); + IPreference *pPref = PREFSMAN->GetPreferenceByName( sName ); + if( pPref == NULL ) + { + LOG->Warn( "GetPreference: unknown preference \"%s\"", sName.c_str() ); + lua_pushnil( L ); + } + else + pPref->PushValue( L ); + } + static int SetPreference( T* p, lua_State *L ) + { + CString sName = SArg(1); + + IPreference *pPref = PREFSMAN->GetPreferenceByName( sName ); + if( pPref == NULL ) + LOG->Warn( "GetPreference: unknown preference \"%s\"", sName.c_str() ); + else + { + lua_pushvalue( L, 2 ); + pPref->SetFromStack( L ); + } + + return 0; + } static void Register(lua_State *L) { -// ADD_METHOD( GetEventMode ) + ADD_METHOD( GetPreference ) + ADD_METHOD( SetPreference ) Luna::Register( L ); // Add global singleton if constructed already. If it's not constructed yet,