1
Fork 0
mirror of https://github.com/redstrate/Astra.git synced 2025-06-08 15:07:45 +00:00

Make Dalamud inject method/delay settings work, remove opt out setting

The automatic marketboard setting seems to have disappeared recently.
This commit is contained in:
Joshua Goins 2023-09-20 16:28:59 -04:00
parent ac543a7ab3
commit 481fb8214f
5 changed files with 59 additions and 37 deletions

View file

@ -33,7 +33,8 @@ class Profile : public QObject
Q_PROPERTY(int gamescopeHeight READ gamescopeHeight WRITE setGamescopeHeight NOTIFY gamescopeHeightChanged) Q_PROPERTY(int gamescopeHeight READ gamescopeHeight WRITE setGamescopeHeight NOTIFY gamescopeHeightChanged)
Q_PROPERTY(int gamescopeRefreshRate READ gamescopeRefreshRate WRITE setGamescopeRefreshRate NOTIFY gamescopeRefreshRateChanged) Q_PROPERTY(int gamescopeRefreshRate READ gamescopeRefreshRate WRITE setGamescopeRefreshRate NOTIFY gamescopeRefreshRateChanged)
Q_PROPERTY(bool dalamudEnabled READ dalamudEnabled WRITE setDalamudEnabled NOTIFY dalamudEnabledChanged) Q_PROPERTY(bool dalamudEnabled READ dalamudEnabled WRITE setDalamudEnabled NOTIFY dalamudEnabledChanged)
Q_PROPERTY(bool dalamudOptOut READ dalamudOptOut WRITE setDalamudOptOut NOTIFY dalamudOptOutChanged) Q_PROPERTY(DalamudInjectMethod dalamudInjectMethod READ dalamudInjectMethod WRITE setDalamudInjectMethod NOTIFY dalamudInjectMethodChanged)
Q_PROPERTY(int dalamudInjectDelay READ dalamudInjectDelay WRITE setDalamudInjectDelay NOTIFY dalamudInjectDelayChanged)
Q_PROPERTY(DalamudChannel dalamudChannel READ dalamudChannel WRITE setDalamudChannel NOTIFY dalamudChannelChanged) Q_PROPERTY(DalamudChannel dalamudChannel READ dalamudChannel WRITE setDalamudChannel NOTIFY dalamudChannelChanged)
Q_PROPERTY(bool argumentsEncrypted READ argumentsEncrypted WRITE setArgumentsEncrypted NOTIFY encryptedArgumentsChanged) Q_PROPERTY(bool argumentsEncrypted READ argumentsEncrypted WRITE setArgumentsEncrypted NOTIFY encryptedArgumentsChanged)
Q_PROPERTY(bool isGameInstalled READ isGameInstalled NOTIFY gameInstallChanged) Q_PROPERTY(bool isGameInstalled READ isGameInstalled NOTIFY gameInstallChanged)
@ -57,6 +58,9 @@ public:
enum class DalamudChannel { Stable, Staging, Net5 }; enum class DalamudChannel { Stable, Staging, Net5 };
Q_ENUM(DalamudChannel) Q_ENUM(DalamudChannel)
enum class DalamudInjectMethod { Entrypoint, DLLInject };
Q_ENUM(DalamudInjectMethod)
[[nodiscard]] QString uuid() const; [[nodiscard]] QString uuid() const;
[[nodiscard]] QString name() const; [[nodiscard]] QString name() const;
@ -107,12 +111,15 @@ public:
[[nodiscard]] bool dalamudEnabled() const; [[nodiscard]] bool dalamudEnabled() const;
void setDalamudEnabled(bool value); void setDalamudEnabled(bool value);
[[nodiscard]] bool dalamudOptOut() const;
void setDalamudOptOut(bool value);
[[nodiscard]] DalamudChannel dalamudChannel() const; [[nodiscard]] DalamudChannel dalamudChannel() const;
void setDalamudChannel(DalamudChannel channel); void setDalamudChannel(DalamudChannel channel);
[[nodiscard]] DalamudInjectMethod dalamudInjectMethod() const;
void setDalamudInjectMethod(DalamudInjectMethod value);
[[nodiscard]] int dalamudInjectDelay() const;
void setDalamudInjectDelay(int value);
[[nodiscard]] bool argumentsEncrypted() const; [[nodiscard]] bool argumentsEncrypted() const;
void setArgumentsEncrypted(bool value); void setArgumentsEncrypted(bool value);
@ -170,8 +177,9 @@ Q_SIGNALS:
void gamescopeHeightChanged(); void gamescopeHeightChanged();
void gamescopeRefreshRateChanged(); void gamescopeRefreshRateChanged();
void dalamudEnabledChanged(); void dalamudEnabledChanged();
void dalamudOptOutChanged();
void dalamudChannelChanged(); void dalamudChannelChanged();
void dalamudInjectMethodChanged();
void dalamudInjectDelayChanged();
void encryptedArgumentsChanged(); void encryptedArgumentsChanged();
void accountChanged(); void accountChanged();
void wineChanged(); void wineChanged();

