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 );