From b9bf4778fa0a46bb59140e88462989eb4e190b41 Mon Sep 17 00:00:00 2001 From: Jan Date: Tue, 13 Feb 2024 23:53:59 +0100 Subject: [PATCH] fix: fix weapon attachment unique hidetags --- .../T6/AssetLoaders/AssetLoaderWeaponAttachment.cpp | 3 ++- .../AssetLoaders/AssetLoaderWeaponAttachmentUnique.cpp | 10 ++++++---- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/ObjLoading/Game/T6/AssetLoaders/AssetLoaderWeaponAttachment.cpp b/src/ObjLoading/Game/T6/AssetLoaders/AssetLoaderWeaponAttachment.cpp index 6796cd3d..5ed03211 100644 --- a/src/ObjLoading/Game/T6/AssetLoaders/AssetLoaderWeaponAttachment.cpp +++ b/src/ObjLoading/Game/T6/AssetLoaders/AssetLoaderWeaponAttachment.cpp @@ -112,7 +112,8 @@ bool AssetLoaderWeaponAttachment::LoadFromInfoString( CalculateAttachmentFields(attachment); attachment->szInternalName = memory->Dup(assetName.c_str()); - manager->AddAsset(ASSET_TYPE_ATTACHMENT, assetName, attachment, converter.GetDependencies(), converter.GetUsedScriptStrings()); + manager->AddAsset( + ASSET_TYPE_ATTACHMENT, assetName, attachment, converter.GetDependencies(), converter.GetUsedScriptStrings(), converter.GetIndirectAssetReferences()); return true; } diff --git a/src/ObjLoading/Game/T6/AssetLoaders/AssetLoaderWeaponAttachmentUnique.cpp b/src/ObjLoading/Game/T6/AssetLoaders/AssetLoaderWeaponAttachmentUnique.cpp index 9f9e3a24..9c5addfd 100644 --- a/src/ObjLoading/Game/T6/AssetLoaders/AssetLoaderWeaponAttachmentUnique.cpp +++ b/src/ObjLoading/Game/T6/AssetLoaders/AssetLoaderWeaponAttachmentUnique.cpp @@ -34,23 +34,25 @@ namespace T6 } auto* hideTags = reinterpret_cast(reinterpret_cast(m_structure) + field.iOffset); - auto currentHideTag = 0u; if (valueArray.size() < std::extent_v) { - m_used_script_string_list.emplace(m_zone_script_strings.AddOrGetScriptString("")); + m_used_script_string_list.emplace(m_zone_script_strings.AddOrGetScriptString(nullptr)); } + auto currentHideTag = 0u; for (; currentHideTag < valueArray.size(); currentHideTag++) { - const auto scrString = m_zone_script_strings.AddOrGetScriptString(valueArray[currentHideTag]); + const auto& currentValue = valueArray[currentHideTag]; + const auto scrString = + !currentValue.empty() ? m_zone_script_strings.AddOrGetScriptString(currentValue) : m_zone_script_strings.AddOrGetScriptString(nullptr); hideTags[currentHideTag] = scrString; m_used_script_string_list.emplace(scrString); } for (; currentHideTag < std::extent_v; currentHideTag++) { - hideTags[currentHideTag] = m_zone_script_strings.GetScriptString(""); + hideTags[currentHideTag] = m_zone_script_strings.GetScriptString(nullptr); } return true;