From 8548f1cb3364e901c731ab8f944794c3d076ed9c Mon Sep 17 00:00:00 2001 From: Glenn Maynard Date: Thu, 21 Sep 2006 01:39:38 +0000 Subject: [PATCH] simplify ActorCommands --- stepmania/src/Actor.cpp | 4 ++-- stepmania/src/ActorCommands.cpp | 12 ++++++++---- stepmania/src/ActorCommands.h | 7 +------ stepmania/src/BGAnimation.cpp | 2 +- stepmania/src/Background.cpp | 7 +++---- stepmania/src/NoteSkinManager.cpp | 2 +- stepmania/src/ScoreDisplayBattle.cpp | 2 +- stepmania/src/ScreenEnding.cpp | 2 +- stepmania/src/ScreenEz2SelectMusic.cpp | 4 ++-- stepmania/src/ScreenNameEntryTraditional.cpp | 2 +- stepmania/src/ThemeManager.cpp | 2 +- 11 files changed, 22 insertions(+), 24 deletions(-) diff --git a/stepmania/src/Actor.cpp b/stepmania/src/Actor.cpp index 77c4c52640..69c43bc7ac 100644 --- a/stepmania/src/Actor.cpp +++ b/stepmania/src/Actor.cpp @@ -261,7 +261,7 @@ void Actor::LoadFromNode( const RString& sDir, const XNode* pNode ) else if( sKeyName == "BaseZoomZ" ) SetBaseZoomZ( StringToFloat(sValue) ); else if( EndsWith(sKeyName,"Command") ) { - apActorCommands apac( new ActorCommands( sValue ) ); + apActorCommands apac = ActorCommands( sValue ); RString sCmdName = sKeyName.Left( sKeyName.size()-7 ); AddCommand( sCmdName, apac ); @@ -284,7 +284,7 @@ void Actor::LoadFromNode( const RString& sDir, const XNode* pNode ) c->GetAttrValue( "Value", sValue ); LuaHelpers::RunAtExpressionS( sName ); - apActorCommands apac( new ActorCommands( sValue ) ); + apActorCommands apac = ActorCommands( sValue ); AddCommand( sName, apac ); } diff --git a/stepmania/src/ActorCommands.cpp b/stepmania/src/ActorCommands.cpp index 408c51411b..eb4db4ac8f 100644 --- a/stepmania/src/ActorCommands.cpp +++ b/stepmania/src/ActorCommands.cpp @@ -7,7 +7,7 @@ #include #include "LuaManager.h" -ActorCommands::ActorCommands( const RString &sCommands ) +apActorCommands ActorCommands( const RString &sCommands ) { RString sLuaFunction; if( sCommands.size() > 0 && sCommands[0] == '\033' ) @@ -89,6 +89,8 @@ ActorCommands::ActorCommands( const RString &sCommands ) Lua *L = LUA->Get(); + LuaReference *pRet = new LuaReference; + RString sError; if( !LuaHelpers::RunScript( L, sLuaFunction, "in", sError, 1 ) ) { @@ -96,12 +98,14 @@ ActorCommands::ActorCommands( const RString &sCommands ) } /* The function is now on the stack. */ - this->SetFromStack( L ); + pRet->SetFromStack( L ); LUA->Release( L ); - ASSERT_M( !this->IsNil(), sLuaFunction.c_str() ); + ASSERT_M( !pRet->IsNil(), sLuaFunction.c_str() ); - SetName( sLuaFunction ); + pRet->SetName( sLuaFunction ); + + return apActorCommands( pRet ); } diff --git a/stepmania/src/ActorCommands.h b/stepmania/src/ActorCommands.h index 809f035bc5..a1712c2a9b 100644 --- a/stepmania/src/ActorCommands.h +++ b/stepmania/src/ActorCommands.h @@ -7,13 +7,8 @@ #include "LuaReference.h" -class ActorCommands: public LuaReference -{ -public: - ActorCommands( const RString &sCommands ); -}; - typedef AutoPtrCopyOnWrite apActorCommands; +apActorCommands ActorCommands( const RString &sCommands ); #endif diff --git a/stepmania/src/BGAnimation.cpp b/stepmania/src/BGAnimation.cpp index fc4257a9e1..0c6cc3e916 100644 --- a/stepmania/src/BGAnimation.cpp +++ b/stepmania/src/BGAnimation.cpp @@ -158,7 +158,7 @@ void BGAnimation::LoadFromNode( const RString& sDir, const XNode* pNode ) Actor *pActor = new Actor; pActor->SetName( "BGAnimation dummy" ); pActor->SetHidden( true ); - apActorCommands ap( new ActorCommands(ssprintf("sleep,%f",fLengthSeconds)) ); + apActorCommands ap = ActorCommands( ssprintf("sleep,%f",fLengthSeconds) ); pActor->AddCommand( "On", ap ); AddChild( pActor ); } diff --git a/stepmania/src/Background.cpp b/stepmania/src/Background.cpp index 7e98e4d65c..cd78f180f8 100644 --- a/stepmania/src/Background.cpp +++ b/stepmania/src/Background.cpp @@ -187,12 +187,12 @@ void BackgroundImpl::Init() RString sCmdLeaves; bool bSuccess = xml.GetAttrValue( "LeavesCommand", sCmdLeaves ); ASSERT( bSuccess ); - bgt.cmdLeaves = apActorCommands( new ActorCommands(sCmdLeaves) ); + bgt.cmdLeaves = ActorCommands( sCmdLeaves ); RString sCmdRoot; bSuccess = xml.GetAttrValue( "RootCommand", sCmdRoot ); ASSERT( bSuccess ); - bgt.cmdRoot = apActorCommands( new ActorCommands(sCmdRoot) ); + bgt.cmdRoot = ActorCommands( sCmdRoot ); } } @@ -715,8 +715,7 @@ void BackgroundImpl::LoadFromSong( const Song* pSong ) * may look something like "BGAnimation, BGAnimationLayer, Sprite" or it * may be deeper, like "BGAnimation, BGAnimationLayer, BGAnimation, * BGAnimationLayer, Sprite". */ - ActorCommands acmds( "effectclock,music" ); - pBGA->RunCommands( acmds ); + pBGA->RunCommands( ActorCommands("effectclock,music") ); } } diff --git a/stepmania/src/NoteSkinManager.cpp b/stepmania/src/NoteSkinManager.cpp index 9ba694b27d..6bc24ee065 100644 --- a/stepmania/src/NoteSkinManager.cpp +++ b/stepmania/src/NoteSkinManager.cpp @@ -194,7 +194,7 @@ bool NoteSkinManager::GetMetricB( const RString &sButtonName, const RString &sVa apActorCommands NoteSkinManager::GetMetricA( const RString &sButtonName, const RString &sValueName ) { - return apActorCommands( new ActorCommands( GetMetric(sButtonName,sValueName) ) ); + return ActorCommands( GetMetric(sButtonName,sValueName) ); } RString NoteSkinManager::GetPath( const RString &sButtonName, const RString &sElement ) diff --git a/stepmania/src/ScoreDisplayBattle.cpp b/stepmania/src/ScoreDisplayBattle.cpp index 3352ad01c1..0281bfa729 100644 --- a/stepmania/src/ScoreDisplayBattle.cpp +++ b/stepmania/src/ScoreDisplayBattle.cpp @@ -57,7 +57,7 @@ void ScoreDisplayBattle::Update( float fDelta ) // TODO: Cache all of the icon graphics so we don't load them dynamically from disk. m_ItemIcon[s].Load( THEME->GetPathG("ScoreDisplayBattle","icon "+sNewModifier) ); m_ItemIcon[s].StopTweening(); - ActorCommands acmds( + apActorCommands acmds = ActorCommands( "diffuse,1,1,1,1;zoom,1;" "sleep,0.1;linear,0;diffusealpha,0;" "sleep,0.1;linear,0;diffusealpha,1;" diff --git a/stepmania/src/ScreenEnding.cpp b/stepmania/src/ScreenEnding.cpp index e778eff454..669d31ca07 100644 --- a/stepmania/src/ScreenEnding.cpp +++ b/stepmania/src/ScreenEnding.cpp @@ -103,7 +103,7 @@ void ScreenEnding::Init() break; } SET_XY_AND_ON_COMMAND( m_sprRemoveMemoryCard[p] ); - m_sprRemoveMemoryCard[p].AddCommand( ssprintf("CardRemovedP%dMessage",p+1), apActorCommands(new ActorCommands("hidden,1")) ); + m_sprRemoveMemoryCard[p].AddCommand( ssprintf("CardRemovedP%dMessage",p+1), ActorCommands("hidden,1") ); this->AddChild( &m_sprRemoveMemoryCard[p] ); } diff --git a/stepmania/src/ScreenEz2SelectMusic.cpp b/stepmania/src/ScreenEz2SelectMusic.cpp index 8a39bcce38..d50eb7f43b 100644 --- a/stepmania/src/ScreenEz2SelectMusic.cpp +++ b/stepmania/src/ScreenEz2SelectMusic.cpp @@ -410,10 +410,10 @@ void ScreenEz2SelectMusic::MenuBack( const InputEventPlus &input ) void ScreenEz2SelectMusic::TweenOffScreen() { - ActorCommands cmds( "linear,0.5;zoomy,0" ); + apActorCommands cmds = ActorCommands( "linear,0.5;zoomy,0" ); m_MusicBannerWheel.RunCommands( cmds ); - ActorCommands cmds2( "Linear,1;DiffuseAlpha,0" ); + apActorCommands cmds2 = ActorCommands( "Linear,1;DiffuseAlpha,0" ); m_PumpDifficultyCircle.RunCommands( cmds2 ); m_Guide.RunCommands( cmds2 ); m_PumpDifficultyRating.RunCommands( cmds2 ); diff --git a/stepmania/src/ScreenNameEntryTraditional.cpp b/stepmania/src/ScreenNameEntryTraditional.cpp index cb7d10bf69..d498fb2862 100644 --- a/stepmania/src/ScreenNameEntryTraditional.cpp +++ b/stepmania/src/ScreenNameEntryTraditional.cpp @@ -82,7 +82,7 @@ void HighScoreWheelItem::LoadBlank( int iRankIndex ) void HighScoreWheelItem::ShowFocus() { - ActorCommands c( "diffuseshift;EffectColor1,1,1,0,1;EffectColor2,0,1,1,1" ); + apActorCommands c = ActorCommands( "diffuseshift;EffectColor1,1,1,0,1;EffectColor2,0,1,1,1" ); m_textRank.RunCommands( c ); m_textName.RunCommands( c ); m_textScore.RunCommands( c ); diff --git a/stepmania/src/ThemeManager.cpp b/stepmania/src/ThemeManager.cpp index cf8480338d..57a4b2fdc9 100644 --- a/stepmania/src/ThemeManager.cpp +++ b/stepmania/src/ThemeManager.cpp @@ -945,7 +945,7 @@ RageColor ThemeManager::GetMetricC( const RString &sClassName, const RString &sV apActorCommands ThemeManager::GetMetricA( const RString &sClassName, const RString &sValueName ) { RString sValue = GetMetricRaw( g_pLoadedThemeData->iniMetrics, sClassName, sValueName ); - return apActorCommands( new ActorCommands( sValue ) ); + return ActorCommands( sValue ); } #endif