mirror of
https://github.com/redstrate/Astra.git
synced 2025-04-20 11:47:46 +00:00
Add a new developer option to disable updates for a specific profile
Useful if you want to pin a game install to a specific version or whatever reason. This is a very niche option, so it's hidden behind developer settings.
This commit is contained in:
parent
2466bc5448
commit
c3acd8f44c
3 changed files with 30 additions and 1 deletions
|
@ -87,5 +87,8 @@ SPDX-License-Identifier: CC0-1.0
|
||||||
<entry key="IsBenchmark" type="bool">
|
<entry key="IsBenchmark" type="bool">
|
||||||
<default>false</default>
|
<default>false</default>
|
||||||
</entry>
|
</entry>
|
||||||
|
<entry key="AllowPatching" type="bool">
|
||||||
|
<default>true</default>
|
||||||
|
</entry>
|
||||||
</group>
|
</group>
|
||||||
</kcfg>
|
</kcfg>
|
||||||
|
|
|
@ -195,6 +195,12 @@ QCoro::Task<bool> SquareEnixLogin::checkBootUpdates()
|
||||||
if (!patchList.isEmpty()) {
|
if (!patchList.isEmpty()) {
|
||||||
qDebug(ASTRA_LOG) << "Boot patch list:" << patchList;
|
qDebug(ASTRA_LOG) << "Boot patch list:" << patchList;
|
||||||
|
|
||||||
|
if (!m_info->profile->config()->allowPatching()) {
|
||||||
|
Q_EMIT m_launcher.loginError(
|
||||||
|
i18n("You require an update to play, but you have the “Allow Updates” option checked - so the login was canceled."));
|
||||||
|
co_return false;
|
||||||
|
}
|
||||||
|
|
||||||
m_patcher = new Patcher(m_launcher, m_info->profile->config()->gamePath() + QStringLiteral("/boot"), *m_info->profile->bootData(), this);
|
m_patcher = new Patcher(m_launcher, m_info->profile->config()->gamePath() + QStringLiteral("/boot"), *m_info->profile->bootData(), this);
|
||||||
const std::string patchListStd = patchList.toStdString();
|
const std::string patchListStd = patchList.toStdString();
|
||||||
const bool hasPatched = co_await m_patcher->patch(physis_parse_patchlist(PatchListType::Boot, patchListStd.c_str()));
|
const bool hasPatched = co_await m_patcher->patch(physis_parse_patchlist(PatchListType::Boot, patchListStd.c_str()));
|
||||||
|
@ -398,11 +404,16 @@ QCoro::Task<bool> SquareEnixLogin::registerSession()
|
||||||
if (!body.isEmpty()) {
|
if (!body.isEmpty()) {
|
||||||
qDebug(ASTRA_LOG) << "Game patch list:" << body;
|
qDebug(ASTRA_LOG) << "Game patch list:" << body;
|
||||||
|
|
||||||
|
if (!m_info->profile->config()->allowPatching()) {
|
||||||
|
Q_EMIT m_launcher.loginError(
|
||||||
|
i18n("You require an update to play, but you have the “Allow Updates” option checked - so the login was canceled."));
|
||||||
|
co_return false;
|
||||||
|
}
|
||||||
|
|
||||||
m_patcher = new Patcher(m_launcher, m_info->profile->config()->gamePath() + QStringLiteral("/game"), *m_info->profile->gameData(), this);
|
m_patcher = new Patcher(m_launcher, m_info->profile->config()->gamePath() + QStringLiteral("/game"), *m_info->profile->gameData(), this);
|
||||||
std::string bodyStd = body.toStdString();
|
std::string bodyStd = body.toStdString();
|
||||||
const bool hasPatched = co_await m_patcher->patch(physis_parse_patchlist(PatchListType::Game, bodyStd.c_str()));
|
const bool hasPatched = co_await m_patcher->patch(physis_parse_patchlist(PatchListType::Game, bodyStd.c_str()));
|
||||||
m_patcher->deleteLater();
|
m_patcher->deleteLater();
|
||||||
qInfo() << hasPatched;
|
|
||||||
if (!hasPatched) {
|
if (!hasPatched) {
|
||||||
co_return false;
|
co_return false;
|
||||||
}
|
}
|
||||||
|
|
|
@ -106,6 +106,21 @@ FormCard.FormCardPage {
|
||||||
visible: page.profile.hasDirectx9
|
visible: page.profile.hasDirectx9
|
||||||
}
|
}
|
||||||
|
|
||||||
|
FormCard.FormSwitchDelegate {
|
||||||
|
id: allowUpdatesDelegate
|
||||||
|
|
||||||
|
text: i18n("Allow Updating")
|
||||||
|
description: i18n("If unchecked, Astra won't try to update the game automatically.")
|
||||||
|
checked: page.profile.config.allowPatching
|
||||||
|
onCheckedChanged: page.profile.config.allowPatching = checked
|
||||||
|
visible: LauncherCore.config.showDevTools
|
||||||
|
}
|
||||||
|
|
||||||
|
FormCard.FormDelegateSeparator {
|
||||||
|
above: allowUpdatesDelegate
|
||||||
|
visible: LauncherCore.config.showDevTools
|
||||||
|
}
|
||||||
|
|
||||||
FormCard.FormTextDelegate {
|
FormCard.FormTextDelegate {
|
||||||
description: page.profile.expansionVersionText
|
description: page.profile.expansionVersionText
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue