Lua bindings.
This commit is contained in:
@@ -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<int> 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<Style *>(p->GetCurrentStyle()), L );
|
||||
return 1;
|
||||
}
|
||||
|
||||
static void Register(lua_State *L)
|
||||
{
|
||||
ADD_METHOD( IsPlayerEnabled );
|
||||
@@ -2029,6 +2058,7 @@ public:
|
||||
ADD_METHOD( SetEnv );
|
||||
ADD_METHOD( GetEnv );
|
||||
ADD_METHOD( GetEditSourceSteps );
|
||||
ADD_METHOD( SetPreferredDifficulty );
|
||||
ADD_METHOD( GetPreferredDifficulty );
|
||||
ADD_METHOD( AnyPlayerHasRankingFeats );
|
||||
ADD_METHOD( IsCourseMode );
|
||||
@@ -2070,6 +2100,11 @@ public:
|
||||
ADD_METHOD( GetEditLocalProfile );
|
||||
ADD_METHOD( GetCurrentStepsCredits );
|
||||
ADD_METHOD( GetCurrentStyleType );
|
||||
ADD_METHOD( SetPreferredSongGroup );
|
||||
ADD_METHOD( GetPreferredSongGroup );
|
||||
ADD_METHOD( GetHumanPlayers );
|
||||
ADD_METHOD( SetSongOptions );
|
||||
ADD_METHOD( GetCurrentStyle );
|
||||
|
||||
Luna<T>::Register( L );
|
||||
|
||||
|
||||
@@ -171,11 +171,20 @@ int PlayerState::GetSumOfActiveAttackLevels() const
|
||||
|
||||
class LunaPlayerState: public Luna<PlayerState>
|
||||
{
|
||||
static int SetPlayerOptions( T* p, lua_State *L )
|
||||
{
|
||||
PlayerOptions po;
|
||||
|
||||
po.FromString( SArg(2) );
|
||||
p->m_PlayerOptions.Assign( ModsLevel(IArg(1)), po );
|
||||
return 0;
|
||||
}
|
||||
public:
|
||||
LunaPlayerState() { LUA->Register( Register ); }
|
||||
|
||||
static void Register(lua_State *L)
|
||||
{
|
||||
ADD_METHOD( SetPlayerOptions );
|
||||
Luna<T>::Register( L );
|
||||
}
|
||||
};
|
||||
|
||||
@@ -1841,6 +1841,24 @@ public:
|
||||
lua_pushnumber( L, iIndex );
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int GetExtraStageInfo( T* p, lua_State *L )
|
||||
{
|
||||
bool bExtra2 = BArg( 1 );
|
||||
const Style *pStyle = Luna<Style>::check( L, 2 );
|
||||
Song *pSong;
|
||||
Steps *pSteps;
|
||||
PlayerOptions po;
|
||||
SongOptions so;
|
||||
|
||||
p->GetExtraStageInfo( bExtra2, pStyle, pSong, pSteps, &po, &so );
|
||||
pSong->PushSelf( L );
|
||||
pSteps->PushSelf( L );
|
||||
LuaHelpers::Push( po.GetString(), L );
|
||||
LuaHelpers::Push( so.GetString(), L );
|
||||
|
||||
return 4;
|
||||
}
|
||||
|
||||
static void Register(lua_State *L)
|
||||
{
|
||||
@@ -1861,6 +1879,7 @@ public:
|
||||
ADD_METHOD( GetSongFromSteps );
|
||||
ADD_METHOD( GetSongRank );
|
||||
ADD_METHOD( GetCourseRank );
|
||||
ADD_METHOD( GetExtraStageInfo );
|
||||
|
||||
Luna<T>::Register( L );
|
||||
|
||||
|
||||
@@ -110,6 +110,17 @@ void Style::GetMinAndMaxColX( PlayerNumber pn, float& fMixXOut, float& fMaxXOut
|
||||
}
|
||||
}
|
||||
|
||||
// Lua bindings
|
||||
#include "LuaBinding.h"
|
||||
|
||||
class LunaStyle : public Luna<Style>
|
||||
{
|
||||
public:
|
||||
LunaStyle() { LUA->Register( Luna<Style>::Register ); }
|
||||
};
|
||||
|
||||
LUA_REGISTER_CLASS( Style )
|
||||
|
||||
/*
|
||||
* (c) 2001-2002 Chris Danford
|
||||
* All rights reserved.
|
||||
|
||||
@@ -14,6 +14,7 @@ const int MAX_COLS_PER_PLAYER = MAX_NOTE_TRACKS;
|
||||
|
||||
class NoteData;
|
||||
class Game;
|
||||
struct lua_State;
|
||||
|
||||
class Style
|
||||
{
|
||||
@@ -62,6 +63,9 @@ public:
|
||||
bool MatchesStepsType( StepsType type ) const;
|
||||
|
||||
void GetMinAndMaxColX( PlayerNumber pn, float& fMixXOut, float& fMaxXOut ) const;
|
||||
|
||||
// Lua
|
||||
void PushSelf( lua_State *L );
|
||||
};
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user