bindings
This commit is contained in:
@@ -405,6 +405,29 @@ public:
|
||||
};
|
||||
|
||||
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
|
||||
|
||||
/*
|
||||
|
||||
@@ -97,6 +97,10 @@ public:
|
||||
|
||||
vector<HighScore> vHighScores;
|
||||
Grade HighGrade;
|
||||
|
||||
// Lua
|
||||
void PushSelf( lua_State *L );
|
||||
|
||||
private:
|
||||
int iNumTimesPlayed;
|
||||
DateTime dtLastPlayed; // meaningless if iNumTimesPlayed == 0
|
||||
|
||||
@@ -1952,6 +1952,29 @@ class LunaProfile: public Luna<Profile>
|
||||
{
|
||||
public:
|
||||
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 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; }
|
||||
@@ -2013,6 +2036,7 @@ public:
|
||||
LunaProfile()
|
||||
{
|
||||
ADD_METHOD( GetDisplayName );
|
||||
ADD_METHOD( GetHighScoreList );
|
||||
ADD_METHOD( GetCharacter );
|
||||
ADD_METHOD( GetWeightPounds );
|
||||
ADD_METHOD( SetWeightPounds );
|
||||
|
||||
@@ -272,6 +272,27 @@ class LunaStageStats: public Luna<StageStats>
|
||||
public:
|
||||
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 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 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; }
|
||||
@@ -280,6 +301,8 @@ public:
|
||||
{
|
||||
ADD_METHOD( GetPlayerStageStats );
|
||||
ADD_METHOD( GetMultiPlayerStageStats );
|
||||
ADD_METHOD( GetPlayedSongs );
|
||||
ADD_METHOD( GetPossibleSongs );
|
||||
ADD_METHOD( GetGameplaySeconds );
|
||||
ADD_METHOD( OnePassed );
|
||||
ADD_METHOD( AllFailed );
|
||||
|
||||
@@ -218,8 +218,18 @@ class LunaStatsManager: public Luna<StatsManager>
|
||||
{
|
||||
public:
|
||||
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 GetAccumPlayedStageStats( T* p, lua_State *L ) { p->GetAccumPlayedStageStats().PushSelf(L); return 1; }
|
||||
static int GetFinalGrade( T* p, lua_State *L )
|
||||
{
|
||||
PlayerNumber pn = Enum::Check<PlayerNumber>(L, 1);
|
||||
@@ -285,6 +295,7 @@ public:
|
||||
LunaStatsManager()
|
||||
{
|
||||
ADD_METHOD( GetCurStageStats );
|
||||
ADD_METHOD( GetPlayedStageStats );
|
||||
ADD_METHOD( GetAccumPlayedStageStats );
|
||||
ADD_METHOD( Reset );
|
||||
ADD_METHOD( GetFinalGrade );
|
||||
|
||||
Reference in New Issue
Block a user