The new "side_configurations_lock" attribute is used as a default value for
gold, income, team and color locks. Later, it should be used to lock
factions and leaders combos as well.
The attribute's default values are "no" for the first scenario and "yes"
for all the other ones.
The engine now should be created and then passed to mp::connect as a
constructor's parameter.
This is an initial step to prepare the engine to
be used outside of mp::connect screen context.
Methods which were called only once was removed and their bodies were
used instead of a call to them.
Some methods for mp::connect UI update were merged for the sake of
readability and simplicity.
The information for the previous scenario's sides which have "save_id"
and a player ("player_id") assigned to them are now being recorded in
"mp_game_settings". This information is used in mp::connect for every
non-last scenario to reserve sides for previous players so that
they could easily join the game and be placed in the correct side.
As a result of this, 'connected_user' struct was no longer useful and
is now removed. Connected users information are now being hold in
std::set<std::string>, because only their unique usernames matter
in mp::connect.
The relevant functions from mp::connect were moved to mp::ui to enable
them to use by mp::wait as well. This is not the most elegant solution,
but in the future mp::connect and mp::wait should be merged into one,
and those functions could be moved back to where they were.
leader_list.?pp has been removed since it is no longer used.
The screen is displayed only if '--campaign-screens' command line
option was specified. The same now goes for mp::connect screen for the
game's host.
Server has been modified to not immediately start the game after
'store_next_scenario', but to wait for explicit 'start_game'.
Minor changes to parameter passing inside multiplayer.?pp have been
made as well.
The leader_list_manager was not too useful and didn't go well with the
changes of splitting the mp::connect gui and engine. Also, it was
accessing/modifying gui::combo directly, making it harder to maintain
the code.
mp::wait still uses leader_list_manager, because later mp::connect
should be used by both host and non-host players, making it unnecessary
to update mp::wait. However, if that won't happen, some duplicating
functions could be moved to some file, which could be accessed by both
MP screens.