Added BMRize mod because people have complained that Quick is too easy. Try this. :-)
This commit is contained in:
@@ -757,6 +757,15 @@ void NoteDataUtil::Quick( NoteData &in, float fStartBeat, float fEndBeat )
|
|||||||
InsertIntelligentTaps(in,0.5f,0.25f,1.0f,false,fStartBeat,fEndBeat); // add 16ths between 8ths
|
InsertIntelligentTaps(in,0.5f,0.25f,1.0f,false,fStartBeat,fEndBeat); // add 16ths between 8ths
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Due to popular request by people annoyed with the "new" implementation of Quick, we now have
|
||||||
|
// this BMR-izer for your steps. Use with caution.
|
||||||
|
void NoteDataUtil::BMRize( NoteData &in, float fStartBeat, float fEndBeat )
|
||||||
|
{
|
||||||
|
InsertIntelligentTaps(in,1.0f,0.5f,1.0f,false,fStartBeat,fEndBeat); // add 8ths between 4ths
|
||||||
|
InsertIntelligentTaps(in,0.5f,0.25f,0.5f,false,fStartBeat,fEndBeat); // then add 16ths between ALL 8ths
|
||||||
|
// ...net result: OUCH. :-)
|
||||||
|
}
|
||||||
|
|
||||||
void NoteDataUtil::Skippy( NoteData &in, float fStartBeat, float fEndBeat )
|
void NoteDataUtil::Skippy( NoteData &in, float fStartBeat, float fEndBeat )
|
||||||
{
|
{
|
||||||
InsertIntelligentTaps(in,1.0f,0.75f,1.0f,true,fStartBeat,fEndBeat); // add 16ths between 4ths
|
InsertIntelligentTaps(in,1.0f,0.75f,1.0f,true,fStartBeat,fEndBeat); // add 16ths between 4ths
|
||||||
@@ -784,9 +793,12 @@ void NoteDataUtil::InsertIntelligentTaps( NoteData &in, float fWindowSizeBeats,
|
|||||||
int iRowEarlier = i;
|
int iRowEarlier = i;
|
||||||
int iRowLater = i + rows_per_window;
|
int iRowLater = i + rows_per_window;
|
||||||
int iRowToAdd = i + insert_row_offset;
|
int iRowToAdd = i + insert_row_offset;
|
||||||
if( in.GetNumTapNonEmptyTracks(iRowEarlier)!=1 || in.GetNumTracksWithTap(iRowEarlier)!=1 )
|
// following two lines have been changed because the behavior of treating hold-heads
|
||||||
|
// as different from taps doesn't feel right, and because we need to check
|
||||||
|
// against TAP_ADDITION with the BMRize mod.
|
||||||
|
if( in.GetNumTapNonEmptyTracks(iRowEarlier)!=1 || in.GetNumTracksWithTapOrHoldHead(iRowEarlier)!=1 )
|
||||||
continue;
|
continue;
|
||||||
if( in.GetNumTapNonEmptyTracks(iRowLater)!=1 || in.GetNumTracksWithTap(iRowLater)!=1 )
|
if( in.GetNumTapNonEmptyTracks(iRowLater)!=1 || in.GetNumTracksWithTapOrHoldHead(iRowLater)!=1 )
|
||||||
continue;
|
continue;
|
||||||
// there is a 4th and 8th note surrounding iRowBetween
|
// there is a 4th and 8th note surrounding iRowBetween
|
||||||
|
|
||||||
@@ -1350,6 +1362,7 @@ void NoteDataUtil::TransformNoteData( NoteData &nd, const PlayerOptions &po, Ste
|
|||||||
if( po.m_bTransforms[PlayerOptions::TRANSFORM_WIDE] ) NoteDataUtil::Wide(nd, fStartBeat, fEndBeat);
|
if( po.m_bTransforms[PlayerOptions::TRANSFORM_WIDE] ) NoteDataUtil::Wide(nd, fStartBeat, fEndBeat);
|
||||||
if( po.m_bTransforms[PlayerOptions::TRANSFORM_BIG] ) NoteDataUtil::Big(nd, fStartBeat, fEndBeat);
|
if( po.m_bTransforms[PlayerOptions::TRANSFORM_BIG] ) NoteDataUtil::Big(nd, fStartBeat, fEndBeat);
|
||||||
if( po.m_bTransforms[PlayerOptions::TRANSFORM_QUICK] ) NoteDataUtil::Quick(nd, fStartBeat, fEndBeat);
|
if( po.m_bTransforms[PlayerOptions::TRANSFORM_QUICK] ) NoteDataUtil::Quick(nd, fStartBeat, fEndBeat);
|
||||||
|
if( po.m_bTransforms[PlayerOptions::TRANSFORM_BMRIZE] ) NoteDataUtil::BMRize(nd, fStartBeat, fEndBeat);
|
||||||
if( po.m_bTransforms[PlayerOptions::TRANSFORM_SKIPPY] ) NoteDataUtil::Skippy(nd, fStartBeat, fEndBeat);
|
if( po.m_bTransforms[PlayerOptions::TRANSFORM_SKIPPY] ) NoteDataUtil::Skippy(nd, fStartBeat, fEndBeat);
|
||||||
if( po.m_bTransforms[PlayerOptions::TRANSFORM_MINES] ) NoteDataUtil::AddMines(nd, fStartBeat, fEndBeat);
|
if( po.m_bTransforms[PlayerOptions::TRANSFORM_MINES] ) NoteDataUtil::AddMines(nd, fStartBeat, fEndBeat);
|
||||||
if( po.m_bTransforms[PlayerOptions::TRANSFORM_ECHO] ) NoteDataUtil::Echo(nd, fStartBeat, fEndBeat);
|
if( po.m_bTransforms[PlayerOptions::TRANSFORM_ECHO] ) NoteDataUtil::Echo(nd, fStartBeat, fEndBeat);
|
||||||
|
|||||||
@@ -51,6 +51,7 @@ namespace NoteDataUtil
|
|||||||
void Wide( NoteData &in, float fStartBeat = 0, float fEndBeat = 99999 );
|
void Wide( NoteData &in, float fStartBeat = 0, float fEndBeat = 99999 );
|
||||||
void Big( NoteData &in, float fStartBeat = 0, float fEndBeat = 99999 );
|
void Big( NoteData &in, float fStartBeat = 0, float fEndBeat = 99999 );
|
||||||
void Quick( NoteData &in, float fStartBeat = 0, float fEndBeat = 99999 );
|
void Quick( NoteData &in, float fStartBeat = 0, float fEndBeat = 99999 );
|
||||||
|
void BMRize( NoteData &in, float fStartBeat = 0, float fEndBeat = 99999 );
|
||||||
void Skippy( NoteData &in, float fStartBeat = 0, float fEndBeat = 99999 );
|
void Skippy( NoteData &in, float fStartBeat = 0, float fEndBeat = 99999 );
|
||||||
void InsertIntelligentTaps( NoteData &in, float fWindowSizeBeats, float fInsertOffsetBeats, float fWindowStrideBeats, bool bSkippy, float fStartBeat = 0, float fEndBeat = 99999 );
|
void InsertIntelligentTaps( NoteData &in, float fWindowSizeBeats, float fInsertOffsetBeats, float fWindowStrideBeats, bool bSkippy, float fStartBeat = 0, float fEndBeat = 99999 );
|
||||||
void AddMines( NoteData &in, float fStartBeat = 0, float fEndBeat = 99999 );
|
void AddMines( NoteData &in, float fStartBeat = 0, float fEndBeat = 99999 );
|
||||||
|
|||||||
@@ -150,6 +150,7 @@ CString PlayerOptions::GetString() const
|
|||||||
if( m_bTransforms[TRANSFORM_WIDE] ) sReturn += "Wide, ";
|
if( m_bTransforms[TRANSFORM_WIDE] ) sReturn += "Wide, ";
|
||||||
if( m_bTransforms[TRANSFORM_BIG] ) sReturn += "Big, ";
|
if( m_bTransforms[TRANSFORM_BIG] ) sReturn += "Big, ";
|
||||||
if( m_bTransforms[TRANSFORM_QUICK] ) sReturn += "Quick, ";
|
if( m_bTransforms[TRANSFORM_QUICK] ) sReturn += "Quick, ";
|
||||||
|
if( m_bTransforms[TRANSFORM_BMRIZE] ) sReturn += "BMRize, ";
|
||||||
if( m_bTransforms[TRANSFORM_SKIPPY] ) sReturn += "Skippy, ";
|
if( m_bTransforms[TRANSFORM_SKIPPY] ) sReturn += "Skippy, ";
|
||||||
if( m_bTransforms[TRANSFORM_MINES] ) sReturn += "Mines, ";
|
if( m_bTransforms[TRANSFORM_MINES] ) sReturn += "Mines, ";
|
||||||
if( m_bTransforms[TRANSFORM_ECHO] ) sReturn += "Echo, ";
|
if( m_bTransforms[TRANSFORM_ECHO] ) sReturn += "Echo, ";
|
||||||
@@ -278,6 +279,7 @@ void PlayerOptions::FromString( CString sOptions )
|
|||||||
else if( sBit == "wide" ) m_bTransforms[TRANSFORM_WIDE] = on;
|
else if( sBit == "wide" ) m_bTransforms[TRANSFORM_WIDE] = on;
|
||||||
else if( sBit == "big" ) m_bTransforms[TRANSFORM_BIG] = on;
|
else if( sBit == "big" ) m_bTransforms[TRANSFORM_BIG] = on;
|
||||||
else if( sBit == "quick" ) m_bTransforms[TRANSFORM_QUICK] = on;
|
else if( sBit == "quick" ) m_bTransforms[TRANSFORM_QUICK] = on;
|
||||||
|
else if( sBit == "bmrize" ) m_bTransforms[TRANSFORM_BMRIZE] = on;
|
||||||
else if( sBit == "skippy" ) m_bTransforms[TRANSFORM_SKIPPY] = on;
|
else if( sBit == "skippy" ) m_bTransforms[TRANSFORM_SKIPPY] = on;
|
||||||
else if( sBit == "mines" ) m_bTransforms[TRANSFORM_MINES] = on;
|
else if( sBit == "mines" ) m_bTransforms[TRANSFORM_MINES] = on;
|
||||||
else if( sBit == "echo" ) m_bTransforms[TRANSFORM_ECHO] = on;
|
else if( sBit == "echo" ) m_bTransforms[TRANSFORM_ECHO] = on;
|
||||||
|
|||||||
@@ -67,6 +67,7 @@ struct PlayerOptions
|
|||||||
TRANSFORM_WIDE,
|
TRANSFORM_WIDE,
|
||||||
TRANSFORM_BIG,
|
TRANSFORM_BIG,
|
||||||
TRANSFORM_QUICK,
|
TRANSFORM_QUICK,
|
||||||
|
TRANSFORM_BMRIZE,
|
||||||
TRANSFORM_SKIPPY,
|
TRANSFORM_SKIPPY,
|
||||||
TRANSFORM_MINES,
|
TRANSFORM_MINES,
|
||||||
TRANSFORM_ECHO,
|
TRANSFORM_ECHO,
|
||||||
|
|||||||
@@ -165,7 +165,7 @@ static const MenuRow g_AreaMenuItems[] =
|
|||||||
{ "Clear", true, 0, { NULL } },
|
{ "Clear", true, 0, { NULL } },
|
||||||
{ "Quantize", true, 0, { "4TH","8TH","12TH","16TH","24TH","32ND","48TH","64TH" } },
|
{ "Quantize", true, 0, { "4TH","8TH","12TH","16TH","24TH","32ND","48TH","64TH" } },
|
||||||
{ "Turn", true, 0, { "Left","Right","Mirror","Shuffle","Super Shuffle" } },
|
{ "Turn", true, 0, { "Left","Right","Mirror","Shuffle","Super Shuffle" } },
|
||||||
{ "Transform", true, 0, { "NoHolds","NoMines","Little","Wide","Big","Quick","Skippy","Mines","Echo","Planted","Stomp","Twister","NoJumps","NoHands","NoQuads" } },
|
{ "Transform", true, 0, { "NoHolds","NoMines","Little","Wide","Big","Quick","BMRize","Skippy","Mines","Echo","Planted","Stomp","Twister","NoJumps","NoHands","NoQuads" } },
|
||||||
{ "Alter", true, 0, { "Backwards","Swap Sides","Copy Left To Right","Copy Right To Left","Clear Left","Clear Right","Collapse To One","Collapse Left","Shift Left","Shift Right" } },
|
{ "Alter", true, 0, { "Backwards","Swap Sides","Copy Left To Right","Copy Right To Left","Clear Left","Clear Right","Collapse To One","Collapse Left","Shift Left","Shift Right" } },
|
||||||
{ "Tempo", true, 0, { "Compress 2x","Compress 3->2","Compress 4->3","Expand 3->4","Expand 2->3","Expand 2x" } },
|
{ "Tempo", true, 0, { "Compress 2x","Compress 3->2","Compress 4->3","Expand 3->4","Expand 2->3","Expand 2x" } },
|
||||||
{ "Play selection", true, 0, { NULL } },
|
{ "Play selection", true, 0, { NULL } },
|
||||||
@@ -1759,6 +1759,7 @@ void ScreenEdit::HandleAreaMenuChoice( AreaMenuChoice c, int* iAnswers )
|
|||||||
case wide: NoteDataUtil::Wide( m_NoteFieldEdit, fBeginBeat, fEndBeat ); break;
|
case wide: NoteDataUtil::Wide( m_NoteFieldEdit, fBeginBeat, fEndBeat ); break;
|
||||||
case big: NoteDataUtil::Big( m_NoteFieldEdit, fBeginBeat, fEndBeat ); break;
|
case big: NoteDataUtil::Big( m_NoteFieldEdit, fBeginBeat, fEndBeat ); break;
|
||||||
case quick: NoteDataUtil::Quick( m_NoteFieldEdit, fBeginBeat, fEndBeat ); break;
|
case quick: NoteDataUtil::Quick( m_NoteFieldEdit, fBeginBeat, fEndBeat ); break;
|
||||||
|
case bmrize: NoteDataUtil::BMRize( m_NoteFieldEdit, fBeginBeat, fEndBeat ); break;
|
||||||
case skippy: NoteDataUtil::Skippy( m_NoteFieldEdit, fBeginBeat, fEndBeat ); break;
|
case skippy: NoteDataUtil::Skippy( m_NoteFieldEdit, fBeginBeat, fEndBeat ); break;
|
||||||
case mines: NoteDataUtil::AddMines( m_NoteFieldEdit, fBeginBeat, fEndBeat ); break;
|
case mines: NoteDataUtil::AddMines( m_NoteFieldEdit, fBeginBeat, fEndBeat ); break;
|
||||||
case echo: NoteDataUtil::Echo( m_NoteFieldEdit, fBeginBeat, fEndBeat ); break;
|
case echo: NoteDataUtil::Echo( m_NoteFieldEdit, fBeginBeat, fEndBeat ); break;
|
||||||
|
|||||||
@@ -141,7 +141,8 @@ public:
|
|||||||
};
|
};
|
||||||
void HandleAreaMenuChoice( AreaMenuChoice c, int* iAnswers );
|
void HandleAreaMenuChoice( AreaMenuChoice c, int* iAnswers );
|
||||||
enum TurnType { left, right, mirror, shuffle, super_shuffle, NUM_TURN_TYPES };
|
enum TurnType { left, right, mirror, shuffle, super_shuffle, NUM_TURN_TYPES };
|
||||||
enum TransformType { noholds, nomines, little, wide, big, quick, skippy, mines, echo, planted, stomp, twister, nojumps, nohands, noquads, NUM_TRANSFORM_TYPES };
|
// added bmrize - see note in NoteDataUtil.cpp as to WHY this mod was added
|
||||||
|
enum TransformType { noholds, nomines, little, wide, big, quick, bmrize, skippy, mines, echo, planted, stomp, twister, nojumps, nohands, noquads, NUM_TRANSFORM_TYPES };
|
||||||
enum AlterType { backwards, swap_sides, copy_left_to_right, copy_right_to_left, clear_left, clear_right, collapse_to_one, collapse_left, shift_left, shift_right, NUM_ALTER_TYPES };
|
enum AlterType { backwards, swap_sides, copy_left_to_right, copy_right_to_left, clear_left, clear_right, collapse_to_one, collapse_left, shift_left, shift_right, NUM_ALTER_TYPES };
|
||||||
// MD 11/02/03 - added additional tempo adjusts which make "sense"
|
// MD 11/02/03 - added additional tempo adjusts which make "sense"
|
||||||
enum TempoType { compress_2x, compress_3_2, compress_4_3, expand_4_3, expand_3_2, expand_2x, NUM_TEMPO_TYPES };
|
enum TempoType { compress_2x, compress_3_2, compress_4_3, expand_4_3, expand_3_2, expand_2x, NUM_TEMPO_TYPES };
|
||||||
|
|||||||
Reference in New Issue
Block a user