diff --git a/components/nifbullet/bulletnifloader.cpp b/components/nifbullet/bulletnifloader.cpp index a7afabf8f..be5a7d9d6 100644 --- a/components/nifbullet/bulletnifloader.cpp +++ b/components/nifbullet/bulletnifloader.cpp @@ -34,6 +34,13 @@ btVector3 getbtVector(const osg::Vec3f &v) return btVector3(v.x(), v.y(), v.z()); } +bool pathFileNameStartsWithX(const std::string& path) +{ + const std::size_t slashpos = path.find_last_of("/\\"); + const std::size_t letterPos = slashpos == std::string::npos ? 0 : slashpos + 1; + return letterPos < path.size() && (path[letterPos] == 'x' || path[letterPos] == 'X'); +} + } namespace NifBullet @@ -91,10 +98,7 @@ osg::ref_ptr BulletNifLoader::load(const Nif::NIFFilePtr& // files with the name convention xmodel.nif usually have keyframes stored in a separate file xmodel.kf (see Animation::addAnimSource). // assume all nodes in the file will be animated - std::string filename = nif->getFilename(); - const std::size_t slashpos = filename.find_last_of("/\\"); - const std::size_t letterPos = slashpos == std::string::npos ? 0 : slashpos + 1; - const bool isAnimated = letterPos < filename.size() && (filename[letterPos] == 'x' || filename[letterPos] == 'X'); + const bool isAnimated = pathFileNameStartsWithX(nif->getFilename()); handleNode(node, 0, autogenerated, isAnimated, autogenerated);