finish support for 48th/64th notes in code

add things possibly useful for mods when keysounds (and Keyboardmania) support are finished
This commit is contained in:
Matt Denham
2003-11-13 07:40:49 +00:00
parent 686f0656bd
commit 7484667733
3 changed files with 48 additions and 3 deletions
+11
View File
@@ -472,6 +472,9 @@ void NoteData::LoadTransformed( const NoteData* pOriginal, int iNewNumTracks, co
void NoteData::LoadOverlapped( const NoteData* pOriginal, int iNewNumTracks )
{
// ??? Something is not right here - either we're not being called,
// or we're not working correctly at all. :-/
SetNumTracks( iNewNumTracks );
NoteData in;
@@ -491,6 +494,14 @@ void NoteData::LoadOverlapped( const NoteData* pOriginal, int iNewNumTracks )
if( GetTapNote(iTrackTo, row) == TAP_HOLD )
continue;
// Whoever rewrote the function:
// This transfers EMPTY steps over as well...
// ...so it's been fixed. Should I define operator| for
// TapNote so that it combines tracks? :-P
if( iStepFrom == TAP_EMPTY )
continue;
SetTapNote( iTrackTo, row, iStepFrom );
}
}
+35 -3
View File
@@ -23,7 +23,7 @@ typedef unsigned char TapNote;
static const TapNote TAP_EMPTY = '0';
static const TapNote TAP_TAP = '1'; /* impatient? */
static const TapNote TAP_HOLD_HEAD = '2'; // graded liuke a TA_TAP
static const TapNote TAP_HOLD_HEAD = '2'; // graded like a TAP_TAP
/* In 2sand3s mode, holds are deleted and TAP_HOLD_END is added: */
static const TapNote TAP_HOLD_TAIL = '3';
@@ -37,6 +37,38 @@ static const TapNote TAP_ADDITION = '5';
// mine note - don't step!
static const TapNote TAP_MINE = '6';
// MD 11/12/03 - for future modifiers
// TAP_ADD_HOLD is to TAP_HOLD what TAP_ADDITION is to TAP_TAP.
// There is no equivalent for TAP_MINE.
static const TapNote TAP_ADD_HOLD = '7';
// BM-specific
// Removed taps, e.g. in Little - play keysounds here as if
// judged Perfect, but don't bother rendering or judging this
// step. Also used for when we implement auto-scratch in BM,
// and for if/when we do a "reduce" modifier that cancels out
// all but N keys on a line [useful for BM->DDR autogen, too].
static const TapNote TAP_REMOVED = '8';
// KM-specific
// Removed hold body (...why?) - acts as follows:
// 1 - if we're using a sustained-sound gametype [Keyboardmania], and
// we've already hit the start of the sound (?? we put Holds Off on?)
// then this is triggered automatically to keep the sound going
// 2 - if we're NOT [anything else], we ignore this.
// Equivalent to all 4s aside from the first one.
static const TapNote TAP_REMOVED_HOLD_BODY = ':';
// KM-specific
// A hold removed by Little, I guess.
static const TapNote TAP_REMOVED_HOLD_HEAD = '.';
// KM-specific
// Kills an auto-sound from a hold.
static const TapNote TAP_REMOVED_HOLD_TAIL = '\'';
// MD 11/12/03 end
// attack note start. Use lowercase letters a-z.
// Don't use uppercase letters - 'M' it taken for mine.
static const TapNote TAP_ATTACK_BEGIN = 'a';
@@ -81,8 +113,8 @@ enum NoteType
// MD 11/02/03 - added finer divisions
NOTE_TYPE_48TH, // forty-eighth note
NOTE_TYPE_64TH, // sixty-fourth note
// 96ths and 192nds have no place here - if you're using them,
// you have already failed as a stepmaker. :-)
// Not having this triggers asserts all over the place. Go figure.
NOTE_TYPE_192ND,
NUM_NOTE_TYPES,
NOTE_TYPE_INVALID
};
+2
View File
@@ -223,6 +223,7 @@ void NotesWriterDWI::WriteDWINotesField( FILE* fp, const Steps &out, int start )
ASSERT(0);
// fall though
case NOTE_TYPE_48TH:
case NOTE_TYPE_192ND:
case NOTE_TYPE_INVALID:
// since, for whatever reason, the only way to do
// 48ths is through a block of 192nds...
@@ -296,6 +297,7 @@ void NotesWriterDWI::WriteDWINotesField( FILE* fp, const Steps &out, int start )
fprintf( fp, "}" );
break;
case NOTE_TYPE_48TH:
case NOTE_TYPE_192ND:
case NOTE_TYPE_INVALID:
fprintf( fp, "'" );
break;