Patch is enabled only when game version matches patch version (#3336)

Removed redundancies from CheatsPatches::onSaveButtonClicked()
This commit is contained in:
marecl 2025-07-28 15:52:23 +02:00 committed by GitHub
parent 968cfe1180
commit d286631798
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -389,61 +389,41 @@ void CheatsPatches::onSaveButtonClicked() {
xmlWriter.writeStartElement(xmlReader.name().toString()); xmlWriter.writeStartElement(xmlReader.name().toString());
QString name = xmlReader.attributes().value("Name").toString(); QString name = xmlReader.attributes().value("Name").toString();
QString version = xmlReader.attributes().value("AppVer").toString();
bool versionMatch = version == m_gameVersion;
bool isEnabled = false; bool isEnabled = false;
bool hasIsEnabled = false;
bool foundPatchInfo = false; bool foundPatchInfo = false;
// Check and update the isEnabled attribute // Check and update the isEnabled attribute
for (const QXmlStreamAttribute& attr : xmlReader.attributes()) { for (const QXmlStreamAttribute& attr : xmlReader.attributes()) {
if (attr.name() == QStringLiteral("isEnabled")) { if (attr.name() == QStringLiteral("isEnabled"))
hasIsEnabled = true; continue;
auto it = m_patchInfos.find(name); xmlWriter.writeAttribute(attr.name().toString(), attr.value().toString());
if (it != m_patchInfos.end()) {
QCheckBox* checkBox = findCheckBoxByName(it->name);
if (checkBox) {
foundPatchInfo = true;
isEnabled = checkBox->isChecked();
xmlWriter.writeAttribute("isEnabled", isEnabled ? "true" : "false");
}
}
if (!foundPatchInfo) {
auto maskIt = m_patchInfos.find(name + " (any version)");
if (maskIt != m_patchInfos.end()) {
QCheckBox* checkBox = findCheckBoxByName(maskIt->name);
if (checkBox) {
foundPatchInfo = true;
isEnabled = checkBox->isChecked();
xmlWriter.writeAttribute("isEnabled",
isEnabled ? "true" : "false");
}
}
}
} else {
xmlWriter.writeAttribute(attr.name().toString(), attr.value().toString());
}
} }
if (!hasIsEnabled) { auto it = m_patchInfos.find(name);
auto it = m_patchInfos.find(name); if (it != m_patchInfos.end()) {
if (it != m_patchInfos.end()) { QCheckBox* checkBox = findCheckBoxByName(it->name);
QCheckBox* checkBox = findCheckBoxByName(it->name); if (checkBox) {
foundPatchInfo = true;
isEnabled = checkBox->isChecked();
}
}
if (!foundPatchInfo) {
auto maskIt = m_patchInfos.find(name + " (any version)");
if (maskIt != m_patchInfos.end()) {
QCheckBox* checkBox = findCheckBoxByName(maskIt->name);
if (checkBox) { if (checkBox) {
versionMatch = true;
foundPatchInfo = true; foundPatchInfo = true;
isEnabled = checkBox->isChecked(); isEnabled = checkBox->isChecked();
} }
} }
if (!foundPatchInfo) { }
auto maskIt = m_patchInfos.find(name + " (any version)"); if (foundPatchInfo) {
if (maskIt != m_patchInfos.end()) { xmlWriter.writeAttribute("isEnabled",
QCheckBox* checkBox = findCheckBoxByName(maskIt->name); (isEnabled && versionMatch) ? "true" : "false");
if (checkBox) {
foundPatchInfo = true;
isEnabled = checkBox->isChecked();
}
}
}
xmlWriter.writeAttribute("isEnabled", isEnabled ? "true" : "false");
} }
} else { } else {
xmlWriter.writeStartElement(xmlReader.name().toString()); xmlWriter.writeStartElement(xmlReader.name().toString());