From 48a69df568dea8578579c8266347a160315d659a Mon Sep 17 00:00:00 2001 From: Chris Danford Date: Wed, 7 Mar 2007 05:03:18 +0000 Subject: [PATCH] make SM_MenuTimer close all open OptionsLists --- stepmania/src/ScreenSelectMusic.cpp | 54 ++++++++++++++--------------- stepmania/src/ScreenSelectMusic.h | 3 +- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/stepmania/src/ScreenSelectMusic.cpp b/stepmania/src/ScreenSelectMusic.cpp index 8bf10b2738..055bd2a2aa 100644 --- a/stepmania/src/ScreenSelectMusic.cpp +++ b/stepmania/src/ScreenSelectMusic.cpp @@ -331,21 +331,11 @@ void ScreenSelectMusic::Input( const InputEventPlus &input ) switch( input.MenuI ) { case GAME_BUTTON_SELECT: - { - Message msg("OptionsClosed"); - msg.SetParam( "Player", pn ); - MESSAGEMAN->Broadcast( msg ); - m_OptionsList[pn].Close(); - } + CloseOptionsList( pn ); return; case GAME_BUTTON_START: if( m_OptionsList[pn].Start() ) - { - Message msg("OptionsClosed"); - msg.SetParam( "Player", pn ); - MESSAGEMAN->Broadcast( msg ); - m_OptionsList[pn].Close(); - } + CloseOptionsList( pn ); return; case GAME_BUTTON_MENULEFT: case GAME_BUTTON_MENURIGHT: @@ -358,10 +348,7 @@ void ScreenSelectMusic::Input( const InputEventPlus &input ) { if( input.type == IET_FIRST_PRESS && input.MenuI == GAME_BUTTON_SELECT ) { - Message msg("OptionsOpened"); - msg.SetParam( "Player", pn ); - MESSAGEMAN->Broadcast( msg ); - m_OptionsList[pn].Open(); + OpenOptionsList( pn ); return; } } @@ -670,18 +657,11 @@ void ScreenSelectMusic::HandleScreenMessage( const ScreenMessage SM ) m_MenuTimer->SetSeconds( 15 ); m_MenuTimer->Start(); } - else if( DO_ROULETTE_ON_MENU_TIMER ) + else if( DO_ROULETTE_ON_MENU_TIMER && m_MusicWheel.GetSelectedSong() == NULL && m_MusicWheel.GetSelectedCourse() == NULL ) { - if( m_MusicWheel.GetSelectedSong() == NULL && m_MusicWheel.GetSelectedCourse() == NULL ) - { - m_MusicWheel.StartRoulette(); - m_MenuTimer->SetSeconds( 15 ); - m_MenuTimer->Start(); - } - else - { - MenuStart( InputEventPlus() ); - } + m_MusicWheel.StartRoulette(); + m_MenuTimer->SetSeconds( 15 ); + m_MenuTimer->Start(); } else { @@ -691,6 +671,10 @@ void ScreenSelectMusic::HandleScreenMessage( const ScreenMessage SM ) if( m_MusicWheel.GetSelectedSong() == NULL && m_MusicWheel.GetSelectedCourse() == NULL ) m_MusicWheel.StartRandom(); + FOREACH_ENUM( PlayerNumber, p ) + if( m_OptionsList[p].IsOpened() ) + CloseOptionsList(p); + MenuStart( InputEventPlus() ); } return; @@ -1165,6 +1149,22 @@ void ScreenSelectMusic::AfterMusicChange() AfterStepsOrTrailChange( vpns ); } +void ScreenSelectMusic::OpenOptionsList( PlayerNumber pn ) +{ + m_OptionsList[pn].Open(); + Message msg("OptionsOpened"); + msg.SetParam( "Player", pn ); + MESSAGEMAN->Broadcast( msg ); +} + +void ScreenSelectMusic::CloseOptionsList( PlayerNumber pn ) +{ + m_OptionsList[pn].Close(); + Message msg("OptionsClosed"); + msg.SetParam( "Player", pn ); + MESSAGEMAN->Broadcast( msg ); +} + // lua start #include "LuaBinding.h" diff --git a/stepmania/src/ScreenSelectMusic.h b/stepmania/src/ScreenSelectMusic.h index d163afef73..9bb43e45b4 100644 --- a/stepmania/src/ScreenSelectMusic.h +++ b/stepmania/src/ScreenSelectMusic.h @@ -107,7 +107,8 @@ protected: BitmapText m_textHighScore[NUM_PLAYERS]; MusicWheel m_MusicWheel; OptionsList m_OptionsList[NUM_PLAYERS]; - + void OpenOptionsList( PlayerNumber pn ); + void CloseOptionsList( PlayerNumber pn ); SelectionState m_SelectionState; bool m_bGoToOptions;