From 6a62a6b4f7556c70310a167fc7a904d1d83a2114 Mon Sep 17 00:00:00 2001 From: yohjimane Date: Sat, 5 Aug 2023 04:35:57 -0700 Subject: [PATCH] Avoid crashing if anim mod directory does not exist --- src/Layers/xrRender/SkeletonAnimated.cpp | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/src/Layers/xrRender/SkeletonAnimated.cpp b/src/Layers/xrRender/SkeletonAnimated.cpp index 3d3d25df5ee..9adc61f7256 100644 --- a/src/Layers/xrRender/SkeletonAnimated.cpp +++ b/src/Layers/xrRender/SkeletonAnimated.cpp @@ -776,10 +776,13 @@ void CKinematicsAnimated::Load(const char* N, IReader* data, u32 dwFlags) FS.file_list(fset, "$game_meshes$", FS_ListFiles, nm); FS.file_list(fset, "$level$", FS_ListFiles, nm); - m_Motions.reserve(fset.size() - 1); + if (fset.size()) + { + m_Motions.reserve(fset.size() - 1); - for (FS_FileSet::iterator it = fset.begin(); it != fset.end(); it++) - loadOMF((*it).name.c_str()); + for (FS_FileSet::iterator it = fset.begin(); it != fset.end(); it++) + loadOMF((*it).name.c_str()); + } continue; } @@ -802,10 +805,13 @@ void CKinematicsAnimated::Load(const char* N, IReader* data, u32 dwFlags) FS.file_list(fset, "$game_meshes$", FS_ListFiles, nm); FS.file_list(fset, "$level$", FS_ListFiles, nm); - m_Motions.reserve(fset.size() - 1); + if (fset.size()) + { + m_Motions.reserve(fset.size() - 1); - for (FS_FileSet::iterator it = fset.begin(); it != fset.end(); it++) - loadOMF((*it).name.c_str()); + for (FS_FileSet::iterator it = fset.begin(); it != fset.end(); it++) + loadOMF((*it).name.c_str()); + } continue; }