diff --git a/stepmania/NEWS b/stepmania/NEWS index 50b1e6cd84..0ddaf913ea 100644 --- a/stepmania/NEWS +++ b/stepmania/NEWS @@ -18,7 +18,8 @@ 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. BUG FIX: Super-shuffle fixed (now doesn't add extra notes) -NEW FEATURE: Added BIG 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) ----------------------- Version 3.01 --------------------------- CHANGE: Simplified NoteSkin tap graphic format. Old NoteSkins will need to diff --git a/stepmania/README-FIRST.html b/stepmania/README-FIRST.html index 966e35c99f..e68253a2d4 100644 --- a/stepmania/README-FIRST.html +++ b/stepmania/README-FIRST.html @@ -237,10 +237,10 @@ drivers are required to use these devices. These drivers are often finicky and incompatible with some sound cards. PlayStation->Parallel adaptors can be purchased from the StepMania web site or any importer.

-For Windows 98 and Windows Me users, the recommended driver is "DirectPad -Pro 5.0 for Win9x". For Windows 2000 and Windows XP, the recommended drivers -is NTPad XP 1.x or -PSXPAD.
+For Windows 98 and Windows Me users, the recommended driver is DirectPad +Pro 5.0 for Win9x. For Windows 2000 and Windows XP, the recommended drivers +is NTPad XP 1.x or PSXPAD.  For the latest versions of these drivers, visit +Aldo's Tools.

StepMania now natively supports USB Pump It Up pads.

diff --git a/stepmania/src/NoteData.cpp b/stepmania/src/NoteData.cpp index 2372f712e6..1dce6c5f5d 100644 --- a/stepmania/src/NoteData.cpp +++ b/stepmania/src/NoteData.cpp @@ -1009,7 +1009,7 @@ void NoteDataUtil::Little(NoteData &in) // leave HoldNotes unchanged (what should be do with them?) } -void NoteDataUtil::Big( NoteData &in ) +void NoteDataUtil::Wide( NoteData &in ) { in.ConvertHoldNotesTo4s(); @@ -1043,6 +1043,48 @@ void NoteDataUtil::Big( NoteData &in ) in.Convert4sToHoldNotes(); } +void NoteDataUtil::Tall( NoteData &in ) +{ + 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 iRowEarlier = i; + int iRowLater = i + rows_per_eighth; + int iRowMiddle = i + rows_per_eighth/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 + continue; + + // add a note determinitsitcally somewhere on a track different from the two surrounding notes + int iTrackOfNoteEarlier = in.GetFirstNonEmptyTrack(iRowEarlier); + int iTrackOfNoteLater = in.GetFirstNonEmptyTrack(iRowLater); + int iTrackOfNoteMiddle = 0; + if( abs(iTrackOfNoteEarlier-iTrackOfNoteLater) == 2 ) + iTrackOfNoteMiddle = (iTrackOfNoteEarlier+iTrackOfNoteLater)/2; + else + for( int t=min(iTrackOfNoteEarlier,iTrackOfNoteLater)-1; t<=max(iTrackOfNoteEarlier,iTrackOfNoteLater)+1; t++ ) + { + iTrackOfNoteMiddle = t; + CLAMP( iTrackOfNoteMiddle, 0, in.GetNumTracks()-1 ); + if( iTrackOfNoteMiddle!=iTrackOfNoteEarlier && iTrackOfNoteMiddle!=iTrackOfNoteLater ) + break; + } + + in.SetTapNote(iTrackOfNoteMiddle, iRowMiddle, TAP_TAP); + } + + in.Convert4sToHoldNotes(); +} + void NoteDataUtil::SnapToNearestNoteType( NoteData &in, NoteType nt1, NoteType nt2, float fBeginBeat, float fEndBeat ) { diff --git a/stepmania/src/NoteData.h b/stepmania/src/NoteData.h index 66654f3f38..b5b085ffe5 100644 --- a/stepmania/src/NoteData.h +++ b/stepmania/src/NoteData.h @@ -139,7 +139,8 @@ namespace NoteDataUtil enum TurnType { left, right, mirror, shuffle, super_shuffle, NUM_TURN_TYPES }; void Turn( NoteData &in, TurnType tt ); void Little( NoteData &in ); - void Big( NoteData &in ); + void Wide( NoteData &in ); + void Tall( NoteData &in ); void SuperShuffleTaps( NoteData &in ); void Backwards( NoteData &in ); void SwapSides( NoteData &in ); diff --git a/stepmania/src/Player.cpp b/stepmania/src/Player.cpp index 73e9b56e74..eda2e8ae5c 100644 --- a/stepmania/src/Player.cpp +++ b/stepmania/src/Player.cpp @@ -117,7 +117,8 @@ void Player::Load( PlayerNumber pn, NoteData* pNoteData, LifeMeter* pLM, ScoreDi { case PlayerOptions::TRANSFORM_NONE: break; case PlayerOptions::TRANSFORM_LITTLE: NoteDataUtil::Little(*this); break; - case PlayerOptions::TRANSFORM_BIG: NoteDataUtil::Big(*this); break; + case PlayerOptions::TRANSFORM_WIDE: NoteDataUtil::Wide(*this); break; + case PlayerOptions::TRANSFORM_TALL: NoteDataUtil::Tall(*this); break; default: ASSERT(0); } diff --git a/stepmania/src/PlayerOptions.cpp b/stepmania/src/PlayerOptions.cpp index 8f80438050..6fcbbd58f3 100644 --- a/stepmania/src/PlayerOptions.cpp +++ b/stepmania/src/PlayerOptions.cpp @@ -90,7 +90,8 @@ CString PlayerOptions::GetString() { case TRANSFORM_NONE: break; case TRANSFORM_LITTLE: sReturn += "Little, "; break; - case TRANSFORM_BIG: sReturn += "Big, "; break; + case TRANSFORM_WIDE: sReturn += "Wide, "; break; + case TRANSFORM_TALL: sReturn += "Tall, "; break; default: ASSERT(0); // invalid } @@ -151,7 +152,8 @@ void PlayerOptions::FromString( CString sOptions ) else if( sBit == "shuffle" ) m_TurnType = TURN_SHUFFLE; else if( sBit == "supershuffle" )m_TurnType = TURN_SUPER_SHUFFLE; else if( sBit == "little" ) m_Transform = TRANSFORM_LITTLE; - else if( sBit == "big" ) m_Transform = TRANSFORM_BIG; + else if( sBit == "wide" ) m_Transform = TRANSFORM_WIDE; + else if( sBit == "tall" ) m_Transform = TRANSFORM_TALL; else if( sBit == "reverse" ) m_bReverseScroll = true; else if( sBit == "noholds" ) m_bHoldNotes = false; else if( sBit == "nofreeze" ) m_bHoldNotes = false; diff --git a/stepmania/src/PlayerOptions.h b/stepmania/src/PlayerOptions.h index aafb204743..d2b38b700d 100644 --- a/stepmania/src/PlayerOptions.h +++ b/stepmania/src/PlayerOptions.h @@ -57,7 +57,8 @@ struct PlayerOptions enum Transform { TRANSFORM_NONE=0, TRANSFORM_LITTLE, - TRANSFORM_BIG, + TRANSFORM_WIDE, + TRANSFORM_TALL, NUM_TRANSFORMS } m_Transform; void NextTransform(); diff --git a/stepmania/src/ScreenEdit.cpp b/stepmania/src/ScreenEdit.cpp index f7fe906ece..624bf46376 100644 --- a/stepmania/src/ScreenEdit.cpp +++ b/stepmania/src/ScreenEdit.cpp @@ -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","Big","Left","Right","Mirror","Shuffle","Super Shuffle","Backwards","Swap Sides"} }, + { "Transform", true, ScreenEdit::NUM_TRANSFORM_TYPES, 0, {"Little","Wide","Big","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, {""} }, @@ -1289,7 +1289,8 @@ void ScreenEdit::HandleAreaMenuChoice( AreaMenuChoice c, int* iAnswers ) switch( tt ) { case little: NoteDataUtil::Little( m_Clipboard ); break; - case big: NoteDataUtil::Big( m_Clipboard ); break; + case wide: NoteDataUtil::Wide( m_Clipboard ); break; + case tall: NoteDataUtil::Tall( 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; diff --git a/stepmania/src/ScreenEdit.h b/stepmania/src/ScreenEdit.h index b8adb9a607..e83ea58d92 100644 --- a/stepmania/src/ScreenEdit.h +++ b/stepmania/src/ScreenEdit.h @@ -134,7 +134,7 @@ public: NUM_AREA_MENU_CHOICES }; void HandleAreaMenuChoice( AreaMenuChoice c, int* iAnswers ); - enum TransformType { little, big, left, right, mirror, shuffle, super_shuffle, backwards, swap_sides, NUM_TRANSFORM_TYPES }; + enum TransformType { little, wide, tall, left, right, mirror, shuffle, super_shuffle, backwards, swap_sides, NUM_TRANSFORM_TYPES }; enum EditNotesStatisticsChoice { difficulty, diff --git a/stepmania/src/ScreenPlayerOptions.cpp b/stepmania/src/ScreenPlayerOptions.cpp index d710074643..6750a24612 100644 --- a/stepmania/src/ScreenPlayerOptions.cpp +++ b/stepmania/src/ScreenPlayerOptions.cpp @@ -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", 3, {"OFF","LITTLE","BIG"} }, + { "Trans\n-form", 4, {"OFF","LITTLE","WIDE","TALL"} }, { "Scroll", 2, {"STANDARD","REVERSE"} }, { "Note\nSkin", 0, {""} }, { "Holds", 2, {"OFF","ON"} }, diff --git a/stepmania/stepmania.nsi b/stepmania/stepmania.nsi index 25d2c1a23a..a9c4785178 100644 --- a/stepmania/stepmania.nsi +++ b/stepmania/stepmania.nsi @@ -19,7 +19,7 @@ !define PRODUCT_NAME_VER "${PRODUCT_NAME} ${VERSION}" Name "${PRODUCT_NAME}" -OutFile "StepMania-CVS-20030212.exe" +OutFile "StepMania-CVS-20030219.exe" ;OutFile "StepMania301.exe" ; Some default compiler settings (uncomment and change at will):