diff --git a/Docs/Changelog_sm5.txt b/Docs/Changelog_sm5.txt index a203aee8b5..7748ca2237 100644 --- a/Docs/Changelog_sm5.txt +++ b/Docs/Changelog_sm5.txt @@ -11,6 +11,8 @@ StepMania 5.0 ???? ?? | 20120??? 2012/05/31 ---------- * [PaneDisplay] Added NullCountString metric. [AJ] +* [PlayerOptions] Fixes to Get/Set[C, M, X]Mod Lua bindings. [hanubeki] + Source: http://code.google.com/r/hanubeki-modified-sm-ssc/source/detail?r=97761b5dc87b8c8a1b296985a09814337578c745 2012/05/27 ---------- diff --git a/src/PlayerOptions.cpp b/src/PlayerOptions.cpp index a6975ecc5d..1b870838ba 100644 --- a/src/PlayerOptions.cpp +++ b/src/PlayerOptions.cpp @@ -922,12 +922,18 @@ public: static int GetCMod( T *p, lua_State *L ) { if( p->m_fTimeSpacing ) - lua_pushnumber( L, p->m_fTimeSpacing ); + lua_pushnumber( L, p->m_fScrollBPM ); else lua_pushnil(L); return 1; } - static int SetCMod( T *p, lua_State *L ) { p->m_fTimeSpacing = FArg(1); return 0; } + static int SetCMod( T *p, lua_State *L ) + { + p->m_fTimeSpacing = FArg(1); + p->m_fTimeSpacing = 1; + p->m_fMaxScrollBPM = 0; + return 0; + } static int GetXMod( T *p, lua_State *L ) { @@ -937,10 +943,29 @@ public: lua_pushnil(L); return 1; } - static int SetXMod( T *p, lua_State *L ) { p->m_fScrollSpeed = FArg(1); return 0; } + static int SetXMod( T *p, lua_State *L ) + { + p->m_fScrollSpeed = FArg(1); + p->m_fTimeSpacing = 0; + p->m_fMaxScrollBPM = 0; + return 0; + } - static int GetMMod( T *p, lua_State *L ) { lua_pushnumber(L, p->m_fMaxScrollBPM); return 1; } - static int SetMMod( T *p, lua_State *L ) { p->m_fMaxScrollBPM = FArg(1); return 0; } + static int GetMMod( T *p, lua_State *L ) + { + if( !p->m_fTimeSpacing && p->m_fMaxScrollBPM ) + lua_pushnumber(L, p->m_fMaxScrollBPM); + else + lua_pushnil(L); + + return 1; + } + static int SetMMod( T *p, lua_State *L ) + { + p->m_fMaxScrollBPM = FArg(1); + p->m_fTimeSpacing = 0; + return 0; + } // Accel DEFINE_METHOD( GetBoost, m_fAccels[PlayerOptions::ACCEL_BOOST] )