summaryrefslogtreecommitdiff
path: root/src/Companion.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/Companion.cpp')
-rw-r--r--src/Companion.cpp12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/Companion.cpp b/src/Companion.cpp
index b6d2605..225c4a1 100644
--- a/src/Companion.cpp
+++ b/src/Companion.cpp
@@ -1079,11 +1079,14 @@ std::optional<YAML::Node> Companion::AddAsset(YAML::Node asset) {
}
auto rom = this->GetRomData();
- auto factory = this->GetFactory(type)->get();
+ auto factory = this->GetFactory(type);
+
+ if(!factory.has_value()) {
+ return std::nullopt;
+ }
std::string output;
std::string typeId = ConvertType(type);
- int index;
if(symbol != "") {
output = symbol;
@@ -1095,10 +1098,11 @@ std::optional<YAML::Node> Companion::AddAsset(YAML::Node asset) {
asset["autogen"] = true;
asset["symbol"] = output;
- auto result = factory->parse(rom, asset);
+ auto result = this->RegisterAsset(output, asset);
if(result.has_value()){
- return std::get<1>(this->RegisterAsset(output, asset).value());
+ asset["path"] = std::get<0>(result.value());
+ return std::get<1>(result.value());
}
return std::nullopt;