From 29068898046316d79b9ba521360060f8f3175360 Mon Sep 17 00:00:00 2001 From: "Admiral H. Curtiss" Date: Sun, 2 Jan 2022 06:06:53 +0100 Subject: [PATCH] Core: Add a Maker field for GameModDescriptors. --- Source/Core/DiscIO/GameModDescriptor.cpp | 6 ++++++ Source/Core/DiscIO/GameModDescriptor.h | 1 + Source/Core/UICommon/GameFile.cpp | 2 ++ docs/game-mod-descriptor.json | 3 +++ 4 files changed, 12 insertions(+) diff --git a/Source/Core/DiscIO/GameModDescriptor.cpp b/Source/Core/DiscIO/GameModDescriptor.cpp index 016df59d3d..5ed11dec3a 100644 --- a/Source/Core/DiscIO/GameModDescriptor.cpp +++ b/Source/Core/DiscIO/GameModDescriptor.cpp @@ -135,6 +135,10 @@ std::optional ParseGameModDescriptorString(std::string_view j { descriptor.display_name = value.get(); } + else if (key == "maker" && value.is()) + { + descriptor.maker = value.get(); + } else if (key == "banner" && value.is()) { descriptor.banner = MakeAbsolute(json_directory, value.get()); @@ -195,6 +199,8 @@ std::string WriteGameModDescriptorString(const GameModDescriptor& descriptor, bo json_root["base-file"] = picojson::value(descriptor.base_file); if (!descriptor.display_name.empty()) json_root["display-name"] = picojson::value(descriptor.display_name); + if (!descriptor.maker.empty()) + json_root["maker"] = picojson::value(descriptor.maker); if (!descriptor.banner.empty()) json_root["banner"] = picojson::value(descriptor.banner); if (descriptor.riivolution) diff --git a/Source/Core/DiscIO/GameModDescriptor.h b/Source/Core/DiscIO/GameModDescriptor.h index dc9c5d06f9..6260e9a75f 100644 --- a/Source/Core/DiscIO/GameModDescriptor.h +++ b/Source/Core/DiscIO/GameModDescriptor.h @@ -36,6 +36,7 @@ struct GameModDescriptor { std::string base_file; std::string display_name; + std::string maker; std::string banner; std::optional riivolution = std::nullopt; }; diff --git a/Source/Core/UICommon/GameFile.cpp b/Source/Core/UICommon/GameFile.cpp index c575d4018b..ee1ca0557f 100644 --- a/Source/Core/UICommon/GameFile.cpp +++ b/Source/Core/UICommon/GameFile.cpp @@ -177,6 +177,8 @@ GameFile::GameFile(std::string path) : m_file_path(std::move(path)) m_valid = true; m_file_size = File::GetSize(m_file_path); m_long_names.emplace(DiscIO::Language::English, std::move(descriptor->display_name)); + if (!descriptor->maker.empty()) + m_long_makers.emplace(DiscIO::Language::English, std::move(descriptor->maker)); m_internal_name = proxy.GetInternalName(); m_game_id = proxy.GetGameID(); m_gametdb_id = proxy.GetGameTDBID(); diff --git a/docs/game-mod-descriptor.json b/docs/game-mod-descriptor.json index a78486f6c1..6406effea0 100644 --- a/docs/game-mod-descriptor.json +++ b/docs/game-mod-descriptor.json @@ -17,6 +17,9 @@ "display-name": { "type": "string" }, + "maker": { + "type": "string" + }, "banner": { "type": "string" },