fix out-of-bounds in GetStepsQueue for Courses that bRepeat

This commit is contained in:
Chris Danford
2007-10-28 23:59:33 +00:00
parent ad697be6a9
commit ca58e59490
+5 -3
View File
@@ -2778,9 +2778,11 @@ class LunaPlayerInfo: public Luna<PlayerInfo>
{ {
public: public:
static int GetLifeMeter( T* p, lua_State *L ) { p->m_pLifeMeter->PushSelf(L); return 1; } 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); pSteps->PushSelf(L);
return 1; return 1;
} }
@@ -2788,7 +2790,7 @@ public:
LunaPlayerInfo() LunaPlayerInfo()
{ {
ADD_METHOD( GetLifeMeter ); ADD_METHOD( GetLifeMeter );
ADD_METHOD( GetStepsQueue ); ADD_METHOD( GetStepsQueueWrapped );
} }
}; };