From 640ec012f2f7ae4c6d09ae0125bb7a4b33548de9 Mon Sep 17 00:00:00 2001 From: Glenn Maynard Date: Sun, 27 May 2007 18:00:45 +0000 Subject: [PATCH] merge ActorUtil::Create into ActorUtil::LoadFromNode --- stepmania/src/ActorUtil.cpp | 27 ++++++++++----------------- stepmania/src/ActorUtil.h | 1 - 2 files changed, 10 insertions(+), 18 deletions(-) diff --git a/stepmania/src/ActorUtil.cpp b/stepmania/src/ActorUtil.cpp index 5914fe2ab8..80714c9359 100644 --- a/stepmania/src/ActorUtil.cpp +++ b/stepmania/src/ActorUtil.cpp @@ -32,21 +32,6 @@ void ActorUtil::Register( const RString& sClassName, CreateActorFn pfn ) (*g_pmapRegistrees)[sClassName] = pfn; } -Actor* ActorUtil::Create( const RString& sClassName, const XNode* pNode, Actor *pParentActor ) -{ - map::iterator iter = g_pmapRegistrees->find( sClassName ); - ASSERT_M( iter != g_pmapRegistrees->end(), ssprintf("Actor '%s' is not registered.",sClassName.c_str()) ); - - const CreateActorFn &pfn = iter->second; - Actor *pRet = pfn(); - - if( pParentActor ) - pRet->SetParent( pParentActor ); - - pRet->LoadFromNode( pNode ); - return pRet; -} - bool ActorUtil::ResolvePath( RString &sPath, const RString &sName ) { retry: @@ -130,7 +115,8 @@ Actor* ActorUtil::LoadFromNode( const XNode* pNode, Actor *pParentActor ) RString sClass; pNode->GetAttrValue( "Class", sClass ); - if( !IsRegistered(sClass) ) + map::iterator iter = g_pmapRegistrees->find( sClass ); + if( iter == g_pmapRegistrees->end() ) { // sClass is invalid RString sError = ssprintf( "%s: invalid Class \"%s\"", @@ -139,7 +125,14 @@ Actor* ActorUtil::LoadFromNode( const XNode* pNode, Actor *pParentActor ) return new Actor; // Return a dummy object so that we don't crash in AutoActor later. } - return ActorUtil::Create( sClass, pNode, pParentActor ); + const CreateActorFn &pfn = iter->second; + Actor *pRet = pfn(); + + if( pParentActor ) + pRet->SetParent( pParentActor ); + + pRet->LoadFromNode( pNode ); + return pRet; } namespace diff --git a/stepmania/src/ActorUtil.h b/stepmania/src/ActorUtil.h index bd4e82eb46..907f8f6d1f 100644 --- a/stepmania/src/ActorUtil.h +++ b/stepmania/src/ActorUtil.h @@ -40,7 +40,6 @@ namespace ActorUtil { // Every screen should register its class at program initialization. void Register( const RString& sClassName, CreateActorFn pfn ); - Actor* Create( const RString& sClassName, const XNode* pNode, Actor *pParentActor ); apActorCommands ParseActorCommands( const RString &sCommands, const RString &sName = "" ); void SetXY( Actor& actor, const RString &sType );