summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorKiritoDv <kiritodev01@gmail.com>2026-01-18 19:57:29 -0600
committerKiritoDv <kiritodev01@gmail.com>2026-01-18 19:57:29 -0600
commita40c44d06a8efe0c074d7d7f615874cd8199dd27 (patch)
tree95936b96335e8612d939e54715b30434336329c8 /src
parentaaed953d180356f933bc0011d250f7de1366c42e (diff)
Added additional_info into AssetArrayFactory
Diffstat (limited to 'src')
-rw-r--r--src/factories/AssetArrayFactory.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/factories/AssetArrayFactory.cpp b/src/factories/AssetArrayFactory.cpp
index 37ee325..9e01139 100644
--- a/src/factories/AssetArrayFactory.cpp
+++ b/src/factories/AssetArrayFactory.cpp
@@ -83,6 +83,7 @@ std::optional<std::shared_ptr<IParsedData>> AssetArrayFactory::parse(std::vector
auto assetType = GetSafeNode<std::string>(node, "assetType");
auto factoryType = GetSafeNode<std::string>(node, "factoryType");
const auto count = GetSafeNode<uint32_t>(node, "count");
+ const auto additional_info = node["additional_info"];
auto [_, segment] = Decompressor::AutoDecode(node, buffer);
LUS::BinaryReader reader(segment.data, segment.size);
reader.SetEndianness(Torch::Endianness::Big);
@@ -94,6 +95,17 @@ std::optional<std::shared_ptr<IParsedData>> AssetArrayFactory::parse(std::vector
YAML::Node assetNode;
assetNode["type"] = factoryType;
assetNode["offset"] = ptr;
+ if(additional_info) {
+ for (const auto& it : additional_info) {
+ assetNode[it.first.as<std::string>()] = it.second;
+ }
+ if (assetNode["symbol"]) {
+ std::string symbol = assetNode["symbol"].as<std::string>();
+ symbol = std::regex_replace(symbol, std::regex(R"(\{idx\})"), std::to_string(i));
+ symbol = std::regex_replace(symbol, std::regex(R"(\{addr\})"), Torch::to_hex(ptr));
+ assetNode["symbol"] = symbol;
+ }
+ }
Companion::Instance->AddAsset(assetNode);
}