View file

@ -69,9 +69,6 @@ SPDX-License-Identifier: CC0-1.0
<entry key="DalamudEnabled" type="bool"> <entry key="DalamudEnabled" type="bool">
<default>false</default> <default>false</default>
</entry> </entry>
<entry key="DalamudOptOut" type="bool">
<default>false</default>
</entry>
<entry key="DalamudChannel" type="Enum"> <entry key="DalamudChannel" type="Enum">
<choices> <choices>
<choice name="Stable"> <choice name="Stable">
@ -83,6 +80,18 @@ SPDX-License-Identifier: CC0-1.0
</choices> </choices>
<default>Stable</default> <default>Stable</default>
</entry> </entry>
<entry key="DalamudInjectMethod" type="Enum">
<choices>
<choice name="Entrypoint">
</choice>
<choice name="DLLInject">
</choice>
</choices>
<default>Entrypoint</default>
</entry>
<entry key="DalamudInjectDelay" type="int">
<default>0</default>
</entry>
<entry key="EncryptArguments" type="bool"> <entry key="EncryptArguments" type="bool">
<default>true</default> <default>true</default>
</entry> </entry>

View file

@ -177,12 +177,13 @@ void LauncherCore::beginDalamudGame(const QString &gameExecutablePath, Profile &
{Utility::toWindowsPath(dalamudInjector), {Utility::toWindowsPath(dalamudInjector),
QStringLiteral("launch"), QStringLiteral("launch"),
QStringLiteral("-m"), QStringLiteral("-m"),
QStringLiteral("inject"), profile.dalamudInjectMethod() == Profile::DalamudInjectMethod::Entrypoint ? QStringLiteral("entrypoint") : QStringLiteral("inject"),
QStringLiteral("--game=") + Utility::toWindowsPath(gameExecutablePath), QStringLiteral("--game=") + Utility::toWindowsPath(gameExecutablePath),
QStringLiteral("--dalamud-configuration-path=") + Utility::toWindowsPath(dalamudConfigPath), QStringLiteral("--dalamud-configuration-path=") + Utility::toWindowsPath(dalamudConfigPath),
QStringLiteral("--dalamud-plugin-directory=") + Utility::toWindowsPath(dalamudPluginDir), QStringLiteral("--dalamud-plugin-directory=") + Utility::toWindowsPath(dalamudPluginDir),
QStringLiteral("--dalamud-asset-directory=") + Utility::toWindowsPath(dalamudAssetDir), QStringLiteral("--dalamud-asset-directory=") + Utility::toWindowsPath(dalamudAssetDir),
QStringLiteral("--dalamud-client-language=") + QString::number(profile.account()->language()), QStringLiteral("--dalamud-client-language=") + QString::number(profile.account()->language()),
QStringLiteral("--dalamud-delay-initialize=") + QString::number(profile.dalamudInjectDelay()),
QStringLiteral("--logpath=") + Utility::toWindowsPath(logDir), QStringLiteral("--logpath=") + Utility::toWindowsPath(logDir),
QStringLiteral("--"), QStringLiteral("--"),
args}, args},

View file

@ -351,20 +351,6 @@ void Profile::setDalamudEnabled(const bool value)
} }
} }
bool Profile::dalamudOptOut() const
{
return m_config->dalamudOptOut();
}
void Profile::setDalamudOptOut(const bool value)
{
if (m_config->dalamudOptOut() != value) {
m_config->setDalamudOptOut(value);
m_config->save();
Q_EMIT dalamudOptOutChanged();
}
}
Profile::DalamudChannel Profile::dalamudChannel() const Profile::DalamudChannel Profile::dalamudChannel() const
{ {
return static_cast<DalamudChannel>(m_config->dalamudChannel()); return static_cast<DalamudChannel>(m_config->dalamudChannel());
@ -379,6 +365,34 @@ void Profile::setDalamudChannel(const DalamudChannel value)
} }
} }
Profile::DalamudInjectMethod Profile::dalamudInjectMethod() const
{
return static_cast<DalamudInjectMethod>(m_config->dalamudInjectMethod());
}
void Profile::setDalamudInjectMethod(const Profile::DalamudInjectMethod value)
{
if (static_cast<DalamudInjectMethod>(m_config->dalamudInjectMethod()) != value) {
m_config->setDalamudInjectMethod(static_cast<int>(value));
m_config->save();
Q_EMIT dalamudInjectMethodChanged();
}
}
int Profile::dalamudInjectDelay() const
{
return m_config->dalamudInjectDelay();
}
void Profile::setDalamudInjectDelay(const int value)
{
if (m_config->dalamudInjectDelay() != value) {
m_config->setDalamudInjectDelay(static_cast<int>(value));
m_config->save();
Q_EMIT dalamudInjectDelayChanged();
}
}
bool Profile::argumentsEncrypted() const bool Profile::argumentsEncrypted() const
{ {
return m_config->encryptArguments(); return m_config->encryptArguments();

View file

@ -286,6 +286,8 @@ FormCard.FormCardPage {
text: i18n("Injection Method") text: i18n("Injection Method")
description: "It shouldn't be nessecary to change this setting, unless you're running into issues injecting Dalamud." description: "It shouldn't be nessecary to change this setting, unless you're running into issues injecting Dalamud."
model: ["Entrypoint", "DLL Injection"] model: ["Entrypoint", "DLL Injection"]
currentIndex: page.profile.dalamudInjectMethod
onCurrentIndexChanged: page.profile.dalamudInjectMethod = currentIndex
enabled: page.profile.dalamudEnabled enabled: page.profile.dalamudEnabled
} }
@ -298,25 +300,13 @@ FormCard.FormCardPage {
id: dalamudDelayDelegate id: dalamudDelayDelegate
label: i18n("Injection Delay") label: i18n("Injection Delay")
value: page.profile.dalamudInjectDelay
onValueChanged: page.profile.dalamudInjectDelay = value
enabled: page.profile.dalamudEnabled enabled: page.profile.dalamudEnabled
} }
FormCard.FormDelegateSeparator { FormCard.FormDelegateSeparator {
above: dalamudDelayDelegate above: dalamudDelayDelegate
below: dalamudOptOutDelegate
}
FormCard.FormCheckDelegate {
id: dalamudOptOutDelegate
text: i18n("Opt Out of Automatic Marketboard Collection")
checked: page.profile.dalamudOptOut
onCheckedChanged: page.profile.dalamudOptOut = checked
enabled: page.profile.dalamudEnabled
}
FormCard.FormDelegateSeparator {
above: dalamudOptOutDelegate
} }
FormCard.FormTextDelegate { FormCard.FormTextDelegate {