mirror of
https://github.com/redstrate/Astra.git
synced 2025-04-20 11:47:46 +00:00
Add a dedicated game license profile setting
This replaces the old "Is Steam Account" option, and condensing it into one that can handle Windows/macOS licenses too.
This commit is contained in:
parent
d588bfcb6c
commit
fb65e7e6e9
5 changed files with 30 additions and 15 deletions
|
@ -14,6 +14,12 @@ class SquareBoot;
|
||||||
class AssetUpdater;
|
class AssetUpdater;
|
||||||
class Watchdog;
|
class Watchdog;
|
||||||
|
|
||||||
|
enum class GameLicense {
|
||||||
|
WindowsStandalone,
|
||||||
|
WindowsSteam,
|
||||||
|
macOS
|
||||||
|
};
|
||||||
|
|
||||||
struct ProfileSettings {
|
struct ProfileSettings {
|
||||||
QUuid uuid;
|
QUuid uuid;
|
||||||
QString name;
|
QString name;
|
||||||
|
@ -56,7 +62,8 @@ struct ProfileSettings {
|
||||||
bool isSapphire = false;
|
bool isSapphire = false;
|
||||||
QString lobbyURL;
|
QString lobbyURL;
|
||||||
bool rememberUsername = false, rememberPassword = false;
|
bool rememberUsername = false, rememberPassword = false;
|
||||||
bool useSteam = false;
|
|
||||||
|
GameLicense license = GameLicense::WindowsStandalone;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct AppSettings {
|
struct AppSettings {
|
||||||
|
|
|
@ -49,7 +49,7 @@ private:
|
||||||
QComboBox* serverType = nullptr;
|
QComboBox* serverType = nullptr;
|
||||||
QLineEdit* lobbyServerURL = nullptr;
|
QLineEdit* lobbyServerURL = nullptr;
|
||||||
QCheckBox* rememberUsernameBox = nullptr, *rememberPasswordBox = nullptr;
|
QCheckBox* rememberUsernameBox = nullptr, *rememberPasswordBox = nullptr;
|
||||||
QCheckBox* useSteamBox = nullptr;
|
QComboBox* gameLicenseBox = nullptr;
|
||||||
|
|
||||||
// dalamud
|
// dalamud
|
||||||
QCheckBox* enableDalamudBox = nullptr;
|
QCheckBox* enableDalamudBox = nullptr;
|
||||||
|
|
|
@ -101,7 +101,7 @@ void LauncherCore::launchGame(const ProfileSettings& profile, const LoginAuth au
|
||||||
|
|
||||||
QProcessEnvironment env = QProcessEnvironment::systemEnvironment();
|
QProcessEnvironment env = QProcessEnvironment::systemEnvironment();
|
||||||
|
|
||||||
if(profile.useSteam) {
|
if(profile.license == GameLicense::WindowsSteam) {
|
||||||
gameArgs.push_back({"IsSteam", "1"});
|
gameArgs.push_back({"IsSteam", "1"});
|
||||||
env.insert("IS_FFXIV_LAUNCH_FROM_STEAM", QString::number(1));
|
env.insert("IS_FFXIV_LAUNCH_FROM_STEAM", QString::number(1));
|
||||||
}
|
}
|
||||||
|
@ -337,7 +337,7 @@ void LauncherCore::readInitialInformation() {
|
||||||
profile.lobbyURL = settings.value("lobbyURL", defaultSettings.lobbyURL).toString();
|
profile.lobbyURL = settings.value("lobbyURL", defaultSettings.lobbyURL).toString();
|
||||||
profile.rememberUsername = settings.value("rememberUsername", defaultSettings.rememberUsername).toBool();
|
profile.rememberUsername = settings.value("rememberUsername", defaultSettings.rememberUsername).toBool();
|
||||||
profile.rememberPassword = settings.value("rememberPassword", defaultSettings.rememberPassword).toBool();
|
profile.rememberPassword = settings.value("rememberPassword", defaultSettings.rememberPassword).toBool();
|
||||||
profile.useSteam = settings.value("useSteam", defaultSettings.useSteam).toBool();
|
profile.license = (GameLicense)settings.value("license", (int)defaultSettings.license).toInt();
|
||||||
|
|
||||||
profile.useDX9 = settings.value("useDX9", defaultSettings.useDX9).toBool();
|
profile.useDX9 = settings.value("useDX9", defaultSettings.useDX9).toBool();
|
||||||
profile.useEsync = settings.value("useEsync", defaultSettings.useEsync).toBool();
|
profile.useEsync = settings.value("useEsync", defaultSettings.useEsync).toBool();
|
||||||
|
@ -543,7 +543,7 @@ void LauncherCore::saveSettings() {
|
||||||
settings.setValue("lobbyURL", profile.lobbyURL);
|
settings.setValue("lobbyURL", profile.lobbyURL);
|
||||||
settings.setValue("rememberUsername", profile.rememberUsername);
|
settings.setValue("rememberUsername", profile.rememberUsername);
|
||||||
settings.setValue("rememberPassword", profile.rememberPassword);
|
settings.setValue("rememberPassword", profile.rememberPassword);
|
||||||
settings.setValue("useSteam", profile.useSteam);
|
settings.setValue("license", (int)profile.license);
|
||||||
|
|
||||||
settings.setValue("enableDalamud", profile.dalamud.enabled);
|
settings.setValue("enableDalamud", profile.dalamud.enabled);
|
||||||
settings.setValue("dalamudOptOut", profile.dalamud.optOutOfMbCollection);
|
settings.setValue("dalamudOptOut", profile.dalamud.optOutOfMbCollection);
|
||||||
|
|
|
@ -177,6 +177,22 @@ SettingsWindow::SettingsWindow(int defaultTab, LauncherWindow& window, LauncherC
|
||||||
|
|
||||||
loginBoxLayout->addRow("Server Lobby", serverType);
|
loginBoxLayout->addRow("Server Lobby", serverType);
|
||||||
|
|
||||||
|
gameLicenseBox = new QComboBox();
|
||||||
|
gameLicenseBox->insertItem(0, "Windows Standalone");
|
||||||
|
gameLicenseBox->insertItem(1, "Windows Steam");
|
||||||
|
gameLicenseBox->insertItem(2, "macOS");
|
||||||
|
|
||||||
|
connect(gameLicenseBox,
|
||||||
|
static_cast<void (QComboBox::*)(int)>(
|
||||||
|
&QComboBox::currentIndexChanged),
|
||||||
|
[=](int index) {
|
||||||
|
getCurrentProfile().license = (GameLicense)index;
|
||||||
|
|
||||||
|
this->core.saveSettings();
|
||||||
|
});
|
||||||
|
|
||||||
|
loginBoxLayout->addRow("Game License", gameLicenseBox);
|
||||||
|
|
||||||
lobbyServerURL = new QLineEdit();
|
lobbyServerURL = new QLineEdit();
|
||||||
connect(lobbyServerURL, &QLineEdit::editingFinished, [=] {
|
connect(lobbyServerURL, &QLineEdit::editingFinished, [=] {
|
||||||
getCurrentProfile().lobbyURL = lobbyServerURL->text();
|
getCurrentProfile().lobbyURL = lobbyServerURL->text();
|
||||||
|
@ -202,14 +218,6 @@ SettingsWindow::SettingsWindow(int defaultTab, LauncherWindow& window, LauncherC
|
||||||
});
|
});
|
||||||
loginBoxLayout->addRow("Remember Password", rememberPasswordBox);
|
loginBoxLayout->addRow("Remember Password", rememberPasswordBox);
|
||||||
|
|
||||||
useSteamBox = new QCheckBox();
|
|
||||||
connect(useSteamBox, &QCheckBox::stateChanged, [=](int) {
|
|
||||||
getCurrentProfile().useSteam = useSteamBox->isChecked();
|
|
||||||
|
|
||||||
this->core.saveSettings();
|
|
||||||
});
|
|
||||||
loginBoxLayout->addRow("Is Steam Account", useSteamBox);
|
|
||||||
|
|
||||||
#if defined(Q_OS_MAC) || defined(Q_OS_LINUX)
|
#if defined(Q_OS_MAC) || defined(Q_OS_LINUX)
|
||||||
auto wineBox = new QGroupBox("Wine Options");
|
auto wineBox = new QGroupBox("Wine Options");
|
||||||
auto wineBoxLayout = new QFormLayout();
|
auto wineBoxLayout = new QFormLayout();
|
||||||
|
@ -481,7 +489,7 @@ void SettingsWindow::reloadControls() {
|
||||||
lobbyServerURL->setText(profile.lobbyURL);
|
lobbyServerURL->setText(profile.lobbyURL);
|
||||||
rememberUsernameBox->setChecked(profile.rememberUsername);
|
rememberUsernameBox->setChecked(profile.rememberUsername);
|
||||||
rememberPasswordBox->setChecked(profile.rememberPassword);
|
rememberPasswordBox->setChecked(profile.rememberPassword);
|
||||||
useSteamBox->setChecked(profile.useSteam);
|
gameLicenseBox->setCurrentIndex((int)profile.license);
|
||||||
|
|
||||||
// dalamud
|
// dalamud
|
||||||
enableDalamudBox->setChecked(profile.dalamud.enabled);
|
enableDalamudBox->setChecked(profile.dalamud.enabled);
|
||||||
|
|
|
@ -36,7 +36,7 @@ void SquareLauncher::getStored(const LoginInformation& info) {
|
||||||
query.addQueryItem("isft", "0");
|
query.addQueryItem("isft", "0");
|
||||||
query.addQueryItem("cssmode", "1");
|
query.addQueryItem("cssmode", "1");
|
||||||
query.addQueryItem("isnew", "1");
|
query.addQueryItem("isnew", "1");
|
||||||
query.addQueryItem("issteam", info.settings->useSteam ? "1" : "0");
|
query.addQueryItem("issteam", info.settings->license == GameLicense::WindowsSteam ? "1" : "0");
|
||||||
|
|
||||||
QUrl url("https://ffxiv-login.square-enix.com/oauth/ffxivarr/login/top");
|
QUrl url("https://ffxiv-login.square-enix.com/oauth/ffxivarr/login/top");
|
||||||
url.setQuery(query);
|
url.setQuery(query);
|
||||||
|
|
Loading…
Add table
Reference in a new issue