|
@@ -320,6 +320,34 @@ GMainWindow::GMainWindow()
|
|
|
continue;
|
|
continue;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ // Launch game with a specific user
|
|
|
|
|
+ if (args[i] == QStringLiteral("-u")) {
|
|
|
|
|
+ if (i >= args.size() - 1) {
|
|
|
|
|
+ continue;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ if (args[i + 1].startsWith(QChar::fromLatin1('-'))) {
|
|
|
|
|
+ continue;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ bool argument_ok;
|
|
|
|
|
+ const std::size_t selected_user = args[++i].toUInt(&argument_ok);
|
|
|
|
|
+
|
|
|
|
|
+ if (!argument_ok) {
|
|
|
|
|
+ LOG_ERROR(Frontend, "Invalid user argument");
|
|
|
|
|
+ continue;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ const Service::Account::ProfileManager manager;
|
|
|
|
|
+ if (!manager.UserExistsIndex(selected_user)) {
|
|
|
|
|
+ LOG_ERROR(Frontend, "Selected user doesn't exist");
|
|
|
|
|
+ continue;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ Settings::values.current_user = selected_user;
|
|
|
|
|
+ continue;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
// Launch game at path
|
|
// Launch game at path
|
|
|
if (args[i] == QStringLiteral("-g")) {
|
|
if (args[i] == QStringLiteral("-g")) {
|
|
|
if (i >= args.size() - 1) {
|
|
if (i >= args.size() - 1) {
|