From 083c20497c25058fd8c51bc92d9e782d7e3a3991 Mon Sep 17 00:00:00 2001 From: Glenn Maynard Date: Thu, 2 Nov 2006 06:12:48 +0000 Subject: [PATCH] use LuaThreadVariable --- stepmania/src/LuaReference.h | 12 ++++++++++++ stepmania/src/ScreenGameplayLesson.cpp | 7 ++----- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/stepmania/src/LuaReference.h b/stepmania/src/LuaReference.h index 70f95dc779..6ec07ab0f2 100644 --- a/stepmania/src/LuaReference.h +++ b/stepmania/src/LuaReference.h @@ -44,6 +44,18 @@ public: RString Serialize() const; + template + static LuaReference Create( const T &val ) + { + Lua *L = LUA->Get(); + LuaReference ref; + LuaHelpers::Push( L, val ); + ref.SetFromStack( L ); + LUA->Release( L ); + + return ref; + } + private: void Unregister(); int m_iReference; diff --git a/stepmania/src/ScreenGameplayLesson.cpp b/stepmania/src/ScreenGameplayLesson.cpp index cc3a69371e..0c1a85cb53 100644 --- a/stepmania/src/ScreenGameplayLesson.cpp +++ b/stepmania/src/ScreenGameplayLesson.cpp @@ -39,12 +39,9 @@ void ScreenGameplayLesson::Init() int i = s - vs.begin(); AutoActor &aa = m_vPages[i]; - - LUA->SetGlobal( "PageIndex", i ); - LUA->SetGlobal( "NumPages", (int)vs.size() ); + LuaThreadVariable iIndex( "PageIndex", LuaReference::Create(i) ); + LuaThreadVariable iPages( "NumPages", LuaReference::Create( (int)vs.size() ) ); aa.Load( *s ); - LUA->UnsetGlobal( "PageIndex" ); - LUA->UnsetGlobal( "NumPages" ); aa->SetDrawOrder( DRAW_ORDER_OVERLAY+1 );