GunChleoc has proposed merging lp:~widelands-dev/widelands/bug-1791426-multiplayer-map-change into lp:widelands.
Commit message: Execute map changes in Multiplayer UI after the player slots have been set. This fixes a bug with updating the client dropdowns. Requested reviews: Widelands Developers (widelands-dev) Related bugs: Bug #1791426 in widelands: "Client can't select new positions when changing to larger map" https://bugs.launchpad.net/widelands/+bug/1791426 For more details, see: https://code.launchpad.net/~widelands-dev/widelands/bug-1791426-multiplayer-map-change/+merge/355622 -- Your team Widelands Developers is requested to review the proposed merge of lp:~widelands-dev/widelands/bug-1791426-multiplayer-map-change into lp:widelands.
=== modified file 'src/network/gameclient.cc' --- src/network/gameclient.cc 2018-04-21 10:57:12 +0000 +++ src/network/gameclient.cc 2018-09-26 06:07:24 +0000 @@ -584,7 +584,6 @@ // New map was set, so we clean up the buffer of a previously requested file if (file_) delete file_; - Notifications::publish(NoteGameSettings(NoteGameSettings::Action::kMap)); break; } @@ -763,8 +762,11 @@ case NETCMD_SETTING_ALLPLAYERS: { d->settings.players.resize(packet.unsigned_8()); - for (uint8_t i = 0; i < d->settings.players.size(); ++i) + for (uint8_t i = 0; i < d->settings.players.size(); ++i) { receive_one_player(i, packet); + } + // Map changes are finished here + Notifications::publish(NoteGameSettings(NoteGameSettings::Action::kMap)); break; } case NETCMD_SETTING_PLAYER: { === modified file 'src/network/gamehost.cc' --- src/network/gamehost.cc 2018-09-14 23:52:30 +0000 +++ src/network/gamehost.cc 2018-09-26 06:07:24 +0000 @@ -1472,7 +1472,6 @@ packet.string(d->settings.mapfilename); packet.unsigned_8(d->settings.savegame ? 1 : 0); packet.unsigned_8(d->settings.scenario ? 1 : 0); - Notifications::publish(NoteGameSettings(NoteGameSettings::Action::kMap)); } void GameHost::write_setting_player(SendPacket& packet, uint8_t const number) { @@ -1491,8 +1490,11 @@ void GameHost::write_setting_all_players(SendPacket& packet) { packet.unsigned_8(d->settings.players.size()); - for (uint8_t i = 0; i < d->settings.players.size(); ++i) + for (uint8_t i = 0; i < d->settings.players.size(); ++i) { write_setting_player(packet, i); + } + // Map changes are finished here + Notifications::publish(NoteGameSettings(NoteGameSettings::Action::kMap)); } void GameHost::write_setting_user(SendPacket& packet, uint32_t const number) {
_______________________________________________ Mailing list: https://launchpad.net/~widelands-dev Post to : widelands-dev@lists.launchpad.net Unsubscribe : https://launchpad.net/~widelands-dev More help : https://help.launchpad.net/ListHelp