diff --git a/stepmania/src/ScreenNetSelectMusic.cpp b/stepmania/src/ScreenNetSelectMusic.cpp index f9a163f639..81078be9ca 100644 --- a/stepmania/src/ScreenNetSelectMusic.cpp +++ b/stepmania/src/ScreenNetSelectMusic.cpp @@ -337,7 +337,7 @@ void ScreenNetSelectMusic::MenuDown( PlayerNumber pn, const InputEventType type return; StepsType st = GAMESTATE->GetCurrentStyle()->m_StepsType; vector MultiSteps; - MultiSteps = GAMESTATE->m_pCurSong->GetAllSteps( st ); + MultiSteps = GAMESTATE->m_pCurSong->GetStepsByStepsType( st ); if (MultiSteps.size() == 0) m_DC[pn] = NUM_DIFFICULTIES; else @@ -489,7 +489,7 @@ void ScreenNetSelectMusic::MusicChanged() m_DC[pn] = GAMESTATE->m_PreferredDifficulty[pn]; StepsType st = GAMESTATE->GetCurrentStyle()->m_StepsType; vector MultiSteps; - MultiSteps = GAMESTATE->m_pCurSong->GetAllSteps( st ); + MultiSteps = GAMESTATE->m_pCurSong->GetStepsByStepsType( st ); if (MultiSteps.size() == 0) m_DC[pn] = NUM_DIFFICULTIES; else diff --git a/stepmania/src/Song.cpp b/stepmania/src/Song.cpp index 37ace87a05..008023965f 100644 --- a/stepmania/src/Song.cpp +++ b/stepmania/src/Song.cpp @@ -826,7 +826,7 @@ void Song::GetSteps( if( !iMaxToGet ) return; - const vector& vpSteps = GetAllSteps(st); + const vector& vpSteps = GetStepsByStepsType(st); for( unsigned i=0; i& vpSteps = GetAllSteps(st); + const vector& vpSteps = GetStepsByStepsType(st); for( unsigned i=0; i& vpSteps = GetAllSteps(st); + const vector& vpSteps = GetStepsByStepsType(st); for( unsigned i=0; i& vpSteps = GetAllSteps(st); + const vector& vpSteps = GetStepsByStepsType(st); Steps *pClosest = NULL; int iClosestDistance = 999; for( unsigned i=0; i( v, L ); return 1; } + static int GetStepsByStepsType( T* p, lua_State *L ) + { + StepsType st = (StepsType)IArg(1); + const vector &v = p->GetStepsByStepsType( st ); + CreateTableFromArray( v, L ); + return 1; + } static int GetSongDir( T* p, lua_State *L ) { lua_pushstring(L, p->GetSongDir() ); return 1; } static void Register(lua_State *L) @@ -1429,6 +1436,7 @@ public: ADD_METHOD( GetFullDisplayTitle ) ADD_METHOD( GetFullTranslitTitle ) ADD_METHOD( GetAllSteps ) + ADD_METHOD( GetStepsByStepsType ) ADD_METHOD( GetSongDir ) Luna::Register( L ); } diff --git a/stepmania/src/song.h b/stepmania/src/song.h index 134a7670a8..cd06e63ba2 100644 --- a/stepmania/src/song.h +++ b/stepmania/src/song.h @@ -176,7 +176,8 @@ public: bool SongCompleteForStyle( const Style *st ) const; bool HasStepsType( StepsType st ) const; bool HasStepsTypeAndDifficulty( StepsType st, Difficulty dc ) const; - const vector& GetAllSteps( StepsType st=STEPS_TYPE_INVALID ) const { return st==STEPS_TYPE_INVALID? m_vpSteps:m_vpStepsByType[st]; } + const vector& GetAllSteps() const { return m_vpSteps; } + const vector& GetStepsByStepsType( StepsType st ) const { return m_vpStepsByType[st]; } void GetSteps( vector& arrayAddTo, StepsType st = STEPS_TYPE_INVALID,