Merge lp:~widelands-dev/widelands/bug-1791426-multiplayer-map-change into lp:widelands

Proposed by GunChleoc
Status: Merged
Merged at revision: 8869
Proposed branch: lp:~widelands-dev/widelands/bug-1791426-multiplayer-map-change
Merge into: lp:widelands
Diff against target: 49 lines (+8/-4)
2 files modified
src/network/gameclient.cc (+4/-2)
src/network/gamehost.cc (+4/-2)
To merge this branch: bzr merge lp:~widelands-dev/widelands/bug-1791426-multiplayer-map-change
Reviewer Review Type Date Requested Status
Klaus Halfmann compile, review, test Approve
Review via email: mp+355622@code.launchpad.net

Commit message

Execute map changes in Multiplayer UI after the player slots have been set. This fixes a bug with updating the client dropdowns.

To post a comment you must log in.
Revision history for this message
bunnybot (widelandsofficial) wrote :

Continuous integration builds have changed state:

Travis build 4045. State: passed. Details: https://travis-ci.org/widelands/widelands/builds/433322473.
Appveyor build 3841. State: success. Details: https://ci.appveyor.com/project/widelands-dev/widelands/build/_widelands_dev_widelands_bug_1791426_multiplayer_map_change-3841.

Revision history for this message
Klaus Halfmann (klaus-halfmann) wrote :

Reproduced it on trunk, found it fixed here.

Looks like these monster switches in gameclient.cc deserve a refactoring :-)

One Comment inline.

All fine for me.

@bunnybot merge

review: Approve (compile, review, test)

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== 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 @@
584 // New map was set, so we clean up the buffer of a previously requested file584 // New map was set, so we clean up the buffer of a previously requested file
585 if (file_)585 if (file_)
586 delete file_;586 delete file_;
587 Notifications::publish(NoteGameSettings(NoteGameSettings::Action::kMap));
588 break;587 break;
589 }588 }
590589
@@ -763,8 +762,11 @@
763762
764 case NETCMD_SETTING_ALLPLAYERS: {763 case NETCMD_SETTING_ALLPLAYERS: {
765 d->settings.players.resize(packet.unsigned_8());764 d->settings.players.resize(packet.unsigned_8());
766 for (uint8_t i = 0; i < d->settings.players.size(); ++i)765 for (uint8_t i = 0; i < d->settings.players.size(); ++i) {
767 receive_one_player(i, packet);766 receive_one_player(i, packet);
767 }
768 // Map changes are finished here
769 Notifications::publish(NoteGameSettings(NoteGameSettings::Action::kMap));
768 break;770 break;
769 }771 }
770 case NETCMD_SETTING_PLAYER: {772 case NETCMD_SETTING_PLAYER: {
771773
=== 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 @@
1472 packet.string(d->settings.mapfilename);1472 packet.string(d->settings.mapfilename);
1473 packet.unsigned_8(d->settings.savegame ? 1 : 0);1473 packet.unsigned_8(d->settings.savegame ? 1 : 0);
1474 packet.unsigned_8(d->settings.scenario ? 1 : 0);1474 packet.unsigned_8(d->settings.scenario ? 1 : 0);
1475 Notifications::publish(NoteGameSettings(NoteGameSettings::Action::kMap));
1476}1475}
14771476
1478void GameHost::write_setting_player(SendPacket& packet, uint8_t const number) {1477void GameHost::write_setting_player(SendPacket& packet, uint8_t const number) {
@@ -1491,8 +1490,11 @@
14911490
1492void GameHost::write_setting_all_players(SendPacket& packet) {1491void GameHost::write_setting_all_players(SendPacket& packet) {
1493 packet.unsigned_8(d->settings.players.size());1492 packet.unsigned_8(d->settings.players.size());
1494 for (uint8_t i = 0; i < d->settings.players.size(); ++i)1493 for (uint8_t i = 0; i < d->settings.players.size(); ++i) {
1495 write_setting_player(packet, i);1494 write_setting_player(packet, i);
1495 }
1496 // Map changes are finished here
1497 Notifications::publish(NoteGameSettings(NoteGameSettings::Action::kMap));
1496}1498}
14971499
1498void GameHost::write_setting_user(SendPacket& packet, uint32_t const number) {1500void GameHost::write_setting_user(SendPacket& packet, uint32_t const number) {

Subscribers

People subscribed via source and target branches

to status/vote changes: