diff options
author | Kae <80987908+Novaenia@users.noreply.github.com> | 2024-03-09 06:25:55 +1100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-03-09 06:25:55 +1100 |
commit | 35dc974a8f87057c998f44687586a16147dba654 (patch) | |
tree | 7b8ce0977981bcba32c1c4088f0d26389a3cb99c /source/base | |
parent | 1cf7baa317e341a3fbca77454aa21a13440470ed (diff) | |
parent | 15a12c06a66adca4c953be8af6fc434cb6d2b156 (diff) |
Merge pull request #28 from JamesTheMaker/main
Added many new patch features
Diffstat (limited to 'source/base')
-rw-r--r-- | source/base/StarAssets.cpp | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/source/base/StarAssets.cpp b/source/base/StarAssets.cpp index 2c3d04b..422ea22 100644 --- a/source/base/StarAssets.cpp +++ b/source/base/StarAssets.cpp @@ -86,10 +86,21 @@ Assets::Assets(Settings settings, StringList assetSources) { m_assetSourcePaths.add(sourcePath, source); for (auto const& filename : source->assetPaths()) { - if (filename.endsWith(AssetsPatchSuffix, String::CaseInsensitive)) { - auto targetPatchFile = filename.substr(0, filename.size() - strlen(AssetsPatchSuffix)); - if (auto p = m_files.ptr(targetPatchFile)) - p->patchSources.append({filename, source}); + if (filename.contains(AssetsPatchSuffix, String::CaseInsensitive)) { + if (filename.endsWith(AssetsPatchSuffix, String::CaseInsensitive)) { + auto targetPatchFile = filename.substr(0, filename.size() - strlen(AssetsPatchSuffix)); + if (auto p = m_files.ptr(targetPatchFile)) + p->patchSources.append({filename, source}); + } else { + for (int i = 0; i < 10; i++) { + if (filename.endsWith(AssetsPatchSuffix + toString(i), String::CaseInsensitive)) { + auto targetPatchFile = filename.substr(0, filename.size() - strlen(AssetsPatchSuffix) + 1); + if (auto p = m_files.ptr(targetPatchFile)) + p->patchSources.append({filename, source}); + break; + } + } + } } auto& descriptor = m_files[filename]; descriptor.sourceName = filename; |