add Lua methods

This commit is contained in:
Chris Danford
2005-02-15 23:13:18 +00:00
parent 146dbea98d
commit 1a75a8cba5
3 changed files with 42 additions and 5 deletions
+32 -2
View File
@@ -164,14 +164,19 @@ CString Profile::GetDisplayTotalCaloriesBurned() const
CString Profile::GetDisplayTotalCaloriesBurnedToday() const
{
DateTime now = DateTime::GetNowDate();
float fCals = GetCaloriesBurnedForDay(now);
float fCals = GetCaloriesBurnedToday();
if( m_iWeightPounds == 0 ) // weight not entered
return "N/A";
else
return FormatCalories( fCals );
}
float Profile::GetCaloriesBurnedToday() const
{
DateTime now = DateTime::GetNowDate();
return GetCaloriesBurnedForDay(now);
}
int Profile::GetTotalNumSongsPlayed() const
{
int iTotal = 0;
@@ -1641,6 +1646,31 @@ bool Profile::CreateNewProfile( CString sProfileDir, CString sName )
return bResult;
}
// lua start
#include "LuaBinding.h"
template<class T>
class LunaProfile : public Luna<T>
{
public:
LunaProfile() { LUA->Register( Register ); }
static int GetGoalCalories( T* p, lua_State *L ) { lua_pushnumber(L, p->m_iGoalCalories ); return 1; }
static int GetCaloriesBurnedToday( T* p, lua_State *L ) { lua_pushnumber(L, p->GetCaloriesBurnedToday() ); return 1; }
static void Register(lua_State *L)
{
ADD_METHOD( GetGoalCalories )
ADD_METHOD( GetCaloriesBurnedToday )
Luna<T>::Register( L );
}
};
LUA_REGISTER_CLASS( Profile )
// lua end
/*
* (c) 2001-2004 Chris Danford
* All rights reserved.
+7 -2
View File
@@ -16,6 +16,7 @@
#include "StyleUtil.h" // for StyleID
struct XNode;
struct lua_State;
//
// Current file versions
@@ -61,8 +62,9 @@ public:
// smart accessors
//
CString GetDisplayName() const;
CString GetDisplayTotalCaloriesBurned() const;
CString GetDisplayTotalCaloriesBurnedToday() const;
CString GetDisplayTotalCaloriesBurned() const; // remove me and use Lua instead
CString GetDisplayTotalCaloriesBurnedToday() const; // remove me and use Lua instead
float GetCaloriesBurnedToday() const;
int GetTotalNumSongsPlayed() const;
int GetTotalNumSongsPassed() const;
float GetSongsPossible( StepsType st, Difficulty dc ) const;
@@ -299,6 +301,9 @@ public:
static bool CreateNewProfile( CString sProfileDir, CString sName );
static void BackupToDir( CString sFromDir, CString sToDir );
// Lua
void PushSelf( lua_State *L );
private:
const HighScoresForASong *GetHighScoresForASong( const SongID& songID ) const;
const HighScoresForACourse *GetHighScoresForACourse( const CourseID& courseID ) const;
+3 -1
View File
@@ -540,11 +540,13 @@ class LunaProfileManager : public Luna<T>
public:
LunaProfileManager() { LUA->Register( Register ); }
static int IsUsingProfile( T* p, lua_State *L ) { lua_pushboolean(L, p->IsUsingProfile((PlayerNumber)IArg(1)) ); return 1; }
static int IsUsingProfile( T* p, lua_State *L ) { lua_pushboolean(L, p->IsUsingProfile((PlayerNumber)IArg(1)) ); return 1; }
static int GetProfile( T* p, lua_State *L ) { p->GetProfile((PlayerNumber)IArg(1))->PushSelf(L); return 1; }
static void Register(lua_State *L)
{
ADD_METHOD( IsUsingProfile )
ADD_METHOD( GetProfile )
Luna<T>::Register( L );
// Add global singleton if constructed already. If it's not constructed yet,