The campaigns and their maps are read out of the file "campaigns/cconfig" and are reflected in the Campaign UI.
The positive side of this feature:
Integration of new campaigns is much easier (more dynamic) and doesn't need a recompile, not even a restart of Widelands
This fact enables us, to let our players download new versions and/or additions of campaigns, without having to recompile their widelands.
Through this new UI, much more information about the campaigns and the maps of the campaigns is provided.
We can add a map-event, which sets the next level and/or campaign visible in the campaigns-conf-file, so the player gets more excited, while playing a REAL timeline (but still can choose to play an already played scenario).
We can create interactive timelines. For example:
The player has the possibility, to attack player1 or player2. After winning this game the fitting map will be set as visible (for example he attacked player1, so in his next scenario he has got player2 as allied player)
Another example: a player can expand northwards or eastwards. Now it depends on the point, (s)he is reaching first, whether the map of the northern or the eastern map is set as visible.
The negative side of this feature:
Cheating will be much more easy, than it might be in a static programmed way (without conf-file) - but who cares? It's up to the users if they really want to cheat or not.
The Campaign-config file is split in several sections. First section is "global", which contains general informations about the campaigns and links to the following sections of the campaign-maps.