mapped to each corresponding GameButton, and to each GameButton
with a matching SecondaryFunction.
Simplify. Now, MenuButtons map to each GameButton with a matching
SecondaryFunction. Merged GetMenuButtonSecondaryFunction and
GameButtonToMenuButton.
("MenuButtons" and "SecondaryFunction" are confusing legacy
terminology now. Changing it once I figure out what to change
it to ...)
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.
static Game g_Games[NUM_GAMES] =
{
{ a ... },
{ b ... }
};
do
static Game g_Game_A =
{
a ...
};
static Game &g_Games[NUM_GAMES] =
{ &g_Game_A, &g_Game_B, &g_Game_C };
This allows much easier organizing data by game, and splitting large arrays
into a dynamically sized array instead of having large fixed-size arrays sized
for the largest one. The GAME_ array may be deprecated, and this may be done
for styles too.
Other things are happening here: anchoring the hold note to the
top or bottom, and flipping the wavy texture upside down. These
have separate purposes:
Normal hold rendering anchored to the bottom, so the hold scrolls
up as it's held; if it was anchored at the top, then it would
stay in place and the bottom would disappear as it was held.
In reverse, we can optionally reverse this, so the hold scrolls
down as it's held, or not reverse it, causing the hold to be
eaten by the head as the head comes down.
Normal hold rendering displays the hold body right-side-up.
In reverse, we can optionally render the hold body upside-down.
If we're flipping the head and tail (usually, putting the
overlaid arrow on the bottom instead of the top), mirroring
the body may or may not be wanted.
Additionally, we can optionally reverse the head and tail
(not to be confused with the top and bottom caps) in reverse.
These have been done together, but that's confusing; it's a
single setting with several obscure effects. Split it up.