Registers library versions in a single structure that can be queried
later as many times as necessary (say, from the game UI) instead of
relying on recording this information in different object files in an
inconsistent fashion. Also, it provides a pretty formatter for console
usage (e.g., in --version).
libpng also gets to join in the fun.
This is more efficient, specially when std::advance is used on these
iterators
Also this migth fix a bug related to
boost::iterator_range<config::const_child_iterator> on boost 1.57 and
later
Using synced_context::ask_server_choice has some advantages over the
previous implementation:
Instead of calculating which client controls a side separately on each
client, we now calculate that on the server and send the result to the
clients. This makes it more robust against calculation mismatches on the
clients (OOS).
The mechanism which notifies the server about controller changes is more
robust because previously only the currently active side sent that message
to the server, but now all clients send that information to the server (and
the server ignores non-first notifications). Specially this fixes the rare
case that none of the clients control the currently active client during
that event (which can for example happen if the currently active side
disconnected from the game after the action was invoked but before the side
was modified on that client.).
We automatically get non-undoability (just like for random seed requests)
A format string with a trailing '%' character at the end would cause an
implementation detail to dereference the end iterator of a string. Since
the underlying storage is a null-terminated string, this would be
harmless in practice.
Found by cppcheck.
http://gna.org/bugs/?23677
units advancements is an array of wml tables.
This also adds template lua_push/lua_check functions wich also accept
vectors or similar. The file scripting/push_check.hpp was written using msvc
which implements look-up in template functions differently so it might be
necessary to fix it for other compilers by adding forward declarations of
those template functions.
As the vcproj format is poorly documented, we previously couldn't find an option to pass compiler/librarian/linker dependencies without manually adding them in the menu. After installing VC9, I found an option that is correctly ported to vcxproj (the new format since VC10) and allows to specify these additional dependencies.