summaryrefslogtreecommitdiff
path: root/Source/Core/DiscIO/GameModDescriptor.cpp
diff options
context:
space:
mode:
authorAdmiral H. Curtiss <pikachu025@gmail.com>2021-12-09 00:01:10 +0100
committerAdmiral H. Curtiss <pikachu025@gmail.com>2021-12-12 21:26:09 +0100
commitb50861ea44e237e69b1c931b4ceb8c9b6dc8db4e (patch)
tree823d6e56a5bdc7000dc9d108658d237987cddfec /Source/Core/DiscIO/GameModDescriptor.cpp
parentf4e2d369c075f44f037289a1ccb78274c7d5cb39 (diff)
Core: Require game mod descriptor json to self-identify as one.
Diffstat (limited to 'Source/Core/DiscIO/GameModDescriptor.cpp')
-rw-r--r--Source/Core/DiscIO/GameModDescriptor.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/Source/Core/DiscIO/GameModDescriptor.cpp b/Source/Core/DiscIO/GameModDescriptor.cpp
index 587faafdaf..f1a50ac649 100644
--- a/Source/Core/DiscIO/GameModDescriptor.cpp
+++ b/Source/Core/DiscIO/GameModDescriptor.cpp
@@ -115,10 +115,15 @@ std::optional<GameModDescriptor> ParseGameModDescriptorString(std::string_view j
return std::nullopt;
GameModDescriptor descriptor;
+ bool is_game_mod_descriptor = false;
bool is_valid_version = false;
for (const auto& [key, value] : json_root.get<picojson::object>())
{
- if (key == "version" && value.is<double>())
+ if (key == "type" && value.is<std::string>())
+ {
+ is_game_mod_descriptor = value.get<std::string>() == "dolphin-game-mod-descriptor";
+ }
+ else if (key == "version" && value.is<double>())
{
is_valid_version = value.get<double>() == 1.0;
}
@@ -140,7 +145,7 @@ std::optional<GameModDescriptor> ParseGameModDescriptorString(std::string_view j
ParseRiivolutionObject(json_directory, value.get<picojson::object>());
}
}
- if (!is_valid_version)
+ if (!is_game_mod_descriptor || !is_valid_version)
return std::nullopt;
return descriptor;
}