diff --git a/stepmania/Themes/default/metrics.ini b/stepmania/Themes/default/metrics.ini index d691f08096..4c63527344 100644 --- a/stepmania/Themes/default/metrics.ini +++ b/stepmania/Themes/default/metrics.ini @@ -546,7 +546,6 @@ TimerSeconds=60 NextScreen=ScreenGameplay [ScreenGameplay] -SongSelectScreen=ScreenSelectMusic PrevScreenArcade=ScreenSelectMusic PrevScreenNonstop=ScreenSelectCourse PrevScreenOni=ScreenSelectCourse @@ -636,7 +635,7 @@ ScoreP1OffCommand=linear,1;addy,100 ScoreP1ExtraX=106 ScoreP1ExtraY=38 ScoreP1ExtraOnCommand=addy,-100;sleep,0.5;linear,1;addy,100 -ScoreP1ExtraOffCommand=linear,1;addy,100 +ScoreP1ExtraOffCommand=linear,1;addy,-100 ScoreP2X=534 ScoreP2Y=444 ScoreP2OnCommand=addy,100;sleep,0.5;linear,1;addy,-100 @@ -1779,6 +1778,12 @@ HelpText=&UP; &DOWN; to change line &LEFT; &RIGHT; to select between options:: Game=Change the current game type with this option. [ScreenPlayerOptions] +PrevScreenArcade=ScreenSelectMusic +PrevScreenNonstop=ScreenSelectCourse +PrevScreenOni=ScreenSelectCourse +PrevScreenEndless=ScreenSelectCourse +PrevScreenBattle=ScreenSelectMusic +PrevScreenRave=ScreenSelectMusic HelpText=&UP; &DOWN; to change line &LEFT; &RIGHT; to select between options START to accept changes TimerSeconds=30 diff --git a/stepmania/src/ArrowEffects.cpp b/stepmania/src/ArrowEffects.cpp index b1e540ffb8..e506a20c1d 100644 --- a/stepmania/src/ArrowEffects.cpp +++ b/stepmania/src/ArrowEffects.cpp @@ -18,6 +18,7 @@ #include "RageException.h" #include "RageTimer.h" #include "NoteDisplay.h" +#include "Song.h" #include @@ -26,9 +27,22 @@ float g_fExpandSeconds = 0; float ArrowGetYOffset( PlayerNumber pn, float fNoteBeat ) { - float fSongBeat = GAMESTATE->m_fSongBeat; - float fBeatsUntilStep = fNoteBeat - fSongBeat; - float fYOffset = fBeatsUntilStep * ARROW_GAP; + float fYOffset; + if( GAMESTATE->m_PlayerOptions->m_bTimeSpacing ) + { + float fSongBeat = GAMESTATE->m_fSongBeat; + float fBeatsUntilStep = fNoteBeat - fSongBeat; + fYOffset = fBeatsUntilStep * ARROW_SPACING; + } + else + { + float fSongSeconds = GAMESTATE->m_fMusicSeconds; + float fNoteSeconds = GAMESTATE->m_pCurSong->GetElapsedTimeFromBeat(fNoteBeat); + float fSecondsUntilStep = fNoteSeconds - fSongSeconds; + float fBPM = GAMESTATE->m_pCurSong->GetDominantBPM(); + float fBPS = fBPM/60.f; + fYOffset = fSecondsUntilStep * fBPS * ARROW_SPACING; + } // don't mess with the arrows after they've crossed 0 if( fYOffset < 0 ) @@ -110,7 +124,8 @@ float ArrowGetRotation( PlayerNumber pn, float fNoteBeat ) float ArrowGetYPosWithoutReverse( PlayerNumber pn, float fYOffset ) { - return fYOffset * GAMESTATE->m_CurrentPlayerOptions[pn].m_fScrollSpeed; + float fYPos = fYOffset * GAMESTATE->m_CurrentPlayerOptions[pn].m_fScrollSpeed; + return fYPos; } float ArrowGetYPos( PlayerNumber pn, float fYOffset )