The conventions I'm using are to put the entire copyright notice at the bottom
of each file, and to put the summary of the source file's use at the top of the
header.
Putting the license text in each file avoids confusion, and is normal practice
for many projects. Putting it at the bottom gets it out of the way; it's a
ton of clutter to put at the top.
The description is in the header. People who don't know what a class is for,
or how to use it, are probably looking at the header to see the interface,
not the implementation, so let's put the description in there. Keep it brief
(one line); any substantial implementation notes should go in the source file.
It's also the "preferred" way of doing it, according to the SDL
docs, so maybe it'll work better.
This will reliably queue events, so we can handle coin events during
loads.
It'll queue events a little too reliably; we might want to flush some events
when we load screens.
Make m_pJoystick and GetDirectInput private.
Don't bail out on Update if the joystick fails, since we still have more
devices. Just log--handle error conditions on our own.
Reduce Windows types in the interface; eventually it'll need to be
clean.
Remove unused Get*Device functions.
Add DeviceInput::NumButtons, to abstract button counts (so adding devices or buttons doesn't require changes to InputFilter).
Use clamp() for m_AbsPosition_x and m_AbsPosition_y.
WindowDancing and all its UI elements). All of the dancing UI elements
have been consolidated into the Player class, which simplifies things a
great deal. Steps and the classes that use them have been generalized
to use a variable number of panels (6 panel, 8 panel). Only a little more
work is needed on the ColorArrows portion of Player to fully support these
panel modes.