Previously it was possible to issue synced debug commands like :unit
:n.. while another user actions was executed. This casued assertion
failures and OOS.
For the numeric fields, this means we get to treat all X.Y.Z versions as
X.Y.Z.0, and there's no string suffix for those for obvious reasons. Not
that anyone cares, really.
Now we get a pretty name for our client process in the Task Manager too,
hooray!
(Also cleaned-up some of the placeholder code that was left here by
loonycyborg.)
Since Windows absolutely needs the numeric components and there's no way
to extract them from a string literal, and I don't really want to turn
this file into an eyesore.
Instead of showing mp_connect when the scenario has allow_new_game=no
the game now shows mp connect automatically iff there are are sides to
which the game cannot automatically assign a controller.
http://gna.org/bugs/?23643
This is needed so GetVersionEx doesn't lie to us on these versions.
MSVC++ people: I have no idea how this will interact with your building
procedure, if at all. In particular, I believe MSVC++ is supposed to
produce its own manifest declaring our dependencies on the MSVC++
runtime libraries, and it may or may not emit the compatibility
information as well.
This frees up some space for the central stacked widget so the game
doesn't crash to desktop due to requiring a vertical resolution of 487
or more to fit it with the version label and button.
Also, the layout of the version label and button is now simpler as they
are now on their own grid outside the central stacked widget. This also
happens to ensure that the label doesn't end up behind the tip of the
day panel. Whether this is a good thing or not depends on personal
opinion.
(And incidentally, the button no longer has a margin around it. This is
intentional.)
It's on the bottom left corner, just like the version number. It's not
possible to have both the version number label and the button on the
same layer because only widgets on the topmost stacked_widget layer
receive events, and the label can't be on there because it messes up the
layout of the button panels row.
This currently causes the game to abort on 800x480 because the layout
algorithm runs out of space (needs 800x487) due to to the top row on the
dialog's main grid taking up a fixed amount of vertical space. This will
be corrected in a separate commit.
The dialog now includes the game and OS version, and has three tabs with
extra information: the Game Paths tab with the existing contents
inherited from the tgame_paths dialog, the Libraries tab with a table
listing the build/runtime library versions, and the Features tab listing
the status of optional build-time features.
Had to move a lot of code around for this, obviously. Now I have to
decide again where to move the button from Preferences -> General.
Highly unreliable and generally useless, see the Doxygen documentation.
Also missing the actual Windows implementation for the moment. Also,
since uname() is highly useless on most platforms, I'll need to think up
a better OS X implementation later down the road.
How does doing otherwise even help reduce compile times unless you are
changing your build environment every time? It's just a liability that
makes it harder to do feature detection from other files. It's also
asymmetrical with regards to the CMake recipe.
renamed set_scontext_local_choice to leave_synced_context and
set_scontext_leave_for_draw to set_scontext_unsynced.
The old names do not fit anymore because set_scontext_leave_for_draw is
also used for wml menu items.
Also simplified the implementation of set_scontext_leave_for_draw.