add Lua bindings

This commit is contained in:
Chris Danford
2005-02-23 05:02:28 +00:00
parent 94f87f9b58
commit 6f6ef25d1d
4 changed files with 20 additions and 8 deletions
+4 -4
View File
@@ -26,7 +26,7 @@ XToString( RadarCategory );
XToThemedString( RadarCategory, NUM_RADAR_CATEGORIES ); XToThemedString( RadarCategory, NUM_RADAR_CATEGORIES );
void LuaStepsType(lua_State* L) static void LuaStepsType(lua_State* L)
{ {
FOREACH_StepsType( st ) FOREACH_StepsType( st )
{ {
@@ -50,7 +50,7 @@ static const CString PlayModeNames[NUM_PLAY_MODES] = {
XToString( PlayMode ); XToString( PlayMode );
XToThemedString( PlayMode, NUM_PLAY_MODES ); XToThemedString( PlayMode, NUM_PLAY_MODES );
StringToX( PlayMode ); StringToX( PlayMode );
void LuaPlayMode(lua_State* L) static void LuaPlayMode(lua_State* L)
{ {
FOREACH_PlayMode( pm ) FOREACH_PlayMode( pm )
{ {
@@ -281,7 +281,7 @@ static const CString GoalTypeNames[NUM_GOAL_TYPES] = {
}; };
XToString( GoalType ); XToString( GoalType );
StringToX( GoalType ); StringToX( GoalType );
void LuaGoalType(lua_State* L) static void LuaGoalType(lua_State* L)
{ {
FOREACH_GoalType( gt ) FOREACH_GoalType( gt )
{ {
@@ -302,7 +302,7 @@ static const CString EditMenuActionNames[NUM_EDIT_MENU_ACTIONS] = {
}; };
XToString( EditMenuAction ); XToString( EditMenuAction );
StringToX( EditMenuAction ); StringToX( EditMenuAction );
void LuaEditMenuAction(lua_State* L) static void LuaEditMenuAction(lua_State* L)
{ {
FOREACH_EditMenuAction( ema ) FOREACH_EditMenuAction( ema )
{ {
+12 -4
View File
@@ -1804,8 +1804,15 @@ public:
static int GetCurrentSong( T* p, lua_State *L ) { if(p->m_pCurSong) p->m_pCurSong->PushSelf(L); else lua_pushnil(L); return 1; } static int GetCurrentSong( T* p, lua_State *L ) { if(p->m_pCurSong) p->m_pCurSong->PushSelf(L); else lua_pushnil(L); return 1; }
static int SetCurrentSong( T* p, lua_State *L ) static int SetCurrentSong( T* p, lua_State *L )
{ {
if( lua_isnil(L,1) ) { p->m_pCurSong = NULL; } if( lua_isnil(L,1) )
else { Song *pS = Luna<Song>::check(L,1); p->m_pCurSong = pS; } {
p->m_pCurSong = NULL;
}
else
{
Song *pS = Luna<Song>::check(L,1);
p->m_pCurSong = pS;
}
return 0; return 0;
} }
static int GetCurrentSteps( T* p, lua_State *L ) static int GetCurrentSteps( T* p, lua_State *L )
@@ -1819,9 +1826,8 @@ public:
static int SetCurrentSteps( T* p, lua_State *L ) static int SetCurrentSteps( T* p, lua_State *L )
{ {
PlayerNumber pn = (PlayerNumber)IArg(1); PlayerNumber pn = (PlayerNumber)IArg(1);
Steps *pSteps = p->m_pCurSteps[pn];
if( lua_isnil(L,2) ) { p->m_pCurSteps[pn] = NULL; } if( lua_isnil(L,2) ) { p->m_pCurSteps[pn] = NULL; }
else { Song *pS = Luna<Song>::check(L,2); p->m_pCurSteps[pn] = pS; } else { Steps *pS = Luna<Steps>::check(L,2); p->m_pCurSteps[pn] = pS; }
return 0; return 0;
} }
static int GetCurrentCourse( T* p, lua_State *L ) { if(p->m_pCurCourse) p->m_pCurCourse->PushSelf(L); else lua_pushnil(L); return 1; } static int GetCurrentCourse( T* p, lua_State *L ) { if(p->m_pCurCourse) p->m_pCurCourse->PushSelf(L); else lua_pushnil(L); return 1; }
@@ -1842,6 +1848,8 @@ public:
ADD_METHOD( ApplyGameCommand ) ADD_METHOD( ApplyGameCommand )
ADD_METHOD( GetCurrentSong ) ADD_METHOD( GetCurrentSong )
ADD_METHOD( SetCurrentSong ) ADD_METHOD( SetCurrentSong )
ADD_METHOD( GetCurrentSteps )
ADD_METHOD( SetCurrentSteps )
ADD_METHOD( GetCurrentCourse ) ADD_METHOD( GetCurrentCourse )
ADD_METHOD( SetCurrentCourse ) ADD_METHOD( SetCurrentCourse )
ADD_METHOD( SetTemporaryEventMode ) ADD_METHOD( SetTemporaryEventMode )
+2
View File
@@ -1252,12 +1252,14 @@ public:
CreateTableFromArray<Course*>( v, L ); CreateTableFromArray<Course*>( v, L );
return 1; return 1;
} }
static int FindSong( T* p, lua_State *L ) { Song *pS = p->FindSong(SArg(1)); if(pS) pS->PushSelf(L); else lua_pushnil(L); return 1; }
static int FindCourse( T* p, lua_State *L ) { Course *pC = p->FindCourse(SArg(1)); if(pC) pC->PushSelf(L); else lua_pushnil(L); return 1; } static int FindCourse( T* p, lua_State *L ) { Course *pC = p->FindCourse(SArg(1)); if(pC) pC->PushSelf(L); else lua_pushnil(L); return 1; }
static void Register(lua_State *L) static void Register(lua_State *L)
{ {
ADD_METHOD( GetAllSongs ) ADD_METHOD( GetAllSongs )
ADD_METHOD( GetAllCourses ) ADD_METHOD( GetAllCourses )
ADD_METHOD( FindSong )
ADD_METHOD( FindCourse ) ADD_METHOD( FindCourse )
Luna<T>::Register( L ); Luna<T>::Register( L );
+2
View File
@@ -337,11 +337,13 @@ public:
LunaSteps() { LUA->Register( Register ); } LunaSteps() { LUA->Register( Register ); }
static int GetStepsType( T* p, lua_State *L ) { lua_pushnumber(L, p->m_StepsType ); return 1; } static int GetStepsType( T* p, lua_State *L ) { lua_pushnumber(L, p->m_StepsType ); return 1; }
static int GetDifficulty( T* p, lua_State *L ) { lua_pushnumber(L, p->GetDifficulty() ); return 1; }
static int GetDescription( T* p, lua_State *L ) { lua_pushstring(L, p->GetDescription() ); return 1; } static int GetDescription( T* p, lua_State *L ) { lua_pushstring(L, p->GetDescription() ); return 1; }
static void Register(lua_State *L) static void Register(lua_State *L)
{ {
ADD_METHOD( GetStepsType ) ADD_METHOD( GetStepsType )
ADD_METHOD( GetDifficulty )
ADD_METHOD( GetDescription ) ADD_METHOD( GetDescription )
Luna<T>::Register( L ); Luna<T>::Register( L );
} }