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.
|
||||
NEW FEATURE: Jukebox mode. Like demonstration, but plays entire songs
|
||||
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".
|
||||
CHANGE: Reorganization of options screens.
|
||||
NEW FEATURE: Option for user-selectable extra stage 1
|
||||
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)
|
||||
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 ---------------------------
|
||||
CHANGE: Simplified NoteSkin tap graphic format. Old NoteSkins will need to
|
||||
|
||||
@@ -1043,25 +1043,43 @@ void NoteDataUtil::Wide( NoteData &in )
|
||||
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();
|
||||
|
||||
// insert 16th between all 4th-8ths
|
||||
int max_row = in.GetLastRow();
|
||||
int rows_per_eighth = ROWS_PER_BEAT/2;
|
||||
for( int i=0; i<=max_row; i+=rows_per_eighth )
|
||||
int rows_per_interval = BeatToNoteRow( fBeatInterval );
|
||||
for( int i=0; i<=max_row; i+=rows_per_interval )
|
||||
{
|
||||
int iRowEarlier = i;
|
||||
int iRowLater = i + rows_per_eighth;
|
||||
int iRowMiddle = i + rows_per_eighth/2;
|
||||
int iRowLater = i + rows_per_interval;
|
||||
int iRowMiddle = i + rows_per_interval/2;
|
||||
if( in.GetNumTapNonEmptyTracks(iRowEarlier) != 1 )
|
||||
continue;
|
||||
if( in.GetNumTapNonEmptyTracks(iRowLater) != 1 )
|
||||
continue;
|
||||
// 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;
|
||||
|
||||
// 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 Little( 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 Backwards( NoteData &in );
|
||||
void SwapSides( NoteData &in );
|
||||
|
||||
@@ -115,10 +115,11 @@ void Player::Load( PlayerNumber pn, NoteData* pNoteData, LifeMeter* pLM, ScoreDi
|
||||
|
||||
switch( GAMESTATE->m_PlayerOptions[pn].m_Transform )
|
||||
{
|
||||
case PlayerOptions::TRANSFORM_NONE: break;
|
||||
case PlayerOptions::TRANSFORM_LITTLE: NoteDataUtil::Little(*this); break;
|
||||
case PlayerOptions::TRANSFORM_WIDE: NoteDataUtil::Wide(*this); break;
|
||||
case PlayerOptions::TRANSFORM_TALL: NoteDataUtil::Tall(*this); break;
|
||||
case PlayerOptions::TRANSFORM_NONE: break;
|
||||
case PlayerOptions::TRANSFORM_LITTLE: NoteDataUtil::Little(*this); break;
|
||||
case PlayerOptions::TRANSFORM_WIDE: NoteDataUtil::Wide(*this); break;
|
||||
case PlayerOptions::TRANSFORM_BIG: NoteDataUtil::Big(*this); break;
|
||||
case PlayerOptions::TRANSFORM_QUICK: NoteDataUtil::Quick(*this); break;
|
||||
default: ASSERT(0);
|
||||
}
|
||||
|
||||
|
||||
@@ -88,10 +88,11 @@ CString PlayerOptions::GetString()
|
||||
|
||||
switch( m_Transform )
|
||||
{
|
||||
case TRANSFORM_NONE: break;
|
||||
case TRANSFORM_LITTLE: sReturn += "Little, "; break;
|
||||
case TRANSFORM_WIDE: sReturn += "Wide, "; break;
|
||||
case TRANSFORM_TALL: sReturn += "Tall, "; break;
|
||||
case TRANSFORM_NONE: break;
|
||||
case TRANSFORM_LITTLE: sReturn += "Little, "; break;
|
||||
case TRANSFORM_WIDE: sReturn += "Wide, "; break;
|
||||
case TRANSFORM_BIG: sReturn += "Big, "; break;
|
||||
case TRANSFORM_QUICK: sReturn += "Quick, "; break;
|
||||
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 == "little" ) m_Transform = TRANSFORM_LITTLE;
|
||||
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 == "noholds" ) m_bHoldNotes = false;
|
||||
else if( sBit == "nofreeze" ) m_bHoldNotes = false;
|
||||
|
||||
@@ -58,7 +58,8 @@ struct PlayerOptions
|
||||
TRANSFORM_NONE=0,
|
||||
TRANSFORM_LITTLE,
|
||||
TRANSFORM_WIDE,
|
||||
TRANSFORM_TALL,
|
||||
TRANSFORM_BIG,
|
||||
TRANSFORM_QUICK,
|
||||
NUM_TRANSFORMS
|
||||
} m_Transform;
|
||||
void NextTransform();
|
||||
|
||||
@@ -141,7 +141,7 @@ MiniMenuDefinition g_AreaMenu =
|
||||
{ "Paste", true, 1, 0, {""} },
|
||||
{ "Clear", true, 1, 0, {""} },
|
||||
{ "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, {""} },
|
||||
{ "Record in selection",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 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 right: NoteDataUtil::Turn( m_Clipboard, NoteDataUtil::right ); break;
|
||||
case shuffle: NoteDataUtil::Turn( m_Clipboard, NoteDataUtil::shuffle ); break;
|
||||
|
||||
@@ -134,7 +134,7 @@ public:
|
||||
NUM_AREA_MENU_CHOICES
|
||||
};
|
||||
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 {
|
||||
difficulty,
|
||||
|
||||
@@ -40,7 +40,7 @@ OptionRowData g_PlayerOptionsLines[NUM_PLAYER_OPTIONS_LINES] = {
|
||||
{ "Effect", 7, {"OFF","DRUNK","DIZZY","SPACE","MINI","FLIP","TORNADO"} },
|
||||
{ "Appear\n-ance", 5, {"VISIBLE","HIDDEN","SUDDEN","STEALTH","BLINK"} },
|
||||
{ "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"} },
|
||||
{ "Note\nSkin", 0, {""} },
|
||||
{ "Holds", 2, {"OFF","ON"} },
|
||||
|
||||
@@ -218,8 +218,8 @@ void ScreenRanking::SetPage( PageToShow pts )
|
||||
|
||||
if( bRecentHighScore )
|
||||
{
|
||||
m_textNames[l].SetEffectDiffuseBlinking( 0.1f, TEXT_COLOR, RageColor(1,1,1,1) );
|
||||
m_textScores[l].SetEffectDiffuseBlinking( 0.1f, TEXT_COLOR, RageColor(1,1,1,1) );
|
||||
m_textNames[l].SetEffectGlowBlinking(0.1f);
|
||||
m_textScores[l].SetEffectGlowBlinking(0.1f);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -252,8 +252,8 @@ void ScreenRanking::SetPage( PageToShow pts )
|
||||
pts.nt == GAMESTATE->m_RankingNotesType &&
|
||||
GAMESTATE->m_iRankingIndex[p] == l )
|
||||
{
|
||||
m_textNames[l].SetEffectDiffuseBlinking();
|
||||
m_textScores[l].SetEffectDiffuseBlinking();
|
||||
m_textNames[l].SetEffectGlowBlinking(0.1f);
|
||||
m_textScores[l].SetEffectGlowBlinking(0.1f);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user