InputScheme separates the generic, low-level engine data
from the Game*-specific high-level data. GameButtonType
is a high-level distinction; in fact, it's only needed
for custom GameButtons (eg. DANCE_BUTTON_*), since the
function of generic GameButtons (GAME_BUTTON_*) can simply
be identified by their value--that's why, for example, we
don't have GameButtonType for GAME_BUTTON_COIN.
spuriously, but it's a useful warning and I don't want to turn it off), and we don't
need to declare every member const to have a const object--you just have
a const pointer to the object.
- This reduces the number of types associated with input; adding a
distinct input type doesn't introduce a whole new enumerated type
and related functions.
- Special handling for different devices is needed less often. If you
want to respond to an F1 press, simply check for KEY_F1; the device
type doesn't really matter (though it'll usually be a keyboard).
- This allows cleaner support for generalized USB devices. While they're
usually of the traditional classes (keyboard, joystick) with associated
inputs, they don't have to be.
- Forced casts between parallel types can be removed, and weakly-specified
variables (ints instead of the enum type) can be fixed.
Some things that might have been merged havn't; for example, arrow keys
on a keyboard (KEY_UP) are still distinct from axes on a joystick (JOY_UP).
These may or may not be merged in the future.
Some were: removed PUMP_ symbols. Treat them as generic buttons, and just
give them names with GetDeviceSpecificInputString. It's not worth
introducing more special names for something only used in one place.
NOTE: I commented out an ASSERT in NoteData.cpp
at Line 429
// ASSERT( iOriginalTrack < pOriginal->m_iNumTracks );
I don't understand how the AutoGen code works, but all I do know is
that the game works without this assert, but possibly in a way people
didn't want defined. Please can somebody (preferably Chris as he
says he's the only one who understands notedata :D) look at this
and figure out what i'm doing wrong.
I feel a bit uneasy taking out an assert to make things work....