diff --git a/stepmania/Themes/default/metrics.ini b/stepmania/Themes/default/metrics.ini index 7ea5fe177f..fc8084061a 100644 --- a/stepmania/Themes/default/metrics.ini +++ b/stepmania/Themes/default/metrics.ini @@ -819,6 +819,7 @@ StyleIcon=1 NextScreen=ScreenGameplay [ScreenGameplay] +PressBlockY=10 StaticBGY=240 StaticBGX=320 PrevScreenArcade=ScreenSelectMusic diff --git a/stepmania/src/GrayArrow.cpp b/stepmania/src/GrayArrow.cpp index 56a1dddd4f..59e5ee7952 100644 --- a/stepmania/src/GrayArrow.cpp +++ b/stepmania/src/GrayArrow.cpp @@ -29,7 +29,7 @@ GrayArrow::GrayArrow() { GR_STEP_SECONDS.Refresh(); GR_STEP_ZOOM.Refresh(); - + m_bIsPressed = false; StopAnimating(); } @@ -47,7 +47,10 @@ bool GrayArrow::Load( CString NoteSkin, PlayerNumber pn, int iColNo ) GetNumStates() != 3 ) RageException::Throw( "'%s' must have 2 or 3 frames", sPath.c_str() ); - return ret; + sPath = NOTESKIN->GetPathTo( NoteSkin, Button, "KeypressBlock" ); + bool ret2 = m_sprPressBlock.Load( sPath ); + m_sprPressBlock.SetXY(0, THEME->GetMetricI ("ScreenGameplay","PressBlockY")); + return ret&ret2; // return both loaded or fail } void GrayArrow::Update( float fDeltaTime ) @@ -85,6 +88,17 @@ void GrayArrow::Update( float fDeltaTime ) cur_beat -= flash_offset; float fPercentIntoBeat = fmodf(cur_beat, 1); SetState( (fPercentIntoBeat= 0 && iCol < m_iNumCols ); + m_GrayArrow[iCol].UpdateBars(); +} + void NoteFieldPlus::TapNote( int iCol, TapNoteScore score, bool bBright ) { ASSERT( iCol >= 0 && iCol < m_iNumCols ); diff --git a/stepmania/src/NoteFieldPlus.h b/stepmania/src/NoteFieldPlus.h index 270c93cd6d..d16e651fa1 100644 --- a/stepmania/src/NoteFieldPlus.h +++ b/stepmania/src/NoteFieldPlus.h @@ -31,7 +31,8 @@ public: void TapNote( int iCol, TapNoteScore score, bool bBright ); void TapMine( int iCol, TapNoteScore score ); void HoldNote( int iCol ); - + void UpdateBars( int iCol ); + int GetNumCols() { return m_iNumCols; }; protected: int m_iNumCols; diff --git a/stepmania/src/Player.cpp b/stepmania/src/Player.cpp index c6116ac24d..ea728381f5 100644 --- a/stepmania/src/Player.cpp +++ b/stepmania/src/Player.cpp @@ -230,6 +230,15 @@ void PlayerMinus::Update( float fDeltaTime ) // UpdateTapNotesMissedOlderThan( GetMaxStepDistanceSeconds() ); + for(int bar=0; bar < m_pNoteField->GetNumCols(); bar++) + { + const StyleInput StyleI( m_PlayerNumber, bar ); + const GameInput GameI = GAMESTATE->GetCurrentStyleDef()->StyleInputToGameInput( StyleI ); + bool bIsHoldingButton = INPUTMAPPER->IsButtonDown( GameI ); + if(bIsHoldingButton) + m_pNoteField->UpdateBars(bar); + } + // // update HoldNotes logic // @@ -651,6 +660,7 @@ void PlayerMinus::Step( int col, RageTimer tm ) if( bGrayArrowStep ) m_pNoteField->Step( col ); + } void PlayerMinus::HandleAutosync(float fNoteOffset)