Lua bindings.
This commit is contained in:
@@ -1909,6 +1909,11 @@ public:
|
|||||||
else { lua_pushnil(L); }
|
else { lua_pushnil(L); }
|
||||||
return 1;
|
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( GetPreferredDifficulty, m_PreferredDifficulty[IArg(1)] )
|
||||||
DEFINE_METHOD( AnyPlayerHasRankingFeats, AnyPlayerHasRankingFeats() )
|
DEFINE_METHOD( AnyPlayerHasRankingFeats, AnyPlayerHasRankingFeats() )
|
||||||
DEFINE_METHOD( IsCourseMode, IsCourseMode() )
|
DEFINE_METHOD( IsCourseMode, IsCourseMode() )
|
||||||
@@ -2003,6 +2008,30 @@ public:
|
|||||||
return 1;
|
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)
|
static void Register(lua_State *L)
|
||||||
{
|
{
|
||||||
@@ -2029,6 +2058,7 @@ public:
|
|||||||
ADD_METHOD( SetEnv );
|
ADD_METHOD( SetEnv );
|
||||||
ADD_METHOD( GetEnv );
|
ADD_METHOD( GetEnv );
|
||||||
ADD_METHOD( GetEditSourceSteps );
|
ADD_METHOD( GetEditSourceSteps );
|
||||||
|
ADD_METHOD( SetPreferredDifficulty );
|
||||||
ADD_METHOD( GetPreferredDifficulty );
|
ADD_METHOD( GetPreferredDifficulty );
|
||||||
ADD_METHOD( AnyPlayerHasRankingFeats );
|
ADD_METHOD( AnyPlayerHasRankingFeats );
|
||||||
ADD_METHOD( IsCourseMode );
|
ADD_METHOD( IsCourseMode );
|
||||||
@@ -2070,6 +2100,11 @@ public:
|
|||||||
ADD_METHOD( GetEditLocalProfile );
|
ADD_METHOD( GetEditLocalProfile );
|
||||||
ADD_METHOD( GetCurrentStepsCredits );
|
ADD_METHOD( GetCurrentStepsCredits );
|
||||||
ADD_METHOD( GetCurrentStyleType );
|
ADD_METHOD( GetCurrentStyleType );
|
||||||
|
ADD_METHOD( SetPreferredSongGroup );
|
||||||
|
ADD_METHOD( GetPreferredSongGroup );
|
||||||
|
ADD_METHOD( GetHumanPlayers );
|
||||||
|
ADD_METHOD( SetSongOptions );
|
||||||
|
ADD_METHOD( GetCurrentStyle );
|
||||||
|
|
||||||
Luna<T>::Register( L );
|
Luna<T>::Register( L );
|
||||||
|
|
||||||
|
|||||||
@@ -171,11 +171,20 @@ int PlayerState::GetSumOfActiveAttackLevels() const
|
|||||||
|
|
||||||
class LunaPlayerState: public Luna<PlayerState>
|
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:
|
public:
|
||||||
LunaPlayerState() { LUA->Register( Register ); }
|
LunaPlayerState() { LUA->Register( Register ); }
|
||||||
|
|
||||||
static void Register(lua_State *L)
|
static void Register(lua_State *L)
|
||||||
{
|
{
|
||||||
|
ADD_METHOD( SetPlayerOptions );
|
||||||
Luna<T>::Register( L );
|
Luna<T>::Register( L );
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1842,6 +1842,24 @@ public:
|
|||||||
return 1;
|
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)
|
static void Register(lua_State *L)
|
||||||
{
|
{
|
||||||
ADD_METHOD( GetAllSongs );
|
ADD_METHOD( GetAllSongs );
|
||||||
@@ -1861,6 +1879,7 @@ public:
|
|||||||
ADD_METHOD( GetSongFromSteps );
|
ADD_METHOD( GetSongFromSteps );
|
||||||
ADD_METHOD( GetSongRank );
|
ADD_METHOD( GetSongRank );
|
||||||
ADD_METHOD( GetCourseRank );
|
ADD_METHOD( GetCourseRank );
|
||||||
|
ADD_METHOD( GetExtraStageInfo );
|
||||||
|
|
||||||
Luna<T>::Register( L );
|
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
|
* (c) 2001-2002 Chris Danford
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ const int MAX_COLS_PER_PLAYER = MAX_NOTE_TRACKS;
|
|||||||
|
|
||||||
class NoteData;
|
class NoteData;
|
||||||
class Game;
|
class Game;
|
||||||
|
struct lua_State;
|
||||||
|
|
||||||
class Style
|
class Style
|
||||||
{
|
{
|
||||||
@@ -62,6 +63,9 @@ public:
|
|||||||
bool MatchesStepsType( StepsType type ) const;
|
bool MatchesStepsType( StepsType type ) const;
|
||||||
|
|
||||||
void GetMinAndMaxColX( PlayerNumber pn, float& fMixXOut, float& fMaxXOut ) const;
|
void GetMinAndMaxColX( PlayerNumber pn, float& fMixXOut, float& fMaxXOut ) const;
|
||||||
|
|
||||||
|
// Lua
|
||||||
|
void PushSelf( lua_State *L );
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user