split LONG transform into BIG and QUICK
This commit is contained in:
+4
-3
@@ -11,15 +11,16 @@ NEW FEATURE: New Edit menus with ability to delete Notes patterns and new
|
|||||||
options for importing existing patterns into a new Notes pattern.
|
options for importing existing patterns into a new Notes pattern.
|
||||||
NEW FEATURE: Jukebox mode. Like demonstration, but plays entire songs
|
NEW FEATURE: Jukebox mode. Like demonstration, but plays entire songs
|
||||||
and loops.
|
and loops.
|
||||||
NEW FEATURE: F6 to save screenshot. Saved in StepMania program directory
|
NEW FEATURE: F5 to save screenshot. Saved in StepMania program directory
|
||||||
as "screenshotXXXX.bmp".
|
as "screenshotXXXX.bmp".
|
||||||
CHANGE: Reorganization of options screens.
|
CHANGE: Reorganization of options screens.
|
||||||
NEW FEATURE: Option for user-selectable extra stage 1
|
NEW FEATURE: Option for user-selectable extra stage 1
|
||||||
CHANGE: Documentation now in HTML format.
|
CHANGE: Documentation now in HTML format.
|
||||||
CHANGE: Overhauled NoteSkin format. See README-FIRST.htm for details.
|
CHANGE: Overhauled NoteSkin format. See README-FIRST.html for details.
|
||||||
BUG FIX: Super-shuffle fixed (now doesn't add extra notes)
|
BUG FIX: Super-shuffle fixed (now doesn't add extra notes)
|
||||||
NEW FEATURE: Added WIDE transform (changes notes on beats to jumps)
|
NEW FEATURE: Added WIDE transform (changes notes on beats to jumps)
|
||||||
NEW FEATURE: Added TALL transform (adds 16th notes between 8ths)
|
NEW FEATURE: Added BIG transform (strategically inserts 8ths)
|
||||||
|
NEW FEATURE: Added QUICK transform (strategically inserts 16ths)
|
||||||
|
|
||||||
----------------------- Version 3.01 ---------------------------
|
----------------------- Version 3.01 ---------------------------
|
||||||
CHANGE: Simplified NoteSkin tap graphic format. Old NoteSkins will need to
|
CHANGE: Simplified NoteSkin tap graphic format. Old NoteSkins will need to
|
||||||
|
|||||||
@@ -1043,25 +1043,43 @@ void NoteDataUtil::Wide( NoteData &in )
|
|||||||
in.Convert4sToHoldNotes();
|
in.Convert4sToHoldNotes();
|
||||||
}
|
}
|
||||||
|
|
||||||
void NoteDataUtil::Tall( NoteData &in )
|
void NoteDataUtil::Big( NoteData &in )
|
||||||
|
{
|
||||||
|
InsertIntelligentTaps(in,1.0f); // add 8ths
|
||||||
|
}
|
||||||
|
|
||||||
|
void NoteDataUtil::Quick( NoteData &in )
|
||||||
|
{
|
||||||
|
InsertIntelligentTaps(in,0.5f); // add 16ths
|
||||||
|
}
|
||||||
|
|
||||||
|
void NoteDataUtil::InsertIntelligentTaps( NoteData &in, float fBeatInterval )
|
||||||
{
|
{
|
||||||
in.ConvertHoldNotesTo4s();
|
in.ConvertHoldNotesTo4s();
|
||||||
|
|
||||||
// insert 16th between all 4th-8ths
|
// insert 16th between all 4th-8ths
|
||||||
int max_row = in.GetLastRow();
|
int max_row = in.GetLastRow();
|
||||||
int rows_per_eighth = ROWS_PER_BEAT/2;
|
int rows_per_interval = BeatToNoteRow( fBeatInterval );
|
||||||
for( int i=0; i<=max_row; i+=rows_per_eighth )
|
for( int i=0; i<=max_row; i+=rows_per_interval )
|
||||||
{
|
{
|
||||||
int iRowEarlier = i;
|
int iRowEarlier = i;
|
||||||
int iRowLater = i + rows_per_eighth;
|
int iRowLater = i + rows_per_interval;
|
||||||
int iRowMiddle = i + rows_per_eighth/2;
|
int iRowMiddle = i + rows_per_interval/2;
|
||||||
if( in.GetNumTapNonEmptyTracks(iRowEarlier) != 1 )
|
if( in.GetNumTapNonEmptyTracks(iRowEarlier) != 1 )
|
||||||
continue;
|
continue;
|
||||||
if( in.GetNumTapNonEmptyTracks(iRowLater) != 1 )
|
if( in.GetNumTapNonEmptyTracks(iRowLater) != 1 )
|
||||||
continue;
|
continue;
|
||||||
// there is a 4th and 8th note surrounding iRowBetween
|
// there is a 4th and 8th note surrounding iRowBetween
|
||||||
|
|
||||||
if( !in.IsRowEmpty(iRowMiddle) ) // there's already a 16th here
|
// don't insert a new note if there's already one within this interval
|
||||||
|
bool bNoteInMiddle = false;
|
||||||
|
for( int j=iRowEarlier+1; j<=iRowLater-1; j++ )
|
||||||
|
if( !in.IsRowEmpty(iRowMiddle) )
|
||||||
|
{
|
||||||
|
bNoteInMiddle = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if( bNoteInMiddle )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
// add a note determinitsitcally somewhere on a track different from the two surrounding notes
|
// add a note determinitsitcally somewhere on a track different from the two surrounding notes
|
||||||
|
|||||||
@@ -140,7 +140,9 @@ namespace NoteDataUtil
|
|||||||
void Turn( NoteData &in, TurnType tt );
|
void Turn( NoteData &in, TurnType tt );
|
||||||
void Little( NoteData &in );
|
void Little( NoteData &in );
|
||||||
void Wide( NoteData &in );
|
void Wide( NoteData &in );
|
||||||
void Tall( NoteData &in );
|
void Big( NoteData &in );
|
||||||
|
void Quick( NoteData &in );
|
||||||
|
void InsertIntelligentTaps( NoteData &in, float fBeatInterval );
|
||||||
void SuperShuffleTaps( NoteData &in );
|
void SuperShuffleTaps( NoteData &in );
|
||||||
void Backwards( NoteData &in );
|
void Backwards( NoteData &in );
|
||||||
void SwapSides( NoteData &in );
|
void SwapSides( NoteData &in );
|
||||||
|
|||||||
@@ -118,7 +118,8 @@ void Player::Load( PlayerNumber pn, NoteData* pNoteData, LifeMeter* pLM, ScoreDi
|
|||||||
case PlayerOptions::TRANSFORM_NONE: break;
|
case PlayerOptions::TRANSFORM_NONE: break;
|
||||||
case PlayerOptions::TRANSFORM_LITTLE: NoteDataUtil::Little(*this); break;
|
case PlayerOptions::TRANSFORM_LITTLE: NoteDataUtil::Little(*this); break;
|
||||||
case PlayerOptions::TRANSFORM_WIDE: NoteDataUtil::Wide(*this); break;
|
case PlayerOptions::TRANSFORM_WIDE: NoteDataUtil::Wide(*this); break;
|
||||||
case PlayerOptions::TRANSFORM_TALL: NoteDataUtil::Tall(*this); break;
|
case PlayerOptions::TRANSFORM_BIG: NoteDataUtil::Big(*this); break;
|
||||||
|
case PlayerOptions::TRANSFORM_QUICK: NoteDataUtil::Quick(*this); break;
|
||||||
default: ASSERT(0);
|
default: ASSERT(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -91,7 +91,8 @@ CString PlayerOptions::GetString()
|
|||||||
case TRANSFORM_NONE: break;
|
case TRANSFORM_NONE: break;
|
||||||
case TRANSFORM_LITTLE: sReturn += "Little, "; break;
|
case TRANSFORM_LITTLE: sReturn += "Little, "; break;
|
||||||
case TRANSFORM_WIDE: sReturn += "Wide, "; break;
|
case TRANSFORM_WIDE: sReturn += "Wide, "; break;
|
||||||
case TRANSFORM_TALL: sReturn += "Tall, "; break;
|
case TRANSFORM_BIG: sReturn += "Big, "; break;
|
||||||
|
case TRANSFORM_QUICK: sReturn += "Quick, "; break;
|
||||||
default: ASSERT(0); // invalid
|
default: ASSERT(0); // invalid
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -153,7 +154,8 @@ void PlayerOptions::FromString( CString sOptions )
|
|||||||
else if( sBit == "supershuffle" )m_TurnType = TURN_SUPER_SHUFFLE;
|
else if( sBit == "supershuffle" )m_TurnType = TURN_SUPER_SHUFFLE;
|
||||||
else if( sBit == "little" ) m_Transform = TRANSFORM_LITTLE;
|
else if( sBit == "little" ) m_Transform = TRANSFORM_LITTLE;
|
||||||
else if( sBit == "wide" ) m_Transform = TRANSFORM_WIDE;
|
else if( sBit == "wide" ) m_Transform = TRANSFORM_WIDE;
|
||||||
else if( sBit == "tall" ) m_Transform = TRANSFORM_TALL;
|
else if( sBit == "big" ) m_Transform = TRANSFORM_BIG;
|
||||||
|
else if( sBit == "quick" ) m_Transform = TRANSFORM_QUICK;
|
||||||
else if( sBit == "reverse" ) m_bReverseScroll = true;
|
else if( sBit == "reverse" ) m_bReverseScroll = true;
|
||||||
else if( sBit == "noholds" ) m_bHoldNotes = false;
|
else if( sBit == "noholds" ) m_bHoldNotes = false;
|
||||||
else if( sBit == "nofreeze" ) m_bHoldNotes = false;
|
else if( sBit == "nofreeze" ) m_bHoldNotes = false;
|
||||||
|
|||||||
@@ -58,7 +58,8 @@ struct PlayerOptions
|
|||||||
TRANSFORM_NONE=0,
|
TRANSFORM_NONE=0,
|
||||||
TRANSFORM_LITTLE,
|
TRANSFORM_LITTLE,
|
||||||
TRANSFORM_WIDE,
|
TRANSFORM_WIDE,
|
||||||
TRANSFORM_TALL,
|
TRANSFORM_BIG,
|
||||||
|
TRANSFORM_QUICK,
|
||||||
NUM_TRANSFORMS
|
NUM_TRANSFORMS
|
||||||
} m_Transform;
|
} m_Transform;
|
||||||
void NextTransform();
|
void NextTransform();
|
||||||
|
|||||||
@@ -141,7 +141,7 @@ MiniMenuDefinition g_AreaMenu =
|
|||||||
{ "Paste", true, 1, 0, {""} },
|
{ "Paste", true, 1, 0, {""} },
|
||||||
{ "Clear", true, 1, 0, {""} },
|
{ "Clear", true, 1, 0, {""} },
|
||||||
{ "Quantize", true, NUM_NOTE_TYPES, 0, {"4TH","8TH","12TH","16TH","24TH","32ND"} },
|
{ "Quantize", true, NUM_NOTE_TYPES, 0, {"4TH","8TH","12TH","16TH","24TH","32ND"} },
|
||||||
{ "Transform", true, ScreenEdit::NUM_TRANSFORM_TYPES, 0, {"Little","Wide","Big","Left","Right","Mirror","Shuffle","Super Shuffle","Backwards","Swap Sides"} },
|
{ "Transform", true, ScreenEdit::NUM_TRANSFORM_TYPES, 0, {"Little","Wide","Big","Quick","Left","Right","Mirror","Shuffle","Super Shuffle","Backwards","Swap Sides"} },
|
||||||
{ "Play selection", true, 1, 0, {""} },
|
{ "Play selection", true, 1, 0, {""} },
|
||||||
{ "Record in selection",true, 1, 0, {""} },
|
{ "Record in selection",true, 1, 0, {""} },
|
||||||
{ "Insert blank beat and shift down", true, 1, 0, {""} },
|
{ "Insert blank beat and shift down", true, 1, 0, {""} },
|
||||||
@@ -1290,7 +1290,8 @@ void ScreenEdit::HandleAreaMenuChoice( AreaMenuChoice c, int* iAnswers )
|
|||||||
{
|
{
|
||||||
case little: NoteDataUtil::Little( m_Clipboard ); break;
|
case little: NoteDataUtil::Little( m_Clipboard ); break;
|
||||||
case wide: NoteDataUtil::Wide( m_Clipboard ); break;
|
case wide: NoteDataUtil::Wide( m_Clipboard ); break;
|
||||||
case tall: NoteDataUtil::Tall( m_Clipboard ); break;
|
case big: NoteDataUtil::Big( m_Clipboard ); break;
|
||||||
|
case quick: NoteDataUtil::Quick( m_Clipboard ); break;
|
||||||
case left: NoteDataUtil::Turn( m_Clipboard, NoteDataUtil::left ); break;
|
case left: NoteDataUtil::Turn( m_Clipboard, NoteDataUtil::left ); break;
|
||||||
case right: NoteDataUtil::Turn( m_Clipboard, NoteDataUtil::right ); break;
|
case right: NoteDataUtil::Turn( m_Clipboard, NoteDataUtil::right ); break;
|
||||||
case shuffle: NoteDataUtil::Turn( m_Clipboard, NoteDataUtil::shuffle ); break;
|
case shuffle: NoteDataUtil::Turn( m_Clipboard, NoteDataUtil::shuffle ); break;
|
||||||
|
|||||||
@@ -134,7 +134,7 @@ public:
|
|||||||
NUM_AREA_MENU_CHOICES
|
NUM_AREA_MENU_CHOICES
|
||||||
};
|
};
|
||||||
void HandleAreaMenuChoice( AreaMenuChoice c, int* iAnswers );
|
void HandleAreaMenuChoice( AreaMenuChoice c, int* iAnswers );
|
||||||
enum TransformType { little, wide, tall, left, right, mirror, shuffle, super_shuffle, backwards, swap_sides, NUM_TRANSFORM_TYPES };
|
enum TransformType { little, wide, big, quick, left, right, mirror, shuffle, super_shuffle, backwards, swap_sides, NUM_TRANSFORM_TYPES };
|
||||||
|
|
||||||
enum EditNotesStatisticsChoice {
|
enum EditNotesStatisticsChoice {
|
||||||
difficulty,
|
difficulty,
|
||||||
|
|||||||
@@ -40,7 +40,7 @@ OptionRowData g_PlayerOptionsLines[NUM_PLAYER_OPTIONS_LINES] = {
|
|||||||
{ "Effect", 7, {"OFF","DRUNK","DIZZY","SPACE","MINI","FLIP","TORNADO"} },
|
{ "Effect", 7, {"OFF","DRUNK","DIZZY","SPACE","MINI","FLIP","TORNADO"} },
|
||||||
{ "Appear\n-ance", 5, {"VISIBLE","HIDDEN","SUDDEN","STEALTH","BLINK"} },
|
{ "Appear\n-ance", 5, {"VISIBLE","HIDDEN","SUDDEN","STEALTH","BLINK"} },
|
||||||
{ "Turn", 6, {"OFF","MIRROR","LEFT","RIGHT","SHUFFLE","SUPER SHUFFLE"} },
|
{ "Turn", 6, {"OFF","MIRROR","LEFT","RIGHT","SHUFFLE","SUPER SHUFFLE"} },
|
||||||
{ "Trans\n-form", 4, {"OFF","LITTLE","WIDE","TALL"} },
|
{ "Trans\n-form", 5, {"OFF","LITTLE","WIDE","BIG","QUICK"} },
|
||||||
{ "Scroll", 2, {"STANDARD","REVERSE"} },
|
{ "Scroll", 2, {"STANDARD","REVERSE"} },
|
||||||
{ "Note\nSkin", 0, {""} },
|
{ "Note\nSkin", 0, {""} },
|
||||||
{ "Holds", 2, {"OFF","ON"} },
|
{ "Holds", 2, {"OFF","ON"} },
|
||||||
|
|||||||
@@ -218,8 +218,8 @@ void ScreenRanking::SetPage( PageToShow pts )
|
|||||||
|
|
||||||
if( bRecentHighScore )
|
if( bRecentHighScore )
|
||||||
{
|
{
|
||||||
m_textNames[l].SetEffectDiffuseBlinking( 0.1f, TEXT_COLOR, RageColor(1,1,1,1) );
|
m_textNames[l].SetEffectGlowBlinking(0.1f);
|
||||||
m_textScores[l].SetEffectDiffuseBlinking( 0.1f, TEXT_COLOR, RageColor(1,1,1,1) );
|
m_textScores[l].SetEffectGlowBlinking(0.1f);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -252,8 +252,8 @@ void ScreenRanking::SetPage( PageToShow pts )
|
|||||||
pts.nt == GAMESTATE->m_RankingNotesType &&
|
pts.nt == GAMESTATE->m_RankingNotesType &&
|
||||||
GAMESTATE->m_iRankingIndex[p] == l )
|
GAMESTATE->m_iRankingIndex[p] == l )
|
||||||
{
|
{
|
||||||
m_textNames[l].SetEffectDiffuseBlinking();
|
m_textNames[l].SetEffectGlowBlinking(0.1f);
|
||||||
m_textScores[l].SetEffectDiffuseBlinking();
|
m_textScores[l].SetEffectGlowBlinking(0.1f);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user