summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsModAsset.cpp
diff options
context:
space:
mode:
authoriwubcode <iwubcode@users.noreply.github.com>2023-11-11 16:48:18 -0600
committeriwubcode <iwubcode@users.noreply.github.com>2023-12-10 18:29:21 -0600
commit3658d3bffed6bdf4d31a2b2264bd3944101318c8 (patch)
tree01f93f3e3745cf7a2d152ed2a638c637d4dac6f2 /Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsModAsset.cpp
parent003872d7dd7894136010b20ca3e5e21179297a18 (diff)
VideoCommon: add ability to serialize graphics mod to json object
Diffstat (limited to 'Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsModAsset.cpp')
-rw-r--r--Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsModAsset.cpp21
1 files changed, 17 insertions, 4 deletions
diff --git a/Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsModAsset.cpp b/Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsModAsset.cpp
index 5b3141a283..4b51c1c367 100644
--- a/Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsModAsset.cpp
+++ b/Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsModAsset.cpp
@@ -4,6 +4,19 @@
#include "VideoCommon/GraphicsModSystem/Config/GraphicsModAsset.h"
#include "Common/Logging/Log.h"
+#include "Common/StringUtil.h"
+
+void GraphicsModAssetConfig::SerializeToConfig(picojson::object& json_obj) const
+{
+ json_obj["name"] = picojson::value{m_asset_id};
+
+ picojson::object serialized_data;
+ for (const auto& [name, path] : m_map)
+ {
+ serialized_data[name] = picojson::value{PathToString(path)};
+ }
+ json_obj["data"] = picojson::value{serialized_data};
+}
bool GraphicsModAssetConfig::DeserializeFromConfig(const picojson::object& obj)
{
@@ -19,13 +32,13 @@ bool GraphicsModAssetConfig::DeserializeFromConfig(const picojson::object& obj)
"that is not a string");
return false;
}
- m_name = name_iter->second.to_str();
+ m_asset_id = name_iter->second.to_str();
auto data_iter = obj.find("data");
if (data_iter == obj.end())
{
ERROR_LOG_FMT(VIDEO, "Failed to load mod configuration file, specified asset '{}' has no data",
- m_name);
+ m_asset_id);
return false;
}
if (!data_iter->second.is<picojson::object>())
@@ -33,7 +46,7 @@ bool GraphicsModAssetConfig::DeserializeFromConfig(const picojson::object& obj)
ERROR_LOG_FMT(VIDEO,
"Failed to load mod configuration file, specified asset '{}' has data "
"that is not an object",
- m_name);
+ m_asset_id);
return false;
}
for (const auto& [key, value] : data_iter->second.get<picojson::object>())
@@ -43,7 +56,7 @@ bool GraphicsModAssetConfig::DeserializeFromConfig(const picojson::object& obj)
ERROR_LOG_FMT(VIDEO,
"Failed to load mod configuration file, specified asset '{}' has data "
"with a value for key '{}' that is not a string",
- m_name, key);
+ m_asset_id, key);
return false;
}
m_map[key] = value.to_str();