From 0ab5be64afd5dd7262ab74c9cfb55e56bd9b953d Mon Sep 17 00:00:00 2001 From: Steve Checkoway Date: Fri, 18 Aug 2006 00:11:30 +0000 Subject: [PATCH] Lua bindings. --- stepmania/src/GameState.cpp | 39 +++++++++++++++++++++++++++++++++-- stepmania/src/PlayerState.cpp | 9 ++++++++ stepmania/src/SongManager.cpp | 19 +++++++++++++++++ stepmania/src/Style.cpp | 11 ++++++++++ stepmania/src/Style.h | 4 ++++ 5 files changed, 80 insertions(+), 2 deletions(-) diff --git a/stepmania/src/GameState.cpp b/stepmania/src/GameState.cpp index f9e7863090..5805b77b42 100644 --- a/stepmania/src/GameState.cpp +++ b/stepmania/src/GameState.cpp @@ -1909,6 +1909,11 @@ public: else { lua_pushnil(L); } return 1; } + static int SetPreferredDifficulty( T* p, lua_State *L ) + { + p->m_PreferredDifficulty[IArg(1)].Set( Difficulty(IArg(2)) ); + return 0; + } DEFINE_METHOD( GetPreferredDifficulty, m_PreferredDifficulty[IArg(1)] ) DEFINE_METHOD( AnyPlayerHasRankingFeats, AnyPlayerHasRankingFeats() ) DEFINE_METHOD( IsCourseMode, IsCourseMode() ) @@ -2002,8 +2007,32 @@ public: lua_pushstring( L, StyleTypeToString(p->GetCurrentStyle()->m_StyleType) ); return 1; } - - + + static int SetPreferredSongGroup( T* p, lua_State *L ) { p->m_sPreferredSongGroup.Set( SArg(1) ); return 0; } + DEFINE_METHOD( GetPreferredSongGroup, m_sPreferredSongGroup.Get() ); + static int GetHumanPlayers( T* p, lua_State *L ) + { + vector vHP; + FOREACH_HumanPlayer( pn ) + vHP.push_back( pn ); + LuaHelpers::CreateTableFromArray( vHP, L ); + return 1; + } + static int SetSongOptions( T* p, lua_State *L ) + { + SongOptions so; + + so.FromString( SArg(2) ); + p->m_SongOptions.Assign( ModsLevel(IArg(1)), so ); + return 0; + } + static int GetCurrentStyle( T* p, lua_State *L ) + { + // XXX: Ugly cast. + LuaHelpers::Push( const_cast