From ccc3a55cca4dc272148164ec98bf094e45870c5d Mon Sep 17 00:00:00 2001 From: AJ Kelly Date: Sat, 3 Jul 2010 17:52:57 -0500 Subject: [PATCH] [Course] add GetCourseEntries() Lua binding. [Trail] add GetTrailEntries() Lua binding. --- src/Course.cpp | 13 +++++++++++-- src/Trail.cpp | 11 +++++++++++ 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/src/Course.cpp b/src/Course.cpp index 44634c7378..2833f434ed 100644 --- a/src/Course.cpp +++ b/src/Course.cpp @@ -127,8 +127,6 @@ LUA_REGISTER_CLASS( CourseEntry ) // lua end - - Course::Course() { Init(); @@ -1057,6 +1055,16 @@ public: static int HasTimedMods( T* p, lua_State *L ) { lua_pushboolean( L, p->HasTimedMods() ); return 1; } DEFINE_METHOD( GetCourseType, GetCourseType() ) static int GetCourseEntry( T* p, lua_State *L ) { CourseEntry &ce = p->m_vEntries[IArg(1)]; ce.PushSelf(L); return 1; } + static int GetCourseEntries( T* p, lua_State *L ) + { + vector v; + for( unsigned i = 0; i < p->m_vEntries.size(); ++i ) + { + v.push_back(&p->m_vEntries[i]); + } + LuaHelpers::CreateTableFromArray( v, L ); + return 1; + } static int GetAllTrails( T* p, lua_State *L ) { vector v; @@ -1097,6 +1105,7 @@ public: ADD_METHOD( HasTimedMods ); ADD_METHOD( GetCourseType ); // [sm-ssc] returns CourseType enum now ADD_METHOD( GetCourseEntry ); + ADD_METHOD( GetCourseEntries ); ADD_METHOD( GetAllTrails ); ADD_METHOD( GetBannerPath ); ADD_METHOD( GetBackgroundPath ); // sm-ssc addition diff --git a/src/Trail.cpp b/src/Trail.cpp index 1ce841c5af..a4f803783d 100644 --- a/src/Trail.cpp +++ b/src/Trail.cpp @@ -264,6 +264,16 @@ public: return 2; } static int GetTrailEntry( T* p, lua_State *L ) { TrailEntry &te = p->m_vEntries[IArg(1)]; te.PushSelf(L); return 1; } + static int GetTrailEntries( T* p, lua_State *L ) + { + vector v; + for( unsigned i = 0; i < p->m_vEntries.size(); ++i ) + { + v.push_back(&p->m_vEntries[i]); + } + LuaHelpers::CreateTableFromArray( v, L ); + return 1; + } LunaTrail() { @@ -273,6 +283,7 @@ public: ADD_METHOD( GetRadarValues ); ADD_METHOD( GetArtists ); ADD_METHOD( GetTrailEntry ); + ADD_METHOD( GetTrailEntries ); } };