Merge pull request #209 from Laupetin/fix/asset-loading-capitalization

fix: do not normalize asset names when loading assets
This commit is contained in:
Jan 2024-06-01 15:19:36 +02:00 committed by GitHub
commit cd1e73d24d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -131,24 +131,22 @@ XAssetInfoGeneric* AssetLoadingManager::LoadAssetDependency(const asset_type_t a
XAssetInfoGeneric* AssetLoadingManager::LoadDependency(const asset_type_t assetType, const std::string& assetName) XAssetInfoGeneric* AssetLoadingManager::LoadDependency(const asset_type_t assetType, const std::string& assetName)
{ {
const auto normalizedAssetName = XAssetInfoGeneric::NormalizeAssetName(assetName); auto* alreadyLoadedAsset = m_context.m_zone->m_pools->GetAssetOrAssetReference(assetType, assetName);
auto* alreadyLoadedAsset = m_context.m_zone->m_pools->GetAssetOrAssetReference(assetType, normalizedAssetName);
if (alreadyLoadedAsset) if (alreadyLoadedAsset)
return alreadyLoadedAsset; return alreadyLoadedAsset;
const auto loader = m_asset_loaders_by_type.find(assetType); const auto loader = m_asset_loaders_by_type.find(assetType);
if (loader != m_asset_loaders_by_type.end()) if (loader != m_asset_loaders_by_type.end())
{ {
const auto ignoreEntry = m_context.m_ignored_asset_map.find(normalizedAssetName); const auto ignoreEntry = m_context.m_ignored_asset_map.find(assetName);
if (ignoreEntry != m_context.m_ignored_asset_map.end() && ignoreEntry->second == assetType) if (ignoreEntry != m_context.m_ignored_asset_map.end() && ignoreEntry->second == assetType)
{ {
const auto linkAssetName = std::format(",{}", normalizedAssetName); const auto linkAssetName = std::format(",{}", assetName);
return LoadIgnoredDependency(assetType, linkAssetName, loader->second.get()); return LoadIgnoredDependency(assetType, linkAssetName, loader->second.get());
} }
return LoadAssetDependency(assetType, normalizedAssetName, loader->second.get()); return LoadAssetDependency(assetType, assetName, loader->second.get());
} }
std::cerr << "Failed to find loader for asset type \"" << m_context.m_zone->m_pools->GetAssetTypeName(assetType) << "\"\n"; std::cerr << "Failed to find loader for asset type \"" << m_context.m_zone->m_pools->GetAssetTypeName(assetType) << "\"\n";
@ -157,23 +155,21 @@ XAssetInfoGeneric* AssetLoadingManager::LoadDependency(const asset_type_t assetT
IndirectAssetReference AssetLoadingManager::LoadIndirectAssetReference(const asset_type_t assetType, const std::string& assetName) IndirectAssetReference AssetLoadingManager::LoadIndirectAssetReference(const asset_type_t assetType, const std::string& assetName)
{ {
const auto normalizedAssetName = XAssetInfoGeneric::NormalizeAssetName(assetName); const auto* alreadyLoadedAsset = m_context.m_zone->m_pools->GetAssetOrAssetReference(assetType, assetName);
const auto* alreadyLoadedAsset = m_context.m_zone->m_pools->GetAssetOrAssetReference(assetType, normalizedAssetName);
if (alreadyLoadedAsset) if (alreadyLoadedAsset)
return IndirectAssetReference(assetType, normalizedAssetName); return IndirectAssetReference(assetType, assetName);
const auto ignoreEntry = m_context.m_ignored_asset_map.find(normalizedAssetName); const auto ignoreEntry = m_context.m_ignored_asset_map.find(assetName);
if (ignoreEntry != m_context.m_ignored_asset_map.end() && ignoreEntry->second == assetType) if (ignoreEntry != m_context.m_ignored_asset_map.end() && ignoreEntry->second == assetType)
return IndirectAssetReference(assetType, normalizedAssetName); return IndirectAssetReference(assetType, assetName);
const auto loader = m_asset_loaders_by_type.find(assetType); const auto loader = m_asset_loaders_by_type.find(assetType);
if (loader != m_asset_loaders_by_type.end()) if (loader != m_asset_loaders_by_type.end())
{ {
LoadAssetDependency(assetType, normalizedAssetName, loader->second.get()); LoadAssetDependency(assetType, assetName, loader->second.get());
return IndirectAssetReference(assetType, normalizedAssetName); return IndirectAssetReference(assetType, assetName);
} }
std::cerr << "Failed to find loader for asset type \"" << m_context.m_zone->m_pools->GetAssetTypeName(assetType) << "\"\n"; std::cerr << "Failed to find loader for asset type \"" << m_context.m_zone->m_pools->GetAssetTypeName(assetType) << "\"\n";
return IndirectAssetReference(assetType, normalizedAssetName); return IndirectAssetReference(assetType, assetName);
} }