disable FlushAndReset. It doesn't fit well with the timeout scheme:
we have separate timeouts, but FlushAndReset is global. I could enable
the timeout separately for this, but the mount -o remount should probably
just be part of Unmount and we don't have to reload usb-storage anymore ...
merge them. (They're both enabled and disabled in the same place.)
Pause the memory card thread during gameplay, so any changes will
wait until the current stage finishes (so we don't interrupt the player with
a noise and possibly skip). Work on making MemoryCardManager::LockCards()
block if the card is in CHECKING.
havn't finished checking it out yet (eg. write check). This improves responsiveness:
a slow card will indicate that we see the card immediately, and it helps
diagnostics since we can easily tell if the machine sees a card. Allow re-
establishing a memory card removed after finalization, as long as it has the
same serial number.
Merge the sort menu into the mode menu.
GAMESTATE->m_SortOrder is now GAMESTATE->m_PreferredSortOrder.
Allow the mode menu to have non-mutually-exclusive items.
memory card thread when mounting the first drive, and automatically
unpause it when we unmount the last drive. (We can do this simplification
because we always mount and unmount memory cards explicitly when
reading and writing to them.)
Have gameplay objects hold a PlayerState pointer instead of a PlayerNumber and indexing back into GameState.
This will simplify off-screen players (e.g. CPU ghosts, network replicated human players, >2 players using one NoteField)
loading profile modifiers, so we don't wipe out modifiers that aren't saved.
UsingProfileDefaultModifiers is gone; if an entry exists in the DefaultModifiers
list at all, UsingProfileDefaultModifiers is true.
store attack info in TapNote
in the SMNoteData string, store the attack params inline (like with keysounds)
play keysounds when hit
still doesn't play keysounds on a miss
still doesn't play autoKeysounds
it's tightly synced with the music; it stays synced over music skips, and follows
the music rate, like everything else that uses GAMESTATE->m_fMusicSeconds.