-Wmissing-declarations enforces that every function (except for static
functions) must be declared separately before it's defined. This
essentially enforces that every function must be either static, or
declared in a header elsewhere.
This helps the optimizer, as it can do a better job of inlining if it
knows that a function won't be used outside of a given file. It also
helps -Wunused-function (which is enabled by -Wall) find more unused
functions.
Note that Clang spells this option -Wmissing-prototypes, which
confusingly is the name of a related but different warning option under
GCC.
*face buttons 2 and 4 swaped.
*default hair colors now fit to buttons look
*changing face changes hair color do default
Fixes two first issues mentioned in the #724
Some CScreen classes have functions which call ChangePhase() on
CRobotMain, which in turn calls ChangePhase() on CMainDialog, which in
turn deletes current CScreen object :(.
So the fix is to keep all CScreen objects created all the time and only
keep pointer to the currently active object.
This also makes it easy to clean up dependencies between CScreen classes
and get rid of all these ugly static variables and functions.