From 89be4f4324fb75687aea148d3be73c38a1f5d9d7 Mon Sep 17 00:00:00 2001 From: Chris Danford Date: Sat, 30 Apr 2005 07:48:41 +0000 Subject: [PATCH] play Push and Lift commands on the receptor actors --- stepmania/src/ReceptorArrow.cpp | 29 +++++++++++++++++++++++++---- stepmania/src/ReceptorArrow.h | 1 + stepmania/src/ReceptorArrowRow.cpp | 2 +- 3 files changed, 27 insertions(+), 5 deletions(-) diff --git a/stepmania/src/ReceptorArrow.cpp b/stepmania/src/ReceptorArrow.cpp index 285486ec9e..09d99cfbcb 100644 --- a/stepmania/src/ReceptorArrow.cpp +++ b/stepmania/src/ReceptorArrow.cpp @@ -10,10 +10,14 @@ #include "Game.h" #include "PlayerState.h" +// eventually, these will replace the pressblocks +const CString PRESS_COMMAND_NAME = "Press"; +const CString LIFT_COMMAND_NAME = "Lift"; ReceptorArrow::ReceptorArrow() { m_bIsPressed = false; + m_bWasPressed = false; StopAnimating(); } @@ -54,14 +58,28 @@ void ReceptorArrow::Update( float fDeltaTime ) // update pressblock alignment based on scroll direction bool bReverse = m_pPlayerState->m_PlayerOptions.GetReversePercentForColumn(m_iColNo) > 0.5; m_pPressBlock->SetVertAlign( bReverse ? Actor::align_bottom : Actor::align_top ); + + + m_pReceptorGo->SetHidden( !GAMESTATE->m_bPastHereWeGo ); + m_pReceptorWaiting->SetHidden( GAMESTATE->m_bPastHereWeGo ); + + + m_pPressBlock->SetHidden( !m_bIsPressed ); + + + if( m_bWasPressed && !m_bIsPressed ) + { + m_pReceptorGo->PlayCommand( LIFT_COMMAND_NAME ); + m_pReceptorWaiting->PlayCommand( LIFT_COMMAND_NAME ); + } + + + m_bWasPressed = m_bIsPressed; + m_bIsPressed = false; // it may get turned back on next update } void ReceptorArrow::DrawPrimitives() { - m_pReceptorGo->SetHidden( !GAMESTATE->m_bPastHereWeGo ); - m_pReceptorWaiting->SetHidden( GAMESTATE->m_bPastHereWeGo ); - m_pPressBlock->SetHidden( !m_bIsPressed ); - m_bIsPressed = false; // it may get turned back on next update ActorFrame::DrawPrimitives(); } @@ -72,6 +90,9 @@ void ReceptorArrow::Step( TapNoteScore score ) m_pReceptorWaiting->FinishTweening(); m_pReceptorGo->RunCommands( *m_sScoreCommand[score] ); m_pReceptorWaiting->RunCommands( *m_sScoreCommand[score] ); + + m_pReceptorGo->PlayCommand( PRESS_COMMAND_NAME ); + m_pReceptorWaiting->PlayCommand( PRESS_COMMAND_NAME ); } /* diff --git a/stepmania/src/ReceptorArrow.h b/stepmania/src/ReceptorArrow.h index 964c664d4a..1a0cab5e5d 100644 --- a/stepmania/src/ReceptorArrow.h +++ b/stepmania/src/ReceptorArrow.h @@ -31,6 +31,7 @@ private: AutoActor m_pPressBlock; bool m_bIsPressed; + bool m_bWasPressed; // set in Update }; #endif diff --git a/stepmania/src/ReceptorArrowRow.cpp b/stepmania/src/ReceptorArrowRow.cpp index 7ef9c34843..a025ec10ae 100644 --- a/stepmania/src/ReceptorArrowRow.cpp +++ b/stepmania/src/ReceptorArrowRow.cpp @@ -37,7 +37,7 @@ void ReceptorArrowRow::Update( float fDeltaTime ) for( int c=0; cm_CurrentPlayerOptions.m_fDark) ); + m_ReceptorArrow[c].SetBaseAlpha( 1 - m_pPlayerState->m_CurrentPlayerOptions.m_fDark ); // set arrow XYZ const float fX = ArrowEffects::GetXPos( m_pPlayerState, c, 0 );