diff options
| author | iwubcode <iwubcode@users.noreply.github.com> | 2023-11-11 16:48:18 -0600 |
|---|---|---|
| committer | iwubcode <iwubcode@users.noreply.github.com> | 2023-12-10 18:29:21 -0600 |
| commit | 3658d3bffed6bdf4d31a2b2264bd3944101318c8 (patch) | |
| tree | 01f93f3e3745cf7a2d152ed2a638c637d4dac6f2 /Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsModAsset.cpp | |
| parent | 003872d7dd7894136010b20ca3e5e21179297a18 (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.cpp | 21 |
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(); |
