mirror of
https://github.com/shadps4-emu/shadPS4.git
synced 2025-05-17 17:05:02 +00:00
'Game Compatibility' read an issue from another operating system (#2559)
This commit is contained in:
parent
bf995d659b
commit
3b5d9459f3
1 changed files with 30 additions and 17 deletions
|
@ -78,12 +78,22 @@ void CompatibilityInfoClass::UpdateCompatibilityDatabase(QWidget* parent, bool f
|
||||||
CompatibilityEntry CompatibilityInfoClass::GetCompatibilityInfo(const std::string& serial) {
|
CompatibilityEntry CompatibilityInfoClass::GetCompatibilityInfo(const std::string& serial) {
|
||||||
QString title_id = QString::fromStdString(serial);
|
QString title_id = QString::fromStdString(serial);
|
||||||
if (m_compatibility_database.contains(title_id)) {
|
if (m_compatibility_database.contains(title_id)) {
|
||||||
{
|
|
||||||
QJsonObject compatibility_obj = m_compatibility_database[title_id].toObject();
|
QJsonObject compatibility_obj = m_compatibility_database[title_id].toObject();
|
||||||
for (int os_int = 0; os_int != static_cast<int>(OSType::Last); os_int++) {
|
|
||||||
QString os_string = OSTypeToString.at(static_cast<OSType>(os_int));
|
// Set current_os automatically
|
||||||
if (compatibility_obj.contains(os_string)) {
|
QString current_os;
|
||||||
QJsonObject compatibility_entry_obj = compatibility_obj[os_string].toObject();
|
#ifdef Q_OS_WIN
|
||||||
|
current_os = "os-windows";
|
||||||
|
#elif defined(Q_OS_MAC)
|
||||||
|
current_os = "os-macOS";
|
||||||
|
#elif defined(Q_OS_LINUX)
|
||||||
|
current_os = "os-linux";
|
||||||
|
#else
|
||||||
|
current_os = "os-unknown";
|
||||||
|
#endif
|
||||||
|
// Check if the game is compatible with the current operating system
|
||||||
|
if (compatibility_obj.contains(current_os)) {
|
||||||
|
QJsonObject compatibility_entry_obj = compatibility_obj[current_os].toObject();
|
||||||
CompatibilityEntry compatibility_entry{
|
CompatibilityEntry compatibility_entry{
|
||||||
LabelToCompatStatus.at(compatibility_entry_obj["status"].toString()),
|
LabelToCompatStatus.at(compatibility_entry_obj["status"].toString()),
|
||||||
compatibility_entry_obj["version"].toString(),
|
compatibility_entry_obj["version"].toString(),
|
||||||
|
@ -92,11 +102,14 @@ CompatibilityEntry CompatibilityInfoClass::GetCompatibilityInfo(const std::strin
|
||||||
compatibility_entry_obj["url"].toString(),
|
compatibility_entry_obj["url"].toString(),
|
||||||
compatibility_entry_obj["issue_number"].toString()};
|
compatibility_entry_obj["issue_number"].toString()};
|
||||||
return compatibility_entry;
|
return compatibility_entry;
|
||||||
}
|
} else {
|
||||||
}
|
// If there is no entry for the current operating system, return "Unknown"
|
||||||
|
return CompatibilityEntry{CompatibilityStatus::Unknown, "",
|
||||||
|
QDateTime::currentDateTime(), "", 0};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// If title not found, return "Unknown"
|
||||||
return CompatibilityEntry{CompatibilityStatus::Unknown, "", QDateTime::currentDateTime(), "",
|
return CompatibilityEntry{CompatibilityStatus::Unknown, "", QDateTime::currentDateTime(), "",
|
||||||
0};
|
0};
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue