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:
@@ -472,6 +472,9 @@ void NoteData::LoadTransformed( const NoteData* pOriginal, int iNewNumTracks, co
|
|||||||
|
|
||||||
void NoteData::LoadOverlapped( const NoteData* pOriginal, int iNewNumTracks )
|
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 );
|
SetNumTracks( iNewNumTracks );
|
||||||
|
|
||||||
NoteData in;
|
NoteData in;
|
||||||
@@ -491,6 +494,14 @@ void NoteData::LoadOverlapped( const NoteData* pOriginal, int iNewNumTracks )
|
|||||||
if( GetTapNote(iTrackTo, row) == TAP_HOLD )
|
if( GetTapNote(iTrackTo, row) == TAP_HOLD )
|
||||||
continue;
|
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 );
|
SetTapNote( iTrackTo, row, iStepFrom );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ typedef unsigned char TapNote;
|
|||||||
|
|
||||||
static const TapNote TAP_EMPTY = '0';
|
static const TapNote TAP_EMPTY = '0';
|
||||||
static const TapNote TAP_TAP = '1'; /* impatient? */
|
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: */
|
/* In 2sand3s mode, holds are deleted and TAP_HOLD_END is added: */
|
||||||
static const TapNote TAP_HOLD_TAIL = '3';
|
static const TapNote TAP_HOLD_TAIL = '3';
|
||||||
@@ -37,6 +37,38 @@ static const TapNote TAP_ADDITION = '5';
|
|||||||
// mine note - don't step!
|
// mine note - don't step!
|
||||||
static const TapNote TAP_MINE = '6';
|
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.
|
// attack note start. Use lowercase letters a-z.
|
||||||
// Don't use uppercase letters - 'M' it taken for mine.
|
// Don't use uppercase letters - 'M' it taken for mine.
|
||||||
static const TapNote TAP_ATTACK_BEGIN = 'a';
|
static const TapNote TAP_ATTACK_BEGIN = 'a';
|
||||||
@@ -81,8 +113,8 @@ enum NoteType
|
|||||||
// MD 11/02/03 - added finer divisions
|
// MD 11/02/03 - added finer divisions
|
||||||
NOTE_TYPE_48TH, // forty-eighth note
|
NOTE_TYPE_48TH, // forty-eighth note
|
||||||
NOTE_TYPE_64TH, // sixty-fourth note
|
NOTE_TYPE_64TH, // sixty-fourth note
|
||||||
// 96ths and 192nds have no place here - if you're using them,
|
// Not having this triggers asserts all over the place. Go figure.
|
||||||
// you have already failed as a stepmaker. :-)
|
NOTE_TYPE_192ND,
|
||||||
NUM_NOTE_TYPES,
|
NUM_NOTE_TYPES,
|
||||||
NOTE_TYPE_INVALID
|
NOTE_TYPE_INVALID
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -223,6 +223,7 @@ void NotesWriterDWI::WriteDWINotesField( FILE* fp, const Steps &out, int start )
|
|||||||
ASSERT(0);
|
ASSERT(0);
|
||||||
// fall though
|
// fall though
|
||||||
case NOTE_TYPE_48TH:
|
case NOTE_TYPE_48TH:
|
||||||
|
case NOTE_TYPE_192ND:
|
||||||
case NOTE_TYPE_INVALID:
|
case NOTE_TYPE_INVALID:
|
||||||
// since, for whatever reason, the only way to do
|
// since, for whatever reason, the only way to do
|
||||||
// 48ths is through a block of 192nds...
|
// 48ths is through a block of 192nds...
|
||||||
@@ -296,6 +297,7 @@ void NotesWriterDWI::WriteDWINotesField( FILE* fp, const Steps &out, int start )
|
|||||||
fprintf( fp, "}" );
|
fprintf( fp, "}" );
|
||||||
break;
|
break;
|
||||||
case NOTE_TYPE_48TH:
|
case NOTE_TYPE_48TH:
|
||||||
|
case NOTE_TYPE_192ND:
|
||||||
case NOTE_TYPE_INVALID:
|
case NOTE_TYPE_INVALID:
|
||||||
fprintf( fp, "'" );
|
fprintf( fp, "'" );
|
||||||
break;
|
break;
|
||||||
|
|||||||
Reference in New Issue
Block a user