I intend to make additional useful information available on judgments,
such as TapNoteType and TapNoteSubType( for hold judgments ).
I am submitting this part as a separate pull request because it is more
generally applicable to anything TapNote related.
This required using the new Steps::GetTimingData function and the allowEmpty
parameter to TimingData::TidyUpData when appropriate, as well as clearing the
TimingData to remove step timing rather than coping the song timing over it.
Fixes some odd editor behavior when changing song timing, and is overall a
slightly less hacky way of doing things.
quite a simple fix, but the song now no longer stops scrolling
when there are no more auto keysounds to play, which is what I've
been trying to fix for a long time.
It's now possible to play BMS which the BGM track is a bit too short
that in previous versions, the notes stop scrolling because there's
nothing more to play and it's impossible to finish the level.
It's also now possible to play BMS file which does not have any
autokeysounds at all, and also it's now possible to edit BMS files
(but the editor is very un-intuitive, but at least you can now add
timing changes to songs loaded from BMS files, such as speed segments
and scroll segments [they will be saved as .ssc file by the way]).
this prevents the crash caused by the asserion "No keysounds were loaded for the song %s!".
the song will load just fine in this case, but the notes will not scroll.
this only takes place when m_pSharedSound is NULL, which doesn't break when there's
background music but no autokeysounds.
on a related note,
the "notes don't scroll" problem also existed [before this commit] when there's no more
autokeysounds to play, in this case, the song stopped and the notes stopped scrolling.
and there's no way to get to the end of the song. can't figure out how to deal with this yet.