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
1=== modified file 'src/network/gameclient.cc'
2--- src/network/gameclient.cc 2018-04-21 10:57:12 +0000
3+++ src/network/gameclient.cc 2018-09-26 06:07:24 +0000
4@@ -584,7 +584,6 @@
5 // New map was set, so we clean up the buffer of a previously requested file
6 if (file_)
7 delete file_;
8- Notifications::publish(NoteGameSettings(NoteGameSettings::Action::kMap));
9 break;
10 }
11
12@@ -763,8 +762,11 @@
13
14 case NETCMD_SETTING_ALLPLAYERS: {
15 d->settings.players.resize(packet.unsigned_8());
16- for (uint8_t i = 0; i < d->settings.players.size(); ++i)
17+ for (uint8_t i = 0; i < d->settings.players.size(); ++i) {
18 receive_one_player(i, packet);
19+ }
20+ // Map changes are finished here
21+ Notifications::publish(NoteGameSettings(NoteGameSettings::Action::kMap));
22 break;
23 }
24 case NETCMD_SETTING_PLAYER: {
25
26=== modified file 'src/network/gamehost.cc'
27--- src/network/gamehost.cc 2018-09-14 23:52:30 +0000
28+++ src/network/gamehost.cc 2018-09-26 06:07:24 +0000
29@@ -1472,7 +1472,6 @@
30 packet.string(d->settings.mapfilename);
31 packet.unsigned_8(d->settings.savegame ? 1 : 0);
32 packet.unsigned_8(d->settings.scenario ? 1 : 0);
33- Notifications::publish(NoteGameSettings(NoteGameSettings::Action::kMap));
34 }
35
36 void GameHost::write_setting_player(SendPacket& packet, uint8_t const number) {
37@@ -1491,8 +1490,11 @@
38
39 void GameHost::write_setting_all_players(SendPacket& packet) {
40 packet.unsigned_8(d->settings.players.size());
41- for (uint8_t i = 0; i < d->settings.players.size(); ++i)
42+ for (uint8_t i = 0; i < d->settings.players.size(); ++i) {
43 write_setting_player(packet, i);
44+ }
45+ // Map changes are finished here
46+ Notifications::publish(NoteGameSettings(NoteGameSettings::Action::kMap));
47 }
48
49 void GameHost::write_setting_user(SendPacket& packet, uint32_t const number) {

Subscribers

People subscribed via source and target branches

to status/vote changes: