diff --git a/stepmania/src/Model.cpp b/stepmania/src/Model.cpp index 7e7dac30f2..c714f9d293 100644 --- a/stepmania/src/Model.cpp +++ b/stepmania/src/Model.cpp @@ -104,21 +104,7 @@ void Model::LoadPieces( CString sMeshesPath, CString sMaterialsPath, CString sBo // // Setup temp vertices (if necessary) // - bool bHasAnyPerVertexBones = false; - for( unsigned i = 0; i < m_pGeometry->m_Meshes.size(); ++i ) - { - const msMesh& mesh = m_pGeometry->m_Meshes[i]; - for( unsigned j = 0; j < mesh.Vertices.size(); ++j ) - { - if( mesh.Vertices[j].bone != -1 ) - { - bHasAnyPerVertexBones = true; - break; - } - } - } - - if( bHasAnyPerVertexBones ) + if( m_pGeometry->HasAnyPerVertexBones() ) { m_vTempMeshes = m_pGeometry->m_Meshes; m_pTempGeometry = DISPLAY->CreateCompiledGeometry(); diff --git a/stepmania/src/RageModelGeometry.cpp b/stepmania/src/RageModelGeometry.cpp index c9cacb8044..961ddb2d0d 100644 --- a/stepmania/src/RageModelGeometry.cpp +++ b/stepmania/src/RageModelGeometry.cpp @@ -56,6 +56,19 @@ void RageModelGeometry::OptimizeBones() } } +bool RageModelGeometry::HasAnyPerVertexBones() const +{ + for( unsigned i = 0; i < m_Meshes.size(); ++i ) + { + const msMesh& mesh = m_Meshes[i]; + for( unsigned j = 0; j < mesh.Vertices.size(); ++j ) + if( mesh.Vertices[j].bone != -1 ) + return true; + } + + return false; +} + #define THROW RageException::Throw( "Parse error in \"%s\" at line %d: '%s'", sPath.c_str(), iLineNum, sLine.c_str() ); void RageModelGeometry::LoadMilkshapeAscii( CString sPath ) diff --git a/stepmania/src/RageModelGeometry.h b/stepmania/src/RageModelGeometry.h index 502ccebb34..762b7902a9 100644 --- a/stepmania/src/RageModelGeometry.h +++ b/stepmania/src/RageModelGeometry.h @@ -20,6 +20,7 @@ public: public: void LoadMilkshapeAscii( CString sMilkshapeAsciiFile ); void OptimizeBones(); + bool HasAnyPerVertexBones() const; int m_iRefCount;