From 1a6d60a6f173742c9fbaa9a69894392b2a2fadc5 Mon Sep 17 00:00:00 2001 From: Thad Ward Date: Wed, 27 Aug 2003 02:48:32 +0000 Subject: [PATCH] make the character select screen optional for modes that don't require a character. --- stepmania/src/GameState.cpp | 2 +- stepmania/src/PrefsManager.cpp | 6 +++--- stepmania/src/PrefsManager.h | 3 ++- stepmania/src/ScreenBackgroundOptions.cpp | 6 +++--- stepmania/src/ScreenSelectCharacter.cpp | 4 +++- 5 files changed, 12 insertions(+), 9 deletions(-) diff --git a/stepmania/src/GameState.cpp b/stepmania/src/GameState.cpp index 06564608a1..430de2decb 100644 --- a/stepmania/src/GameState.cpp +++ b/stepmania/src/GameState.cpp @@ -107,7 +107,7 @@ void GameState::Reset() for( p=0; pm_bShowDancingCharacters ) + if( PREFSMAN->m_ShowDancingCharacters == PrefsManager::CO_RANDOM) m_pCurCharacters[p] = GetRandomCharacter(); else m_pCurCharacters[p] = NULL; diff --git a/stepmania/src/PrefsManager.cpp b/stepmania/src/PrefsManager.cpp index ef1992bae8..037223b8bc 100644 --- a/stepmania/src/PrefsManager.cpp +++ b/stepmania/src/PrefsManager.cpp @@ -95,7 +95,7 @@ PrefsManager::PrefsManager() m_bAutogenMissingTypes = true; m_bAutogenGroupCourses = true; m_bBreakComboToGetItem = false; - m_bShowDancingCharacters = false; + m_ShowDancingCharacters = CO_OFF; m_bUseUnlockSystem = false; m_bFirstRun = true; m_bAutoMapJoysticks = true; @@ -241,7 +241,7 @@ void PrefsManager::ReadGlobalPrefsFromDisk( bool bSwitchToLastPlayedGame ) ini.GetValueB( "Options", "AutogenGroupCourses", m_bAutogenGroupCourses ); ini.GetValueB( "Options", "Timestamping", m_bTimestamping ); ini.GetValueB( "Options", "BreakComboToGetItem", m_bBreakComboToGetItem ); - ini.GetValueB( "Options", "ShowDancingCharacters", m_bShowDancingCharacters ); + ini.GetValueI( "Options", "ShowDancingCharacters", (int&)m_ShowDancingCharacters ); ini.GetValueB( "Options", "TenFooterInRed", m_bTenFooterInRed ); ini.GetValueI( "Options", "CourseSortOrder", (int&)m_iCourseSortOrder ); @@ -357,7 +357,7 @@ void PrefsManager::SaveGlobalPrefsToDisk() ini.SetValueB( "Options", "AutogenGroupCourses", m_bAutogenGroupCourses ); ini.SetValueB( "Options", "Timestamping", m_bTimestamping ); ini.SetValueB( "Options", "BreakComboToGetItem", m_bBreakComboToGetItem ); - ini.SetValueB( "Options", "ShowDancingCharacters", m_bShowDancingCharacters ); + ini.SetValueI( "Options", "ShowDancingCharacters", m_ShowDancingCharacters ); ini.SetValueB( "Options", "UseUnlockSystem", m_bUseUnlockSystem ); ini.SetValueB( "Options", "FirstRun", m_bFirstRun ); ini.SetValueB( "Options", "AutoMapJoysticks", m_bAutoMapJoysticks ); diff --git a/stepmania/src/PrefsManager.h b/stepmania/src/PrefsManager.h index d5142ace10..6834fec9fa 100644 --- a/stepmania/src/PrefsManager.h +++ b/stepmania/src/PrefsManager.h @@ -80,7 +80,8 @@ public: bool m_bAutogenMissingTypes; bool m_bAutogenGroupCourses; bool m_bBreakComboToGetItem; - bool m_bShowDancingCharacters; + enum CharacterOption { CO_OFF = 0, CO_RANDOM = 1, CO_SELECT = 2}; + CharacterOption m_ShowDancingCharacters; bool m_bUseUnlockSystem; bool m_bFirstRun; bool m_bAutoMapJoysticks; diff --git a/stepmania/src/ScreenBackgroundOptions.cpp b/stepmania/src/ScreenBackgroundOptions.cpp index 0e0bc5a785..ca30457812 100644 --- a/stepmania/src/ScreenBackgroundOptions.cpp +++ b/stepmania/src/ScreenBackgroundOptions.cpp @@ -37,7 +37,7 @@ OptionRow g_BackgroundOptionsLines[NUM_BACKGROUND_OPTIONS_LINES] = { OptionRow( "Mode", true, "OFF","ANIMATIONS","VISUALIZATIONS","RANDOM MOVIES" ), OptionRow( "Brightness", true, "0%","10%","20%","30%","40%","50%","60%","70%","80%","90%","100%" ), OptionRow( "Danger", true, "HIDE","SHOW" ), - OptionRow( "Dancing\nCharacters", true, "DEFAULT TO OFF","DEFAULT TO RANDOM" ), + OptionRow( "Dancing\nCharacters", true, "DEFAULT TO OFF","DEFAULT TO RANDOM","SELECT" ), OptionRow( "Show Beginner\nHelper", true, "OFF","ON" ), OptionRow( "Random\nBackgrounds", true, "5","10","15","20" ), }; @@ -62,7 +62,7 @@ void ScreenBackgroundOptions::ImportOptions() m_iSelectedOption[0][BO_MODE] = PREFSMAN->m_BackgroundMode; m_iSelectedOption[0][BO_BRIGHTNESS] = (int)( PREFSMAN->m_fBGBrightness*10+0.5f ); m_iSelectedOption[0][BO_DANGER] = PREFSMAN->m_bShowDanger ? 1:0; - m_iSelectedOption[0][BO_DANCING_CHARACTERS] = PREFSMAN->m_bShowDancingCharacters? 1:0; + m_iSelectedOption[0][BO_DANCING_CHARACTERS] = PREFSMAN->m_ShowDancingCharacters; m_iSelectedOption[0][BO_SHOW_BEGINNER_HELPER] = PREFSMAN->m_bShowBeginnerHelper? 1:0; m_iSelectedOption[0][BO_RANDOM_BACKGROUNDS] = clamp((PREFSMAN->m_iNumBackgrounds/5)-1, 0, 3); } @@ -72,7 +72,7 @@ void ScreenBackgroundOptions::ExportOptions() (int&)PREFSMAN->m_BackgroundMode = m_iSelectedOption[0][BO_MODE]; PREFSMAN->m_fBGBrightness = m_iSelectedOption[0][BO_BRIGHTNESS] / 10.0f; PREFSMAN->m_bShowDanger = m_iSelectedOption[0][BO_DANGER] == 1; - PREFSMAN->m_bShowDancingCharacters = m_iSelectedOption[0][BO_DANCING_CHARACTERS] == 1; + PREFSMAN->m_ShowDancingCharacters = (PrefsManager::CharacterOption)m_iSelectedOption[0][BO_DANCING_CHARACTERS]; PREFSMAN->m_bShowBeginnerHelper = m_iSelectedOption[0][BO_SHOW_BEGINNER_HELPER] == 1; PREFSMAN->m_iNumBackgrounds = (m_iSelectedOption[0][BO_RANDOM_BACKGROUNDS]+1) * 5; } diff --git a/stepmania/src/ScreenSelectCharacter.cpp b/stepmania/src/ScreenSelectCharacter.cpp index d2ee751008..bda377c6e2 100644 --- a/stepmania/src/ScreenSelectCharacter.cpp +++ b/stepmania/src/ScreenSelectCharacter.cpp @@ -20,6 +20,7 @@ #include "AnnouncerManager.h" #include "GameState.h" #include "Character.h" +#include "PrefsManager.h" #define TITLE_ON_COMMAND( p ) THEME->GetMetric ("ScreenSelectCharacter",ssprintf("TitleP%dOnCommand",p+1)) @@ -53,7 +54,8 @@ ScreenSelectCharacter::ScreenSelectCharacter() : Screen("ScreenSelectCharacter") { LOG->Trace( "ScreenSelectCharacter::ScreenSelectCharacter()" ); - if( GAMESTATE->m_pCharacters.empty() ) + if( GAMESTATE->m_pCharacters.empty() || + (GAMESTATE->m_PlayMode != PLAY_MODE_BATTLE && GAMESTATE->m_PlayMode != PLAY_MODE_RAVE && PREFSMAN->m_ShowDancingCharacters != PrefsManager::CO_SELECT )) { HandleScreenMessage( SM_GoToNextScreen ); return;