This adds a large number of people gleaned from the logs with:
git log --merges --since=Jan.1.2015
If any of the people added in this commit wish to change how they
are referenced, they are of course free to contact us.
It depends on timing whether or not the guest shows the wait dialog between
scenarios. If the second scenario has already started when the guest tries
to show the dialog, the dialog is skipped: otherwise it's shown and it
changes the plugin context.
The join.lua plugin assumed the change of plugin context to mean that the
test is over and that the plugin should quit the game. As a result, it
ended up quitting in the middle of the test if the second scenario hadn't
started yet.
Commit 6016bdf2 tried to fix the problem by allowing the plugin context to
change once during the test. It resulted in the opposite problem: if the
second scenario *had* started, the plugin context didn't change. When the
test ended and the guest was thrown into the lobby, then the plugin
assumed that it was just the scenario change and kept waiting for the next
scenario that wasn't coming.
This commit finally fixes the problem by explicitly polling the name of the
scenario being played. Now join.lua ignores plugin context changes as long
as the last scenario hasn't started, but starts waiting for the game to end
when the scenario starts.
I verified locally that, with these changes applied, the tests pass both
with an unmodified build and with a build that has an artificial delay to
simulate the timing in Travis.
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.