From 84ab38abec7d09a0ccba54924604ee35627509c2 Mon Sep 17 00:00:00 2001 From: Glenn Maynard Date: Thu, 8 Dec 2005 19:38:44 +0000 Subject: [PATCH] Set ItemIndex for each item in an ActorScroller, so commands can use it. --- stepmania/src/ActorScroller.cpp | 9 +++++++++ stepmania/src/DynamicActorScroller.cpp | 8 ++++++++ 2 files changed, 17 insertions(+) diff --git a/stepmania/src/ActorScroller.cpp b/stepmania/src/ActorScroller.cpp index 716938e5e6..cb0a53e40e 100644 --- a/stepmania/src/ActorScroller.cpp +++ b/stepmania/src/ActorScroller.cpp @@ -6,6 +6,7 @@ #include "arch/Dialog/Dialog.h" #include "RageLog.h" #include "ActorUtil.h" +#include "LuaBinding.h" /* Tricky: We need ActorFrames created in XML to auto delete their children. * We don't want classes that derive from ActorFrame to auto delete their @@ -45,6 +46,14 @@ void ActorScroller::Load2( m_fNumItemsToDraw = fNumItemsToDraw; m_bLoop = bLoop; m_iNumItems = m_SubActors.size(); + + Lua *L = LUA->Get(); + for( unsigned i = 0; i < m_SubActors.size(); ++i ) + { + lua_pushnumber( L, i ); + this->m_SubActors[i]->m_pLuaInstance->Set( L, "ItemIndex" ); + } + LUA->Release( L ); } void ActorScroller::SetTransformFromExpression( const CString &sTransformFunction ) diff --git a/stepmania/src/DynamicActorScroller.cpp b/stepmania/src/DynamicActorScroller.cpp index 6d53eed66c..647e949892 100644 --- a/stepmania/src/DynamicActorScroller.cpp +++ b/stepmania/src/DynamicActorScroller.cpp @@ -4,6 +4,7 @@ #include "LuaManager.h" #include "ActorUtil.h" #include "RageUtil.h" +#include "LuaBinding.h" Actor *DynamicActorScroller::Copy() const { return new DynamicActorScroller(*this); } @@ -98,6 +99,13 @@ void DynamicActorScroller::ShiftSubActors( int iDist ) else if( iIndex < 0 || iIndex >= m_iNumItems || iItem < 0 || iItem >= m_iNumItems ) continue; + { + Lua *L = LUA->Get(); + lua_pushnumber( L, i ); + m_SubActors[iIndex]->m_pLuaInstance->Set( L, "ItemIndex" ); + LUA->Release(L); + } + ConfigureActor( m_SubActors[iIndex], iItem ); } }