From ca58e594901de37666b8d83640b748e877792e28 Mon Sep 17 00:00:00 2001 From: Chris Danford Date: Sun, 28 Oct 2007 23:59:33 +0000 Subject: [PATCH] fix out-of-bounds in GetStepsQueue for Courses that bRepeat --- stepmania/src/ScreenGameplay.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/stepmania/src/ScreenGameplay.cpp b/stepmania/src/ScreenGameplay.cpp index cccb0090db..eb75ace6a9 100644 --- a/stepmania/src/ScreenGameplay.cpp +++ b/stepmania/src/ScreenGameplay.cpp @@ -2778,9 +2778,11 @@ class LunaPlayerInfo: public Luna { public: static int GetLifeMeter( T* p, lua_State *L ) { p->m_pLifeMeter->PushSelf(L); return 1; } - static int GetStepsQueue( T* p, lua_State *L ) + static int GetStepsQueueWrapped( T* p, lua_State *L ) { - Steps *pSteps = p->m_vpStepsQueue[ IArg(1) ]; + int iIndex = IArg(1); + iIndex %= p->m_vpStepsQueue.size(); + Steps *pSteps = p->m_vpStepsQueue[iIndex]; pSteps->PushSelf(L); return 1; } @@ -2788,7 +2790,7 @@ public: LunaPlayerInfo() { ADD_METHOD( GetLifeMeter ); - ADD_METHOD( GetStepsQueue ); + ADD_METHOD( GetStepsQueueWrapped ); } };