diff --git a/stepmania/TODO.chris b/stepmania/TODO.chris index b8ee491775..6e44497881 100644 --- a/stepmania/TODO.chris +++ b/stepmania/TODO.chris @@ -2,9 +2,21 @@ Fix ///////////////////////// +test DWI writer + +Make Save both SM and DWI + +The "groove bar" reports at the results screen is broken. +Getting a nearly full voltage bar on a +song when I barely maitain combo (it should be max combo/max possible combo), +and chaos is always +empty unless you AAA a song. + Ready, here we go closer to start of notes -correct songs played show on eval +ready, here we go between each stage of a course + +all songs played passed show on eval make sure supports music in "Music" folder @@ -18,11 +30,7 @@ about us page new phpwebhosting account -call BrainStorm guy - -RMA phone - -RMA Kiko USB +call BrainStorm guy (Jodi 509-270-6112) kitsappt photos @@ -34,8 +42,6 @@ sample pop fix screwed up scroll bar -ready, here we go between each stage of a course - send disc to Penny Arcade long ver, marathon balloons @@ -174,12 +180,6 @@ This doesn't quite qualify as a "bug," but--tiled scrolling background animations have very visible seams where the tiles meet; it'd look much much better if it was seamless. -The "groove bar" reports at the results screen is broken. -Getting a nearly full voltage bar on a -song when I barely maitain combo (it should be max combo/max possible combo), -and chaos is always -empty unless you AAA a song. - #LYRICS: e.g. 120=Hey Ho Captian Jack, 124=Bring Me Back to the railroad track, diff --git a/stepmania/src/NoteDisplay.cpp b/stepmania/src/NoteDisplay.cpp index 457b1a67e1..9495260fa9 100644 --- a/stepmania/src/NoteDisplay.cpp +++ b/stepmania/src/NoteDisplay.cpp @@ -229,7 +229,7 @@ void NoteDisplay::DrawHold( const HoldNote& hn, const bool bActive, const float const float fAlphaBottom = ArrowGetAlpha( m_PlayerNumber, fYBottom, fPercentFadeToFail ); const float fGlowTop = ArrowGetGlow( m_PlayerNumber, fYTop, fPercentFadeToFail ); const float fGlowBottom = ArrowGetGlow( m_PlayerNumber, fYBottom, fPercentFadeToFail ); - const float fColorScale = SCALE(fLife,0,1,0.5f,1); + const float fColorScale = SCALE(fLife,0,1,0.2f,1); const D3DXCOLOR colorDiffuseTop = D3DXCOLOR(fColorScale,fColorScale,fColorScale,fAlphaTop); const D3DXCOLOR colorDiffuseBottom = D3DXCOLOR(fColorScale,fColorScale,fColorScale,fAlphaBottom); const D3DXCOLOR colorGlowTop = D3DXCOLOR(1,1,1,fGlowTop); @@ -272,7 +272,7 @@ void NoteDisplay::DrawHold( const HoldNote& hn, const bool bActive, const float const float fAlphaBottom = ArrowGetAlpha( m_PlayerNumber, fYBottom, fPercentFadeToFail ); const float fGlowTop = ArrowGetGlow( m_PlayerNumber, fYTop, fPercentFadeToFail ); const float fGlowBottom = ArrowGetGlow( m_PlayerNumber, fYBottom, fPercentFadeToFail ); - const float fColorScale = SCALE(fLife,0,1,0.5f,1); + const float fColorScale = SCALE(fLife,0,1,0.2f,1); const D3DXCOLOR colorDiffuseTop = D3DXCOLOR(fColorScale,fColorScale,fColorScale,fAlphaTop); const D3DXCOLOR colorDiffuseBottom = D3DXCOLOR(fColorScale,fColorScale,fColorScale,fAlphaBottom); const D3DXCOLOR colorGlowTop = D3DXCOLOR(1,1,1,fGlowTop); @@ -301,7 +301,7 @@ void NoteDisplay::DrawHold( const HoldNote& hn, const bool bActive, const float const float fX = ArrowGetXPos( m_PlayerNumber, iCol, fY ); const float fAlpha = ArrowGetAlpha( m_PlayerNumber, fY, fPercentFadeToFail ); const float fGlow = ArrowGetGlow( m_PlayerNumber, fY, fPercentFadeToFail ); - const float fColorScale = SCALE(fLife,0,1,0.5f,1); + const float fColorScale = SCALE(fLife,0,1,0.2f,1); const D3DXCOLOR colorDiffuse= D3DXCOLOR(fColorScale,fColorScale,fColorScale,fAlpha); const D3DXCOLOR colorGlow = D3DXCOLOR(1,1,1,fGlow); diff --git a/stepmania/src/NoteField.cpp b/stepmania/src/NoteField.cpp index 36259ec3e8..92ab10c945 100644 --- a/stepmania/src/NoteField.cpp +++ b/stepmania/src/NoteField.cpp @@ -160,7 +160,7 @@ void NoteField::DrawPrimitives() const int iFirstIndexToDraw = BeatToNoteRow(fFirstBeatToDraw); const int iLastIndexToDraw = BeatToNoteRow(fLastBeatToDraw); - LOG->Trace( "Drawing elements %d through %d", iFirstIndexToDraw, iLastIndexToDraw ); +// LOG->Trace( "Drawing elements %d through %d", iFirstIndexToDraw, iLastIndexToDraw ); if( GAMESTATE->m_bEditing ) { diff --git a/stepmania/src/NoteTypes.cpp b/stepmania/src/NoteTypes.cpp index a82e8ee25e..efd0ad4660 100644 --- a/stepmania/src/NoteTypes.cpp +++ b/stepmania/src/NoteTypes.cpp @@ -20,7 +20,11 @@ D3DXCOLOR NoteTypeToColor( NoteType nt ) case NOTE_TYPE_8TH: return D3DXCOLOR(0,0,1,1); // blue case NOTE_TYPE_12TH: return D3DXCOLOR(1,0,1,1); // purple case NOTE_TYPE_16TH: return D3DXCOLOR(1,1,0,1); // yellow - default: ASSERT(0); return D3DXCOLOR(0.5f,0.5f,0.5f,1); + case NOTE_TYPE_24TH: return D3DXCOLOR(0,1,1,1); // light blue + case NOTE_TYPE_32ND: // fall through + default: + ASSERT(0); + return D3DXCOLOR(0.5f,0.5f,0.5f,1); // gray } }; @@ -32,6 +36,8 @@ float NoteTypeToBeat( NoteType nt ) case NOTE_TYPE_8TH: return 1.0f/2; // eighth notes case NOTE_TYPE_12TH: return 1.0f/3; // triplets case NOTE_TYPE_16TH: return 1.0f/4; // sixteenth notes + case NOTE_TYPE_24TH: return 1.0f/6; // twenty-forth notes + case NOTE_TYPE_32ND: return 1.0f/8; // thirty-second notes default: ASSERT(0); return 0; } } @@ -42,6 +48,8 @@ NoteType GetNoteType( int iNoteIndex ) else if( iNoteIndex % (ROWS_PER_MEASURE/8) == 0) return NOTE_TYPE_8TH; else if( iNoteIndex % (ROWS_PER_MEASURE/12) == 0) return NOTE_TYPE_12TH; else if( iNoteIndex % (ROWS_PER_MEASURE/16) == 0) return NOTE_TYPE_16TH; + else if( iNoteIndex % (ROWS_PER_MEASURE/24) == 0) return NOTE_TYPE_24TH; + else if( iNoteIndex % (ROWS_PER_MEASURE/32) == 0) return NOTE_TYPE_32ND; else return NOTE_TYPE_INVALID; }; @@ -52,12 +60,7 @@ bool IsNoteOfType( int iNoteIndex, NoteType t ) D3DXCOLOR GetNoteColorFromIndex( int iIndex ) { - for( int t=0; t" ); + fprintf( fp, "}" ); break; } fprintf( fp, "\n" ); @@ -195,7 +221,7 @@ bool NotesWriterDWI::Write( CString sPath, const Song &out ) for( int i=0; iSetNewScreen( "ScreenEditMenu" ); break; case DIK_S: - case DIK_W: { // copy edit into current Notes // Song* pSong = GAMESTATE->m_pCurSong; @@ -666,19 +665,9 @@ void ScreenEdit::InputEdit( const DeviceInput& DeviceI, const InputEventType typ } */ pNotes->SetNoteData( (NoteData*)&m_NoteFieldEdit ); - switch( DeviceI.button ) - { - case DIK_S: - GAMESTATE->m_pCurSong->SaveToSongFile(); - SCREENMAN->SystemMessage( "Saved as SM." ); - break; - case DIK_W: - GAMESTATE->m_pCurSong->SaveToSongFileAndDWI(); - SCREENMAN->SystemMessage( "Saved as SM and DWI." ); - break; - default: - ASSERT(0); - } + GAMESTATE->m_pCurSong->Save(); + SCREENMAN->SystemMessage( "Saved as SM and DWI." ); + SOUND->PlayOnceStreamed( THEME->GetPathTo("Sounds","edit save") ); } break; @@ -1226,6 +1215,25 @@ void ScreenEdit::InputPlay( const DeviceInput& DeviceI, const InputEventType typ GAMESTATE->m_fSongBeat = froundf( GAMESTATE->m_fSongBeat, NoteTypeToBeat(m_SnapDisplay.GetSnapMode()) ); break; + case DIK_F11: + case DIK_F12: + { + float fOffsetDelta; + switch( DeviceI.button ) + { + case DIK_F11: fOffsetDelta = -0.020f; break; + case DIK_F12: fOffsetDelta = +0.020f; break; + default: ASSERT(0); return; + } + switch( type ) + { + case IET_SLOW_REPEAT: fOffsetDelta *= 10; break; + case IET_FAST_REPEAT: fOffsetDelta *= 40; break; + } + + m_pSong->m_fBeat0OffsetInSeconds += fOffsetDelta; + } + break; } } diff --git a/stepmania/src/ScreenEdit.h b/stepmania/src/ScreenEdit.h index 9507f60066..2cc5ac48c8 100644 --- a/stepmania/src/ScreenEdit.h +++ b/stepmania/src/ScreenEdit.h @@ -22,7 +22,7 @@ #include "SnapDisplay.h" -const int NUM_MENU_ITEMS = 25; +const int NUM_MENU_ITEMS = 24; class ScreenEdit : public Screen diff --git a/stepmania/src/ScreenGameplay.cpp b/stepmania/src/ScreenGameplay.cpp index b55985850e..d0817a4c4d 100644 --- a/stepmania/src/ScreenGameplay.cpp +++ b/stepmania/src/ScreenGameplay.cpp @@ -956,7 +956,7 @@ void SaveChanges() switch( GAMESTATE->m_PlayMode ) { case PLAY_MODE_ARCADE: - GAMESTATE->m_pCurSong->SaveToSongFile(); + GAMESTATE->m_pCurSong->Save(); break; case PLAY_MODE_ONI: case PLAY_MODE_ENDLESS: @@ -964,7 +964,7 @@ void SaveChanges() for( int i=0; im_pCurCourse->m_iStages; i++ ) { Song* pSong = GAMESTATE->m_pCurCourse->m_apSongs[i]; - pSong->SaveToSongFile(); + pSong->Save(); } } break; diff --git a/stepmania/src/SnapDisplay.cpp b/stepmania/src/SnapDisplay.cpp index 51a3cf68f5..cb1c5e39c1 100644 --- a/stepmania/src/SnapDisplay.cpp +++ b/stepmania/src/SnapDisplay.cpp @@ -58,7 +58,7 @@ bool SnapDisplay::PrevSnapMode() bool SnapDisplay::NextSnapMode() { - if( m_NoteType == NUM_NOTE_TYPES-1 ) + if( m_NoteType == NOTE_TYPE_16TH ) // this is the smallest snap we should allow return false; m_NoteType = NoteType(m_NoteType+1); @@ -73,6 +73,7 @@ void SnapDisplay::SnapModeChanged() for( int i=0; i<2; i++ ) { + m_sprIndicators[i].StopTweening(); m_sprIndicators[i].BeginTweening( 0.3f ); m_sprIndicators[i].SetTweenDiffuse( color ); } diff --git a/stepmania/src/Song.cpp b/stepmania/src/Song.cpp index 5abf446187..52ecf904f3 100644 --- a/stepmania/src/Song.cpp +++ b/stepmania/src/Song.cpp @@ -637,7 +637,7 @@ void Song::SaveToCacheFile() SaveToSMFile( GetCacheFilePath(), true ); } -void Song::SaveToSongFile() +void Song::Save() { LOG->Trace( "Song::SaveToSongFile()" ); @@ -657,6 +657,7 @@ void Song::SaveToSongFile() } SaveToSMFile( GetSongFilePath(), false ); + SaveToDWIFile(); } @@ -744,12 +745,10 @@ void Song::SaveToSMFile( CString sPath, bool bSavingCache ) fclose( fp ); } -void Song::SaveToSongFileAndDWI() +void Song::SaveToDWIFile() { LOG->Trace( "Song::SaveToSongFileAndDWI()" ); - SaveToSongFile(); - CString sPath = GetSongFilePath(); sPath.Replace( ".sm", ".dwi" ); diff --git a/stepmania/src/StepMania.dsp b/stepmania/src/StepMania.dsp index 583aa2801c..20b105ca22 100644 --- a/stepmania/src/StepMania.dsp +++ b/stepmania/src/StepMania.dsp @@ -59,7 +59,7 @@ IntDir=.\../Release6 TargetDir=\stepmania\stepmania TargetName=StepMania SOURCE="$(InputPath)" -PreLink_Cmds=disasm\verinc cl /Zl /nologo /c verstub.cpp /Fo$(IntDir)\ +PreLink_Cmds=disasm\verinc cl /Zl /nologo /c verstub.cpp /Fo$(IntDir)\ PostBuild_Cmds=disasm\mapconv $(IntDir)\$(TargetName).map $(TargetDir)\StepMania.vdi ia32.vdi # End Special Build Tool @@ -94,7 +94,7 @@ IntDir=.\../Debug6 TargetDir=\stepmania\stepmania TargetName=StepMania-debug SOURCE="$(InputPath)" -PreLink_Cmds=disasm\verinc cl /Zl /nologo /c verstub.cpp /Fo$(IntDir)\ +PreLink_Cmds=disasm\verinc cl /Zl /nologo /c verstub.cpp /Fo$(IntDir)\ PostBuild_Cmds=disasm\mapconv $(IntDir)\$(TargetName).map $(TargetDir)\StepMania.vdi ia32.vdi # End Special Build Tool diff --git a/stepmania/src/song.h b/stepmania/src/song.h index 96a7b24cfd..3d39c1fb35 100644 --- a/stepmania/src/song.h +++ b/stepmania/src/song.h @@ -62,9 +62,9 @@ public: void TidyUpData(); // call after loading to clean up invalid data void SaveToSMFile( CString sPath, bool bSavingCache ); - void SaveToSongFileAndDWI(); // saves SM, then saves DWI so that the SM is the master copy and NoteTypes not supported by DWI are not lost + void Save(); // saves SM and DWI void SaveToCacheFile(); - void SaveToSongFile(); // no path means save to SongFilePath + void SaveToDWIFile(); const CString &GetSongFilePath() const; CString GetCacheFilePath() const;