After finding a game, in some circumstances the join script got the
leader select dialog after only yielding once. Because the loop that
checks when the dialog appears was a repeat-until loop and not a while
loop, it was always run at least once, making the script yield even when
the dialog was already shown. That caused the dialog to close with a
"not shown" status that resulted in exiting the game.
MP tests run two games, not one. A MP wait screen is shown between the
games to the joining player (but not to the host, see
src/game_initialization/playcampaign.cpp:352 ). The join script ended up
quitting between the games. Fixed by simply duplicating code to make the
join script play two games.
The test bots are able to host and join a game together on a local
server. This is still experimental, for instance they cannot
actually leave, and the controllers are human because the host
cannot yet configure them to be AI.