bindings
This commit is contained in:
@@ -405,6 +405,29 @@ public:
|
|||||||
};
|
};
|
||||||
|
|
||||||
LUA_REGISTER_CLASS( HighScore )
|
LUA_REGISTER_CLASS( HighScore )
|
||||||
|
|
||||||
|
class LunaHighScoreList: public Luna<HighScoreList>
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
static int GetHighScores( T* p, lua_State *L )
|
||||||
|
{
|
||||||
|
lua_newtable(L);
|
||||||
|
for( int i = 0; i < (int) p->vHighScores.size(); ++i )
|
||||||
|
{
|
||||||
|
p->vHighScores[i].PushSelf(L);
|
||||||
|
lua_rawseti( L, -2, i+1 );
|
||||||
|
}
|
||||||
|
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
LunaHighScoreList()
|
||||||
|
{
|
||||||
|
ADD_METHOD( GetHighScores );
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
LUA_REGISTER_CLASS( HighScoreList )
|
||||||
// lua end
|
// lua end
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
@@ -97,6 +97,10 @@ public:
|
|||||||
|
|
||||||
vector<HighScore> vHighScores;
|
vector<HighScore> vHighScores;
|
||||||
Grade HighGrade;
|
Grade HighGrade;
|
||||||
|
|
||||||
|
// Lua
|
||||||
|
void PushSelf( lua_State *L );
|
||||||
|
|
||||||
private:
|
private:
|
||||||
int iNumTimesPlayed;
|
int iNumTimesPlayed;
|
||||||
DateTime dtLastPlayed; // meaningless if iNumTimesPlayed == 0
|
DateTime dtLastPlayed; // meaningless if iNumTimesPlayed == 0
|
||||||
|
|||||||
@@ -1952,6 +1952,29 @@ class LunaProfile: public Luna<Profile>
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
static int GetDisplayName( T* p, lua_State *L ) { lua_pushstring(L, p->m_sDisplayName ); return 1; }
|
static int GetDisplayName( T* p, lua_State *L ) { lua_pushstring(L, p->m_sDisplayName ); return 1; }
|
||||||
|
static int GetHighScoreList( T* p, lua_State *L )
|
||||||
|
{
|
||||||
|
if( LuaBinding::CheckLuaObjectType(L, 1, "Song") )
|
||||||
|
{
|
||||||
|
const Song *pSong = Luna<Song>::check(L,1);
|
||||||
|
const Steps *pSteps = Luna<Steps>::check(L,2);
|
||||||
|
HighScoreList &hsl = p->GetStepsHighScoreList( pSong, pSteps );
|
||||||
|
hsl.PushSelf( L );
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
else if( LuaBinding::CheckLuaObjectType(L, 1, "Course") )
|
||||||
|
{
|
||||||
|
const Course *pCourse = Luna<Course>::check(L,1);
|
||||||
|
const Trail *pTrail = Luna<Trail>::check(L,2);
|
||||||
|
HighScoreList &hsl = p->GetCourseHighScoreList( pCourse, pTrail );
|
||||||
|
hsl.PushSelf( L );
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
luaL_typerror( L, 1, "Song or Course" );
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
static int GetCharacter( T* p, lua_State *L ) { p->GetCharacter()->PushSelf(L); return 1; }
|
static int GetCharacter( T* p, lua_State *L ) { p->GetCharacter()->PushSelf(L); return 1; }
|
||||||
static int GetWeightPounds( T* p, lua_State *L ) { lua_pushnumber(L, p->m_iWeightPounds ); return 1; }
|
static int GetWeightPounds( T* p, lua_State *L ) { lua_pushnumber(L, p->m_iWeightPounds ); return 1; }
|
||||||
static int SetWeightPounds( T* p, lua_State *L ) { p->m_iWeightPounds = IArg(1); return 0; }
|
static int SetWeightPounds( T* p, lua_State *L ) { p->m_iWeightPounds = IArg(1); return 0; }
|
||||||
@@ -2013,6 +2036,7 @@ public:
|
|||||||
LunaProfile()
|
LunaProfile()
|
||||||
{
|
{
|
||||||
ADD_METHOD( GetDisplayName );
|
ADD_METHOD( GetDisplayName );
|
||||||
|
ADD_METHOD( GetHighScoreList );
|
||||||
ADD_METHOD( GetCharacter );
|
ADD_METHOD( GetCharacter );
|
||||||
ADD_METHOD( GetWeightPounds );
|
ADD_METHOD( GetWeightPounds );
|
||||||
ADD_METHOD( SetWeightPounds );
|
ADD_METHOD( SetWeightPounds );
|
||||||
|
|||||||
@@ -272,6 +272,27 @@ class LunaStageStats: public Luna<StageStats>
|
|||||||
public:
|
public:
|
||||||
static int GetPlayerStageStats( T* p, lua_State *L ) { p->m_player[Enum::Check<PlayerNumber>(L, 1)].PushSelf(L); return 1; }
|
static int GetPlayerStageStats( T* p, lua_State *L ) { p->m_player[Enum::Check<PlayerNumber>(L, 1)].PushSelf(L); return 1; }
|
||||||
static int GetMultiPlayerStageStats( T* p, lua_State *L ) { p->m_multiPlayer[Enum::Check<MultiPlayer>(L, 1)].PushSelf(L); return 1; }
|
static int GetMultiPlayerStageStats( T* p, lua_State *L ) { p->m_multiPlayer[Enum::Check<MultiPlayer>(L, 1)].PushSelf(L); return 1; }
|
||||||
|
static int GetPlayedSongs( T* p, lua_State *L )
|
||||||
|
{
|
||||||
|
lua_newtable(L);
|
||||||
|
for( int i = 0; i < (int) p->m_vpPlayedSongs.size(); ++i )
|
||||||
|
{
|
||||||
|
p->m_vpPlayedSongs[i]->PushSelf(L);
|
||||||
|
lua_rawseti( L, -2, i+1 );
|
||||||
|
}
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
static int GetPossibleSongs( T* p, lua_State *L )
|
||||||
|
{
|
||||||
|
lua_newtable(L);
|
||||||
|
for( int i = 0; i < (int) p->m_vpPossibleSongs.size(); ++i )
|
||||||
|
{
|
||||||
|
p->m_vpPossibleSongs[i]->PushSelf(L);
|
||||||
|
lua_rawseti( L, -2, i+1 );
|
||||||
|
}
|
||||||
|
return 1;
|
||||||
|
|
||||||
|
}
|
||||||
static int GetGameplaySeconds( T* p, lua_State *L ) { lua_pushnumber(L, p->m_fGameplaySeconds); return 1; }
|
static int GetGameplaySeconds( T* p, lua_State *L ) { lua_pushnumber(L, p->m_fGameplaySeconds); return 1; }
|
||||||
static int OnePassed( T* p, lua_State *L ) { lua_pushboolean(L, p->OnePassed()); return 1; }
|
static int OnePassed( T* p, lua_State *L ) { lua_pushboolean(L, p->OnePassed()); return 1; }
|
||||||
static int AllFailed( T* p, lua_State *L ) { lua_pushboolean(L, p->AllFailed()); return 1; }
|
static int AllFailed( T* p, lua_State *L ) { lua_pushboolean(L, p->AllFailed()); return 1; }
|
||||||
@@ -280,6 +301,8 @@ public:
|
|||||||
{
|
{
|
||||||
ADD_METHOD( GetPlayerStageStats );
|
ADD_METHOD( GetPlayerStageStats );
|
||||||
ADD_METHOD( GetMultiPlayerStageStats );
|
ADD_METHOD( GetMultiPlayerStageStats );
|
||||||
|
ADD_METHOD( GetPlayedSongs );
|
||||||
|
ADD_METHOD( GetPossibleSongs );
|
||||||
ADD_METHOD( GetGameplaySeconds );
|
ADD_METHOD( GetGameplaySeconds );
|
||||||
ADD_METHOD( OnePassed );
|
ADD_METHOD( OnePassed );
|
||||||
ADD_METHOD( AllFailed );
|
ADD_METHOD( AllFailed );
|
||||||
|
|||||||
@@ -218,8 +218,18 @@ class LunaStatsManager: public Luna<StatsManager>
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
static int GetCurStageStats( T* p, lua_State *L ) { p->m_CurStageStats.PushSelf(L); return 1; }
|
static int GetCurStageStats( T* p, lua_State *L ) { p->m_CurStageStats.PushSelf(L); return 1; }
|
||||||
static int GetAccumPlayedStageStats( T* p, lua_State *L ) { p->GetAccumPlayedStageStats().PushSelf(L); return 1; }
|
static int GetPlayedStageStats( T* p, lua_State *L )
|
||||||
|
{
|
||||||
|
int iAgo = IArg(1);
|
||||||
|
int iIndex = p->m_vPlayedStageStats.size() - iAgo;
|
||||||
|
if( iIndex < 0 || iIndex >= (int) p->m_vPlayedStageStats.size() )
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
p->m_vPlayedStageStats[iIndex].PushSelf(L);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
static int Reset( T* p, lua_State *L ) { p->Reset(); return 0; }
|
static int Reset( T* p, lua_State *L ) { p->Reset(); return 0; }
|
||||||
|
static int GetAccumPlayedStageStats( T* p, lua_State *L ) { p->GetAccumPlayedStageStats().PushSelf(L); return 1; }
|
||||||
static int GetFinalGrade( T* p, lua_State *L )
|
static int GetFinalGrade( T* p, lua_State *L )
|
||||||
{
|
{
|
||||||
PlayerNumber pn = Enum::Check<PlayerNumber>(L, 1);
|
PlayerNumber pn = Enum::Check<PlayerNumber>(L, 1);
|
||||||
@@ -285,6 +295,7 @@ public:
|
|||||||
LunaStatsManager()
|
LunaStatsManager()
|
||||||
{
|
{
|
||||||
ADD_METHOD( GetCurStageStats );
|
ADD_METHOD( GetCurStageStats );
|
||||||
|
ADD_METHOD( GetPlayedStageStats );
|
||||||
ADD_METHOD( GetAccumPlayedStageStats );
|
ADD_METHOD( GetAccumPlayedStageStats );
|
||||||
ADD_METHOD( Reset );
|
ADD_METHOD( Reset );
|
||||||
ADD_METHOD( GetFinalGrade );
|
ADD_METHOD( GetFinalGrade );
|
||||||
|
|||||||
Reference in New Issue
Block a user