Player's role not shown to other players if the player rejoined to the same role in multiplayer setup
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
widelands |
Fix Released
|
Low
|
Unassigned |
Bug Description
This is a bit odd one.
Steps to reproduce
1. Start two instances of Widelands. Let's call them A and B.
2. In A, go to multiplayer->local game->host game and select a map.
3. In B, go to multiplayer->local game and join the local game in A (specify host "localhost").
4. Observe that both players have received default roles, and that both A and B display the same information.
5. In B, leave the multiplayer setup by going back.
6. In B, rejoin the same game.
7. Observe that both players have received default roles, and that both A and B display the same information.
Expected result:
In steps 4 and 7, both players should see that A has been assigned the default role of player1 and B the role of player2.
Actual result:
For some reason, if B rejoins to the same role as the player had when disconnecting, the flag under role is not visible to A.
Some other observations:
* The flag is shown for player B, but apparently not other players.
* All information is shown identical in the intialization list (select tribe, HQ, team).
* If player B rejoins to another position (other players have joined or the previous role was filled by someone else), B is assigned a new role and the flag is shown.
* If B clicks on the flag to select another role, the flag is updated also for other players.
Related branches
- SirVer: Approve (testing,compile,code-review)
- kaputtnik (community): Approve (testing)
-
Diff: 2785 lines (+1002/-778)29 files modifiedsrc/ai/computer_player.cc (+7/-6)
src/ai/computer_player.h (+17/-0)
src/ai/defaultai.h (+21/-18)
src/graphic/playercolor.h (+13/-0)
src/logic/CMakeLists.txt (+1/-0)
src/logic/game.cc (+3/-3)
src/logic/game_settings.cc (+38/-1)
src/logic/game_settings.h (+47/-3)
src/logic/single_player_game_settings_provider.cc (+9/-8)
src/logic/single_player_game_settings_provider.h (+1/-1)
src/network/CMakeLists.txt (+0/-1)
src/network/gameclient.cc (+11/-6)
src/network/gameclient.h (+2/-2)
src/network/gamehost.cc (+76/-113)
src/network/gamehost.h (+1/-1)
src/network/network_player_settings_backend.cc (+58/-123)
src/network/network_player_settings_backend.h (+9/-20)
src/network/network_protocol.h (+3/-2)
src/notifications/note_ids.h (+3/-1)
src/ui_basic/dropdown.cc (+67/-12)
src/ui_basic/dropdown.h (+31/-2)
src/ui_basic/listselect.cc (+2/-2)
src/ui_fsmenu/launch_game.cc (+5/-6)
src/ui_fsmenu/launch_mpg.cc (+30/-20)
src/ui_fsmenu/launch_mpg.h (+1/-0)
src/ui_fsmenu/launch_spg.cc (+5/-5)
src/wui/multiplayersetupgroup.cc (+528/-409)
src/wui/multiplayersetupgroup.h (+6/-6)
src/wui/playerdescrgroup.cc (+7/-7)
Changed in widelands: | |
status: | New → Confirmed |
Changed in widelands: | |
status: | Triaged → In Progress |
milestone: | none → build20-rc1 |
assignee: | nobody → GunChleoc (gunchleoc) |
Changed in widelands: | |
status: | In Progress → Fix Committed |
assignee: | GunChleoc (gunchleoc) → nobody |
See the attached example. A on the left, B on the right.