diff --git a/cockatrice/src/interface/widgets/dialogs/dlg_create_game.cpp b/cockatrice/src/interface/widgets/dialogs/dlg_create_game.cpp index 0700504cd..2030882fd 100644 --- a/cockatrice/src/interface/widgets/dialogs/dlg_create_game.cpp +++ b/cockatrice/src/interface/widgets/dialogs/dlg_create_game.cpp @@ -15,6 +15,7 @@ #include #include #include +#include #include #include #include @@ -288,32 +289,35 @@ void DlgCreateGame::actReset() void DlgCreateGame::actOK() { - GameCreationOptions options; - options.description = descriptionEdit->text(); - options.password = passwordEdit->text(); - options.maxPlayers = maxPlayersEdit->value(); - options.onlyBuddies = onlyBuddiesCheckBox->isChecked(); - options.onlyRegistered = onlyRegisteredCheckBox->isChecked(); - options.spectatorsAllowed = spectatorsAllowedCheckBox->isChecked(); - options.spectatorsNeedPassword = spectatorsNeedPasswordCheckBox->isChecked(); - options.spectatorsCanTalk = spectatorsCanTalkCheckBox->isChecked(); - options.spectatorsSeeEverything = spectatorsSeeEverythingCheckBox->isChecked(); - options.joinAsJudge = createGameAsJudgeCheckBox->isChecked(); - options.joinAsSpectator = createGameAsSpectatorCheckBox->isChecked(); - options.startingLifeTotal = startingLifeTotalEdit->value(); - options.shareDecklistsOnLoad = shareDecklistsOnLoadCheckBox->isChecked(); - options.shufflePlayers = shufflePlayersCheckBox->isChecked(); - auto _gameTypes = QString(); + QList gameTypeIds; QMapIterator gameTypeCheckBoxIterator(gameTypeCheckBoxes); while (gameTypeCheckBoxIterator.hasNext()) { gameTypeCheckBoxIterator.next(); if (gameTypeCheckBoxIterator.value()->isChecked()) { - options.gameTypeIds.append(gameTypeCheckBoxIterator.key()); + gameTypeIds.append(gameTypeCheckBoxIterator.key()); _gameTypes += gameTypeCheckBoxIterator.value()->text() + ", "; } } + GameCreationOptions options{ + .description = descriptionEdit->text(), + .password = passwordEdit->text(), + .maxPlayers = maxPlayersEdit->value(), + .onlyBuddies = onlyBuddiesCheckBox->isChecked(), + .onlyRegistered = onlyRegisteredCheckBox->isChecked(), + .spectatorsAllowed = spectatorsAllowedCheckBox->isChecked(), + .spectatorsNeedPassword = spectatorsNeedPasswordCheckBox->isChecked(), + .spectatorsCanTalk = spectatorsCanTalkCheckBox->isChecked(), + .spectatorsSeeEverything = spectatorsSeeEverythingCheckBox->isChecked(), + .joinAsJudge = createGameAsJudgeCheckBox->isChecked(), + .joinAsSpectator = createGameAsSpectatorCheckBox->isChecked(), + .startingLifeTotal = startingLifeTotalEdit->value(), + .shareDecklistsOnLoad = shareDecklistsOnLoadCheckBox->isChecked(), + .shufflePlayers = shufflePlayersCheckBox->isChecked(), + .gameTypeIds = gameTypeIds, + }; + Command_CreateGame cmd = options.toCreateGameCommand(); SettingsCache::instance().game().setRememberGameSettings(rememberGameSettings->isChecked());