fix conflicting ScreenMessage IDs by automatically generating unique values

This commit is contained in:
Chris Danford
2005-03-23 08:48:38 +00:00
parent 659def4479
commit 880e42e1d3
46 changed files with 881 additions and 904 deletions
+9 -9
View File
@@ -34,7 +34,7 @@
#define ROW_VALUE_X( i ) THEME->GetMetricF("EditCoursesMenu",ssprintf("RowValue%dX",i+1)) #define ROW_VALUE_X( i ) THEME->GetMetricF("EditCoursesMenu",ssprintf("RowValue%dX",i+1))
#define ROW_Y( i ) THEME->GetMetricF("EditCoursesMenu",ssprintf("Row%dY",i+1)) #define ROW_Y( i ) THEME->GetMetricF("EditCoursesMenu",ssprintf("Row%dY",i+1))
const ScreenMessage SM_BackFromCourseOptionsMenu = (ScreenMessage)(SM_User+1); const AutoScreenMessage SM_BackFromCourseOptionsMenu;
enum CourseEntryMenuRow enum CourseEntryMenuRow
{ {
@@ -326,7 +326,7 @@ void EditCoursesMenu::Start()
GAMESTATE->m_pPlayerState[PLAYER_1]->m_PlayerOptions = PlayerOptions(); GAMESTATE->m_pPlayerState[PLAYER_1]->m_PlayerOptions = PlayerOptions();
GAMESTATE->m_pPlayerState[PLAYER_1]->m_PlayerOptions.FromString( pEntry->modifiers ); GAMESTATE->m_pPlayerState[PLAYER_1]->m_PlayerOptions.FromString( pEntry->modifiers );
SCREENMAN->AddNewScreenToTop( "ScreenPlayerOptions", SM_BackFromPlayerOptions ); SCREENMAN->AddNewScreenToTop( "ScreenPlayerOptions" );
break; break;
case ROW_ENTRY_SONG_OPTIONS: case ROW_ENTRY_SONG_OPTIONS:
SCREENMAN->PlayStartSound(); SCREENMAN->PlayStartSound();
@@ -334,7 +334,7 @@ void EditCoursesMenu::Start()
GAMESTATE->m_SongOptions = SongOptions(); GAMESTATE->m_SongOptions = SongOptions();
GAMESTATE->m_SongOptions.FromString( pEntry->modifiers ); GAMESTATE->m_SongOptions.FromString( pEntry->modifiers );
SCREENMAN->AddNewScreenToTop( "ScreenSongOptions", SM_BackFromSongOptions ); SCREENMAN->AddNewScreenToTop( "ScreenSongOptions" );
break; break;
default: default:
SCREENMAN->PlayInvalidSound(); SCREENMAN->PlayInvalidSound();
@@ -348,9 +348,8 @@ void EditCoursesMenu::HandleScreenMessage( const ScreenMessage SM )
Course* pCourse = GetSelectedCourse(); Course* pCourse = GetSelectedCourse();
CourseEntry* pEntry = GetSelectedEntry(); CourseEntry* pEntry = GetSelectedEntry();
switch( SM ) if( SM == SM_BackFromCourseOptionsMenu )
{ {
case SM_BackFromCourseOptionsMenu:
pCourse->m_bRepeat = !!ScreenMiniMenu::s_viLastAnswers[repeat]; pCourse->m_bRepeat = !!ScreenMiniMenu::s_viLastAnswers[repeat];
pCourse->m_bRandomize = !!ScreenMiniMenu::s_viLastAnswers[randomize]; pCourse->m_bRandomize = !!ScreenMiniMenu::s_viLastAnswers[randomize];
pCourse->m_iLives = ScreenMiniMenu::s_viLastAnswers[lives]; pCourse->m_iLives = ScreenMiniMenu::s_viLastAnswers[lives];
@@ -358,13 +357,14 @@ void EditCoursesMenu::HandleScreenMessage( const ScreenMessage SM )
pCourse->m_iLives = -1; pCourse->m_iLives = -1;
OnRowValueChanged( ROW_COURSE_OPTIONS ); OnRowValueChanged( ROW_COURSE_OPTIONS );
break; }
case SM_BackFromPlayerOptions: else if(
case SM_BackFromSongOptions: SM == SM_BackFromPlayerOptions ||
SM == SM_BackFromSongOptions )
{
// coming back from PlayerOptions or SongOptions // coming back from PlayerOptions or SongOptions
pEntry->modifiers = GAMESTATE->m_pPlayerState[PLAYER_1]->m_PlayerOptions.GetString() + "," + GAMESTATE->m_SongOptions.GetString(); pEntry->modifiers = GAMESTATE->m_pPlayerState[PLAYER_1]->m_PlayerOptions.GetString() + "," + GAMESTATE->m_SongOptions.GetString();
OnRowValueChanged( ROW_ENTRY_PLAYER_OPTIONS ); OnRowValueChanged( ROW_ENTRY_PLAYER_OPTIONS );
break;
} }
} }
-57
View File
@@ -1,57 +0,0 @@
#ifndef GameplayMessages_H
#define GameplayMessages_H
#include "ScreenMessage.h"
// messages sent by Combo
const ScreenMessage SM_PlayToasty = ScreenMessage(SM_User+104);
const ScreenMessage SM_100Combo = ScreenMessage(SM_User+200);
const ScreenMessage SM_200Combo = ScreenMessage(SM_User+201);
const ScreenMessage SM_300Combo = ScreenMessage(SM_User+202);
const ScreenMessage SM_400Combo = ScreenMessage(SM_User+203);
const ScreenMessage SM_500Combo = ScreenMessage(SM_User+204);
const ScreenMessage SM_600Combo = ScreenMessage(SM_User+205);
const ScreenMessage SM_700Combo = ScreenMessage(SM_User+206);
const ScreenMessage SM_800Combo = ScreenMessage(SM_User+207);
const ScreenMessage SM_900Combo = ScreenMessage(SM_User+208);
const ScreenMessage SM_1000Combo = ScreenMessage(SM_User+209);
const ScreenMessage SM_ComboStopped = ScreenMessage(SM_User+210);
const ScreenMessage SM_ComboContinuing = ScreenMessage(SM_User+211);
const ScreenMessage SM_MissComboAborted = ScreenMessage(SM_User+212);
const ScreenMessage SM_BattleTrickLevel1 = ScreenMessage(SM_User+301);
const ScreenMessage SM_BattleTrickLevel2 = ScreenMessage(SM_User+302);
const ScreenMessage SM_BattleTrickLevel3 = ScreenMessage(SM_User+303);
const ScreenMessage SM_BattleDamageLevel1 = ScreenMessage(SM_User+304);
const ScreenMessage SM_BattleDamageLevel2 = ScreenMessage(SM_User+305);
const ScreenMessage SM_BattleDamageLevel3 = ScreenMessage(SM_User+306);
#endif
/*
* (c) 2001-2002 Chris Danford
* All rights reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the
* "Software"), to deal in the Software without restriction, including
* without limitation the rights to use, copy, modify, merge, publish,
* distribute, and/or sell copies of the Software, and to permit persons to
* whom the Software is furnished to do so, provided that the above
* copyright notice(s) and this permission notice appear in all copies of
* the Software and that both the above copyright notice(s) and this
* permission notice appear in supporting documentation.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF
* THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS
* INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT
* OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
* OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
* OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
-1
View File
@@ -7,7 +7,6 @@
#include "PrefsManager.h" #include "PrefsManager.h"
#include "song.h" #include "song.h"
#include "ScreenManager.h" #include "ScreenManager.h"
#include "GameplayMessages.h"
#include "StatsManager.h" #include "StatsManager.h"
#include "ThemeMetric.h" #include "ThemeMetric.h"
#include "PlayerState.h" #include "PlayerState.h"
+1 -1
View File
@@ -36,7 +36,7 @@ ScreenGameplay.cpp ScreenGameplay.h ScreenHowToPlay.cpp ScreenHowToPlay.h \
ScreenInstructions.cpp ScreenInstructions.h \ ScreenInstructions.cpp ScreenInstructions.h \
ScreenJukebox.cpp ScreenJukebox.h \ ScreenJukebox.cpp ScreenJukebox.h \
ScreenLogo.cpp ScreenLogo.h ScreenMapControllers.cpp ScreenMapControllers.h \ ScreenLogo.cpp ScreenLogo.h ScreenMapControllers.cpp ScreenMapControllers.h \
ScreenMessage.h ScreenMiniMenu.cpp ScreenMiniMenu.h ScreenMusicScroll.cpp ScreenMusicScroll.h \ ScreenMessage.cpp ScreenMessage.h ScreenMiniMenu.cpp ScreenMiniMenu.h ScreenMusicScroll.cpp ScreenMusicScroll.h \
ScreenNameEntry.cpp ScreenNameEntry.h ScreenNameEntryTraditional.cpp ScreenNameEntryTraditional.h \ ScreenNameEntry.cpp ScreenNameEntry.h ScreenNameEntryTraditional.cpp ScreenNameEntryTraditional.h \
ScreenOptions.cpp ScreenOptions.h ScreenOptionsMaster.cpp ScreenOptionsMaster.h \ ScreenOptions.cpp ScreenOptions.h ScreenOptionsMaster.cpp ScreenOptionsMaster.h \
ScreenOptionsMasterPrefs.cpp ScreenOptionsMasterPrefs.h ScreenPackages.cpp ScreenPackages.h ScreenPlayerOptions.cpp ScreenPlayerOptions.h ScreenNetworkOptions.h \ ScreenOptionsMasterPrefs.cpp ScreenOptionsMasterPrefs.h ScreenPackages.cpp ScreenPackages.h ScreenPlayerOptions.cpp ScreenPlayerOptions.h ScreenNetworkOptions.h \
+3 -3
View File
@@ -18,9 +18,9 @@
class Course; class Course;
class Song; class Song;
const ScreenMessage SM_SongChanged = ScreenMessage(SM_User+47); // this should be unique! const AutoScreenMessage SM_SongChanged; // TODO: Replace this with a Message and MESSAGEMAN
const ScreenMessage SM_SortOrderChanging= ScreenMessage(SM_User+48); const AutoScreenMessage SM_SortOrderChanging;
const ScreenMessage SM_SortOrderChanged = ScreenMessage(SM_User+49); const AutoScreenMessage SM_SortOrderChanged;
struct CompareSongPointerArrayBySectionName; struct CompareSongPointerArrayBySectionName;
+5 -5
View File
@@ -42,11 +42,11 @@ void NetworkSyncManager::SelectUserSong() { }
#include "arch/LoadingWindow/LoadingWindow.h" #include "arch/LoadingWindow/LoadingWindow.h"
#include "PlayerState.h" #include "PlayerState.h"
const ScreenMessage SM_AddToChat = ScreenMessage(SM_User+4); const AutoScreenMessage SM_AddToChat;
const ScreenMessage SM_ChangeSong = ScreenMessage(SM_User+5); const AutoScreenMessage SM_ChangeSong;
const ScreenMessage SM_GotEval = ScreenMessage(SM_User+6); const AutoScreenMessage SM_GotEval;
const ScreenMessage SM_UsersUpdate = ScreenMessage(SM_User+7); const AutoScreenMessage SM_UsersUpdate;
const ScreenMessage SM_SMOnlinePack = ScreenMessage(SM_User+8); const AutoScreenMessage SM_SMOnlinePack;
NetworkSyncManager::NetworkSyncManager( LoadingWindow *ld ) NetworkSyncManager::NetworkSyncManager( LoadingWindow *ld )
-1
View File
@@ -32,7 +32,6 @@
#include "RageSoundManager.h" #include "RageSoundManager.h"
#include "ThemeMetric.h" #include "ThemeMetric.h"
#include "PlayerState.h" #include "PlayerState.h"
#include "GameplayMessages.h"
#include "GameSoundManager.h" #include "GameSoundManager.h"
#include "Style.h" #include "Style.h"
#include "MessageManager.h" #include "MessageManager.h"
-1
View File
@@ -5,7 +5,6 @@
#include "Steps.h" #include "Steps.h"
#include "PrefsManager.h" #include "PrefsManager.h"
#include "ScreenManager.h" #include "ScreenManager.h"
#include "GameplayMessages.h"
#include "GameState.h" #include "GameState.h"
#include "Course.h" #include "Course.h"
#include "SongManager.h" #include "SongManager.h"
+11 -11
View File
@@ -54,24 +54,24 @@ void ScreenDemonstration::Init()
void ScreenDemonstration::HandleScreenMessage( const ScreenMessage SM ) void ScreenDemonstration::HandleScreenMessage( const ScreenMessage SM )
{ {
switch( SM ) if( SM == SM_NotesEnded ||
SM == SM_BeginFadingOut )
{ {
case SM_NotesEnded:
case SM_BeginFadingOut:
if(!m_Out.IsTransitioning()) if(!m_Out.IsTransitioning())
m_Out.StartTransitioning( SM_GoToNextScreen ); m_Out.StartTransitioning( SM_GoToNextScreen );
return; return;
}
case SM_GainFocus: else if( SM == SM_GainFocus )
{
if( !GAMESTATE->IsTimeToPlayAttractSounds() ) if( !GAMESTATE->IsTimeToPlayAttractSounds() )
SOUNDMAN->SetPrefs( 0 ); // silent SOUNDMAN->SetPrefs( 0 ); // silent
break; }
else if( SM == SM_LoseFocus )
case SM_LoseFocus: {
SOUNDMAN->SetPrefs( PREFSMAN->m_fSoundVolume ); // turn volume back on SOUNDMAN->SetPrefs( PREFSMAN->m_fSoundVolume ); // turn volume back on
break; }
else if( SM == SM_GoToNextScreen )
case SM_GoToNextScreen: {
if( m_pSoundMusic ) if( m_pSoundMusic )
m_pSoundMusic->Stop(); m_pSoundMusic->Stop();
GAMESTATE->Reset(); GAMESTATE->Reset();
+68 -70
View File
@@ -47,22 +47,22 @@ const float RECORD_HOLD_SECONDS = 0.3f;
#define PLAY_RECORD_HELP_TEXT THEME->GetMetric(m_sName,"PlayRecordHelpText") #define PLAY_RECORD_HELP_TEXT THEME->GetMetric(m_sName,"PlayRecordHelpText")
const ScreenMessage SM_BackFromMainMenu = (ScreenMessage)(SM_User+1); const AutoScreenMessage SM_BackFromMainMenu;
const ScreenMessage SM_BackFromAreaMenu = (ScreenMessage)(SM_User+2); const AutoScreenMessage SM_BackFromAreaMenu;
const ScreenMessage SM_BackFromStepsInformation = (ScreenMessage)(SM_User+3); const AutoScreenMessage SM_BackFromStepsInformation;
const ScreenMessage SM_BackFromEditOptions = (ScreenMessage)(SM_User+4); const AutoScreenMessage SM_BackFromEditOptions;
const ScreenMessage SM_BackFromSongInformation = (ScreenMessage)(SM_User+5); const AutoScreenMessage SM_BackFromSongInformation;
const ScreenMessage SM_BackFromBGChange = (ScreenMessage)(SM_User+6); const AutoScreenMessage SM_BackFromBGChange;
const ScreenMessage SM_BackFromInsertAttack = (ScreenMessage)(SM_User+9); const AutoScreenMessage SM_BackFromInsertAttack;
const ScreenMessage SM_BackFromInsertAttackModifiers= (ScreenMessage)(SM_User+10); const AutoScreenMessage SM_BackFromInsertAttackModifiers;
const ScreenMessage SM_BackFromPrefs = (ScreenMessage)(SM_User+11); const AutoScreenMessage SM_BackFromPrefs;
const ScreenMessage SM_BackFromCourseModeMenu = (ScreenMessage)(SM_User+12); const AutoScreenMessage SM_BackFromCourseModeMenu;
const ScreenMessage SM_DoRevertToLastSave = (ScreenMessage)(SM_User+13); const AutoScreenMessage SM_DoRevertToLastSave;
const ScreenMessage SM_DoUpdateTextInfo = (ScreenMessage)(SM_User+14); const AutoScreenMessage SM_DoUpdateTextInfo;
const ScreenMessage SM_BackFromBPMChange = (ScreenMessage)(SM_User+15); const AutoScreenMessage SM_BackFromBPMChange;
const ScreenMessage SM_BackFromStopChange = (ScreenMessage)(SM_User+16); const AutoScreenMessage SM_BackFromStopChange;
const ScreenMessage SM_DoSaveAndExit = (ScreenMessage)(SM_User+17); const AutoScreenMessage SM_DoSaveAndExit;
const ScreenMessage SM_DoExit = (ScreenMessage)(SM_User+18); const AutoScreenMessage SM_DoExit;
const CString INPUT_TIPS_TEXT = const CString INPUT_TIPS_TEXT =
#if !defined(XBOX) #if !defined(XBOX)
@@ -1455,46 +1455,49 @@ void ScreenEdit::TransitionEditMode( EditMode em )
void ScreenEdit::HandleScreenMessage( const ScreenMessage SM ) void ScreenEdit::HandleScreenMessage( const ScreenMessage SM )
{ {
switch( SM ) if( SM == SM_GoToNextScreen )
{ {
case SM_GoToNextScreen:
SCREENMAN->SetNewScreen( PREV_SCREEN ); SCREENMAN->SetNewScreen( PREV_SCREEN );
GAMESTATE->m_bEditing = false; GAMESTATE->m_bEditing = false;
break; }
case SM_BackFromMainMenu: else if( SM == SM_BackFromMainMenu )
{
HandleMainMenuChoice( (MainMenuChoice)ScreenMiniMenu::s_iLastRowCode, ScreenMiniMenu::s_viLastAnswers ); HandleMainMenuChoice( (MainMenuChoice)ScreenMiniMenu::s_iLastRowCode, ScreenMiniMenu::s_viLastAnswers );
break; }
case SM_BackFromAreaMenu: else if( SM == SM_BackFromAreaMenu )
{
HandleAreaMenuChoice( (AreaMenuChoice)ScreenMiniMenu::s_iLastRowCode, ScreenMiniMenu::s_viLastAnswers ); HandleAreaMenuChoice( (AreaMenuChoice)ScreenMiniMenu::s_iLastRowCode, ScreenMiniMenu::s_viLastAnswers );
break; }
case SM_BackFromStepsInformation: else if( SM == SM_BackFromStepsInformation )
{
HandleStepsInformationChoice( (StepsInformationChoice)ScreenMiniMenu::s_iLastRowCode, ScreenMiniMenu::s_viLastAnswers ); HandleStepsInformationChoice( (StepsInformationChoice)ScreenMiniMenu::s_iLastRowCode, ScreenMiniMenu::s_viLastAnswers );
break; }
case SM_BackFromSongInformation: else if( SM == SM_BackFromSongInformation )
{
HandleSongInformationChoice( (SongInformationChoice)ScreenMiniMenu::s_iLastRowCode, ScreenMiniMenu::s_viLastAnswers ); HandleSongInformationChoice( (SongInformationChoice)ScreenMiniMenu::s_iLastRowCode, ScreenMiniMenu::s_viLastAnswers );
break; }
case SM_BackFromBPMChange: else if( SM == SM_BackFromBPMChange )
{ {
float fBPM = strtof( ScreenTextEntry::s_sLastAnswer, NULL ); float fBPM = strtof( ScreenTextEntry::s_sLastAnswer, NULL );
if( fBPM > 0 ) if( fBPM > 0 )
m_pSong->SetBPMAtBeat( GAMESTATE->m_fSongBeat, fBPM ); m_pSong->SetBPMAtBeat( GAMESTATE->m_fSongBeat, fBPM );
} }
break; else if( SM == SM_BackFromStopChange )
case SM_BackFromStopChange:
{ {
float fStop = strtof( ScreenTextEntry::s_sLastAnswer, NULL ); float fStop = strtof( ScreenTextEntry::s_sLastAnswer, NULL );
if( fStop >= 0 ) if( fStop >= 0 )
m_pSong->m_Timing.SetStopAtBeat( GAMESTATE->m_fSongBeat, fStop ); m_pSong->m_Timing.SetStopAtBeat( GAMESTATE->m_fSongBeat, fStop );
} }
break; else if( SM == SM_BackFromBGChange )
case SM_BackFromBGChange: {
HandleBGChangeChoice( (BGChangeChoice)ScreenMiniMenu::s_iLastRowCode, ScreenMiniMenu::s_viLastAnswers ); HandleBGChangeChoice( (BGChangeChoice)ScreenMiniMenu::s_iLastRowCode, ScreenMiniMenu::s_viLastAnswers );
break; }
case SM_BackFromPrefs: else if( SM == SM_BackFromPrefs )
{
PREFSMAN->m_bEditorShowBGChangesPlay = !!ScreenMiniMenu::s_viLastAnswers[pref_show_bgs_play]; PREFSMAN->m_bEditorShowBGChangesPlay = !!ScreenMiniMenu::s_viLastAnswers[pref_show_bgs_play];
PREFSMAN->SaveGlobalPrefsToDisk(); PREFSMAN->SaveGlobalPrefsToDisk();
break; }
case SM_BackFromCourseModeMenu: else if( SM == SM_BackFromCourseModeMenu )
{ {
const int num = ScreenMiniMenu::s_viLastAnswers[0]; const int num = ScreenMiniMenu::s_viLastAnswers[0];
m_pAttacksFromCourse = NULL; m_pAttacksFromCourse = NULL;
@@ -1504,18 +1507,18 @@ void ScreenEdit::HandleScreenMessage( const ScreenMessage SM )
m_pAttacksFromCourse = SONGMAN->FindCourse( name ); m_pAttacksFromCourse = SONGMAN->FindCourse( name );
ASSERT( m_pAttacksFromCourse ); ASSERT( m_pAttacksFromCourse );
} }
break;
} }
case SM_BackFromPlayerOptions: else if(
case SM_BackFromSongOptions: SM == SM_BackFromPlayerOptions ||
SM == SM_BackFromSongOptions )
{
// coming back from PlayerOptions or SongOptions // coming back from PlayerOptions or SongOptions
GAMESTATE->StoreSelectedOptions(); GAMESTATE->StoreSelectedOptions();
// stop any music that screen may have been playing // stop any music that screen may have been playing
SOUND->StopMusic(); SOUND->StopMusic();
}
break; else if( SM == SM_BackFromInsertAttack )
case SM_BackFromInsertAttack:
{ {
int iDurationChoice = ScreenMiniMenu::s_viLastAnswers[0]; int iDurationChoice = ScreenMiniMenu::s_viLastAnswers[0];
g_fLastInsertAttackDurationSeconds = strtof( g_InsertAttack.rows[0].choices[iDurationChoice], NULL ); g_fLastInsertAttackDurationSeconds = strtof( g_InsertAttack.rows[0].choices[iDurationChoice], NULL );
@@ -1524,8 +1527,7 @@ void ScreenEdit::HandleScreenMessage( const ScreenMessage SM )
// XXX: Fix me // XXX: Fix me
//SCREENMAN->AddNewScreenToTop( "ScreenPlayerOptions", SM_BackFromInsertAttackModifiers ); //SCREENMAN->AddNewScreenToTop( "ScreenPlayerOptions", SM_BackFromInsertAttackModifiers );
} }
break; else if( SM == SM_BackFromInsertAttackModifiers )
case SM_BackFromInsertAttackModifiers:
{ {
PlayerOptions poChosen = GAMESTATE->m_pPlayerState[PLAYER_1]->m_PlayerOptions; PlayerOptions poChosen = GAMESTATE->m_pPlayerState[PLAYER_1]->m_PlayerOptions;
CString sMods = poChosen.GetString(); CString sMods = poChosen.GetString();
@@ -1540,20 +1542,21 @@ void ScreenEdit::HandleScreenMessage( const ScreenMessage SM )
m_NoteDataEdit.SetTapNote( g_iLastInsertAttackTrack, row, tn ); m_NoteDataEdit.SetTapNote( g_iLastInsertAttackTrack, row, tn );
GAMESTATE->RestoreSelectedOptions(); // restore the edit and playback options GAMESTATE->RestoreSelectedOptions(); // restore the edit and playback options
} }
break; else if( SM == SM_DoRevertToLastSave )
case SM_DoRevertToLastSave: {
if( ScreenPrompt::s_LastAnswer == ANSWER_YES ) if( ScreenPrompt::s_LastAnswer == ANSWER_YES )
{ {
CopyFromLastSave(); CopyFromLastSave();
m_pSteps->GetNoteData( m_NoteDataEdit ); m_pSteps->GetNoteData( m_NoteDataEdit );
} }
break; }
case SM_DoUpdateTextInfo: else if( SM == SM_DoUpdateTextInfo )
{
this->PostScreenMessage( SM_DoUpdateTextInfo, 0.5f ); this->PostScreenMessage( SM_DoUpdateTextInfo, 0.5f );
UpdateTextInfo(); UpdateTextInfo();
break; }
else if( SM == SM_DoSaveAndExit ) // just asked "save before exiting? yes, no, cancel"
case SM_DoSaveAndExit: // just asked "save before exiting? yes, no, cancel" {
switch( ScreenPrompt::s_LastAnswer ) switch( ScreenPrompt::s_LastAnswer )
{ {
case ANSWER_YES: case ANSWER_YES:
@@ -1567,29 +1570,25 @@ void ScreenEdit::HandleScreenMessage( const ScreenMessage SM )
case ANSWER_CANCEL: case ANSWER_CANCEL:
break; // do nothing break; // do nothing
} }
}
break; else if( SM == SM_Success )
{
case SM_Success:
LOG->Trace( "Save successful." ); LOG->Trace( "Save successful." );
m_pSteps->SetSavedToDisk( true ); m_pSteps->SetSavedToDisk( true );
CopyToLastSave(); CopyToLastSave();
if( m_CurrentAction == save_on_exit ) if( m_CurrentAction == save_on_exit )
HandleScreenMessage( SM_DoExit ); HandleScreenMessage( SM_DoExit );
}
break; else if( SM == SM_Failure ) // save failed; stay in the editor
{
case SM_Failure: // save failed; stay in the editor
/* We committed the steps to SongManager. Revert to the last save, and /* We committed the steps to SongManager. Revert to the last save, and
* recommit the reversion to SongManager. */ * recommit the reversion to SongManager. */
LOG->Trace( "Save failed. Changes uncommitted from memory." ); LOG->Trace( "Save failed. Changes uncommitted from memory." );
CopyFromLastSave(); CopyFromLastSave();
m_pSteps->SetNoteData( m_NoteDataEdit ); m_pSteps->SetNoteData( m_NoteDataEdit );
}
break; else if( SM == SM_DoExit )
case SM_DoExit:
{ {
// IMPORTANT: CopyFromLastSave before deleteing the Steps below // IMPORTANT: CopyFromLastSave before deleteing the Steps below
CopyFromLastSave(); CopyFromLastSave();
@@ -1605,23 +1604,22 @@ void ScreenEdit::HandleScreenMessage( const ScreenMessage SM )
m_pSteps = NULL; m_pSteps = NULL;
GAMESTATE->m_pCurSteps[PLAYER_1].Set( NULL ); GAMESTATE->m_pCurSteps[PLAYER_1].Set( NULL );
} }
}
m_Out.StartTransitioning( SM_GoToNextScreen ); m_Out.StartTransitioning( SM_GoToNextScreen );
break; }
else if( SM == SM_GainFocus )
case SM_GainFocus: {
/* We do this ourself. */ /* We do this ourself. */
SOUND->HandleSongTimer( false ); SOUND->HandleSongTimer( false );
/* When another screen comes up, RageSounds takes over the sound timer. When we come /* When another screen comes up, RageSounds takes over the sound timer. When we come
* back, put the timer back to where it was. */ * back, put the timer back to where it was. */
GAMESTATE->m_fSongBeat = m_fTrailingBeat; GAMESTATE->m_fSongBeat = m_fTrailingBeat;
break; }
case SM_LoseFocus: else if( SM == SM_LoseFocus )
{
/* Snap the trailing beat, in case we lose focus while tweening. */ /* Snap the trailing beat, in case we lose focus while tweening. */
m_fTrailingBeat = GAMESTATE->m_fSongBeat; m_fTrailingBeat = GAMESTATE->m_fSongBeat;
break;
} }
} }
+1 -1
View File
@@ -16,7 +16,7 @@
#define EXPLANATION_TEXT THEME->GetMetric (m_sName,"ExplanationText") #define EXPLANATION_TEXT THEME->GetMetric (m_sName,"ExplanationText")
#define HELP_TEXT THEME->GetMetric (m_sName,"HelpText") #define HELP_TEXT THEME->GetMetric (m_sName,"HelpText")
const ScreenMessage SM_RefreshSelector = (ScreenMessage)(SM_User+1); const AutoScreenMessage SM_RefreshSelector;
REGISTER_SCREEN_CLASS( ScreenEditCoursesMenu ); REGISTER_SCREEN_CLASS( ScreenEditCoursesMenu );
ScreenEditCoursesMenu::ScreenEditCoursesMenu( CString sName ) : ScreenWithMenuElements( sName ) ScreenEditCoursesMenu::ScreenEditCoursesMenu( CString sName ) : ScreenWithMenuElements( sName )
+18 -15
View File
@@ -18,8 +18,8 @@
#define PREV_SCREEN THEME->GetMetric(m_sName,"PrevScreen") #define PREV_SCREEN THEME->GetMetric(m_sName,"PrevScreen")
#define EXPLANATION_TEXT( row ) THEME->GetMetric(m_sName,"Explanation"+EditMenuRowToString(row)) #define EXPLANATION_TEXT( row ) THEME->GetMetric(m_sName,"Explanation"+EditMenuRowToString(row))
const ScreenMessage SM_RefreshSelector = (ScreenMessage)(SM_User+1); const AutoScreenMessage SM_RefreshSelector;
const ScreenMessage SM_BackFromEditDescription = (ScreenMessage)(SM_User+2); const AutoScreenMessage SM_BackFromEditDescription;
REGISTER_SCREEN_CLASS( ScreenEditMenu ); REGISTER_SCREEN_CLASS( ScreenEditMenu );
ScreenEditMenu::ScreenEditMenu( CString sName ) : ScreenWithMenuElements( sName ) ScreenEditMenu::ScreenEditMenu( CString sName ) : ScreenWithMenuElements( sName )
@@ -74,32 +74,35 @@ void DeleteCurSteps( void* pThrowAway )
void ScreenEditMenu::HandleScreenMessage( const ScreenMessage SM ) void ScreenEditMenu::HandleScreenMessage( const ScreenMessage SM )
{ {
switch( SM ) if( SM == SM_RefreshSelector )
{ {
case SM_RefreshSelector:
m_Selector.RefreshAll(); m_Selector.RefreshAll();
RefreshNumStepsLoadedFromProfile(); RefreshNumStepsLoadedFromProfile();
break; }
case SM_GoToPrevScreen: else if( SM == SM_GoToPrevScreen )
{
SCREENMAN->SetNewScreen( PREV_SCREEN ); SCREENMAN->SetNewScreen( PREV_SCREEN );
break; }
case SM_GoToNextScreen: else if( SM == SM_GoToNextScreen )
{
SCREENMAN->SetNewScreen( "ScreenEdit" ); SCREENMAN->SetNewScreen( "ScreenEdit" );
break; }
case SM_Success: else if( SM == SM_Success )
{
LOG->Trace( "Delete successful; deleting steps from memory" ); LOG->Trace( "Delete successful; deleting steps from memory" );
DeleteCurSteps( NULL ); DeleteCurSteps( NULL );
break; }
case SM_Failure: else if( SM == SM_Failure )
{
LOG->Trace( "Delete failed; not deleting steps" ); LOG->Trace( "Delete failed; not deleting steps" );
break; }
case SM_BackFromEditDescription: else if( SM == SM_BackFromEditDescription )
{
if( !ScreenTextEntry::s_bCancelledLast ) if( !ScreenTextEntry::s_bCancelledLast )
{ {
SOUND->StopMusic(); SOUND->StopMusic();
StartTransitioning( SM_GoToNextScreen ); StartTransitioning( SM_GoToNextScreen );
} }
break;
} }
} }
+2 -2
View File
@@ -13,8 +13,8 @@
#include "Transition.h" #include "Transition.h"
// Sent to ScreenGameplay so it can keep all it's data ready for when we resume play. // Sent to ScreenGameplay so it can keep all it's data ready for when we resume play.
const ScreenMessage SM_BreakInitiated = ScreenMessage(SM_User+100); const AutoScreenMessage SM_BreakInitiated;
const ScreenMessage SM_BreakCompleted = ScreenMessage(SM_User+101); const AutoScreenMessage SM_BreakCompleted;
class ScreenEndlessBreak : public Screen class ScreenEndlessBreak : public Screen
{ {
+11 -12
View File
@@ -83,8 +83,8 @@ const char* STATS_STRING[NUM_STATS_LINES] =
static const int NUM_SHOWN_RADAR_CATEGORIES = 5; static const int NUM_SHOWN_RADAR_CATEGORIES = 5;
const ScreenMessage SM_PlayCheer = ScreenMessage(SM_User+6); const AutoScreenMessage SM_PlayCheer;
const ScreenMessage SM_AddBonus = ScreenMessage(SM_User+7); const AutoScreenMessage SM_AddBonus;
REGISTER_SCREEN_CLASS( ScreenEvaluation ); REGISTER_SCREEN_CLASS( ScreenEvaluation );
@@ -1349,12 +1349,11 @@ void ScreenEvaluation::Input( const DeviceInput& DeviceI, const InputEventType t
void ScreenEvaluation::HandleScreenMessage( const ScreenMessage SM ) void ScreenEvaluation::HandleScreenMessage( const ScreenMessage SM )
{ {
switch( SM ) if( SM == SM_MenuTimer )
{ {
case SM_MenuTimer:
EndScreen(); EndScreen();
break; }
case SM_GoToNextScreen: else if( SM == SM_GoToNextScreen )
{ {
if( GAMESTATE->GetEventMode() ) if( GAMESTATE->GetEventMode() )
{ {
@@ -1369,7 +1368,7 @@ void ScreenEvaluation::HandleScreenMessage( const ScreenMessage SM )
if( bReallyFailed ) if( bReallyFailed )
{ {
SCREENMAN->SetNewScreen( FAILED_SCREEN ); SCREENMAN->SetNewScreen( FAILED_SCREEN );
break; return;
} }
/* We passed. If we have another stage to play, go to NEXT_SCREEN. */ /* We passed. If we have another stage to play, go to NEXT_SCREEN. */
@@ -1396,12 +1395,13 @@ void ScreenEvaluation::HandleScreenMessage( const ScreenMessage SM )
if( m_sndPassFail.IsPlaying() ) if( m_sndPassFail.IsPlaying() )
m_sndPassFail.Stop(); m_sndPassFail.Stop();
break;
} }
case SM_PlayCheer: else if( SM == SM_PlayCheer )
{
SOUND->PlayOnceFromDir( ANNOUNCER->GetPathTo("evaluation cheer") ); SOUND->PlayOnceFromDir( ANNOUNCER->GetPathTo("evaluation cheer") );
break; }
case SM_AddBonus: else if( SM == SM_AddBonus )
{
FOREACH_EnabledPlayer( p ) FOREACH_EnabledPlayer( p )
{ {
if( STATSMAN->m_CurStageStats.m_player[p].iBonus == 0 ) if( STATSMAN->m_CurStageStats.m_player[p].iBonus == 0 )
@@ -1421,7 +1421,6 @@ void ScreenEvaluation::HandleScreenMessage( const ScreenMessage SM )
if( SHOW_SCORE_AREA ) if( SHOW_SCORE_AREA )
m_textScore[p].SetText( ssprintf("%*.0i", NUM_SCORE_DIGITS, STATSMAN->m_CurStageStats.m_player[p].iScore) ); m_textScore[p].SetText( ssprintf("%*.0i", NUM_SCORE_DIGITS, STATSMAN->m_CurStageStats.m_player[p].iScore) );
} }
break;
} }
} }
+9 -10
View File
@@ -64,7 +64,7 @@
const float TWEEN_TIME = 0.5f; const float TWEEN_TIME = 0.5f;
const ScreenMessage SM_NoSongs = ScreenMessage(SM_User+3); const AutoScreenMessage SM_NoSongs;
REGISTER_SCREEN_CLASS( ScreenEz2SelectMusic ); REGISTER_SCREEN_CLASS( ScreenEz2SelectMusic );
ScreenEz2SelectMusic::ScreenEz2SelectMusic( CString sName ) : ScreenWithMenuElements( sName ) ScreenEz2SelectMusic::ScreenEz2SelectMusic( CString sName ) : ScreenWithMenuElements( sName )
@@ -371,12 +371,12 @@ void ScreenEz2SelectMusic::HandleScreenMessage( const ScreenMessage SM )
{ {
Screen::HandleScreenMessage( SM ); Screen::HandleScreenMessage( SM );
switch( SM ) if( SM == SM_GoToPrevScreen )
{ {
case SM_GoToPrevScreen:
SCREENMAN->SetNewScreen( PREV_SCREEN ); SCREENMAN->SetNewScreen( PREV_SCREEN );
break; }
case SM_GoToNextScreen: else if( SM == SM_GoToNextScreen )
{
if( m_bGoToOptions ) if( m_bGoToOptions )
{ {
SCREENMAN->SetNewScreen( "ScreenPlayerOptions" ); SCREENMAN->SetNewScreen( "ScreenPlayerOptions" );
@@ -386,12 +386,11 @@ void ScreenEz2SelectMusic::HandleScreenMessage( const ScreenMessage SM )
SOUND->StopMusic(); SOUND->StopMusic();
SCREENMAN->SetNewScreen( "ScreenStage" ); SCREENMAN->SetNewScreen( "ScreenStage" );
} }
break;
case SM_NoSongs:
SCREENMAN->SetNewScreen( PREV_SCREEN );
break;
} }
else if( SM == SM_NoSongs )
{
SCREENMAN->SetNewScreen( PREV_SCREEN );
}
} }
+79 -115
View File
@@ -43,7 +43,6 @@
#include "ScreenDimensions.h" #include "ScreenDimensions.h"
#include "ThemeMetric.h" #include "ThemeMetric.h"
#include "PlayerState.h" #include "PlayerState.h"
#include "GameplayMessages.h"
#include "Style.h" #include "Style.h"
#include "LuaManager.h" #include "LuaManager.h"
#include "MemoryCardManager.h" #include "MemoryCardManager.h"
@@ -66,23 +65,24 @@ static ThemeMetric<float> SECONDS_BETWEEN_COMMENTS ("ScreenGameplay","SecondsBet
/* Global, so it's accessible from ShowSavePrompt: */ /* Global, so it's accessible from ShowSavePrompt: */
static float g_fOldOffset; // used on offset screen to calculate difference static float g_fOldOffset; // used on offset screen to calculate difference
const ScreenMessage SM_PlayReady = ScreenMessage(SM_User+0); const AutoScreenMessage SM_PlayReady;
const ScreenMessage SM_PlayGo = ScreenMessage(SM_User+1); const AutoScreenMessage SM_PlayGo;
// received while STATE_DANCING // received while STATE_DANCING
const ScreenMessage SM_LoadNextSong = ScreenMessage(SM_User+11); const AutoScreenMessage SM_NotesEnded;
const ScreenMessage SM_StartLoadingNextSong = ScreenMessage(SM_User+12); const AutoScreenMessage SM_LoadNextSong;
const AutoScreenMessage SM_StartLoadingNextSong;
// received while STATE_OUTRO // received while STATE_OUTRO
const ScreenMessage SM_SaveChangedBeforeGoingBack = ScreenMessage(SM_User+20); const AutoScreenMessage SM_SaveChangedBeforeGoingBack;
const ScreenMessage SM_GoToScreenAfterBack = ScreenMessage(SM_User+21); const AutoScreenMessage SM_GoToScreenAfterBack;
const ScreenMessage SM_BeginFailed = ScreenMessage(SM_User+30); const AutoScreenMessage SM_BeginFailed;
// received while STATE_INTRO // received while STATE_INTRO
const ScreenMessage SM_StartHereWeGo = ScreenMessage(SM_User+40); const AutoScreenMessage SM_StartHereWeGo;
const ScreenMessage SM_StopHereWeGo = ScreenMessage(SM_User+41); const AutoScreenMessage SM_StopHereWeGo;
static Preference<float> g_fNetStartOffset( Options, "NetworkStartOffset", -3.0 ); static Preference<float> g_fNetStartOffset( Options, "NetworkStartOffset", -3.0 );
@@ -2088,14 +2088,13 @@ void ScreenGameplay::StageFinished( bool bBackedOut )
void ScreenGameplay::HandleScreenMessage( const ScreenMessage SM ) void ScreenGameplay::HandleScreenMessage( const ScreenMessage SM )
{ {
CHECKPOINT_M( ssprintf("HandleScreenMessage(%i)", SM) ); CHECKPOINT_M( ssprintf("HandleScreenMessage(%i)", SM) );
switch( SM ) if( SM == SM_PlayReady )
{ {
case SM_PlayReady:
SOUND->PlayOnceFromAnnouncer( "gameplay ready" ); SOUND->PlayOnceFromAnnouncer( "gameplay ready" );
m_Ready.StartTransitioning( SM_PlayGo ); m_Ready.StartTransitioning( SM_PlayGo );
break; }
else if( SM == SM_PlayGo )
case SM_PlayGo: {
if( GAMESTATE->IsExtraStage() || GAMESTATE->IsExtraStage2() ) if( GAMESTATE->IsExtraStage() || GAMESTATE->IsExtraStage2() )
SOUND->PlayOnceFromAnnouncer( "gameplay here we go extra" ); SOUND->PlayOnceFromAnnouncer( "gameplay here we go extra" );
else if( GAMESTATE->IsFinalStage() ) else if( GAMESTATE->IsFinalStage() )
@@ -2106,10 +2105,8 @@ void ScreenGameplay::HandleScreenMessage( const ScreenMessage SM )
m_Go.StartTransitioning( SM_None ); m_Go.StartTransitioning( SM_None );
GAMESTATE->m_bPastHereWeGo = true; GAMESTATE->m_bPastHereWeGo = true;
m_DancingState = STATE_DANCING; // STATE CHANGE! Now the user is allowed to press Back m_DancingState = STATE_DANCING; // STATE CHANGE! Now the user is allowed to press Back
break; }
else if( SM == SM_NotesEnded ) // received while STATE_DANCING
// received while STATE_DANCING
case SM_NotesEnded:
{ {
/* Do this in LoadNextSong, so we don't tween off old attacks until /* Do this in LoadNextSong, so we don't tween off old attacks until
* m_NextSong finishes. */ * m_NextSong finishes. */
@@ -2141,6 +2138,7 @@ void ScreenGameplay::HandleScreenMessage( const ScreenMessage SM )
* bFailedEarlier): */ * bFailedEarlier): */
const bool bAllReallyFailed = STATSMAN->m_CurStageStats.AllFailed(); const bool bAllReallyFailed = STATSMAN->m_CurStageStats.AllFailed();
if( !bAllReallyFailed && !IsLastSong() ) if( !bAllReallyFailed && !IsLastSong() )
{ {
/* Load the next course song. First, fade out and stop the music. */ /* Load the next course song. First, fade out and stop the music. */
@@ -2149,7 +2147,6 @@ void ScreenGameplay::HandleScreenMessage( const ScreenMessage SM )
p.m_FadeLength = fFadeLengthSeconds; p.m_FadeLength = fFadeLengthSeconds;
p.m_LengthSeconds = GAMESTATE->m_fMusicSeconds + fFadeLengthSeconds; p.m_LengthSeconds = GAMESTATE->m_fMusicSeconds + fFadeLengthSeconds;
m_pSoundMusic->SetParams(p); m_pSoundMusic->SetParams(p);
SCREENMAN->PostMessageToTopScreen( SM_StartLoadingNextSong, fFadeLengthSeconds ); SCREENMAN->PostMessageToTopScreen( SM_StartLoadingNextSong, fFadeLengthSeconds );
return; return;
} }
@@ -2223,9 +2220,7 @@ void ScreenGameplay::HandleScreenMessage( const ScreenMessage SM )
SOUND->PlayOnceFromAnnouncer( "gameplay cleared" ); SOUND->PlayOnceFromAnnouncer( "gameplay cleared" );
} }
} }
else if( SM == SM_StartLoadingNextSong )
break;
case SM_StartLoadingNextSong:
{ {
m_pSoundMusic->Stop(); m_pSoundMusic->Stop();
@@ -2248,16 +2243,14 @@ void ScreenGameplay::HandleScreenMessage( const ScreenMessage SM )
GAMESTATE->m_Environment->Set( "NextSong" ); GAMESTATE->m_Environment->Set( "NextSong" );
MESSAGEMAN->Broadcast( "NextCourseSong" ); MESSAGEMAN->Broadcast( "NextCourseSong" );
GAMESTATE->m_Environment->Unset( "NextSong" ); GAMESTATE->m_Environment->Unset( "NextSong" );
m_NextSong.PlayCommand( "Start" ); m_NextSong.PlayCommand( "Start" );
m_NextSong.Reset(); m_NextSong.Reset();
m_NextSong.StartTransitioning( SM_LoadNextSong ); m_NextSong.StartTransitioning( SM_LoadNextSong );
LoadCourseSongNumber( GAMESTATE->GetCourseSongIndex()+1 ); LoadCourseSongNumber( GAMESTATE->GetCourseSongIndex()+1 );
COMMAND( m_sprCourseSongNumber, "ChangeIn" ); COMMAND( m_sprCourseSongNumber, "ChangeIn" );
} }
break; else if( SM == SM_LoadNextSong )
{
case SM_LoadNextSong:
SongFinished(); SongFinished();
COMMAND( m_sprCourseSongNumber, "ChangeOut" ); COMMAND( m_sprCourseSongNumber, "ChangeOut" );
@@ -2272,86 +2265,57 @@ void ScreenGameplay::HandleScreenMessage( const ScreenMessage SM )
/* We're fading in, so don't hit any notes for a few seconds; they'll be /* We're fading in, so don't hit any notes for a few seconds; they'll be
* obscured by the fade. */ * obscured by the fade. */
StartPlayingSong( m_NextSong.GetLengthSeconds()+2, 0 ); StartPlayingSong( m_NextSong.GetLengthSeconds()+2, 0 );
break; }
else if( SM == SM_PlayToasty )
case SM_PlayToasty: {
if( PREFSMAN->m_bEasterEggs ) if( PREFSMAN->m_bEasterEggs )
if( !m_Toasty.IsTransitioning() && !m_Toasty.IsFinished() ) // don't play if we've already played it once if( !m_Toasty.IsTransitioning() && !m_Toasty.IsFinished() ) // don't play if we've already played it once
m_Toasty.StartTransitioning(); m_Toasty.StartTransitioning();
break; }
else if( SM >= SM_100Combo && SM <= SM_1000Combo )
#define SECS_SINCE_LAST_COMMENT (SECONDS_BETWEEN_COMMENTS-m_fTimeLeftBeforeDancingComment) {
case SM_100Combo: int iCombo = (SM-SM_100Combo+1)*100;
PlayAnnouncer( "gameplay 100 combo", 2 ); PlayAnnouncer( ssprintf("gameplay %d combo",iCombo), 2 );
break; }
case SM_200Combo: else if( SM == SM_ComboStopped )
PlayAnnouncer( "gameplay 200 combo", 2 ); {
break;
case SM_300Combo:
PlayAnnouncer( "gameplay 300 combo", 2 );
break;
case SM_400Combo:
PlayAnnouncer( "gameplay 400 combo", 2 );
break;
case SM_500Combo:
PlayAnnouncer( "gameplay 500 combo", 2 );
break;
case SM_600Combo:
PlayAnnouncer( "gameplay 600 combo", 2 );
break;
case SM_700Combo:
PlayAnnouncer( "gameplay 700 combo", 2 );
break;
case SM_800Combo:
PlayAnnouncer( "gameplay 800 combo", 2 );
break;
case SM_900Combo:
PlayAnnouncer( "gameplay 900 combo", 2 );
break;
case SM_1000Combo:
PlayAnnouncer( "gameplay 1000 combo", 2 );
break;
case SM_ComboStopped:
PlayAnnouncer( "gameplay combo stopped", 2 ); PlayAnnouncer( "gameplay combo stopped", 2 );
break; }
case SM_ComboContinuing: else if( SM == SM_ComboContinuing )
{
PlayAnnouncer( "gameplay combo overflow", 2 ); PlayAnnouncer( "gameplay combo overflow", 2 );
break; }
case SM_BattleTrickLevel1: else if( SM >= SM_BattleTrickLevel1 && SM <= SM_BattleTrickLevel3 )
PlayAnnouncer( "gameplay battle trick level1", 3 ); {
m_soundBattleTrickLevel1.Play(); int iTrickLevel = SM-SM_BattleTrickLevel1+1;
break; PlayAnnouncer( ssprintf("gameplay battle trick level%d",iTrickLevel), 3 );
case SM_BattleTrickLevel2: switch( SM )
PlayAnnouncer( "gameplay battle trick level2", 3 ); {
m_soundBattleTrickLevel2.Play(); case SM_BattleTrickLevel1: m_soundBattleTrickLevel1.Play(); break;
break; case SM_BattleTrickLevel2: m_soundBattleTrickLevel2.Play(); break;
case SM_BattleTrickLevel3: case SM_BattleTrickLevel3: m_soundBattleTrickLevel3.Play(); break;
PlayAnnouncer( "gameplay battle trick level3", 3 ); default: ASSERT(0);
m_soundBattleTrickLevel3.Play(); }
break; }
else if( SM >= SM_BattleDamageLevel1 && SM <= SM_BattleDamageLevel3 )
case SM_BattleDamageLevel1: {
PlayAnnouncer( "gameplay battle damage level1", 3 ); int iDamageLevel = SM-SM_BattleDamageLevel1+1;
break; PlayAnnouncer( ssprintf("gameplay battle damage level%d",iDamageLevel), 3 );
case SM_BattleDamageLevel2: }
PlayAnnouncer( "gameplay battle damage level2", 3 ); else if( SM == SM_SaveChangedBeforeGoingBack )
break; {
case SM_BattleDamageLevel3:
PlayAnnouncer( "gameplay battle damage level3", 3 );
break;
case SM_SaveChangedBeforeGoingBack:
if( m_bChangedOffsetOrBPM ) if( m_bChangedOffsetOrBPM )
{ {
m_bChangedOffsetOrBPM = false; m_bChangedOffsetOrBPM = false;
ShowSavePrompt( SM_GoToScreenAfterBack ); ShowSavePrompt( SM_GoToScreenAfterBack );
break;
} }
else
{
HandleScreenMessage( SM_GoToScreenAfterBack ); HandleScreenMessage( SM_GoToScreenAfterBack );
break; }
}
case SM_GoToScreenAfterBack: else if( SM == SM_GoToScreenAfterBack )
{
SongFinished(); SongFinished();
StageFinished( true ); StageFinished( true );
@@ -2359,28 +2323,29 @@ void ScreenGameplay::HandleScreenMessage( const ScreenMessage SM )
SCREENMAN->DeletePreparedScreens(); SCREENMAN->DeletePreparedScreens();
SCREENMAN->SetNewScreen( PREV_SCREEN ); SCREENMAN->SetNewScreen( PREV_SCREEN );
break; }
else if( SM == SM_GoToNextScreen )
case SM_GoToNextScreen: {
if( m_bChangedOffsetOrBPM ) if( m_bChangedOffsetOrBPM )
{ {
m_bChangedOffsetOrBPM = false; m_bChangedOffsetOrBPM = false;
ShowSavePrompt( SM_GoToNextScreen ); ShowSavePrompt( SM_GoToNextScreen );
break;
} }
else
{
SongFinished(); SongFinished();
StageFinished( false ); StageFinished( false );
SCREENMAN->SetNewScreen( NEXT_SCREEN ); SCREENMAN->SetNewScreen( NEXT_SCREEN );
break; }
}
case SM_LoseFocus: else if( SM == SM_LoseFocus )
{
/* We might have turned the song timer off. Be sure to turn it back on. */ /* We might have turned the song timer off. Be sure to turn it back on. */
SOUND->HandleSongTimer( true ); SOUND->HandleSongTimer( true );
break; }
else if( SM == SM_BeginFailed )
case SM_BeginFailed: {
m_DancingState = STATE_OUTRO; m_DancingState = STATE_OUTRO;
AbortGiveUp( false ); AbortGiveUp( false );
m_pSoundMusic->StopPlaying(); m_pSoundMusic->StopPlaying();
@@ -2406,20 +2371,19 @@ void ScreenGameplay::HandleScreenMessage( const ScreenMessage SM )
SOUND->PlayOnceFromAnnouncer( "gameplay oni failed" ); SOUND->PlayOnceFromAnnouncer( "gameplay oni failed" );
else else
SOUND->PlayOnceFromAnnouncer( "gameplay failed" ); SOUND->PlayOnceFromAnnouncer( "gameplay failed" );
break; }
else if( SM == SM_StopMusic )
case SM_StopMusic: {
m_pSoundMusic->Stop(); m_pSoundMusic->Stop();
break; }
else if( SM == SM_Pause )
case SM_Pause: {
/* Ignore SM_Pause when in demonstration. */ /* Ignore SM_Pause when in demonstration. */
if( GAMESTATE->m_bDemonstrationOrJukebox ) if( GAMESTATE->m_bDemonstrationOrJukebox )
return; return;
if( !m_bPaused ) if( !m_bPaused )
PauseGame( true ); PauseGame( true );
break;
} }
} }
+1 -1
View File
@@ -27,7 +27,7 @@ class Inventory;
#include "AutoKeysounds.h" #include "AutoKeysounds.h"
#include "ThemeMetric.h" #include "ThemeMetric.h"
const ScreenMessage SM_NotesEnded = ScreenMessage(SM_User+10); extern const AutoScreenMessage SM_NotesEnded;
class LyricsLoader; class LyricsLoader;
class ScreenGameplay : public Screen class ScreenGameplay : public Screen
+14 -16
View File
@@ -29,12 +29,12 @@
// received while STATE_DANCING // received while STATE_DANCING
const ScreenMessage SM_NotesEnded = ScreenMessage(SM_User+10); const AutoScreenMessage SM_NotesEnded;
const ScreenMessage SM_Ready = ScreenMessage(SM_User+12); const AutoScreenMessage SM_Ready;
const ScreenMessage SM_GoToStateAfterCleared= ScreenMessage(SM_User+22); const AutoScreenMessage SM_GoToStateAfterCleared;
const ScreenMessage SM_GoToScreenAfterBack = ScreenMessage(SM_User+23); const AutoScreenMessage SM_GoToScreenAfterBack;
REGISTER_SCREEN_CLASS( ScreenGameplayMultiplayer ); REGISTER_SCREEN_CLASS( ScreenGameplayMultiplayer );
@@ -606,30 +606,28 @@ void ScreenGameplayMultiplayer::StageFinished( bool bBackedOut )
void ScreenGameplayMultiplayer::HandleScreenMessage( const ScreenMessage SM ) void ScreenGameplayMultiplayer::HandleScreenMessage( const ScreenMessage SM )
{ {
CHECKPOINT_M( ssprintf("HandleScreenMessage(%i)", SM) ); CHECKPOINT_M( ssprintf("HandleScreenMessage(%i)", SM) );
switch( SM ) if( SM == SM_Ready )
{ {
case SM_Ready:
GAMESTATE->m_bPastHereWeGo = true; GAMESTATE->m_bPastHereWeGo = true;
break; }
else if( SM == SM_NotesEnded )
case SM_NotesEnded: {
m_Out.StartTransitioning( SM_GoToStateAfterCleared ); m_Out.StartTransitioning( SM_GoToStateAfterCleared );
break; }
else if( SM == SM_GoToScreenAfterBack )
case SM_GoToScreenAfterBack: {
StageFinished( true ); StageFinished( true );
GAMESTATE->CancelStage(); GAMESTATE->CancelStage();
SCREENMAN->DeletePreparedScreens(); SCREENMAN->DeletePreparedScreens();
SCREENMAN->SetNewScreen( PREV_SCREEN ); SCREENMAN->SetNewScreen( PREV_SCREEN );
break; }
else if( SM == SM_GoToStateAfterCleared )
case SM_GoToStateAfterCleared: {
StageFinished( false ); StageFinished( false );
SCREENMAN->SetNewScreen( NEXT_SCREEN ); SCREENMAN->SetNewScreen( NEXT_SCREEN );
break;
} }
} }
+4 -3
View File
@@ -220,14 +220,15 @@ void ScreenJukebox::Input( const DeviceInput& DeviceI, const InputEventType type
void ScreenJukebox::HandleScreenMessage( const ScreenMessage SM ) void ScreenJukebox::HandleScreenMessage( const ScreenMessage SM )
{ {
switch( SM ) if( SM == SM_NotesEnded )
{ {
case SM_NotesEnded:
if( m_Out.IsTransitioning() || m_Out.IsFinished() ) if( m_Out.IsTransitioning() || m_Out.IsFinished() )
return; // ignore - we're already fading or faded return; // ignore - we're already fading or faded
m_Out.StartTransitioning( SM_GoToNextScreen ); m_Out.StartTransitioning( SM_GoToNextScreen );
return; return;
case SM_GoToNextScreen: }
else if( SM == SM_GoToNextScreen )
{
if( m_pSoundMusic ) if( m_pSoundMusic )
m_pSoundMusic->Stop(); m_pSoundMusic->Stop();
SCREENMAN->SetNewScreen( "ScreenJukebox" ); SCREENMAN->SetNewScreen( "ScreenJukebox" );
+34
View File
@@ -0,0 +1,34 @@
#include "global.h"
#include "ScreenMessage.h"
AutoScreenMessage::AutoScreenMessage()
{
static int s_NextID = 100; // a value larger than all the values in the ScreenMessageEnum
m_sm = (ScreenMessage)s_NextID;
s_NextID++;
}
/*
* (c) 2001-2004 Chris Danford, Glenn Maynard
* All rights reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the
* "Software"), to deal in the Software without restriction, including
* without limitation the rights to use, copy, modify, merge, publish,
* distribute, and/or sell copies of the Software, and to permit persons to
* whom the Software is furnished to do so, provided that the above
* copyright notice(s) and this permission notice appear in all copies of
* the Software and that both the above copyright notice(s) and this
* permission notice appear in supporting documentation.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF
* THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS
* INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT
* OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
* OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
* OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
+33 -1
View File
@@ -19,7 +19,39 @@ enum ScreenMessage {
SM_Pause, SM_Pause,
SM_Success, SM_Success,
SM_Failure, SM_Failure,
SM_User = 100
// messages sent by Combo
SM_PlayToasty,
SM_100Combo,
SM_200Combo,
SM_300Combo,
SM_400Combo,
SM_500Combo,
SM_600Combo,
SM_700Combo,
SM_800Combo,
SM_900Combo,
SM_1000Combo,
SM_ComboStopped,
SM_ComboContinuing,
SM_MissComboAborted,
SM_BattleTrickLevel1,
SM_BattleTrickLevel2,
SM_BattleTrickLevel3,
SM_BattleDamageLevel1,
SM_BattleDamageLevel2,
SM_BattleDamageLevel3,
};
// Automatically generate a unique ScreenMessage value
class AutoScreenMessage
{
public:
AutoScreenMessage();
operator ScreenMessage() const { return m_sm; }
protected:
ScreenMessage m_sm;
}; };
#endif #endif
+2 -2
View File
@@ -11,8 +11,8 @@
#include "CommonMetrics.h" #include "CommonMetrics.h"
#include "GameState.h" #include "GameState.h"
const ScreenMessage SM_GoToOK = (ScreenMessage)(SM_User+1); const AutoScreenMessage SM_GoToOK;
const ScreenMessage SM_GoToCancel = (ScreenMessage)(SM_User+2); const AutoScreenMessage SM_GoToCancel;
int ScreenMiniMenu::s_iLastRowCode = -1; int ScreenMiniMenu::s_iLastRowCode = -1;
vector<int> ScreenMiniMenu::s_viLastAnswers; vector<int> ScreenMiniMenu::s_viLastAnswers;
+8 -9
View File
@@ -36,7 +36,7 @@ static const ThemeMetric<apActorCommands> OK_INIT_COMMMAND ("ScreenNameEntryTra
if( !actor.GetName().empty() ) \ if( !actor.GetName().empty() ) \
COMMAND( actor, command_name ); COMMAND( actor, command_name );
const ScreenMessage SM_ChangeDisplayedFeat = ScreenMessage(SM_User+0); const AutoScreenMessage SM_ChangeDisplayedFeat;
static const int CHAR_OK = -1; static const int CHAR_OK = -1;
static const int CHAR_BACK = -2; static const int CHAR_BACK = -2;
@@ -540,24 +540,23 @@ void ScreenNameEntryTraditional::HandleScreenMessage( const ScreenMessage SM )
{ {
LOG->Trace( "ScreenNameEntryTraditional::HandleScreenMessage( %d )", SM ); LOG->Trace( "ScreenNameEntryTraditional::HandleScreenMessage( %d )", SM );
switch( SM ) if( SM == SM_MenuTimer )
{ {
case SM_MenuTimer:
if( !m_Out.IsTransitioning() ) if( !m_Out.IsTransitioning() )
{ {
FOREACH_PlayerNumber( p ) FOREACH_PlayerNumber( p )
Finish( p ); Finish( p );
MenuStart( PLAYER_INVALID, IET_FIRST_PRESS ); MenuStart( PLAYER_INVALID, IET_FIRST_PRESS );
} }
break; }
case SM_ChangeDisplayedFeat: else if( SM == SM_ChangeDisplayedFeat )
{
ChangeDisplayedFeat(); ChangeDisplayedFeat();
this->PostScreenMessage( SM_ChangeDisplayedFeat, FEAT_INTERVAL ); this->PostScreenMessage( SM_ChangeDisplayedFeat, FEAT_INTERVAL );
break; }
else if( SM == SM_GoToNextScreen )
case SM_GoToNextScreen: {
SCREENMAN->SetNewScreen( NEXT_SCREEN ); SCREENMAN->SetNewScreen( NEXT_SCREEN );
break;
} }
} }
+5 -5
View File
@@ -17,7 +17,7 @@ const int NUM_SCORE_DIGITS = 9;
#define MAX_COMBO_NUM_DIGITS THEME->GetMetricI("ScreenEvaluation","MaxComboNumDigits") #define MAX_COMBO_NUM_DIGITS THEME->GetMetricI("ScreenEvaluation","MaxComboNumDigits")
const ScreenMessage SM_GotEval = ScreenMessage(SM_User+6); const AutoScreenMessage SM_GotEval;
REGISTER_SCREEN_CLASS( ScreenNetEvaluation ); REGISTER_SCREEN_CLASS( ScreenNetEvaluation );
ScreenNetEvaluation::ScreenNetEvaluation (const CString & sClassName) : ScreenEvaluation( sClassName ) ScreenNetEvaluation::ScreenNetEvaluation (const CString & sClassName) : ScreenEvaluation( sClassName )
@@ -124,9 +124,8 @@ void ScreenNetEvaluation::MenuDown( PlayerNumber pn, const InputEventType type )
void ScreenNetEvaluation::HandleScreenMessage( const ScreenMessage SM ) void ScreenNetEvaluation::HandleScreenMessage( const ScreenMessage SM )
{ {
switch( SM ) if( SM == SM_GotEval )
{ {
case SM_GotEval:
m_bHasStats = true; m_bHasStats = true;
LOG->Trace("SMNETDebug:%d,%d",m_iActivePlayers,NSMAN->m_ActivePlayers); LOG->Trace("SMNETDebug:%d,%d",m_iActivePlayers,NSMAN->m_ActivePlayers);
@@ -167,9 +166,10 @@ void ScreenNetEvaluation::HandleScreenMessage( const ScreenMessage SM )
LOG->Trace("SMNETCheckpoint%d",i); LOG->Trace("SMNETCheckpoint%d",i);
} }
return; //no need to let ScreenEvaluation get ahold of this. return; //no need to let ScreenEvaluation get ahold of this.
case SM_GoToNextScreen: }
else if( SM == SM_GoToNextScreen )
{
NSMAN->ReportNSSOnOff( 4 ); NSMAN->ReportNSSOnOff( 4 );
break;
} }
ScreenEvaluation::HandleScreenMessage( SM ); ScreenEvaluation::HandleScreenMessage( SM );
} }
+18 -14
View File
@@ -21,9 +21,9 @@
#define ROOMLOWERBOUND THEME->GetMetricF(m_sName,"RoomsLowerBound") #define ROOMLOWERBOUND THEME->GetMetricF(m_sName,"RoomsLowerBound")
#define ROOMUPPERBOUND THEME->GetMetricF(m_sName,"RoomsUpperBound") #define ROOMUPPERBOUND THEME->GetMetricF(m_sName,"RoomsUpperBound")
const ScreenMessage SM_SMOnlinePack = ScreenMessage(SM_User+8); //Unused, but should be known const AutoScreenMessage SM_SMOnlinePack; // Unused, but should be known
const ScreenMessage SM_BackFromRoomName = ScreenMessage(SM_User+15); const AutoScreenMessage SM_BackFromRoomName;
const ScreenMessage SM_BackFromRoomDesc = ScreenMessage(SM_User+16); const AutoScreenMessage SM_BackFromRoomDesc;
REGISTER_SCREEN_CLASS( ScreenNetRoom ); REGISTER_SCREEN_CLASS( ScreenNetRoom );
ScreenNetRoom::ScreenNetRoom( const CString& sName ) : ScreenNetSelectBase( sName ) ScreenNetRoom::ScreenNetRoom( const CString& sName ) : ScreenNetSelectBase( sName )
@@ -94,16 +94,18 @@ void ScreenNetRoom::Input( const DeviceInput& DeviceI, const InputEventType type
void ScreenNetRoom::HandleScreenMessage( const ScreenMessage SM ) void ScreenNetRoom::HandleScreenMessage( const ScreenMessage SM )
{ {
switch( SM ) if( SM == SM_GoToPrevScreen )
{ {
case SM_GoToPrevScreen:
SCREENMAN->SetNewScreen( THEME->GetMetric (m_sName, "PrevScreen") ); SCREENMAN->SetNewScreen( THEME->GetMetric (m_sName, "PrevScreen") );
break; }
case SM_GoToNextScreen: else if( SM == SM_GoToNextScreen )
{
SCREENMAN->SetNewScreen( THEME->GetMetric (m_sName, "NextScreen") ); SCREENMAN->SetNewScreen( THEME->GetMetric (m_sName, "NextScreen") );
break; }
case SM_SMOnlinePack: else if( SM == SM_SMOnlinePack )
{
if ( NSMAN->m_SMOnlinePacket.Read1() == 1 ) if ( NSMAN->m_SMOnlinePacket.Read1() == 1 )
{
switch ( NSMAN->m_SMOnlinePacket.Read1() ) switch ( NSMAN->m_SMOnlinePacket.Read1() )
{ {
case 0: //Room title Change case 0: //Room title Change
@@ -141,21 +143,23 @@ void ScreenNetRoom::HandleScreenMessage( const ScreenMessage SM )
UpdateRoomsList(); UpdateRoomsList();
} }
} }
break; }
case SM_BackFromRoomName: }
else if ( SM == SM_BackFromRoomName )
{
if ( !ScreenTextEntry::s_bCancelledLast ) if ( !ScreenTextEntry::s_bCancelledLast )
{ {
m_newRoomName = ScreenTextEntry::s_sLastAnswer; m_newRoomName = ScreenTextEntry::s_sLastAnswer;
SCREENMAN->TextEntry( SM_BackFromRoomDesc, "Enter Room Description:", "", 255 ); SCREENMAN->TextEntry( SM_BackFromRoomDesc, "Enter Room Description:", "", 255 );
} }
break; }
case SM_BackFromRoomDesc: else if( SM == SM_BackFromRoomDesc )
{
if ( !ScreenTextEntry::s_bCancelledLast ) if ( !ScreenTextEntry::s_bCancelledLast )
{ {
m_newRoomDesc = ScreenTextEntry::s_sLastAnswer; m_newRoomDesc = ScreenTextEntry::s_sLastAnswer;
CreateNewRoom( m_newRoomName, m_newRoomDesc); CreateNewRoom( m_newRoomName, m_newRoomDesc);
} }
break;
} }
ScreenNetSelectBase::HandleScreenMessage( SM ); ScreenNetSelectBase::HandleScreenMessage( SM );
} }
+12 -13
View File
@@ -25,9 +25,9 @@
#define USERS_Y THEME->GetMetricF(m_sName,"UsersY") #define USERS_Y THEME->GetMetricF(m_sName,"UsersY")
#define USERS_X THEME->GetMetricF(m_sName,"UsersX") #define USERS_X THEME->GetMetricF(m_sName,"UsersX")
const ScreenMessage SM_AddToChat = ScreenMessage(SM_User+4); const AutoScreenMessage SM_AddToChat;
const ScreenMessage SM_UsersUpdate = ScreenMessage(SM_User+7); const AutoScreenMessage SM_UsersUpdate;
const ScreenMessage SM_SMOnlinePack = ScreenMessage(SM_User+8); //Unused, but should be known const AutoScreenMessage SM_SMOnlinePack; //Unused, but should be known
REGISTER_SCREEN_CLASS( ScreenNetSelectBase ); REGISTER_SCREEN_CLASS( ScreenNetSelectBase );
ScreenNetSelectBase::ScreenNetSelectBase( const CString& sName ) : ScreenWithMenuElements( sName ) ScreenNetSelectBase::ScreenNetSelectBase( const CString& sName ) : ScreenWithMenuElements( sName )
@@ -179,16 +179,17 @@ void ScreenNetSelectBase::Input( const DeviceInput& DeviceI, const InputEventTyp
void ScreenNetSelectBase::HandleScreenMessage( const ScreenMessage SM ) void ScreenNetSelectBase::HandleScreenMessage( const ScreenMessage SM )
{ {
Screen::HandleScreenMessage( SM ); Screen::HandleScreenMessage( SM );
switch( SM )
if( SM == SM_GoToPrevScreen )
{ {
case SM_GoToPrevScreen:
SCREENMAN->SetNewScreen( THEME->GetMetric (m_sName, "PrevScreen") ); SCREENMAN->SetNewScreen( THEME->GetMetric (m_sName, "PrevScreen") );
break; }
case SM_GoToNextScreen: else if( SM == SM_GoToNextScreen )
{
SOUND->StopMusic(); SOUND->StopMusic();
SCREENMAN->SetNewScreen( THEME->GetMetric (m_sName, "NextScreen") ); SCREENMAN->SetNewScreen( THEME->GetMetric (m_sName, "NextScreen") );
break; }
case SM_AddToChat: else if( SM == SM_AddToChat )
{ {
m_textOutHidden.SetText( NSMAN->m_sChatText ); m_textOutHidden.SetText( NSMAN->m_sChatText );
vector <wstring> wLines; vector <wstring> wLines;
@@ -197,12 +198,10 @@ void ScreenNetSelectBase::HandleScreenMessage( const ScreenMessage SM )
for (unsigned i = max(int(wLines.size()) - SHOW_CHAT_LINES, 0 ) ; i < wLines.size() ; ++i) for (unsigned i = max(int(wLines.size()) - SHOW_CHAT_LINES, 0 ) ; i < wLines.size() ; ++i)
m_actualText += WStringToCString( wLines[i] )+'\n'; m_actualText += WStringToCString( wLines[i] )+'\n';
m_textChatOutput.SetText( m_actualText ); m_textChatOutput.SetText( m_actualText );
break;
} }
case SM_UsersUpdate: else if( SM == SM_UsersUpdate )
{
UpdateUsers(); UpdateUsers();
break;
} }
} }
+34 -26
View File
@@ -22,11 +22,11 @@
#include "RageLog.h" #include "RageLog.h"
#include "ScreenPlayerOptions.h" // for SM_BackFromPlayerOptions #include "ScreenPlayerOptions.h" // for SM_BackFromPlayerOptions
const ScreenMessage SM_NoSongs = ScreenMessage(SM_User+3); const AutoScreenMessage SM_NoSongs;
const ScreenMessage SM_ChangeSong = ScreenMessage(SM_User+5); const AutoScreenMessage SM_ChangeSong;
const ScreenMessage SM_SMOnlinePack = ScreenMessage(SM_User+8); //Unused, but should be known const AutoScreenMessage SM_SMOnlinePack; //Unused, but should be known
const ScreenMessage SM_SetWheelSong = ScreenMessage(SM_User+19); const AutoScreenMessage SM_SetWheelSong;
const ScreenMessage SM_RefreshWheelLocation = ScreenMessage(SM_User+20); const AutoScreenMessage SM_RefreshWheelLocation;
const CString AllGroups = "[ALL MUSIC]"; const CString AllGroups = "[ALL MUSIC]";
@@ -147,19 +147,20 @@ void ScreenNetSelectMusic::Input( const DeviceInput& DeviceI, const InputEventTy
void ScreenNetSelectMusic::HandleScreenMessage( const ScreenMessage SM ) void ScreenNetSelectMusic::HandleScreenMessage( const ScreenMessage SM )
{ {
switch( SM ) if( SM == SM_GoToPrevScreen )
{ {
case SM_GoToPrevScreen:
SCREENMAN->SetNewScreen( THEME->GetMetric (m_sName, "PrevScreen") ); SCREENMAN->SetNewScreen( THEME->GetMetric (m_sName, "PrevScreen") );
break; }
case SM_GoToNextScreen: else if( SM == SM_GoToNextScreen )
{
SOUND->StopMusic(); SOUND->StopMusic();
SCREENMAN->SetNewScreen( THEME->GetMetric (m_sName, "NextScreen") ); SCREENMAN->SetNewScreen( THEME->GetMetric (m_sName, "NextScreen") );
break; }
case SM_NoSongs: else if( SM == SM_NoSongs )
{
SCREENMAN->SetNewScreen( THEME->GetMetric (m_sName, "NoSongsScreen") ); SCREENMAN->SetNewScreen( THEME->GetMetric (m_sName, "NoSongsScreen") );
break; }
case SM_ChangeSong: else if( SM_ChangeSong )
{ {
//First check to see if this song is already selected. //First check to see if this song is already selected.
//This is so that if you multiple copies of the "same" song //This is so that if you multiple copies of the "same" song
@@ -182,9 +183,8 @@ void ScreenNetSelectMusic::HandleScreenMessage( const ScreenMessage SM )
case 2: //Proper starting of song case 2: //Proper starting of song
case 3: //Blind starting of song case 3: //Blind starting of song
StartSelectedSong(); StartSelectedSong();
break; goto done;
} }
break;
} }
vector <Song *> AllSongs = SONGMAN->GetAllSongs(); vector <Song *> AllSongs = SONGMAN->GetAllSongs();
@@ -246,18 +246,20 @@ void ScreenNetSelectMusic::HandleScreenMessage( const ScreenMessage SM )
NSMAN->SelectUserSong(); NSMAN->SelectUserSong();
} }
} }
break; else if( SM == SM_SetWheelSong ) //After we're done the sort on wheel, select song.
//After we're done the sort on wheel, select song. {
case SM_SetWheelSong:
m_MusicWheel.SelectSong( m_cSong ); m_MusicWheel.SelectSong( m_cSong );
case SM_RefreshWheelLocation: }
else if( SM == SM_RefreshWheelLocation )
{
m_MusicWheel.Select(); m_MusicWheel.Select();
m_MusicWheel.Move(-1); m_MusicWheel.Move(-1);
m_MusicWheel.Move(1); m_MusicWheel.Move(1);
m_MusicWheel.Select(); m_MusicWheel.Select();
m_bAllowInput = true; m_bAllowInput = true;
break; }
case SM_BackFromPlayerOptions: else if( SM == SM_BackFromPlayerOptions )
{
//XXX: HACK: This will causes ScreenSelectOptions to go back here. //XXX: HACK: This will causes ScreenSelectOptions to go back here.
NSMAN->ReportNSSOnOff(1); NSMAN->ReportNSSOnOff(1);
GAMESTATE->m_bEditing = false; GAMESTATE->m_bEditing = false;
@@ -269,13 +271,16 @@ void ScreenNetSelectMusic::HandleScreenMessage( const ScreenMessage SM )
m_OptionIconRow[p].Load( p ); m_OptionIconRow[p].Load( p );
m_OptionIconRow[p].Refresh(); m_OptionIconRow[p].Refresh();
} }
break; }
case SM_SongChanged: else if( SM == SM_SongChanged )
{
GAMESTATE->m_pCurSong.Set( m_MusicWheel.GetSelectedSong() ); GAMESTATE->m_pCurSong.Set( m_MusicWheel.GetSelectedSong() );
MusicChanged(); MusicChanged();
break; }
case SM_SMOnlinePack: else if( SM == SM_SMOnlinePack )
{
if ( NSMAN->m_SMOnlinePacket.Read1() == 1 ) if ( NSMAN->m_SMOnlinePacket.Read1() == 1 )
{
switch ( NSMAN->m_SMOnlinePacket.Read1() ) switch ( NSMAN->m_SMOnlinePacket.Read1() )
{ {
case 0: //Room title Change case 0: //Room title Change
@@ -291,8 +296,11 @@ void ScreenNetSelectMusic::HandleScreenMessage( const ScreenMessage SM )
} }
} }
} }
break;
} }
}
done:
//Must be at end, as so it is last resort for SMOnline packets. //Must be at end, as so it is last resort for SMOnline packets.
//If it doens't know what to do, then it'll just remove them. //If it doens't know what to do, then it'll just remove them.
ScreenNetSelectBase::HandleScreenMessage( SM ); ScreenNetSelectBase::HandleScreenMessage( SM );
+6 -6
View File
@@ -28,8 +28,8 @@ OptionRowDefinition g_NetworkOptionsLines[NUM_NETWORK_OPTIONS_LINES] = {
OptionRowDefinition( "Server", true, "PRESS START" ) OptionRowDefinition( "Server", true, "PRESS START" )
}; };
const ScreenMessage SM_DoneConnecting = ScreenMessage(SM_User+1); const AutoScreenMessage SM_DoneConnecting;
const ScreenMessage SM_ServerNameEnter = ScreenMessage(SM_User+2); const AutoScreenMessage SM_ServerNameEnter;
static Preference<CString> g_sLastServer( Options, "LastConnectedServer", "" ); static Preference<CString> g_sLastServer( Options, "LastConnectedServer", "" );
@@ -81,9 +81,8 @@ void ScreenNetworkOptions::GoToNextScreen()
void ScreenNetworkOptions::HandleScreenMessage( const ScreenMessage SM ) void ScreenNetworkOptions::HandleScreenMessage( const ScreenMessage SM )
{ {
switch( SM ) if( SM == SM_DoneConnecting )
{ {
case SM_DoneConnecting:
if( !ScreenTextEntry::s_bCancelledLast ) if( !ScreenTextEntry::s_bCancelledLast )
{ {
CString sNewName = ScreenTextEntry::s_sLastAnswer; CString sNewName = ScreenTextEntry::s_sLastAnswer;
@@ -92,8 +91,9 @@ void ScreenNetworkOptions::HandleScreenMessage( const ScreenMessage SM )
UpdateConnectStatus( ); UpdateConnectStatus( );
g_sLastServer = ScreenTextEntry::s_sLastAnswer; g_sLastServer = ScreenTextEntry::s_sLastAnswer;
} }
break; }
case SM_ServerNameEnter: else if( SM == SM_ServerNameEnter )
{
if( !ScreenTextEntry::s_bCancelledLast ) if( !ScreenTextEntry::s_bCancelledLast )
{ {
if ( NSMAN->LANserver == NULL) if ( NSMAN->LANserver == NULL)
+8 -8
View File
@@ -18,7 +18,7 @@
#define NUM_PACKAGES_SHOW THEME->GetMetricI(m_sName,"NumPackagesShow") #define NUM_PACKAGES_SHOW THEME->GetMetricI(m_sName,"NumPackagesShow")
#define NUM_LINKS_SHOW THEME->GetMetricI(m_sName,"NumLinksShow") #define NUM_LINKS_SHOW THEME->GetMetricI(m_sName,"NumLinksShow")
const ScreenMessage SM_BackFromURL = ScreenMessage(SM_User+2); const AutoScreenMessage SM_BackFromURL;
REGISTER_SCREEN_CLASS( ScreenPackages ); REGISTER_SCREEN_CLASS( ScreenPackages );
ScreenPackages::ScreenPackages( CString sClassName ) : ScreenWithMenuElements( sClassName ) ScreenPackages::ScreenPackages( CString sClassName ) : ScreenWithMenuElements( sClassName )
@@ -120,18 +120,18 @@ void ScreenPackages::Init()
void ScreenPackages::HandleScreenMessage( const ScreenMessage SM ) void ScreenPackages::HandleScreenMessage( const ScreenMessage SM )
{ {
switch( SM ) if( SM == SM_GoToPrevScreen )
{ {
case SM_GoToPrevScreen:
SCREENMAN->SetNewScreen( THEME->GetMetric (m_sName, "PrevScreen") ); SCREENMAN->SetNewScreen( THEME->GetMetric (m_sName, "PrevScreen") );
break; }
case SM_GoToNextScreen: else if( SM ==SM_GoToNextScreen )
{
SCREENMAN->SetNewScreen( THEME->GetMetric (m_sName, "NextScreen") ); SCREENMAN->SetNewScreen( THEME->GetMetric (m_sName, "NextScreen") );
break; }
case SM_BackFromURL: else if( SM == SM_BackFromURL )
{
if ( !ScreenTextEntry::s_bCancelledLast ) if ( !ScreenTextEntry::s_bCancelledLast )
EnterURL( ScreenTextEntry::s_sLastAnswer ); EnterURL( ScreenTextEntry::s_sLastAnswer );
break;
} }
ScreenWithMenuElements::HandleScreenMessage( SM ); ScreenWithMenuElements::HandleScreenMessage( SM );
} }
+1
View File
@@ -14,6 +14,7 @@
#include "PlayerState.h" #include "PlayerState.h"
#include "Foreach.h" #include "Foreach.h"
const AutoScreenMessage SM_BackFromPlayerOptions;
#define PREV_SCREEN THEME->GetMetric ("ScreenPlayerOptions","PrevScreen") #define PREV_SCREEN THEME->GetMetric ("ScreenPlayerOptions","PrevScreen")
#define NEXT_SCREEN THEME->GetMetric ("ScreenPlayerOptions","NextScreen") #define NEXT_SCREEN THEME->GetMetric ("ScreenPlayerOptions","NextScreen")
+1 -1
View File
@@ -3,7 +3,7 @@
#include "ScreenOptionsMaster.h" #include "ScreenOptionsMaster.h"
const ScreenMessage SM_BackFromPlayerOptions = (ScreenMessage)(SM_User+3); extern const AutoScreenMessage SM_BackFromPlayerOptions;
class ScreenPlayerOptions : public ScreenOptionsMaster class ScreenPlayerOptions : public ScreenOptionsMaster
{ {
+10 -10
View File
@@ -32,9 +32,9 @@ OptionRowDefinition g_ProfileOptionsLines[NUM_PROFILE_OPTIONS_LINES] = {
OptionRowDefinition( "OsMountPlayer2", true, "" ), OptionRowDefinition( "OsMountPlayer2", true, "" ),
}; };
const ScreenMessage SM_DoneCreating = ScreenMessage(SM_User+1); const AutoScreenMessage SM_DoneCreating;
const ScreenMessage SM_DoneRenaming = ScreenMessage(SM_User+2); const AutoScreenMessage SM_DoneRenaming;
const ScreenMessage SM_DoneDeleting = ScreenMessage(SM_User+3); const AutoScreenMessage SM_DoneDeleting;
REGISTER_SCREEN_CLASS( ScreenProfileOptions ); REGISTER_SCREEN_CLASS( ScreenProfileOptions );
ScreenProfileOptions::ScreenProfileOptions( CString sClassName ) : ScreenOptions( sClassName ) ScreenProfileOptions::ScreenProfileOptions( CString sClassName ) : ScreenOptions( sClassName )
@@ -147,9 +147,8 @@ void ScreenProfileOptions::GoToNextScreen()
void ScreenProfileOptions::HandleScreenMessage( const ScreenMessage SM ) void ScreenProfileOptions::HandleScreenMessage( const ScreenMessage SM )
{ {
switch( SM ) if( SM == SM_DoneCreating)
{ {
case SM_DoneCreating:
if( !ScreenTextEntry::s_bCancelledLast && ScreenTextEntry::s_sLastAnswer != "" ) if( !ScreenTextEntry::s_bCancelledLast && ScreenTextEntry::s_sLastAnswer != "" )
{ {
CString sNewName = ScreenTextEntry::s_sLastAnswer; CString sNewName = ScreenTextEntry::s_sLastAnswer;
@@ -159,8 +158,9 @@ void ScreenProfileOptions::HandleScreenMessage( const ScreenMessage SM )
else else
SCREENMAN->Prompt( SM_None, ssprintf("Error creating profile '%s'.", sNewName.c_str()) ); SCREENMAN->Prompt( SM_None, ssprintf("Error creating profile '%s'.", sNewName.c_str()) );
} }
break; }
case SM_DoneRenaming: else if( SM == SM_DoneRenaming )
{
if( !ScreenTextEntry::s_bCancelledLast ) if( !ScreenTextEntry::s_bCancelledLast )
{ {
CString sProfileID = GetSelectedProfileID(); CString sProfileID = GetSelectedProfileID();
@@ -172,8 +172,9 @@ void ScreenProfileOptions::HandleScreenMessage( const ScreenMessage SM )
else else
SCREENMAN->Prompt( SM_None, ssprintf("Error renaming profile %s '%s'\nto '%s'.", sProfileID.c_str(), sName.c_str(), sNewName.c_str()) ); SCREENMAN->Prompt( SM_None, ssprintf("Error renaming profile %s '%s'\nto '%s'.", sProfileID.c_str(), sName.c_str(), sNewName.c_str()) );
} }
break; }
case SM_DoneDeleting: else if ( SM == SM_DoneDeleting )
{
if( ScreenPrompt::s_LastAnswer == ANSWER_YES ) if( ScreenPrompt::s_LastAnswer == ANSWER_YES )
{ {
CString sProfileID = GetSelectedProfileID(); CString sProfileID = GetSelectedProfileID();
@@ -184,7 +185,6 @@ void ScreenProfileOptions::HandleScreenMessage( const ScreenMessage SM )
else else
SCREENMAN->Prompt( SM_None, ssprintf("Error deleting profile %s '%s'.", sName.c_str(), sProfileID.c_str()) ); SCREENMAN->Prompt( SM_None, ssprintf("Error deleting profile %s '%s'.", sName.c_str(), sProfileID.c_str()) );
} }
break;
} }
ScreenOptions::HandleScreenMessage( SM ); ScreenOptions::HandleScreenMessage( SM );
+6 -7
View File
@@ -43,8 +43,8 @@ XToString( PageType, NUM_PAGE_TYPES );
#define COURSE_DIFFICULTY_X(col) (COURSE_DIFFICULTY_START_X+COL_SPACING_X*col) #define COURSE_DIFFICULTY_X(col) (COURSE_DIFFICULTY_START_X+COL_SPACING_X*col)
#define COURSE_SCORE_OFFSET_X(col) (COURSE_SCORE_OFFSET_START_X+COL_SPACING_X*col) #define COURSE_SCORE_OFFSET_X(col) (COURSE_SCORE_OFFSET_START_X+COL_SPACING_X*col)
const ScreenMessage SM_ShowNextPage = (ScreenMessage)(SM_User+67); const AutoScreenMessage SM_ShowNextPage;
const ScreenMessage SM_HidePage = (ScreenMessage)(SM_User+68); const AutoScreenMessage SM_HidePage;
CString STEPS_TYPE_COLOR_NAME( size_t i ) { return ssprintf("StepsTypeColor%d",i+1); } CString STEPS_TYPE_COLOR_NAME( size_t i ) { return ssprintf("StepsTypeColor%d",i+1); }
@@ -422,9 +422,8 @@ void ScreenRanking::MenuBack( PlayerNumber pn )
void ScreenRanking::HandleScreenMessage( const ScreenMessage SM ) void ScreenRanking::HandleScreenMessage( const ScreenMessage SM )
{ {
switch( SM ) if( SM == SM_ShowNextPage )
{ {
case SM_ShowNextPage:
if( m_vPagesToShow.size() > 0 ) if( m_vPagesToShow.size() > 0 )
{ {
float fSecsToShow = SetPage( m_vPagesToShow[0] ); float fSecsToShow = SetPage( m_vPagesToShow[0] );
@@ -439,11 +438,11 @@ void ScreenRanking::HandleScreenMessage( const ScreenMessage SM )
{ {
StartTransitioning(SM_GoToNextScreen); StartTransitioning(SM_GoToNextScreen);
} }
break; }
case SM_HidePage: else if( SM == SM_HidePage )
{
TweenPageOffScreen(); TweenPageOffScreen();
this->PostScreenMessage( SM_ShowNextPage, PAGE_FADE_SECONDS ); this->PostScreenMessage( SM_ShowNextPage, PAGE_FADE_SECONDS );
break;
} }
ScreenAttract::HandleScreenMessage( SM ); ScreenAttract::HandleScreenMessage( SM );
+6 -8
View File
@@ -18,8 +18,8 @@ REGISTER_SCREEN_CLASS(ScreenSMOnlineLogin);
#define PREV_SCREEN THEME->GetMetric (m_sName,"PrevScreen") #define PREV_SCREEN THEME->GetMetric (m_sName,"PrevScreen")
#define NEXT_SCREEN THEME->GetMetric (m_sName,"NextScreen") #define NEXT_SCREEN THEME->GetMetric (m_sName,"NextScreen")
const ScreenMessage SM_SMOnlinePack = ScreenMessage(SM_User+8); const AutoScreenMessage SM_SMOnlinePack;
const ScreenMessage SM_PasswordDone = ScreenMessage(SM_User+9); const AutoScreenMessage SM_PasswordDone;
OptionRowDefinition g_ProfileLine[1] = { OptionRowDefinition g_ProfileLine[1] = {
OptionRowDefinition("Profile",false) OptionRowDefinition("Profile",false)
}; };
@@ -136,16 +136,15 @@ void ScreenSMOnlineLogin::GoToNextScreen()
void ScreenSMOnlineLogin::HandleScreenMessage(const ScreenMessage SM) void ScreenSMOnlineLogin::HandleScreenMessage(const ScreenMessage SM)
{ {
switch(SM) if( SM == SM_PasswordDone )
{ {
case SM_PasswordDone:
if(!ScreenTextEntry::s_bCancelledLast) if(!ScreenTextEntry::s_bCancelledLast)
SendLogin(ScreenTextEntry::s_sLastAnswer); SendLogin(ScreenTextEntry::s_sLastAnswer);
else else
SCREENMAN->SetNewScreen(PREV_SCREEN); SCREENMAN->SetNewScreen(PREV_SCREEN);
break; }
else if( SM == SM_SMOnlinePack )
case SM_SMOnlinePack: {
int ResponceCode = NSMAN->m_SMOnlinePacket.Read1(); int ResponceCode = NSMAN->m_SMOnlinePacket.Read1();
if (ResponceCode == 0) if (ResponceCode == 0)
{ {
@@ -165,7 +164,6 @@ void ScreenSMOnlineLogin::HandleScreenMessage(const ScreenMessage SM)
SCREENMAN->Password( SM_PasswordDone, Responce + "\n\nYou are logging on as:\n" + GAMESTATE->GetPlayerDisplayName((PlayerNumber) m_iPlayer) + "\n\nPlease enter you password.", NULL ); SCREENMAN->Password( SM_PasswordDone, Responce + "\n\nYou are logging on as:\n" + GAMESTATE->GetPlayerDisplayName((PlayerNumber) m_iPlayer) + "\n\nPlease enter you password.", NULL );
} }
} }
break;
} }
ScreenOptions::HandleScreenMessage(SM); ScreenOptions::HandleScreenMessage(SM);
} }
+6 -11
View File
@@ -18,6 +18,7 @@
#include "LightsManager.h" #include "LightsManager.h"
#include "Command.h" #include "Command.h"
const AutoScreenMessage SM_AllDoneChoosing;
#define CHOICE_NAMES THEME->GetMetric (m_sName,"ChoiceNames") #define CHOICE_NAMES THEME->GetMetric (m_sName,"ChoiceNames")
#define CHOICE( sChoiceName ) THEME->GetMetricM(m_sName,ssprintf("Choice%s",sChoiceName.c_str())) #define CHOICE( sChoiceName ) THEME->GetMetricM(m_sName,ssprintf("Choice%s",sChoiceName.c_str()))
@@ -181,10 +182,7 @@ void ScreenSelect::Input( const DeviceInput& DeviceI, const InputEventType type,
void ScreenSelect::HandleScreenMessage( const ScreenMessage SM ) void ScreenSelect::HandleScreenMessage( const ScreenMessage SM )
{ {
switch( SM ) if( SM == SM_BeginFadingOut ) /* Screen is starting to tween out. */
{
/* Screen is starting to tween out. */
case SM_BeginFadingOut:
{ {
/* At this point, we're tweening out; we can't change the selection. /* At this point, we're tweening out; we can't change the selection.
* We don't want to allow players to join if the style will be set, * We don't want to allow players to join if the style will be set,
@@ -200,14 +198,12 @@ void ScreenSelect::HandleScreenMessage( const ScreenMessage SM )
} }
SCREENMAN->RefreshCreditsMessages(); SCREENMAN->RefreshCreditsMessages();
} }
break; else if( SM == SM_AllDoneChoosing ) /* It's our turn to tween out. */
{
/* It's our turn to tween out. */
case SM_AllDoneChoosing:
if( !IsTransitioning() ) if( !IsTransitioning() )
StartTransitioning( SM_GoToNextScreen ); StartTransitioning( SM_GoToNextScreen );
break; }
case SM_GoToNextScreen: else if( SM == SM_GoToNextScreen )
{ {
/* Apply here, not in SM_AllDoneChoosing, because applying can take a very /* Apply here, not in SM_AllDoneChoosing, because applying can take a very
* long time (200+ms), and at SM_AllDoneChoosing, we're still tweening stuff * long time (200+ms), and at SM_AllDoneChoosing, we're still tweening stuff
@@ -244,7 +240,6 @@ void ScreenSelect::HandleScreenMessage( const ScreenMessage SM )
const int iSelectionIndex = GetSelectionIndex(GAMESTATE->m_MasterPlayerNumber); const int iSelectionIndex = GetSelectionIndex(GAMESTATE->m_MasterPlayerNumber);
SCREENMAN->SetNewScreen( NEXT_SCREEN(iSelectionIndex) ); SCREENMAN->SetNewScreen( NEXT_SCREEN(iSelectionIndex) );
} }
}
return; return;
} }
+1 -1
View File
@@ -9,7 +9,7 @@
#include "ThemeMetric.h" #include "ThemeMetric.h"
// Derived classes must send this when done // Derived classes must send this when done
const ScreenMessage SM_AllDoneChoosing = (ScreenMessage)(SM_User+123); // unique extern const AutoScreenMessage SM_AllDoneChoosing;
class ScreenSelect : public ScreenWithMenuElements class ScreenSelect : public ScreenWithMenuElements
{ {
+3 -10
View File
@@ -15,7 +15,7 @@
#include "RageSoundManager.h" #include "RageSoundManager.h"
const ScreenMessage SM_PlayPostSwitchPage = (ScreenMessage)(SM_User+1); const AutoScreenMessage SM_PlayPostSwitchPage;
CString CURSOR_OFFSET_X_FROM_ICON_NAME( size_t p, size_t part ) { return ssprintf("CursorPart%dP%dOffsetXFromIcon",part+1,p+1); } CString CURSOR_OFFSET_X_FROM_ICON_NAME( size_t p, size_t part ) { return ssprintf("CursorPart%dP%dOffsetXFromIcon",part+1,p+1); }
CString CURSOR_OFFSET_Y_FROM_ICON_NAME( size_t p, size_t part ) { return ssprintf("CursorPart%dP%dOffsetYFromIcon",part+1,p+1); } CString CURSOR_OFFSET_Y_FROM_ICON_NAME( size_t p, size_t part ) { return ssprintf("CursorPart%dP%dOffsetYFromIcon",part+1,p+1); }
@@ -275,9 +275,7 @@ void ScreenSelectMaster::HandleScreenMessage( const ScreenMessage SM )
{ {
ScreenSelect::HandleScreenMessage( SM ); ScreenSelect::HandleScreenMessage( SM );
switch( SM ) if( SM == SM_PlayPostSwitchPage )
{
case SM_PlayPostSwitchPage:
{ {
if( SHARED_PREVIEW_AND_CURSOR ) if( SHARED_PREVIEW_AND_CURSOR )
{ {
@@ -308,14 +306,11 @@ void ScreenSelectMaster::HandleScreenMessage( const ScreenMessage SM )
FOREACH_HumanPlayer( p ) FOREACH_HumanPlayer( p )
COMMAND( m_sprPreview[i][m_iChoice[p]][p], "PostSwitchPage" ); COMMAND( m_sprPreview[i][m_iChoice[p]][p], "PostSwitchPage" );
} }
m_fLockInputSecs = POST_SWITCH_PAGE_SECONDS; m_fLockInputSecs = POST_SWITCH_PAGE_SECONDS;
} }
break; else if( SM == SM_BeginFadingOut )
case SM_BeginFadingOut:
{ {
TweenOffScreen(); TweenOffScreen();
/* /*
* We start our own tween-out (TweenOffScreen), wait some amount of time, then * We start our own tween-out (TweenOffScreen), wait some amount of time, then
* start the base tween (ScreenWithMenuElements, called from SM_AllDoneChoosing); * start the base tween (ScreenWithMenuElements, called from SM_AllDoneChoosing);
@@ -343,8 +338,6 @@ void ScreenSelectMaster::HandleScreenMessage( const ScreenMessage SM )
SCREENMAN->PostMessageToTopScreen( SM_AllDoneChoosing, fSecs ); // nofify parent that we're finished SCREENMAN->PostMessageToTopScreen( SM_AllDoneChoosing, fSecs ); // nofify parent that we're finished
StopTimer(); StopTimer();
} }
break;
}
} }
int ScreenSelectMaster::GetSelectionIndex( PlayerNumber pn ) int ScreenSelectMaster::GetSelectionIndex( PlayerNumber pn )
+29 -19
View File
@@ -37,7 +37,7 @@ const int NUM_SCORE_DIGITS = 9;
#define SCORE_SORT_CHANGE_COMMAND(i) THEME->GetMetricA(m_sName,ssprintf("ScoreP%iSortChangeCommand", i+1)) #define SCORE_SORT_CHANGE_COMMAND(i) THEME->GetMetricA(m_sName,ssprintf("ScoreP%iSortChangeCommand", i+1))
#define SCORE_FRAME_SORT_CHANGE_COMMAND(i) THEME->GetMetricA(m_sName,ssprintf("ScoreFrameP%iSortChangeCommand", i+1)) #define SCORE_FRAME_SORT_CHANGE_COMMAND(i) THEME->GetMetricA(m_sName,ssprintf("ScoreFrameP%iSortChangeCommand", i+1))
static const ScreenMessage SM_AllowOptionsMenuRepeat = ScreenMessage(SM_User+1); static const AutoScreenMessage SM_AllowOptionsMenuRepeat;
static CString g_sCDTitlePath; static CString g_sCDTitlePath;
static bool g_bWantFallbackCdTitle; static bool g_bWantFallbackCdTitle;
@@ -1021,12 +1021,12 @@ void ScreenSelectMusic::ChangeDifficulty( PlayerNumber pn, int dir )
void ScreenSelectMusic::HandleScreenMessage( const ScreenMessage SM ) void ScreenSelectMusic::HandleScreenMessage( const ScreenMessage SM )
{ {
switch( SM ) if( SM == SM_AllowOptionsMenuRepeat )
{ {
case SM_AllowOptionsMenuRepeat:
m_bAllowOptionsMenuRepeat = true; m_bAllowOptionsMenuRepeat = true;
break; }
case SM_MenuTimer: else if( SM == SM_MenuTimer )
{
if( m_MusicWheel.IsRouletting() ) if( m_MusicWheel.IsRouletting() )
{ {
MenuStart(PLAYER_INVALID); MenuStart(PLAYER_INVALID);
@@ -1053,7 +1053,9 @@ void ScreenSelectMusic::HandleScreenMessage( const ScreenMessage SM )
MenuStart(PLAYER_INVALID); MenuStart(PLAYER_INVALID);
} }
return; return;
case SM_GoToPrevScreen: }
else if( SM == SM_GoToPrevScreen )
{
SCREENMAN->DeletePreparedScreens(); SCREENMAN->DeletePreparedScreens();
SCREENMAN->SetNewScreen( PREV_SCREEN ); SCREENMAN->SetNewScreen( PREV_SCREEN );
@@ -1062,14 +1064,17 @@ void ScreenSelectMusic::HandleScreenMessage( const ScreenMessage SM )
* the game state, so just discard them. */ * the game state, so just discard them. */
ClearMessageQueue(); ClearMessageQueue();
return; return;
case SM_BeginFadingOut: }
else if( SM == SM_BeginFadingOut )
{
/* XXX: yuck. Later on, maybe this can be done in one BGA with lua ... */ /* XXX: yuck. Later on, maybe this can be done in one BGA with lua ... */
if( m_bGoToOptions ) if( m_bGoToOptions )
m_bgOptionsOut.StartTransitioning( SM_GoToNextScreen ); m_bgOptionsOut.StartTransitioning( SM_GoToNextScreen );
else else
m_bgNoOptionsOut.StartTransitioning( SM_GoToNextScreen ); m_bgNoOptionsOut.StartTransitioning( SM_GoToNextScreen );
break; }
case SM_GoToNextScreen: else if( SM == SM_GoToNextScreen )
{
if( m_bGoToOptions ) if( m_bGoToOptions )
{ {
SCREENMAN->SetNewScreen( NEXT_OPTIONS_SCREEN ); SCREENMAN->SetNewScreen( NEXT_OPTIONS_SCREEN );
@@ -1081,22 +1086,27 @@ void ScreenSelectMusic::HandleScreenMessage( const ScreenMessage SM )
SCREENMAN->SetNewScreen( NEXT_SCREEN ); SCREENMAN->SetNewScreen( NEXT_SCREEN );
} }
return; return;
case SM_SongChanged: }
else if( SM == SM_SongChanged )
{
AfterMusicChange(); AfterMusicChange();
break; }
case SM_SortOrderChanging: /* happens immediately */ else if( SM == SM_SortOrderChanging ) /* happens immediately */
{
// m_MusicSortDisplay.FadeOff( 0, "fade", TWEEN_TIME ); // m_MusicSortDisplay.FadeOff( 0, "fade", TWEEN_TIME );
TweenScoreOnAndOffAfterChangeSort(); TweenScoreOnAndOffAfterChangeSort();
break; }
case SM_SortOrderChanged: /* happens after the wheel is off and the new song is selected */ else if( SM == SM_SortOrderChanged ) /* happens after the wheel is off and the new song is selected */
{
SortOrderChanged(); SortOrderChanged();
break; }
case SM_GainFocus: else if( SM == SM_GainFocus )
{
CodeDetector::RefreshCacheItems( CODES ); CodeDetector::RefreshCacheItems( CODES );
break; }
case SM_LoseFocus: else if( SM == SM_LoseFocus )
{
CodeDetector::RefreshCacheItems(); /* reset for other screens */ CodeDetector::RefreshCacheItems(); /* reset for other screens */
break;
} }
Screen::HandleScreenMessage( SM ); Screen::HandleScreenMessage( SM );
+2
View File
@@ -6,6 +6,8 @@
#include "ThemeManager.h" #include "ThemeManager.h"
#include "PrefsManager.h" #include "PrefsManager.h"
const AutoScreenMessage SM_BackFromSongOptions;
#define PREV_SCREEN THEME->GetMetric ("ScreenSongOptions","PrevScreen") #define PREV_SCREEN THEME->GetMetric ("ScreenSongOptions","PrevScreen")
#define NEXT_SCREEN THEME->GetMetric ("ScreenSongOptions","NextScreen") #define NEXT_SCREEN THEME->GetMetric ("ScreenSongOptions","NextScreen")
+1 -1
View File
@@ -3,7 +3,7 @@
#include "ScreenOptionsMaster.h" #include "ScreenOptionsMaster.h"
const ScreenMessage SM_BackFromSongOptions = (ScreenMessage)(SM_User+4); extern const AutoScreenMessage SM_BackFromSongOptions;
class ScreenSongOptions : public ScreenOptionsMaster class ScreenSongOptions : public ScreenOptionsMaster
{ {
+10 -11
View File
@@ -3,7 +3,7 @@
#include "ThemeManager.h" #include "ThemeManager.h"
#include "RageUtil.h" #include "RageUtil.h"
const ScreenMessage SM_PrepScreen = (ScreenMessage)(SM_User+0); const AutoScreenMessage SM_PrepScreen;
REGISTER_SCREEN_CLASS( ScreenSplash ); REGISTER_SCREEN_CLASS( ScreenSplash );
@@ -26,9 +26,7 @@ void ScreenSplash::Init()
void ScreenSplash::HandleScreenMessage( const ScreenMessage SM ) void ScreenSplash::HandleScreenMessage( const ScreenMessage SM )
{ {
switch( SM ) if( SM == SM_PrepScreen )
{
case SM_PrepScreen:
{ {
RageTimer length; RageTimer length;
if( PREPARE_SCREEN ) if( PREPARE_SCREEN )
@@ -39,20 +37,21 @@ void ScreenSplash::HandleScreenMessage( const ScreenMessage SM )
* no less than MINIMUM_DELAY seconds. */ * no less than MINIMUM_DELAY seconds. */
this->PostScreenMessage( SM_GoToNextScreen, max( 0, MINIMUM_LOAD_DELAY_SECONDS-fScreenLoadSeconds) ); this->PostScreenMessage( SM_GoToNextScreen, max( 0, MINIMUM_LOAD_DELAY_SECONDS-fScreenLoadSeconds) );
} }
break; else if( SM == SM_BeginFadingOut )
case SM_BeginFadingOut: {
StartTransitioning( SM_GoToNextScreen ); StartTransitioning( SM_GoToNextScreen );
break; }
case SM_GoToNextScreen: else if( SM == SM_GoToNextScreen )
{
if( SCREENMAN->IsStackedScreen(SCREENMAN->GetTopScreen()) ) if( SCREENMAN->IsStackedScreen(SCREENMAN->GetTopScreen()) )
SCREENMAN->PopTopScreen( SM_None ); SCREENMAN->PopTopScreen( SM_None );
else else
SCREENMAN->SetNewScreen( NEXT_SCREEN ); SCREENMAN->SetNewScreen( NEXT_SCREEN );
break; }
case SM_GoToPrevScreen: else if( SM == SM_GoToPrevScreen )
{
SCREENMAN->DeletePreparedScreens(); SCREENMAN->DeletePreparedScreens();
SCREENMAN->SetNewScreen( PREV_SCREEN ); SCREENMAN->SetNewScreen( PREV_SCREEN );
break;
} }
} }
+10 -12
View File
@@ -19,7 +19,7 @@
#define PREV_SCREEN THEME->GetMetric (m_sName,"PrevScreen") #define PREV_SCREEN THEME->GetMetric (m_sName,"PrevScreen")
#define MINIMUM_DELAY THEME->GetMetricF(m_sName,"MinimumDelay") #define MINIMUM_DELAY THEME->GetMetricF(m_sName,"MinimumDelay")
const ScreenMessage SM_PrepScreen = (ScreenMessage)(SM_User+0); const AutoScreenMessage SM_PrepScreen;
REGISTER_SCREEN_CLASS( ScreenStage ); REGISTER_SCREEN_CLASS( ScreenStage );
ScreenStage::ScreenStage( CString sClassName ) : Screen( sClassName ) ScreenStage::ScreenStage( CString sClassName ) : Screen( sClassName )
@@ -102,9 +102,7 @@ void ScreenStage::Init()
void ScreenStage::HandleScreenMessage( const ScreenMessage SM ) void ScreenStage::HandleScreenMessage( const ScreenMessage SM )
{ {
switch( SM ) if( SM == SM_PrepScreen )
{
case SM_PrepScreen:
{ {
RageTimer length; RageTimer length;
SCREENMAN->PrepareScreen( NEXT_SCREEN ); SCREENMAN->PrepareScreen( NEXT_SCREEN );
@@ -113,24 +111,24 @@ void ScreenStage::HandleScreenMessage( const ScreenMessage SM )
/* The screen load took fScreenLoadSeconds. Move on to the next screen after /* The screen load took fScreenLoadSeconds. Move on to the next screen after
* no less than MINIMUM_DELAY seconds. */ * no less than MINIMUM_DELAY seconds. */
this->PostScreenMessage( SM_BeginFadingOut, max( 0, MINIMUM_DELAY-fScreenLoadSeconds) ); this->PostScreenMessage( SM_BeginFadingOut, max( 0, MINIMUM_DELAY-fScreenLoadSeconds) );
break;
} }
case SM_BeginFadingOut: else if( SM == SM_BeginFadingOut )
{
m_Out.StartTransitioning(); m_Out.StartTransitioning();
FOREACH_PlayerNumber( p ) FOREACH_PlayerNumber( p )
OFF_COMMAND( m_sprCharacterIcon[p] ); OFF_COMMAND( m_sprCharacterIcon[p] );
OFF_COMMAND( m_SongTitle ); OFF_COMMAND( m_SongTitle );
OFF_COMMAND( m_Artist ); OFF_COMMAND( m_Artist );
this->PostScreenMessage( SM_GoToNextScreen, this->GetTweenTimeLeft() ); this->PostScreenMessage( SM_GoToNextScreen, this->GetTweenTimeLeft() );
}
break; else if( SM == SM_GoToNextScreen )
case SM_GoToNextScreen: {
SCREENMAN->SetNewScreen( NEXT_SCREEN ); SCREENMAN->SetNewScreen( NEXT_SCREEN );
break; }
case SM_GoToPrevScreen: else if( SM == SM_GoToPrevScreen )
{
SCREENMAN->DeletePreparedScreens(); SCREENMAN->DeletePreparedScreens();
SCREENMAN->SetNewScreen( PREV_SCREEN ); SCREENMAN->SetNewScreen( PREV_SCREEN );
break;
} }
} }
+12 -12
View File
@@ -16,8 +16,8 @@
#define NONSTOP_SCREEN THEME->GetMetric("ScreenStyleSplash","NonstopScreen") #define NONSTOP_SCREEN THEME->GetMetric("ScreenStyleSplash","NonstopScreen")
#define ONI_SCREEN THEME->GetMetric("ScreenStyleSplash","OniScreen") #define ONI_SCREEN THEME->GetMetric("ScreenStyleSplash","OniScreen")
const ScreenMessage SM_DoneOpening = ScreenMessage(SM_User-7); const AutoScreenMessage SM_DoneOpening;
const ScreenMessage SM_StartClosing = ScreenMessage(SM_User-8); const AutoScreenMessage SM_StartClosing;
REGISTER_SCREEN_CLASS( ScreenStyleSplash ); REGISTER_SCREEN_CLASS( ScreenStyleSplash );
@@ -61,21 +61,21 @@ void ScreenStyleSplash::Input( const DeviceInput& DeviceI, const InputEventType
void ScreenStyleSplash::HandleScreenMessage( const ScreenMessage SM ) void ScreenStyleSplash::HandleScreenMessage( const ScreenMessage SM )
{ {
switch( SM ) if( SM == SM_StartClosing )
{ {
case SM_StartClosing:
if( !IsTransitioning() ) if( !IsTransitioning() )
StartTransitioning( SM_GoToNextScreen ); StartTransitioning( SM_GoToNextScreen );
break; }
case SM_DoneOpening: else if( SM == SM_DoneOpening )
{
break; }
case SM_GoToPrevScreen: else if( SM == SM_GoToPrevScreen )
{
SCREENMAN->SetNewScreen( PREV_SCREEN ); SCREENMAN->SetNewScreen( PREV_SCREEN );
break; }
case SM_GoToNextScreen: else if( SM == SM_GoToNextScreen )
{
SCREENMAN->SetNewScreen( NEXT_SCREEN ); SCREENMAN->SetNewScreen( NEXT_SCREEN );
break;
} }
} }
+1 -1
View File
@@ -17,7 +17,7 @@ void ChangeText(CString txt)
{ {
CustomText = txt; CustomText = txt;
} }
const ScreenMessage SM_ChangeText = ScreenMessage(SM_User+1); const AutoScreenMessage SM_ChangeText;
void ScreenTestFonts::HandleScreenMessage( const ScreenMessage SM ) void ScreenTestFonts::HandleScreenMessage( const ScreenMessage SM )
{ {
+4
View File
@@ -2628,6 +2628,10 @@ SOURCE=.\ScreenMapControllers.h
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=.\ScreenMessage.cpp
# End Source File
# Begin Source File
SOURCE=.\ScreenMessage.h SOURCE=.\ScreenMessage.h
# End Source File # End Source File
# Begin Source File # Begin Source File
+3 -3
View File
@@ -373,6 +373,9 @@ cl /Zl /nologo /c verstub.cpp /Fo&quot;$(IntDir)&quot;\
<File <File
RelativePath="ScreenMapControllers.h"> RelativePath="ScreenMapControllers.h">
</File> </File>
<File
RelativePath="ScreenMessage.cpp">
</File>
<File <File
RelativePath="ScreenMessage.h"> RelativePath="ScreenMessage.h">
</File> </File>
@@ -767,9 +770,6 @@ cl /Zl /nologo /c verstub.cpp /Fo&quot;$(IntDir)&quot;\
<File <File
RelativePath="GameInput.h"> RelativePath="GameInput.h">
</File> </File>
<File
RelativePath="GameplayMessages.h">
</File>
<File <File
RelativePath=".\Grade.cpp"> RelativePath=".\Grade.cpp">
</File> </File>