From fe3304d5775f56c29afbbc3ad8ceb14a0b5d615b Mon Sep 17 00:00:00 2001 From: Chris Danford Date: Sun, 1 Feb 2004 05:03:45 +0000 Subject: [PATCH] revert some bad changes --- stepmania/src/Actor.cpp | 15 +++++++++------ stepmania/src/ActorFrame.cpp | 9 +++++++-- stepmania/src/ScreenSelectMaster.cpp | 22 +++++++++++++++++----- stepmania/src/ScreenSelectMaster.h | 6 +++--- 4 files changed, 36 insertions(+), 16 deletions(-) diff --git a/stepmania/src/Actor.cpp b/stepmania/src/Actor.cpp index e7ac3a1eb6..064db975d1 100644 --- a/stepmania/src/Actor.cpp +++ b/stepmania/src/Actor.cpp @@ -816,12 +816,15 @@ void Actor::HandleCommand( const ParsedCommand &command ) else if( sName=="clearzbuffer" ) SetClearZBuffer( bParam(1) ); else if( sName=="hidden" ) SetHidden( bParam(1) ); else if( sName=="playcommand" ) PlayCommand( sParam(1) ); - // Commands to Sprite should have been handled by Sprite and shouldn't be - // passed to Actor. -Chris -// else if( sName=="customtexturerect" || sName=="texcoordvelocity" || sName=="scaletoclipped" || -// sName=="stretchtexcoords" || sName=="position" || sName=="loop" || sName=="play" || -// sName=="pause" || sName=="rate" ) -// return; /* sprite commands; don't run CheckHandledParams */ + + /* These are commands intended for a Sprite commands, but they will get + * sent to all sub-actors (which aren't necessarily Sprites) on + * GainingFocus and LosingFocus. So, don't run CheckHandledParams + * on these commands. */ + else if( sName=="customtexturerect" || sName=="texcoordvelocity" || sName=="scaletoclipped" || + sName=="stretchtexcoords" || sName=="position" || sName=="loop" || sName=="play" || + sName=="pause" || sName=="rate" ) + return; else { CString sError = ssprintf( "Actor::HandleCommand: Unrecognized command name '%s'.", sName.c_str() ); diff --git a/stepmania/src/ActorFrame.cpp b/stepmania/src/ActorFrame.cpp index c577d30d0b..da6e65f7a4 100644 --- a/stepmania/src/ActorFrame.cpp +++ b/stepmania/src/ActorFrame.cpp @@ -148,24 +148,29 @@ void ActorFrame::DeleteAllChildren() void ActorFrame::HandleCommand( const ParsedCommand &command ) { Actor::HandleCommand( command ); + // don't propograte to children } void ActorFrame::GainingFocus( float fRate, bool bRewindMovie, bool bLoop ) { + Actor::GainingFocus( fRate, bRewindMovie, bLoop ); + for( unsigned i=0; iGainingFocus( fRate, bRewindMovie, bLoop ); - - SetDiffuse( RageColor(1,1,1,1) ); } void ActorFrame::LosingFocus() { + Actor::LosingFocus(); + for( unsigned i=0; iLosingFocus(); } void ActorFrame::PlayCommand( const CString &sCommandName ) { + Actor::PlayCommand( sCommandName ); + for( unsigned i=0; iPlayCommand( sCommandName ); } diff --git a/stepmania/src/ScreenSelectMaster.cpp b/stepmania/src/ScreenSelectMaster.cpp index fb60e21d51..77aa2e0f5e 100644 --- a/stepmania/src/ScreenSelectMaster.cpp +++ b/stepmania/src/ScreenSelectMaster.cpp @@ -240,6 +240,7 @@ ScreenSelectMaster::ScreenSelectMaster( CString sClassName ) : ScreenSelect( sCl this->UpdateSelectableChoices(); + TweenOnScreen(); m_fLockInputSecs = this->GetTweenTimeLeft(); } @@ -543,17 +544,27 @@ ScreenSelectMaster::Page ScreenSelectMaster::GetCurrentPage() const } -void ScreenSelectMaster::DoMenuStart( PlayerNumber pn ) +float ScreenSelectMaster::DoMenuStart( PlayerNumber pn ) { if( m_bChosen[pn] == true ) - return; + return 0; m_bChosen[pn] = true; + float fSecs = 0; + for( int page=0; pagePlayOnceFromDir( ANNOUNCER->GetPathTo(ssprintf("%s comment %s",m_sName.c_str(), m_aModeChoices[m_iChoice[pn]].m_sName.c_str())) ); m_soundSelect.Play(); + float fSecs = 0; bool bAllDone = true; if( SHARED_PREVIEW_AND_CURSOR || GetCurrentPage() == PAGE_2 ) { @@ -574,12 +586,12 @@ void ScreenSelectMaster::MenuStart( PlayerNumber pn ) if( GAMESTATE->IsHumanPlayer(p) ) { ASSERT( !m_bChosen[p] ); - DoMenuStart( (PlayerNumber)p ); + fSecs = max( fSecs, DoMenuStart( (PlayerNumber)p ) ); } } else { - DoMenuStart(pn); + fSecs = max( fSecs, DoMenuStart(pn) ); // check to see if everyone has chosen for( int p=0; pIsHumanPlayer((PlayerNumber)p) ) @@ -587,7 +599,7 @@ void ScreenSelectMaster::MenuStart( PlayerNumber pn ) } if( bAllDone ) - this->PostScreenMessage( SM_BeginFadingOut, GetTweenTimeLeft() );// tell our owner it's time to move on + this->PostScreenMessage( SM_BeginFadingOut, fSecs );// tell our owner it's time to move on } /* diff --git a/stepmania/src/ScreenSelectMaster.h b/stepmania/src/ScreenSelectMaster.h index 4ebb73cbd6..67964f1bdc 100644 --- a/stepmania/src/ScreenSelectMaster.h +++ b/stepmania/src/ScreenSelectMaster.h @@ -32,8 +32,8 @@ public: virtual void MenuUp( PlayerNumber pn ); virtual void MenuDown( PlayerNumber pn ); virtual void MenuStart( PlayerNumber pn ); - void TweenOffScreen(); // return time in seconds to execute the command - void TweenOnScreen(); // return time in seconds to execute the command + void TweenOffScreen(); + void TweenOnScreen(); virtual void HandleScreenMessage( const ScreenMessage SM ); @@ -60,7 +60,7 @@ protected: bool Move( PlayerNumber pn, Dirs dir ); bool ChangePage( int iNewChoice ); bool ChangeSelection( PlayerNumber pn, int iNewChoice ); - void DoMenuStart( PlayerNumber pn ); + float DoMenuStart( PlayerNumber pn ); float GetCursorX( PlayerNumber pn, int iPartIndex ); float GetCursorY( PlayerNumber pn, int iPartIndex );