diff --git a/src/Actor.cpp b/src/Actor.cpp index d7e8f3f4b2..917f4cc45f 100644 --- a/src/Actor.cpp +++ b/src/Actor.cpp @@ -722,12 +722,13 @@ void Actor::UpdateInternal( float fDeltaTime ) // todo: account for SSC_FUTURES -aj switch( m_Effect ) { - case spin: - m_current.rotation += m_fEffectDelta*m_vEffectMagnitude; - wrap( m_current.rotation.x, 360 ); - wrap( m_current.rotation.y, 360 ); - wrap( m_current.rotation.z, 360 ); - break; + case spin: + m_current.rotation += m_fEffectDelta*m_vEffectMagnitude; + wrap( m_current.rotation.x, 360 ); + wrap( m_current.rotation.y, 360 ); + wrap( m_current.rotation.z, 360 ); + break; + default: break; } UpdateTweening( fDeltaTime ); diff --git a/src/BGAnimationLayer.cpp b/src/BGAnimationLayer.cpp index 42a09a5571..d7ff56ca07 100644 --- a/src/BGAnimationLayer.cpp +++ b/src/BGAnimationLayer.cpp @@ -189,11 +189,11 @@ void BGAnimationLayer::LoadFromAniLayerFile( const RString& sPath ) switch( effect ) { - case EFFECT_STRETCH_SCROLL_LEFT: m_fTexCoordVelocityX = +0.5f; m_fTexCoordVelocityY = 0; break; - case EFFECT_STRETCH_SCROLL_RIGHT: m_fTexCoordVelocityX = -0.5f; m_fTexCoordVelocityY = 0; break; - case EFFECT_STRETCH_SCROLL_UP: m_fTexCoordVelocityX = 0; m_fTexCoordVelocityY = +0.5f; break; - case EFFECT_STRETCH_SCROLL_DOWN: m_fTexCoordVelocityX = 0; m_fTexCoordVelocityY = -0.5f; break; - break; + case EFFECT_STRETCH_SCROLL_LEFT: m_fTexCoordVelocityX = +0.5f; m_fTexCoordVelocityY = 0; break; + case EFFECT_STRETCH_SCROLL_RIGHT: m_fTexCoordVelocityX = -0.5f; m_fTexCoordVelocityY = 0; break; + case EFFECT_STRETCH_SCROLL_UP: m_fTexCoordVelocityX = 0; m_fTexCoordVelocityY = +0.5f; break; + case EFFECT_STRETCH_SCROLL_DOWN: m_fTexCoordVelocityX = 0; m_fTexCoordVelocityY = -0.5f; break; + default: break; } } break; diff --git a/src/Course.cpp b/src/Course.cpp index 8993e8b44b..bfe93c1e70 100644 --- a/src/Course.cpp +++ b/src/Course.cpp @@ -429,12 +429,14 @@ bool Course::GetTrailUnsorted( StepsType st, CourseDifficulty cd, Trail &trail ) { trail.Init(); + // XXX: Why are beginner and challenge excluded here? -Wolfman2000 switch( cd ) { - case Difficulty_Beginner: - return false; - case Difficulty_Challenge: - return false; + case Difficulty_Beginner: + return false; + case Difficulty_Challenge: + return false; + default: break; } // Construct a new Trail, add it to the cache, then return it. diff --git a/src/DancingCharacters.cpp b/src/DancingCharacters.cpp index 403277580c..6b2228e267 100644 --- a/src/DancingCharacters.cpp +++ b/src/DancingCharacters.cpp @@ -131,10 +131,11 @@ DancingCharacters::DancingCharacters(): m_bDrawDangerLight(false), switch( GAMESTATE->m_PlayMode ) { - case PLAY_MODE_BATTLE: - case PLAY_MODE_RAVE: - m_pCharacter[p]->SetRotationY( MODEL_ROTATIONY_TWO_PLAYERS[p] ); - break; + case PLAY_MODE_BATTLE: + case PLAY_MODE_RAVE: + m_pCharacter[p]->SetRotationY( MODEL_ROTATIONY_TWO_PLAYERS[p] ); + default: + break; } m_pCharacter[p]->LoadMilkshapeAscii( pChar->GetModelPath() ); diff --git a/src/EditMenu.cpp b/src/EditMenu.cpp index 274ff975b8..72076ba71b 100644 --- a/src/EditMenu.cpp +++ b/src/EditMenu.cpp @@ -275,12 +275,12 @@ bool EditMenu::RowIsSelectable( EditMenuRow row ) { switch( row ) { - case ROW_SOURCE_STEPS_TYPE: - case ROW_SOURCE_STEPS: - return false; + case ROW_SOURCE_STEPS_TYPE: + case ROW_SOURCE_STEPS: + return false; + default: return true; } } - return true; } diff --git a/src/GameCommand.cpp b/src/GameCommand.cpp index 0f6ac72104..a78091761e 100644 --- a/src/GameCommand.cpp +++ b/src/GameCommand.cpp @@ -465,22 +465,21 @@ static bool AreStyleAndPlayModeCompatible( const Style *style, PlayMode pm ) switch( pm ) { - case PLAY_MODE_BATTLE: - case PLAY_MODE_RAVE: - // Can't play rave if there isn't enough room for two players. - // This is correct for dance (ie, no rave for solo and doubles), - // and should be okay for pump.. not sure about other game types. - // Techno Motion scales down versus arrows, though, so allow this. - if( style->m_iColsPerPlayer >= 6 && RString(GAMESTATE->m_pCurGame->m_szName) != "techno" ) - return false; + case PLAY_MODE_BATTLE: + case PLAY_MODE_RAVE: + // Can't play rave if there isn't enough room for two players. + // This is correct for dance (ie, no rave for solo and doubles), + // and should be okay for pump.. not sure about other game types. + // Techno Motion scales down versus arrows, though, so allow this. + if( style->m_iColsPerPlayer >= 6 && RString(GAMESTATE->m_pCurGame->m_szName) != "techno" ) + return false; - // Don't allow battle modes if the style takes both sides. - if( style->m_StyleType==StyleType_OnePlayerTwoSides || - style->m_StyleType==StyleType_TwoPlayersSharedSides ) - return false; + // Don't allow battle modes if the style takes both sides. + if( style->m_StyleType==StyleType_OnePlayerTwoSides || + style->m_StyleType==StyleType_TwoPlayersSharedSides ) + return false; + default: return true; } - - return true; } bool GameCommand::IsPlayable( RString *why ) const @@ -500,9 +499,10 @@ bool GameCommand::IsPlayable( RString *why ) const switch( GAMESTATE->GetCoinMode() ) { - case CoinMode_Home: - case CoinMode_Free: - iCredits = NUM_PLAYERS; // not iNumCreditsPaid + case CoinMode_Home: + case CoinMode_Free: + iCredits = NUM_PLAYERS; // not iNumCreditsPaid + default: break; } /* With PREFSMAN->m_bDelayedCreditsReconcile disabled, enough credits must diff --git a/src/GameState.cpp b/src/GameState.cpp index 35d61decd0..ff265e5f5b 100644 --- a/src/GameState.cpp +++ b/src/GameState.cpp @@ -747,7 +747,9 @@ void GameState::CancelStage() { case PLAY_MODE_BATTLE: case PLAY_MODE_RAVE: - m_iPlayerStageTokens[p] = PREFSMAN->m_iSongsPerPlay; + m_iPlayerStageTokens[p] = PREFSMAN->m_iSongsPerPlay; + default: + break; } } @@ -1169,12 +1171,12 @@ bool GameState::IsPlayerEnabled( PlayerNumber pn ) const // In rave, all players are present. Non-human players are CPU controlled. switch( m_PlayMode ) { - case PLAY_MODE_BATTLE: - case PLAY_MODE_RAVE: - return true; + case PLAY_MODE_BATTLE: + case PLAY_MODE_RAVE: + return true; + default: + return IsHumanPlayer(pn); } - - return IsHumanPlayer( pn ); } bool GameState::IsMultiPlayerEnabled( MultiPlayer mp ) const @@ -1346,16 +1348,17 @@ StageResult GameState::GetStageResult( PlayerNumber pn ) const { switch( m_PlayMode ) { - case PLAY_MODE_BATTLE: - case PLAY_MODE_RAVE: - if( fabsf(m_fTugLifePercentP1 - 0.5f) < 0.0001f ) - return RESULT_DRAW; - switch( pn ) - { - case PLAYER_1: return (m_fTugLifePercentP1>=0.5f)?RESULT_WIN:RESULT_LOSE; - case PLAYER_2: return (m_fTugLifePercentP1<0.5f)?RESULT_WIN:RESULT_LOSE; - default: ASSERT(0); return RESULT_LOSE; - } + case PLAY_MODE_BATTLE: + case PLAY_MODE_RAVE: + if( fabsf(m_fTugLifePercentP1 - 0.5f) < 0.0001f ) + return RESULT_DRAW; + switch( pn ) + { + case PLAYER_1: return (m_fTugLifePercentP1>=0.5f)?RESULT_WIN:RESULT_LOSE; + case PLAYER_2: return (m_fTugLifePercentP1<0.5f)?RESULT_WIN:RESULT_LOSE; + default: FAIL_M("Invalid player for battle! Aborting..."); return RESULT_LOSE; + } + default: break; } StageResult win = RESULT_WIN; diff --git a/src/Inventory.cpp b/src/Inventory.cpp index b45b779449..70928245c7 100644 --- a/src/Inventory.cpp +++ b/src/Inventory.cpp @@ -72,16 +72,19 @@ void Inventory::Load( PlayerState* pPlayerState ) // don't load battle sounds if they're not going to be used switch( GAMESTATE->m_PlayMode ) { - case PLAY_MODE_BATTLE: - m_soundAcquireItem.Load( THEME->GetPathS("Inventory","aquire item") ); - for( unsigned i=0; iLoad( THEME->GetPathS("Inventory",ssprintf("use item %u",i+1)) ); - m_vpSoundUseItem.push_back( pSound ); + m_soundAcquireItem.Load( THEME->GetPathS("Inventory","aquire item") ); + for( unsigned i=0; iLoad( THEME->GetPathS("Inventory",ssprintf("use item %u",i+1)) ); + m_vpSoundUseItem.push_back( pSound ); + } + m_soundItemEnding.Load( THEME->GetPathS("Inventory","item ending") ); + break; } - m_soundItemEnding.Load( THEME->GetPathS("Inventory","item ending") ); - break; + default: break; } } diff --git a/src/LifeMeterBar.cpp b/src/LifeMeterBar.cpp index bbc101058a..4c7eee2ed7 100644 --- a/src/LifeMeterBar.cpp +++ b/src/LifeMeterBar.cpp @@ -212,12 +212,13 @@ void LifeMeterBar::ChangeLife( float fDeltaLife ) switch( GAMESTATE->m_SongOptions.GetSong().m_DrainType ) { - case SongOptions::DRAIN_NORMAL: - case SongOptions::DRAIN_NO_RECOVER: - if( fDeltaLife > 0 ) - fDeltaLife *= m_fLifeDifficulty; - else - fDeltaLife /= m_fLifeDifficulty; + case SongOptions::DRAIN_NORMAL: + case SongOptions::DRAIN_NO_RECOVER: + if( fDeltaLife > 0 ) + fDeltaLife *= m_fLifeDifficulty; + else + fDeltaLife /= m_fLifeDifficulty; + default: break; } diff --git a/src/MemoryCardManager.cpp b/src/MemoryCardManager.cpp index 6a40d6ee6a..b3ddb9e87e 100644 --- a/src/MemoryCardManager.cpp +++ b/src/MemoryCardManager.cpp @@ -449,22 +449,23 @@ void MemoryCardManager::CheckStateChanges() { switch( new_device.m_State ) { - case UsbStorageDevice::STATE_NONE: - state = MemoryCardState_NoCard; - break; + case UsbStorageDevice::STATE_NONE: + state = MemoryCardState_NoCard; + break; - case UsbStorageDevice::STATE_CHECKING: - state = MemoryCardState_Checking; - break; + case UsbStorageDevice::STATE_CHECKING: + state = MemoryCardState_Checking; + break; - case UsbStorageDevice::STATE_ERROR: - state = MemoryCardState_Error; - sError = new_device.m_sError; - break; + case UsbStorageDevice::STATE_ERROR: + state = MemoryCardState_Error; + sError = new_device.m_sError; + break; - case UsbStorageDevice::STATE_READY: - state = MemoryCardState_Ready; - break; + case UsbStorageDevice::STATE_READY: + state = MemoryCardState_Ready; + break; + default: break; } } @@ -476,23 +477,24 @@ void MemoryCardManager::CheckStateChanges() params.m_bIsCriticalSound = true; switch( state ) { - case MemoryCardState_NoCard: - case MemoryCardState_Removed: - if( LastState == MemoryCardState_Ready ) - { - m_soundDisconnect.Play( ¶ms ); - MESSAGEMAN->Broadcast( (MessageID)(Message_CardRemovedP1+p) ); - } - break; - case MemoryCardState_Ready: - m_soundReady.Play( ¶ms ); - break; - case MemoryCardState_TooLate: - m_soundTooLate.Play( ¶ms ); - break; - case MemoryCardState_Error: - m_soundError.Play( ¶ms ); - break; + case MemoryCardState_NoCard: + case MemoryCardState_Removed: + if( LastState == MemoryCardState_Ready ) + { + m_soundDisconnect.Play( ¶ms ); + MESSAGEMAN->Broadcast( (MessageID)(Message_CardRemovedP1+p) ); + } + break; + case MemoryCardState_Ready: + m_soundReady.Play( ¶ms ); + break; + case MemoryCardState_TooLate: + m_soundTooLate.Play( ¶ms ); + break; + case MemoryCardState_Error: + m_soundError.Play( ¶ms ); + break; + default: break; } m_State[p] = state; diff --git a/src/MusicWheel.cpp b/src/MusicWheel.cpp index 5c7d9a6b6b..ebdb79338d 100644 --- a/src/MusicWheel.cpp +++ b/src/MusicWheel.cpp @@ -42,23 +42,23 @@ static SortOrder ForceAppropriateSort( PlayMode pm, SortOrder so ) { switch( pm ) { - // in course modes, force a particular sort - case PLAY_MODE_ONI: return SORT_ONI_COURSES; - case PLAY_MODE_NONSTOP: return SORT_NONSTOP_COURSES; - case PLAY_MODE_ENDLESS: return SORT_ENDLESS_COURSES; + // in course modes, force a particular sort + case PLAY_MODE_ONI: return SORT_ONI_COURSES; + case PLAY_MODE_NONSTOP: return SORT_NONSTOP_COURSES; + case PLAY_MODE_ENDLESS: return SORT_ENDLESS_COURSES; + default: break; } // If we're not in a course mode, don't start in a course sort. switch( so ) { - case SORT_ONI_COURSES: - case SORT_NONSTOP_COURSES: - case SORT_ENDLESS_COURSES: - so = SortOrder_Invalid; - break; + case SORT_ONI_COURSES: + case SORT_NONSTOP_COURSES: + case SORT_ENDLESS_COURSES: + so = SortOrder_Invalid; + default: + return so; } - - return so; } MusicWheelItem *MusicWheel::MakeItem() @@ -490,7 +490,7 @@ void MusicWheel::BuildWheelItemDatas( vector &arrayWheelIt { switch( so ) { - case SORT_MODE_MENU: + case SORT_MODE_MENU: { arrayWheelItemDatas.clear(); // clear out the previous wheel items vector vsNames; @@ -510,22 +510,22 @@ void MusicWheel::BuildWheelItemDatas( vector &arrayWheelIt } break; } - case SORT_PREFERRED: - case SORT_ROULETTE: - case SORT_GROUP: - case SORT_TITLE: - case SORT_BPM: - case SORT_POPULARITY: - case SORT_TOP_GRADES: - case SORT_ARTIST: - case SORT_GENRE: - case SORT_BEGINNER_METER: - case SORT_EASY_METER: - case SORT_MEDIUM_METER: - case SORT_HARD_METER: - case SORT_CHALLENGE_METER: - case SORT_LENGTH: - case SORT_RECENT: + case SORT_PREFERRED: + case SORT_ROULETTE: + case SORT_GROUP: + case SORT_TITLE: + case SORT_BPM: + case SORT_POPULARITY: + case SORT_TOP_GRADES: + case SORT_ARTIST: + case SORT_GENRE: + case SORT_BEGINNER_METER: + case SORT_EASY_METER: + case SORT_MEDIUM_METER: + case SORT_HARD_METER: + case SORT_CHALLENGE_METER: + case SORT_LENGTH: + case SORT_RECENT: { // Make an array of Song*, then sort them vector arraySongs; @@ -536,72 +536,72 @@ void MusicWheel::BuildWheelItemDatas( vector &arrayWheelIt // sort the songs switch( so ) { - case SORT_PREFERRED: - // obey order specified by the preferred sort list - break; - case SORT_ROULETTE: - { - StepsType st; - Difficulty dc; - SongUtil::GetStepsTypeAndDifficultyFromSortOrder( SORT_EASY_METER, st, dc ); - SongUtil::SortSongPointerArrayByStepsTypeAndMeter( arraySongs, st, dc ); - if( (bool)PREFSMAN->m_bPreferredSortUsesGroups ) - stable_sort( arraySongs.begin(), arraySongs.end(), SongUtil::CompareSongPointersByGroup ); - bUseSections = false; - break; - } - case SORT_GROUP: - SongUtil::SortSongPointerArrayByGroupAndTitle( arraySongs ); - if(USE_SECTIONS_WITH_PREFERRED_GROUP) - bUseSections = true; - else - bUseSections = GAMESTATE->m_sPreferredSongGroup == GROUP_ALL; - break; - case SORT_TITLE: - SongUtil::SortSongPointerArrayByTitle( arraySongs ); - break; - case SORT_BPM: - SongUtil::SortSongPointerArrayByBPM( arraySongs ); - break; - case SORT_POPULARITY: - if( (int) arraySongs.size() > MOST_PLAYED_SONGS_TO_SHOW ) - arraySongs.erase( arraySongs.begin()+MOST_PLAYED_SONGS_TO_SHOW, arraySongs.end() ); - bUseSections = false; - break; - case SORT_TOP_GRADES: - SongUtil::SortSongPointerArrayByGrades( arraySongs, true ); - break; - case SORT_ARTIST: - SongUtil::SortSongPointerArrayByArtist( arraySongs ); - break; - case SORT_GENRE: - SongUtil::SortSongPointerArrayByGenre( arraySongs ); - break; - case SORT_LENGTH: - SongUtil::SortSongPointerArrayByLength( arraySongs ); - break; - case SORT_RECENT: - SongUtil::SortByMostRecentlyPlayedForMachine( arraySongs ); - if( (int) arraySongs.size() > RECENT_SONGS_TO_SHOW ) - arraySongs.erase( arraySongs.begin()+RECENT_SONGS_TO_SHOW, arraySongs.end() ); - bUseSections = false; - break; - case SORT_BEGINNER_METER: - case SORT_EASY_METER: - case SORT_MEDIUM_METER: - case SORT_HARD_METER: - case SORT_CHALLENGE_METER: - case SORT_DOUBLE_EASY_METER: - case SORT_DOUBLE_MEDIUM_METER: - case SORT_DOUBLE_HARD_METER: - case SORT_DOUBLE_CHALLENGE_METER: - StepsType st; - Difficulty dc; - SongUtil::GetStepsTypeAndDifficultyFromSortOrder( so, st, dc ); - SongUtil::SortSongPointerArrayByStepsTypeAndMeter( arraySongs, st, dc ); - break; - default: - ASSERT(0); // unhandled SortOrder + case SORT_PREFERRED: + // obey order specified by the preferred sort list + break; + case SORT_ROULETTE: + { + StepsType st; + Difficulty dc; + SongUtil::GetStepsTypeAndDifficultyFromSortOrder( SORT_EASY_METER, st, dc ); + SongUtil::SortSongPointerArrayByStepsTypeAndMeter( arraySongs, st, dc ); + if( (bool)PREFSMAN->m_bPreferredSortUsesGroups ) + stable_sort( arraySongs.begin(), arraySongs.end(), SongUtil::CompareSongPointersByGroup ); + bUseSections = false; + break; + } + case SORT_GROUP: + SongUtil::SortSongPointerArrayByGroupAndTitle( arraySongs ); + if(USE_SECTIONS_WITH_PREFERRED_GROUP) + bUseSections = true; + else + bUseSections = GAMESTATE->m_sPreferredSongGroup == GROUP_ALL; + break; + case SORT_TITLE: + SongUtil::SortSongPointerArrayByTitle( arraySongs ); + break; + case SORT_BPM: + SongUtil::SortSongPointerArrayByBPM( arraySongs ); + break; + case SORT_POPULARITY: + if( (int) arraySongs.size() > MOST_PLAYED_SONGS_TO_SHOW ) + arraySongs.erase( arraySongs.begin()+MOST_PLAYED_SONGS_TO_SHOW, arraySongs.end() ); + bUseSections = false; + break; + case SORT_TOP_GRADES: + SongUtil::SortSongPointerArrayByGrades( arraySongs, true ); + break; + case SORT_ARTIST: + SongUtil::SortSongPointerArrayByArtist( arraySongs ); + break; + case SORT_GENRE: + SongUtil::SortSongPointerArrayByGenre( arraySongs ); + break; + case SORT_LENGTH: + SongUtil::SortSongPointerArrayByLength( arraySongs ); + break; + case SORT_RECENT: + SongUtil::SortByMostRecentlyPlayedForMachine( arraySongs ); + if( (int) arraySongs.size() > RECENT_SONGS_TO_SHOW ) + arraySongs.erase( arraySongs.begin()+RECENT_SONGS_TO_SHOW, arraySongs.end() ); + bUseSections = false; + break; + case SORT_BEGINNER_METER: + case SORT_EASY_METER: + case SORT_MEDIUM_METER: + case SORT_HARD_METER: + case SORT_CHALLENGE_METER: + case SORT_DOUBLE_EASY_METER: + case SORT_DOUBLE_MEDIUM_METER: + case SORT_DOUBLE_HARD_METER: + case SORT_DOUBLE_CHALLENGE_METER: + StepsType st; + Difficulty dc; + SongUtil::GetStepsTypeAndDifficultyFromSortOrder( so, st, dc ); + SongUtil::SortSongPointerArrayByStepsTypeAndMeter( arraySongs, st, dc ); + break; + default: + FAIL_M("Unhandled sort order! Aborting..."); } // Build an array of WheelItemDatas from the sorted list of Song*'s @@ -610,13 +610,15 @@ void MusicWheel::BuildWheelItemDatas( vector &arrayWheelIt switch( PREFSMAN->m_MusicWheelUsesSections ) { - case MusicWheelUsesSections_NEVER: - bUseSections = false; - break; - case MusicWheelUsesSections_ABC_ONLY: - if( so != SORT_TITLE && so != SORT_GROUP ) + case MusicWheelUsesSections_NEVER: bUseSections = false; - break; + break; + case MusicWheelUsesSections_ABC_ONLY: + if( so != SORT_TITLE && so != SORT_GROUP ) + bUseSections = false; + break; + default: + break; } if( bUseSections ) @@ -630,13 +632,13 @@ void MusicWheel::BuildWheelItemDatas( vector &arrayWheelIt /* We're using sections, so use the section name as the top-level sort. */ switch( so ) { - case SORT_PREFERRED: - case SORT_TOP_GRADES: - case SORT_BPM: - break; // don't sort by section - default: - SongUtil::SortSongPointerArrayBySectionName(arraySongs, so); - break; + case SORT_PREFERRED: + case SORT_TOP_GRADES: + case SORT_BPM: + break; // don't sort by section + default: + SongUtil::SortSongPointerArrayBySectionName(arraySongs, so); + break; } } @@ -731,10 +733,10 @@ void MusicWheel::BuildWheelItemDatas( vector &arrayWheelIt } break; } - case SORT_ALL_COURSES: - case SORT_NONSTOP_COURSES: - case SORT_ONI_COURSES: - case SORT_ENDLESS_COURSES: + case SORT_ALL_COURSES: + case SORT_NONSTOP_COURSES: + case SORT_ONI_COURSES: + case SORT_ENDLESS_COURSES: { bool bOnlyPreferred = PREFSMAN->m_CourseSortOrder == COURSE_SORT_PREFERRED; @@ -769,21 +771,21 @@ void MusicWheel::BuildWheelItemDatas( vector &arrayWheelIt switch( PREFSMAN->m_CourseSortOrder ) { - case COURSE_SORT_SONGS: - CourseUtil::SortCoursePointerArrayByDifficulty( apCourses ); - break; - case COURSE_SORT_PREFERRED: - break; - case COURSE_SORT_METER: - CourseUtil::SortCoursePointerArrayByAvgDifficulty( apCourses ); - break; - case COURSE_SORT_METER_SUM: - CourseUtil::SortCoursePointerArrayByTotalDifficulty( apCourses ); - break; - case COURSE_SORT_RANK: - CourseUtil::SortCoursePointerArrayByRanking( apCourses ); - break; - default: ASSERT(0); + case COURSE_SORT_SONGS: + CourseUtil::SortCoursePointerArrayByDifficulty( apCourses ); + break; + case COURSE_SORT_PREFERRED: + break; + case COURSE_SORT_METER: + CourseUtil::SortCoursePointerArrayByAvgDifficulty( apCourses ); + break; + case COURSE_SORT_METER_SUM: + CourseUtil::SortCoursePointerArrayByTotalDifficulty( apCourses ); + break; + case COURSE_SORT_RANK: + CourseUtil::SortCoursePointerArrayByRanking( apCourses ); + break; + default: FAIL_M("Impossible to sort the courses! Aborting..."); } // since we can't agree, make it an option @@ -810,9 +812,10 @@ void MusicWheel::BuildWheelItemDatas( vector &arrayWheelIt { switch( pCourse->GetPlayMode() ) { - case PLAY_MODE_ONI: sThisSection = "Oni"; break; - case PLAY_MODE_NONSTOP: sThisSection = "Nonstop"; break; - case PLAY_MODE_ENDLESS: sThisSection = "Endless"; break; + case PLAY_MODE_ONI: sThisSection = "Oni"; break; + case PLAY_MODE_NONSTOP: sThisSection = "Nonstop"; break; + case PLAY_MODE_ENDLESS: sThisSection = "Endless"; break; + default: break; } } @@ -833,6 +836,8 @@ void MusicWheel::BuildWheelItemDatas( vector &arrayWheelIt } break; } + default: + break; } // init music status icons @@ -1227,23 +1232,24 @@ bool MusicWheel::Select() // return true if this selection ends the screen switch( m_WheelState ) { - case STATE_FLYING_OFF_BEFORE_NEXT_SORT: - case STATE_ROULETTE_SLOWING_DOWN: - return false; - case STATE_ROULETTE_SPINNING: - m_WheelState = STATE_ROULETTE_SLOWING_DOWN; - m_iSwitchesLeftInSpinDown = ROULETTE_SLOW_DOWN_SWITCHES/2+1 + RandomInt( ROULETTE_SLOW_DOWN_SWITCHES/2 ); - m_fTimeLeftInState = 0.1f; - return false; - case STATE_RANDOM_SPINNING: - m_fPositionOffsetFromSelection = max(m_fPositionOffsetFromSelection, 0.3f); - m_WheelState = STATE_LOCKED; - SCREENMAN->PlayStartSound(); - m_fLockedWheelVelocity = 0; - // Set m_Moving to zero to stop the sounds from playing. - m_Moving = 0; - SCREENMAN->PostMessageToTopScreen( SM_SongChanged, 0 ); - return true; + case STATE_FLYING_OFF_BEFORE_NEXT_SORT: + case STATE_ROULETTE_SLOWING_DOWN: + return false; + case STATE_ROULETTE_SPINNING: + m_WheelState = STATE_ROULETTE_SLOWING_DOWN; + m_iSwitchesLeftInSpinDown = ROULETTE_SLOW_DOWN_SWITCHES/2+1 + RandomInt( ROULETTE_SLOW_DOWN_SWITCHES/2 ); + m_fTimeLeftInState = 0.1f; + return false; + case STATE_RANDOM_SPINNING: + m_fPositionOffsetFromSelection = max(m_fPositionOffsetFromSelection, 0.3f); + m_WheelState = STATE_LOCKED; + SCREENMAN->PlayStartSound(); + m_fLockedWheelVelocity = 0; + // Set m_Moving to zero to stop the sounds from playing. + m_Moving = 0; + SCREENMAN->PostMessageToTopScreen( SM_SongChanged, 0 ); + return true; + default: break; } if( !WheelBase::Select() ) @@ -1251,29 +1257,25 @@ bool MusicWheel::Select() // return true if this selection ends the screen switch( m_CurWheelItemData[m_iSelection]->m_Type ) { - case TYPE_ROULETTE: - StartRoulette(); - return false; - case TYPE_RANDOM: - StartRandom(); - return false; - case TYPE_SONG: - case TYPE_COURSE: - case TYPE_PORTAL: - break; - case TYPE_SORT: - GetCurWheelItemData(m_iSelection)->m_pAction->ApplyToAllPlayers(); - ChangeSort( GAMESTATE->m_PreferredSortOrder ); - m_sLastModeMenuItem = GetCurWheelItemData(m_iSelection)->m_pAction->m_sName; - return false; - case TYPE_CUSTOM: - GetCurWheelItemData(m_iSelection)->m_pAction->ApplyToAllPlayers(); - if( GetCurWheelItemData(m_iSelection)->m_pAction->m_sScreen != "" ) - return true; - else + case TYPE_ROULETTE: + StartRoulette(); return false; + case TYPE_RANDOM: + StartRandom(); + return false; + case TYPE_SORT: + GetCurWheelItemData(m_iSelection)->m_pAction->ApplyToAllPlayers(); + ChangeSort( GAMESTATE->m_PreferredSortOrder ); + m_sLastModeMenuItem = GetCurWheelItemData(m_iSelection)->m_pAction->m_sName; + return false; + case TYPE_CUSTOM: + GetCurWheelItemData(m_iSelection)->m_pAction->ApplyToAllPlayers(); + if( GetCurWheelItemData(m_iSelection)->m_pAction->m_sScreen != "" ) + return true; + else + return false; + default: return true; } - return true; } void MusicWheel::StartRoulette() @@ -1517,11 +1519,11 @@ Song* MusicWheel::GetSelectedSong() { switch( m_CurWheelItemData[m_iSelection]->m_Type ) { - case TYPE_PORTAL: - return GetPreferredSelectionForRandomOrPortal(); + case TYPE_PORTAL: + return GetPreferredSelectionForRandomOrPortal(); + default: + return GetCurWheelItemData(m_iSelection)->m_pSong; } - - return GetCurWheelItemData(m_iSelection)->m_pSong; } /* Find a random song. If possible, find one that has the preferred difficulties of diff --git a/src/NoteData.cpp b/src/NoteData.cpp index 78880dfbbe..91c83e7891 100644 --- a/src/NoteData.cpp +++ b/src/NoteData.cpp @@ -547,10 +547,12 @@ bool NoteData::RowNeedsAtLeastSimultaneousPresses( int iMinSimultaneousPresses, const TapNote &tn = GetTapNote(t, row); switch( tn.type ) { - case TapNote::mine: - case TapNote::empty: - case TapNote::fake: - continue; // skip these types - they don't count + case TapNote::mine: + case TapNote::empty: + case TapNote::fake: + case TapNote::lift: // you don't "press" on a lift. + continue; // skip these types - they don't count + default: break; } ++iNumNotesThisIndex; } diff --git a/src/NoteDataUtil.cpp b/src/NoteDataUtil.cpp index eff74fb0ae..924d7d1676 100644 --- a/src/NoteDataUtil.cpp +++ b/src/NoteDataUtil.cpp @@ -800,11 +800,12 @@ RadarStats CalculateRadarStatsFast( const NoteData &in, RadarStats &out ) const TapNote &tn = in.GetTapNote(t, r); switch( tn.type ) { - case TapNote::mine: - case TapNote::empty: - case TapNote::fake: - case TapNote::autoKeysound: - continue; // skip these types - they don't count + case TapNote::mine: + case TapNote::empty: + case TapNote::fake: + case TapNote::autoKeysound: + continue; // skip these types - they don't count + default: break; } if( (itr = simultaneousMap.find(r)) == simultaneousMap.end() ) @@ -830,10 +831,11 @@ RadarStats CalculateRadarStatsFast( const NoteData &in, RadarStats &out ) { switch( in.GetTapNote(t, rr).type ) { - case TapNote::mine: - case TapNote::empty: - case TapNote::fake: - continue; // skip these types - they don't count + case TapNote::mine: + case TapNote::empty: + case TapNote::fake: + continue; // skip these types - they don't count + default: break; } if( (itr = simultaneousMap.find(rr)) == simultaneousMap.end() ) simultaneousMap[rr] = 1; diff --git a/src/NoteField.cpp b/src/NoteField.cpp index e45ab8325a..c2f4885609 100644 --- a/src/NoteField.cpp +++ b/src/NoteField.cpp @@ -1265,6 +1265,7 @@ void NoteField::DrawPrimitives() //if (tn.subType == TapNote::hold_head_roll) continue; // skip } + default: break; } // Don't draw hidden (fully judged) steps. diff --git a/src/NotesLoaderBMS.cpp b/src/NotesLoaderBMS.cpp index fdaf8ea92c..885b5df706 100644 --- a/src/NotesLoaderBMS.cpp +++ b/src/NotesLoaderBMS.cpp @@ -1111,9 +1111,9 @@ bool BMSLoader::LoadNoteDataFromSimfile( const RString & cachePath, Steps & out if( commonSubstring == "" ) { copy->SetDifficulty(Difficulty_Medium); - RString sTag; - if (GetTagFromMap(BMSData[0], "#title#", sTag)) - SearchForDifficulty(sTag, copy); + RString localTag; + if (GetTagFromMap(BMSData[0], "#title#", localTag)) + SearchForDifficulty(localTag, copy); } ReadGlobalTags( BMSData[0], dummy ); if( commonSubstring.size() > 2 && commonSubstring[commonSubstring.size() - 2] == ' ' ) diff --git a/src/NotesLoaderJson.cpp b/src/NotesLoaderJson.cpp index 6865120fbc..4021b0e85e 100644 --- a/src/NotesLoaderJson.cpp +++ b/src/NotesLoaderJson.cpp @@ -35,6 +35,7 @@ static void Deserialize(TimingSegment &seg_, const Json::Value &root) static_cast(seg)->SetPause(fStop); break; } + default: break; // The rest are unused. } } diff --git a/src/NotesLoaderMidi.cpp b/src/NotesLoaderMidi.cpp index f356cdb3d6..2dfd891be7 100644 --- a/src/NotesLoaderMidi.cpp +++ b/src/NotesLoaderMidi.cpp @@ -817,8 +817,8 @@ skip_track: // Check for termination of a sustain note switch( midiEventType ) { - case note_off: - case note_on: + case note_off: + case note_on: if( bNonTerminatedNote ) { if( length >= 240 ) @@ -833,14 +833,15 @@ skip_track: bNonTerminatedNote = false; bNoteHandled = true; + break; } - break; + default: break; } switch( midiEventType ) { - case note_on: + case note_on: { TapNote tn = TAP_ORIGINAL_TAP; @@ -867,7 +868,9 @@ skip_track: bNonTerminatedNote = true; bNoteHandled = true; + break; } + default: break; } countOfLastNote = count; diff --git a/src/NotesWriterDWI.cpp b/src/NotesWriterDWI.cpp index e64ecd17cd..33809c357c 100644 --- a/src/NotesWriterDWI.cpp +++ b/src/NotesWriterDWI.cpp @@ -123,9 +123,10 @@ static RString NotesToDWIString( const TapNote tnCols[6] ) { switch( tnCols[col].type ) { - case TapNote::empty: - case TapNote::mine: - continue; + case TapNote::empty: + case TapNote::mine: + continue; + default: break; } if( tnCols[col].type == TapNote::hold_head ) diff --git a/src/OptionRow.cpp b/src/OptionRow.cpp index 4f50268542..472dc2a1e4 100644 --- a/src/OptionRow.cpp +++ b/src/OptionRow.cpp @@ -426,15 +426,18 @@ void OptionRow::AfterImportOptions( PlayerNumber pn ) switch( m_pHand->m_Def.m_selectType ) { - case SELECT_ONE: - // Make sure the row actually has a selection. - int iSelection = GetOneSelection(pn, true); - if( iSelection == -1 ) + case SELECT_ONE: { - ASSERT( !m_vbSelected[pn].empty() ); - m_vbSelected[pn][0] = true; + // Make sure the row actually has a selection. + int iSelection = GetOneSelection(pn, true); + if( iSelection == -1 ) + { + ASSERT( !m_vbSelected[pn].empty() ); + m_vbSelected[pn][0] = true; + } } - break; + default: + break; } ResetFocusFromSelection( pn ); @@ -503,7 +506,7 @@ void OptionRow::UpdateText( PlayerNumber p ) { switch( m_pHand->m_Def.m_layoutType ) { - case LAYOUT_SHOW_ONE_IN_ROW: + case LAYOUT_SHOW_ONE_IN_ROW: { unsigned pn = m_pHand->m_Def.m_bOneChoiceForAllPlayers ? 0 : p; int iChoiceWithFocus = m_iChoiceInRowWithFocus[pn]; @@ -519,7 +522,7 @@ void OptionRow::UpdateText( PlayerNumber p ) m_textItems[index]->SetText( sText ); } - break; + default: break; } } @@ -757,10 +760,11 @@ void OptionRow::ResetFocusFromSelection( PlayerNumber pn ) int iSelection = -1; switch( m_pHand->m_Def.m_selectType ) { - case SELECT_ONE: - // Import the focus from the selected option. - iSelection = GetOneSelection( pn, true ); - break; + case SELECT_ONE: + // Import the focus from the selected option. + iSelection = GetOneSelection( pn, true ); + default: + break; } // HACK: Set focus to one item in the row, which is "go down" diff --git a/src/PaneDisplay.cpp b/src/PaneDisplay.cpp index e812156cd3..0e3a82ca4c 100644 --- a/src/PaneDisplay.cpp +++ b/src/PaneDisplay.cpp @@ -137,13 +137,14 @@ void PaneDisplay::SetContent( PaneCategory c ) { switch( c ) { - case PaneCategory_MachineHighName: - str = EMPTY_MACHINE_HIGH_SCORE_NAME; - break; - case PaneCategory_MachineHighScore: - case PaneCategory_ProfileHighScore: - str = NOT_AVAILABLE; - break; + case PaneCategory_MachineHighName: + str = EMPTY_MACHINE_HIGH_SCORE_NAME; + break; + case PaneCategory_MachineHighScore: + case PaneCategory_ProfileHighScore: + str = NOT_AVAILABLE; + break; + default: break; } } @@ -157,13 +158,14 @@ void PaneDisplay::SetContent( PaneCategory c ) { switch( c ) { - case PaneCategory_MachineHighName: - str = EMPTY_MACHINE_HIGH_SCORE_NAME; - break; - case PaneCategory_MachineHighScore: - case PaneCategory_ProfileHighScore: - str = NOT_AVAILABLE; - break; + case PaneCategory_MachineHighName: + str = EMPTY_MACHINE_HIGH_SCORE_NAME; + break; + case PaneCategory_MachineHighScore: + case PaneCategory_ProfileHighScore: + str = NOT_AVAILABLE; + break; + default: break; } } @@ -184,8 +186,9 @@ void PaneDisplay::SetContent( PaneCategory c ) ProfileSlot slot = ProfileSlot_Machine; switch( c ) { - case PaneCategory_ProfileHighScore: - slot = (ProfileSlot) m_PlayerNumber; + case PaneCategory_ProfileHighScore: + slot = (ProfileSlot) m_PlayerNumber; + default: break; } if( pSteps ) @@ -201,55 +204,58 @@ void PaneDisplay::SetContent( PaneCategory c ) switch( c ) { - case PaneCategory_NumSteps: val = rv[RadarCategory_TapsAndHolds]; break; - case PaneCategory_Jumps: val = rv[RadarCategory_Jumps]; break; - case PaneCategory_Holds: val = rv[RadarCategory_Holds]; break; - case PaneCategory_Rolls: val = rv[RadarCategory_Rolls]; break; - case PaneCategory_Mines: val = rv[RadarCategory_Mines]; break; - case PaneCategory_Hands: val = rv[RadarCategory_Hands]; break; - case PaneCategory_Lifts: val = rv[RadarCategory_Lifts]; break; - case PaneCategory_Fakes: val = rv[RadarCategory_Fakes]; break; - case PaneCategory_ProfileHighScore: - case PaneCategory_MachineHighName: // set val for color - case PaneCategory_MachineHighScore: - CHECKPOINT; - val = pHSL->GetTopScore().GetPercentDP(); - break; + case PaneCategory_NumSteps: val = rv[RadarCategory_TapsAndHolds]; break; + case PaneCategory_Jumps: val = rv[RadarCategory_Jumps]; break; + case PaneCategory_Holds: val = rv[RadarCategory_Holds]; break; + case PaneCategory_Rolls: val = rv[RadarCategory_Rolls]; break; + case PaneCategory_Mines: val = rv[RadarCategory_Mines]; break; + case PaneCategory_Hands: val = rv[RadarCategory_Hands]; break; + case PaneCategory_Lifts: val = rv[RadarCategory_Lifts]; break; + case PaneCategory_Fakes: val = rv[RadarCategory_Fakes]; break; + case PaneCategory_ProfileHighScore: + case PaneCategory_MachineHighName: // set val for color + case PaneCategory_MachineHighScore: + CHECKPOINT; + val = pHSL->GetTopScore().GetPercentDP(); + break; + default: break; }; if( val != RADAR_VAL_UNKNOWN ) { switch( c ) { - case PaneCategory_MachineHighName: - if( pHSL->vHighScores.empty() ) - { - str = EMPTY_MACHINE_HIGH_SCORE_NAME; - } - else - { - str = pHSL->GetTopScore().GetName(); - if( str.empty() ) - str = "????"; - } - break; - case PaneCategory_MachineHighScore: - case PaneCategory_ProfileHighScore: - // Don't show or save machine high scores for edits loaded from a player profile. - if( bIsPlayerEdit ) - str = NOT_AVAILABLE; - else - str = PlayerStageStats::FormatPercentScore( val ); - break; - case PaneCategory_NumSteps: - case PaneCategory_Jumps: - case PaneCategory_Holds: - case PaneCategory_Rolls: - case PaneCategory_Mines: - case PaneCategory_Hands: - case PaneCategory_Lifts: - case PaneCategory_Fakes: - str = ssprintf( COUNT_FORMAT.GetValue(), val ); + case PaneCategory_MachineHighName: + if( pHSL->vHighScores.empty() ) + { + str = EMPTY_MACHINE_HIGH_SCORE_NAME; + } + else + { + str = pHSL->GetTopScore().GetName(); + if( str.empty() ) + str = "????"; + } + break; + case PaneCategory_MachineHighScore: + case PaneCategory_ProfileHighScore: + // Don't show or save machine high scores for edits loaded from a player profile. + if( bIsPlayerEdit ) + str = NOT_AVAILABLE; + else + str = PlayerStageStats::FormatPercentScore( val ); + break; + case PaneCategory_NumSteps: + case PaneCategory_Jumps: + case PaneCategory_Holds: + case PaneCategory_Rolls: + case PaneCategory_Mines: + case PaneCategory_Hands: + case PaneCategory_Lifts: + case PaneCategory_Fakes: + str = ssprintf( COUNT_FORMAT.GetValue(), val ); + break; + default: break; } } } diff --git a/src/Player.cpp b/src/Player.cpp index 77a2b73698..e4f53fea05 100644 --- a/src/Player.cpp +++ b/src/Player.cpp @@ -628,8 +628,8 @@ void Player::Load() switch( GAMESTATE->m_PlayMode ) { - case PLAY_MODE_RAVE: - case PLAY_MODE_BATTLE: + case PLAY_MODE_RAVE: + case PLAY_MODE_BATTLE: { // ugly, ugly, ugly. Works only w/ dance. // Why does this work only with dance? - Steve @@ -659,8 +659,9 @@ void Player::Load() count++; count %= 4; } + break; } - break; + default: break; } int iDrawDistanceAfterTargetsPixels = GAMESTATE->IsEditing() ? -100 : DRAW_DISTANCE_AFTER_TARGET_PIXELS; @@ -2879,41 +2880,46 @@ void Player::CrossedRows( int iLastRowCrossed, const RageTimer &now ) int iTrack = iter.Track(); switch( tn.type ) { - case TapNote::hold_head: - tn.HoldResult.fLife = INITIAL_HOLD_LIFE; - if( !REQUIRE_STEP_ON_HOLD_HEADS ) + case TapNote::hold_head: { + tn.HoldResult.fLife = INITIAL_HOLD_LIFE; + if( !REQUIRE_STEP_ON_HOLD_HEADS ) + { + PlayerNumber pn = m_pPlayerState->m_PlayerNumber; + GameInput GameI = GAMESTATE->GetCurrentStyle()->StyleInputToGameInput( iTrack, pn ); + if( PREFSMAN->m_fPadStickSeconds > 0.f ) + { + float fSecsHeld = INPUTMAPPER->GetSecsHeld( GameI, m_pPlayerState->m_mp ); + if( fSecsHeld >= PREFSMAN->m_fPadStickSeconds ) + Step( iTrack, -1, now - PREFSMAN->m_fPadStickSeconds, true, false ); + } + else if( INPUTMAPPER->IsBeingPressed(GameI, m_pPlayerState->m_mp) ) + { + Step( iTrack, -1, now, true, false ); + } + } + break; + } + case TapNote::mine: + { + // Hold the panel while crossing a mine will cause the mine to explode + // TODO: Remove use of PlayerNumber. PlayerNumber pn = m_pPlayerState->m_PlayerNumber; GameInput GameI = GAMESTATE->GetCurrentStyle()->StyleInputToGameInput( iTrack, pn ); - if( PREFSMAN->m_fPadStickSeconds > 0.f ) + if( PREFSMAN->m_fPadStickSeconds > 0 ) { float fSecsHeld = INPUTMAPPER->GetSecsHeld( GameI, m_pPlayerState->m_mp ); if( fSecsHeld >= PREFSMAN->m_fPadStickSeconds ) Step( iTrack, -1, now - PREFSMAN->m_fPadStickSeconds, true, false ); } - else if( INPUTMAPPER->IsBeingPressed(GameI, m_pPlayerState->m_mp) ) + else { - Step( iTrack, -1, now, true, false ); + if( INPUTMAPPER->IsBeingPressed(GameI, m_pPlayerState->m_mp) ) + Step( iTrack, iRow, now, true, false ); } + break; } - break; - case TapNote::mine: - // Hold the panel while crossing a mine will cause the mine to explode - // TODO: Remove use of PlayerNumber. - PlayerNumber pn = m_pPlayerState->m_PlayerNumber; - GameInput GameI = GAMESTATE->GetCurrentStyle()->StyleInputToGameInput( iTrack, pn ); - if( PREFSMAN->m_fPadStickSeconds > 0 ) - { - float fSecsHeld = INPUTMAPPER->GetSecsHeld( GameI, m_pPlayerState->m_mp ); - if( fSecsHeld >= PREFSMAN->m_fPadStickSeconds ) - Step( iTrack, -1, now - PREFSMAN->m_fPadStickSeconds, true, false ); - } - else - { - if( INPUTMAPPER->IsBeingPressed(GameI, m_pPlayerState->m_mp) ) - Step( iTrack, iRow, now, true, false ); - } - break; + default: break; } if( iRow != iLastSeenRow ) diff --git a/src/PlayerStageStats.cpp b/src/PlayerStageStats.cpp index e57682c843..4e8a0eb050 100644 --- a/src/PlayerStageStats.cpp +++ b/src/PlayerStageStats.cpp @@ -274,6 +274,7 @@ float PlayerStageStats::GetCurMaxPercentDancePoints() const return fCurMaxPercentDancePoints; } +// TODO: Make this use lua. Let more judgments be possible. -Wolfman2000 int PlayerStageStats::GetLessonScoreActual() const { int iScore = 0; @@ -282,14 +283,15 @@ int PlayerStageStats::GetLessonScoreActual() const { switch( tns ) { - case TNS_AvoidMine: - case TNS_W5: - case TNS_W4: - case TNS_W3: - case TNS_W2: - case TNS_W1: - iScore += m_iTapNoteScores[tns]; - break; + case TNS_AvoidMine: + case TNS_W5: + case TNS_W4: + case TNS_W3: + case TNS_W2: + case TNS_W1: + iScore += m_iTapNoteScores[tns]; + default: + break; } } @@ -297,9 +299,10 @@ int PlayerStageStats::GetLessonScoreActual() const { switch( hns ) { - case HNS_Held: - iScore += m_iHoldNoteScores[hns]; - break; + case HNS_Held: + iScore += m_iHoldNoteScores[hns]; + default: + break; } } diff --git a/src/RageDisplay_Legacy.cpp b/src/RageDisplay_Legacy.cpp index 2b664f2f5b..bedb5c7133 100644 --- a/src/RageDisplay_Legacy.cpp +++ b/src/RageDisplay_Legacy.cpp @@ -1625,6 +1625,7 @@ void RageDisplay_Legacy::SetTextureMode( TextureUnit tu, TextureMode tm ) glTexEnvi(GL_TEXTURE_ENV, GLenum(GL_OPERAND1_ALPHA_EXT), GL_SRC_ALPHA); glTexEnvi(GL_TEXTURE_ENV, GLenum(GL_SOURCE1_ALPHA_EXT), GL_TEXTURE); break; + default: break; } } @@ -1668,15 +1669,16 @@ void RageDisplay_Legacy::SetEffectMode( EffectMode effect ) GLhandleARB hShader = 0; switch (effect) { - case EffectMode_Normal: hShader = 0; break; - case EffectMode_Unpremultiply: hShader = g_bUnpremultiplyShader; break; - case EffectMode_ColorBurn: hShader = g_bColorBurnShader; break; - case EffectMode_ColorDodge: hShader = g_bColorDodgeShader; break; - case EffectMode_VividLight: hShader = g_bVividLightShader; break; - case EffectMode_HardMix: hShader = g_hHardMixShader; break; - case EffectMode_Overlay: hShader = g_hOverlayShader; break; - case EffectMode_Screen: hShader = g_hScreenShader; break; - case EffectMode_YUYV422: hShader = g_hYUYV422Shader; break; + case EffectMode_Normal: hShader = 0; break; + case EffectMode_Unpremultiply: hShader = g_bUnpremultiplyShader; break; + case EffectMode_ColorBurn: hShader = g_bColorBurnShader; break; + case EffectMode_ColorDodge: hShader = g_bColorDodgeShader; break; + case EffectMode_VividLight: hShader = g_bVividLightShader; break; + case EffectMode_HardMix: hShader = g_hHardMixShader; break; + case EffectMode_Overlay: hShader = g_hOverlayShader; break; + case EffectMode_Screen: hShader = g_hScreenShader; break; + case EffectMode_YUYV422: hShader = g_hYUYV422Shader; break; + default: break; } DebugFlushGLErrors(); @@ -1703,18 +1705,17 @@ bool RageDisplay_Legacy::IsEffectModeSupported( EffectMode effect ) { switch( effect ) { - case EffectMode_Normal: return true; - case EffectMode_Unpremultiply: return g_bUnpremultiplyShader != 0; - case EffectMode_ColorBurn: return g_bColorBurnShader != 0; - case EffectMode_ColorDodge: return g_bColorDodgeShader != 0; - case EffectMode_VividLight: return g_bVividLightShader != 0; - case EffectMode_HardMix: return g_hHardMixShader != 0; - case EffectMode_Overlay: return g_hOverlayShader != 0; - case EffectMode_Screen: return g_hScreenShader != 0; - case EffectMode_YUYV422: return g_hYUYV422Shader != 0; + case EffectMode_Normal: return true; + case EffectMode_Unpremultiply: return g_bUnpremultiplyShader != 0; + case EffectMode_ColorBurn: return g_bColorBurnShader != 0; + case EffectMode_ColorDodge: return g_bColorDodgeShader != 0; + case EffectMode_VividLight: return g_bVividLightShader != 0; + case EffectMode_HardMix: return g_hHardMixShader != 0; + case EffectMode_Overlay: return g_hOverlayShader != 0; + case EffectMode_Screen: return g_hScreenShader != 0; + case EffectMode_YUYV422: return g_hYUYV422Shader != 0; + default: return false; } - - return false; } void RageDisplay_Legacy::SetBlendMode( BlendMode mode ) diff --git a/src/RageSound.cpp b/src/RageSound.cpp index f114329fbc..0d0dc575b9 100644 --- a/src/RageSound.cpp +++ b/src/RageSound.cpp @@ -576,15 +576,16 @@ void RageSound::ApplyParams() switch( GetStopMode() ) { - case RageSoundParams::M_LOOP: - m_pSource->SetProperty( "Loop", 1.0f ); - break; - case RageSoundParams::M_STOP: - m_pSource->SetProperty( "Stop", 1.0f ); - break; - case RageSoundParams::M_CONTINUE: - m_pSource->SetProperty( "Continue", 1.0f ); - break; + case RageSoundParams::M_LOOP: + m_pSource->SetProperty( "Loop", 1.0f ); + break; + case RageSoundParams::M_STOP: + m_pSource->SetProperty( "Stop", 1.0f ); + break; + case RageSoundParams::M_CONTINUE: + m_pSource->SetProperty( "Continue", 1.0f ); + break; + default: break; } } diff --git a/src/RageSoundReader_FileReader.cpp b/src/RageSoundReader_FileReader.cpp index 85ff85346d..5c43fc080b 100644 --- a/src/RageSoundReader_FileReader.cpp +++ b/src/RageSoundReader_FileReader.cpp @@ -67,17 +67,18 @@ RageSoundReader_FileReader *RageSoundReader_FileReader::TryOpenFile( RageFileBas bKeepTrying = (ret != OPEN_FATAL_ERROR); switch( ret ) { - case OPEN_UNKNOWN_FILE_FORMAT: - bKeepTrying = true; - error = "Unknown file format"; - break; + case OPEN_UNKNOWN_FILE_FORMAT: + bKeepTrying = true; + error = "Unknown file format"; + break; - case OPEN_FATAL_ERROR: - /* The file matched, but failed to load. We know it's this type of data; - * don't bother trying the other file types. */ - bKeepTrying = false; - error = err; - break; + case OPEN_FATAL_ERROR: + /* The file matched, but failed to load. We know it's this type of data; + * don't bother trying the other file types. */ + bKeepTrying = false; + error = err; + break; + default: break; } return NULL; diff --git a/src/RageSurface_Load.cpp b/src/RageSurface_Load.cpp index 3d332a90c4..aa23902358 100644 --- a/src/RageSurface_Load.cpp +++ b/src/RageSurface_Load.cpp @@ -57,16 +57,17 @@ static RageSurface *TryOpenFile( RString sPath, bool bHeaderOnly, RString &error bKeepTrying = (result != RageSurfaceUtils::OPEN_FATAL_ERROR); switch( result ) { - case RageSurfaceUtils::OPEN_UNKNOWN_FILE_FORMAT: - bKeepTrying = true; - error = "Unknown file format"; - break; + case RageSurfaceUtils::OPEN_UNKNOWN_FILE_FORMAT: + bKeepTrying = true; + error = "Unknown file format"; + break; - case RageSurfaceUtils::OPEN_FATAL_ERROR: - /* The file matched, but failed to load. We know it's this type of data; - * don't bother trying the other file types. */ - bKeepTrying = false; - break; + case RageSurfaceUtils::OPEN_FATAL_ERROR: + /* The file matched, but failed to load. We know it's this type of data; + * don't bother trying the other file types. */ + bKeepTrying = false; + break; + default: break; } return NULL; diff --git a/src/ScoreKeeperRave.cpp b/src/ScoreKeeperRave.cpp index 6b3b68107b..22d2e82706 100644 --- a/src/ScoreKeeperRave.cpp +++ b/src/ScoreKeeperRave.cpp @@ -83,7 +83,10 @@ void ScoreKeeperRave::HandleHoldScore( const TapNote &tn ) float fPercentToMove = 0; switch( tapScore ) { - case TNS_HitMine: fPercentToMove = g_fSuperMeterPercentChange[SE_HitMine]; break; + case TNS_HitMine: + fPercentToMove = g_fSuperMeterPercentChange[SE_HitMine]; + default: + break; } AddSuperMeterDelta( fPercentToMove ); } diff --git a/src/Screen.cpp b/src/Screen.cpp index 80624afae2..ba91803110 100644 --- a/src/Screen.cpp +++ b/src/Screen.cpp @@ -226,6 +226,7 @@ void Screen::Input( const InputEventPlus &input ) case GAME_BUTTON_START: this->MenuStart ( input ); return; case GAME_BUTTON_SELECT:this->MenuSelect( input ); return; case GAME_BUTTON_COIN: this->MenuCoin ( input ); return; + default: return; } } diff --git a/src/ScreenAttract.cpp b/src/ScreenAttract.cpp index ac16f7a5fb..c5777804b8 100644 --- a/src/ScreenAttract.cpp +++ b/src/ScreenAttract.cpp @@ -75,34 +75,36 @@ void ScreenAttract::AttractInput( const InputEventPlus &input, ScreenWithMenuEle switch( input.MenuI ) { - case GAME_BUTTON_BACK: - if( !(bool)BACK_GOES_TO_START_SCREEN ) - break; - // fall through - case GAME_BUTTON_START: - case GAME_BUTTON_COIN: - switch( GAMESTATE->GetCoinMode() ) - { - case CoinMode_Pay: - LOG->Trace("ScreenAttract::AttractInput: COIN_PAY (%i/%i, %i)", GAMESTATE->m_iCoins.Get(), PREFSMAN->m_iCoinsPerCredit.Get(), GAMESTATE->GetNumSidesJoined() ); - if( GAMESTATE->m_iCoins < PREFSMAN->m_iCoinsPerCredit && GAMESTATE->GetNumSidesJoined() == 0 ) - break; // don't fall through + case GAME_BUTTON_BACK: + if( !BACK_GOES_TO_START_SCREEN ) + break; // fall through - case CoinMode_Home: - case CoinMode_Free: - if( pScreen->IsTransitioning() ) - return; + case GAME_BUTTON_START: + case GAME_BUTTON_COIN: + switch( GAMESTATE->GetCoinMode() ) + { + case CoinMode_Pay: + LOG->Trace("ScreenAttract::AttractInput: COIN_PAY (%i/%i, %i)", + GAMESTATE->m_iCoins.Get(), + PREFSMAN->m_iCoinsPerCredit.Get(), + GAMESTATE->GetNumSidesJoined() ); + if( GAMESTATE->m_iCoins < PREFSMAN->m_iCoinsPerCredit && GAMESTATE->GetNumSidesJoined() == 0 ) + break; // don't fall through + // fall through + case CoinMode_Home: + case CoinMode_Free: + if( pScreen->IsTransitioning() ) + return; - // HandleGlobalInputs() already played the coin sound. Don't play it again. - if( input.MenuI != GAME_BUTTON_COIN ) - SCREENMAN->PlayStartSound(); + // HandleGlobalInputs() already played the coin sound. Don't play it again. + if( input.MenuI != GAME_BUTTON_COIN ) + SCREENMAN->PlayStartSound(); - pScreen->Cancel( SM_GoToStartScreen ); - break; - default: - ASSERT(0); - } - break; + pScreen->Cancel( SM_GoToStartScreen ); + break; + default: FAIL_M("Invalid Coin Mode! Aborting..."); + } + default: break; } if( pScreen->IsTransitioning() ) @@ -110,10 +112,11 @@ void ScreenAttract::AttractInput( const InputEventPlus &input, ScreenWithMenuEle switch( input.MenuI ) { - case GAME_BUTTON_LEFT: - case GAME_BUTTON_RIGHT: - SCREENMAN->PostMessageToTopScreen( SM_BeginFadingOut, 0 ); - break; + case GAME_BUTTON_LEFT: + case GAME_BUTTON_RIGHT: + SCREENMAN->PostMessageToTopScreen( SM_BeginFadingOut, 0 ); + default: + break; } // Screen::Input( input ); diff --git a/src/ScreenContinue.cpp b/src/ScreenContinue.cpp index c9da2e45fa..4c8d0cbbfb 100644 --- a/src/ScreenContinue.cpp +++ b/src/ScreenContinue.cpp @@ -63,18 +63,21 @@ void ScreenContinue::Input( const InputEventPlus &input ) { switch( input.MenuI ) { - case GAME_BUTTON_START: - case GAME_BUTTON_UP: - case GAME_BUTTON_DOWN: - case GAME_BUTTON_LEFT: - case GAME_BUTTON_RIGHT: - float fSeconds = floorf(m_MenuTimer->GetSeconds()) - 0.0001f; - fSeconds = max( fSeconds, 0.0001f ); // don't set to 0 - m_MenuTimer->SetSeconds( fSeconds ); - Message msg("HurryTimer"); - msg.SetParam( "PlayerNumber", input.pn ); - this->HandleMessage( msg ); - return; // handled + case GAME_BUTTON_START: + case GAME_BUTTON_UP: + case GAME_BUTTON_DOWN: + case GAME_BUTTON_LEFT: + case GAME_BUTTON_RIGHT: + { + float fSeconds = floorf(m_MenuTimer->GetSeconds()) - 0.0001f; + fSeconds = max( fSeconds, 0.0001f ); // don't set to 0 + m_MenuTimer->SetSeconds( fSeconds ); + Message msg("HurryTimer"); + msg.SetParam( "PlayerNumber", input.pn ); + this->HandleMessage( msg ); + return; // handled + } + default: break; } } diff --git a/src/ScreenDebugOverlay.cpp b/src/ScreenDebugOverlay.cpp index e6c731fa2c..4b698123b7 100644 --- a/src/ScreenDebugOverlay.cpp +++ b/src/ScreenDebugOverlay.cpp @@ -813,12 +813,11 @@ class DebugLineProfileSlot : public IDebugLine { switch( g_ProfileSlot ) { - case ProfileSlot_Machine: return "Machine"; - case ProfileSlot_Player1: return "Player 1"; - case ProfileSlot_Player2: return "Player 2"; + case ProfileSlot_Machine: return "Machine"; + case ProfileSlot_Player1: return "Player 1"; + case ProfileSlot_Player2: return "Player 2"; + default: return RString(); } - - return RString(); } virtual bool IsEnabled() { return IsSelectProfilePersistent(); } virtual RString GetPageName() const { return "Profiles"; } diff --git a/src/ScreenEdit.cpp b/src/ScreenEdit.cpp index 0f88bf0985..600dd013d1 100644 --- a/src/ScreenEdit.cpp +++ b/src/ScreenEdit.cpp @@ -4245,6 +4245,7 @@ void ScreenEdit::HandleAlterMenuChoice(AlterMenuChoice c, const vector &iAn } break; } + default: break; } } diff --git a/src/ScreenEditMenu.cpp b/src/ScreenEditMenu.cpp index 37aba49e5c..f11da45efd 100644 --- a/src/ScreenEditMenu.cpp +++ b/src/ScreenEditMenu.cpp @@ -193,33 +193,38 @@ void ScreenEditMenu::MenuStart( const InputEventPlus &input ) switch( m_Selector.EDIT_MODE ) { - case EditMode_Full: - { - RString sDir = pSong->GetSongDir(); - RString sTempFile = sDir + TEMP_FILE_NAME; - RageFile file; - if( !file.Open( sTempFile, RageFile::WRITE ) ) + case EditMode_Full: { - ScreenPrompt::Prompt( SM_None, SONG_DIR_READ_ONLY ); - return; - } + RString sDir = pSong->GetSongDir(); + RString sTempFile = sDir + TEMP_FILE_NAME; + RageFile file; + if( !file.Open( sTempFile, RageFile::WRITE ) ) + { + ScreenPrompt::Prompt( SM_None, SONG_DIR_READ_ONLY ); + return; + } - file.Close(); - FILEMAN->Remove( sTempFile ); - break; - } + file.Close(); + FILEMAN->Remove( sTempFile ); + break; + } + default: + break; } switch( action ) { - case EditMenuAction_Delete: - ASSERT( pSteps ); - if( pSteps->IsAutogen() ) + case EditMenuAction_Delete: { - SCREENMAN->PlayInvalidSound(); - SCREENMAN->SystemMessage( DELETED_AUTOGEN_STEPS.GetValue() ); - return; + ASSERT( pSteps ); + if( pSteps->IsAutogen() ) + { + SCREENMAN->PlayInvalidSound(); + SCREENMAN->SystemMessage( DELETED_AUTOGEN_STEPS.GetValue() ); + return; + } } + default: break; } // Do work diff --git a/src/ScreenEnding.cpp b/src/ScreenEnding.cpp index 18b37a5ca8..31b92250f0 100644 --- a/src/ScreenEnding.cpp +++ b/src/ScreenEnding.cpp @@ -93,10 +93,11 @@ void ScreenEnding::Init() m_sprRemoveMemoryCard[p].Load( THEME->GetPathG("ScreenEnding",ssprintf("remove card P%d",p+1)) ); switch( MEMCARDMAN->GetCardState(p) ) { - case MemoryCardState_Removed: - case MemoryCardState_NoCard: - m_sprRemoveMemoryCard[p].SetVisible( false ); - break; + case MemoryCardState_Removed: + case MemoryCardState_NoCard: + m_sprRemoveMemoryCard[p].SetVisible( false ); + default: + break; } LOAD_ALL_COMMANDS_AND_SET_XY_AND_ON_COMMAND( m_sprRemoveMemoryCard[p] ); this->AddChild( &m_sprRemoveMemoryCard[p] ); @@ -114,9 +115,10 @@ void ScreenEnding::Input( const InputEventPlus &input ) { switch( input.MenuI ) { - case GAME_BUTTON_START: - SCREENMAN->PostMessageToTopScreen( SM_BeginFadingOut, 0 ); - break; + case GAME_BUTTON_START: + SCREENMAN->PostMessageToTopScreen( SM_BeginFadingOut, 0 ); + default: + break; } } diff --git a/src/ScreenEvaluation.cpp b/src/ScreenEvaluation.cpp index 654f1d0bb5..8d3a55d541 100644 --- a/src/ScreenEvaluation.cpp +++ b/src/ScreenEvaluation.cpp @@ -182,25 +182,26 @@ void ScreenEvaluation::Init() { switch( rc ) { - case RadarCategory_Stream: - case RadarCategory_Voltage: - case RadarCategory_Air: - case RadarCategory_Freeze: - case RadarCategory_Chaos: - ss.m_player[p].m_radarPossible[rc] = randomf( 0, 1 ); - ss.m_player[p].m_radarActual[rc] = randomf( 0, ss.m_player[p].m_radarPossible[rc] ); - break; - case RadarCategory_TapsAndHolds: - case RadarCategory_Jumps: - case RadarCategory_Holds: - case RadarCategory_Mines: - case RadarCategory_Hands: - case RadarCategory_Rolls: - case RadarCategory_Lifts: - case RadarCategory_Fakes: - ss.m_player[p].m_radarPossible[rc] = 1 + (rand() % 200); - ss.m_player[p].m_radarActual[rc] = rand() % (int)(ss.m_player[p].m_radarPossible[rc]); - break; + case RadarCategory_Stream: + case RadarCategory_Voltage: + case RadarCategory_Air: + case RadarCategory_Freeze: + case RadarCategory_Chaos: + ss.m_player[p].m_radarPossible[rc] = randomf( 0, 1 ); + ss.m_player[p].m_radarActual[rc] = randomf( 0, ss.m_player[p].m_radarPossible[rc] ); + break; + case RadarCategory_TapsAndHolds: + case RadarCategory_Jumps: + case RadarCategory_Holds: + case RadarCategory_Mines: + case RadarCategory_Hands: + case RadarCategory_Rolls: + case RadarCategory_Lifts: + case RadarCategory_Fakes: + ss.m_player[p].m_radarPossible[rc] = 1 + (rand() % 200); + ss.m_player[p].m_radarActual[rc] = rand() % (int)(ss.m_player[p].m_radarPossible[rc]); + break; + default: break; } ; // filled in by ScreenGameplay on start of notes @@ -651,11 +652,12 @@ void ScreenEvaluation::Init() switch( best_grade ) { - case Grade_Tier01: - case Grade_Tier02: - case Grade_Tier03: - this->PostScreenMessage( SM_PlayCheer, CHEER_DELAY_SECONDS ); - break; + case Grade_Tier01: + case Grade_Tier02: + case Grade_Tier03: + this->PostScreenMessage( SM_PlayCheer, CHEER_DELAY_SECONDS ); + default: + break; } } diff --git a/src/ScreenGameplay.cpp b/src/ScreenGameplay.cpp index d0ac5a1cfd..5e9ddbf5db 100644 --- a/src/ScreenGameplay.cpp +++ b/src/ScreenGameplay.cpp @@ -151,10 +151,11 @@ void PlayerInfo::Load( PlayerNumber pn, MultiPlayer mp, bool bShowNoteField, int switch( GAMESTATE->m_PlayMode ) { - case PLAY_MODE_RAVE: - m_pSecondaryScoreDisplay = new ScoreDisplayRave; - m_pSecondaryScoreDisplay->SetName( "ScoreDisplayRave" ); - break; + case PLAY_MODE_RAVE: + m_pSecondaryScoreDisplay = new ScoreDisplayRave; + m_pSecondaryScoreDisplay->SetName( "ScoreDisplayRave" ); + default: + break; } if( m_pSecondaryScoreDisplay ) @@ -164,9 +165,10 @@ void PlayerInfo::Load( PlayerNumber pn, MultiPlayer mp, bool bShowNoteField, int switch( GAMESTATE->m_PlayMode ) { - case PLAY_MODE_RAVE: - m_pSecondaryScoreKeeper = new ScoreKeeperRave( pPlayerState, pPlayerStageStats ); - break; + case PLAY_MODE_RAVE: + m_pSecondaryScoreKeeper = new ScoreKeeperRave( pPlayerState, pPlayerStageStats ); + default: + break; } m_ptextPlayerOptions = NULL; @@ -522,13 +524,14 @@ void ScreenGameplay::Init() // Add combined life meter switch( GAMESTATE->m_PlayMode ) { - case PLAY_MODE_BATTLE: - case PLAY_MODE_RAVE: - m_pCombinedLifeMeter = new CombinedLifeMeterTug; - m_pCombinedLifeMeter->SetName( "CombinedLife" ); - LOAD_ALL_COMMANDS_AND_SET_XY( *m_pCombinedLifeMeter ); - this->AddChild( m_pCombinedLifeMeter ); - break; + case PLAY_MODE_BATTLE: + case PLAY_MODE_RAVE: + m_pCombinedLifeMeter = new CombinedLifeMeterTug; + m_pCombinedLifeMeter->SetName( "CombinedLife" ); + LOAD_ALL_COMMANDS_AND_SET_XY( *m_pCombinedLifeMeter ); + this->AddChild( m_pCombinedLifeMeter ); + default: + break; } // Before the lifemeter loads, if Networking is required @@ -541,25 +544,26 @@ void ScreenGameplay::Init() // Add individual life meter switch( GAMESTATE->m_PlayMode ) { - case PLAY_MODE_REGULAR: - case PLAY_MODE_ONI: - case PLAY_MODE_NONSTOP: - case PLAY_MODE_ENDLESS: - FOREACH_PlayerNumberInfo( m_vPlayerInfo, pi ) - { - if( !GAMESTATE->IsPlayerEnabled(pi->m_pn) && !SHOW_LIFE_METER_FOR_DISABLED_PLAYERS ) - continue; // skip + case PLAY_MODE_REGULAR: + case PLAY_MODE_ONI: + case PLAY_MODE_NONSTOP: + case PLAY_MODE_ENDLESS: + FOREACH_PlayerNumberInfo( m_vPlayerInfo, pi ) + { + if( !GAMESTATE->IsPlayerEnabled(pi->m_pn) && !SHOW_LIFE_METER_FOR_DISABLED_PLAYERS ) + continue; // skip - pi->m_pLifeMeter = LifeMeter::MakeLifeMeter( GAMESTATE->m_SongOptions.GetStage().m_LifeType ); - pi->m_pLifeMeter->Load( pi->GetPlayerState(), pi->GetPlayerStageStats() ); - pi->m_pLifeMeter->SetName( ssprintf("Life%s",pi->GetName().c_str()) ); - LOAD_ALL_COMMANDS_AND_SET_XY( pi->m_pLifeMeter ); - this->AddChild( pi->m_pLifeMeter ); - } - break; - case PLAY_MODE_BATTLE: - case PLAY_MODE_RAVE: - break; + pi->m_pLifeMeter = LifeMeter::MakeLifeMeter( GAMESTATE->m_SongOptions.GetStage().m_LifeType ); + pi->m_pLifeMeter->Load( pi->GetPlayerState(), pi->GetPlayerStageStats() ); + pi->m_pLifeMeter->SetName( ssprintf("Life%s",pi->GetName().c_str()) ); + LOAD_ALL_COMMANDS_AND_SET_XY( pi->m_pLifeMeter ); + this->AddChild( pi->m_pLifeMeter ); + } + break; + case PLAY_MODE_BATTLE: + case PLAY_MODE_RAVE: + default: + break; } m_bShowScoreboard = false; @@ -718,11 +722,12 @@ void ScreenGameplay::Init() switch( GAMESTATE->m_PlayMode ) { - case PLAY_MODE_BATTLE: - m_soundBattleTrickLevel1.Load( THEME->GetPathS(m_sName,"battle trick level1"), true ); - m_soundBattleTrickLevel2.Load( THEME->GetPathS(m_sName,"battle trick level2"), true ); - m_soundBattleTrickLevel3.Load( THEME->GetPathS(m_sName,"battle trick level3"), true ); - break; + case PLAY_MODE_BATTLE: + m_soundBattleTrickLevel1.Load( THEME->GetPathS(m_sName,"battle trick level1"), true ); + m_soundBattleTrickLevel2.Load( THEME->GetPathS(m_sName,"battle trick level2"), true ); + m_soundBattleTrickLevel3.Load( THEME->GetPathS(m_sName,"battle trick level3"), true ); + default: + break; } } @@ -996,9 +1001,10 @@ void ScreenGameplay::SetupSong( int iSongIndex ) RString sType; switch( GAMESTATE->m_SongOptions.GetCurrent().m_SoundEffectType ) { - case SongOptions::SOUNDEFFECT_OFF: sType = "SoundEffectControl_Off"; break; - case SongOptions::SOUNDEFFECT_SPEED: sType = "SoundEffectControl_Speed"; break; - case SongOptions::SOUNDEFFECT_PITCH: sType = "SoundEffectControl_Pitch"; break; + case SongOptions::SOUNDEFFECT_OFF: sType = "SoundEffectControl_Off"; break; + case SongOptions::SOUNDEFFECT_SPEED: sType = "SoundEffectControl_Speed"; break; + case SongOptions::SOUNDEFFECT_PITCH: sType = "SoundEffectControl_Pitch"; break; + default: break; } pi->m_SoundEffectControl.Load( sType, pi->GetPlayerState(), &pi->m_NoteData ); @@ -1630,246 +1636,250 @@ void ScreenGameplay::Update( float fDeltaTime ) switch( m_DancingState ) { - case STATE_DANCING: - /* Set STATSMAN->m_CurStageStats.bFailed for failed players. In, FAIL_IMMEDIATE, send - * SM_BeginFailed if all players failed, and kill dead Oni players. */ - FOREACH_EnabledPlayerInfo( m_vPlayerInfo, pi ) + case STATE_DANCING: { - PlayerNumber pn = pi->GetStepsAndTrailIndex(); - - PlayerOptions::FailType ft = GAMESTATE->GetPlayerFailType( pi->GetPlayerState() ); - SongOptions::LifeType lt = GAMESTATE->m_SongOptions.GetCurrent().m_LifeType; - - if( ft == PlayerOptions::FAIL_OFF || ft == PlayerOptions::FAIL_AT_END ) - continue; - - // check for individual fail - if( pi->m_pLifeMeter == NULL || !pi->m_pLifeMeter->IsFailing() ) - continue; /* isn't failing */ - if( pi->GetPlayerStageStats()->m_bFailed ) - continue; /* failed and is already dead */ - - LOG->Trace("Player %d failed", (int)pn); - pi->GetPlayerStageStats()->m_bFailed = true; // fail - + /* Set STATSMAN->m_CurStageStats.bFailed for failed players. In, FAIL_IMMEDIATE, send + * SM_BeginFailed if all players failed, and kill dead Oni players. */ + FOREACH_EnabledPlayerInfo( m_vPlayerInfo, pi ) { - Message msg("PlayerFailed"); - msg.SetParam( "PlayerNumber", pi->m_pn ); - MESSAGEMAN->Broadcast( msg ); - } + PlayerNumber pn = pi->GetStepsAndTrailIndex(); + + PlayerOptions::FailType ft = GAMESTATE->GetPlayerFailType( pi->GetPlayerState() ); + SongOptions::LifeType lt = GAMESTATE->m_SongOptions.GetCurrent().m_LifeType; + + if( ft == PlayerOptions::FAIL_OFF || ft == PlayerOptions::FAIL_AT_END ) + continue; + + // check for individual fail + if( pi->m_pLifeMeter == NULL || !pi->m_pLifeMeter->IsFailing() ) + continue; /* isn't failing */ + if( pi->GetPlayerStageStats()->m_bFailed ) + continue; /* failed and is already dead */ + + LOG->Trace("Player %d failed", (int)pn); + pi->GetPlayerStageStats()->m_bFailed = true; // fail - // Check for and do Oni die. - bool bAllowOniDie = false; - switch( lt ) - { - case SongOptions::LIFE_BATTERY: - bAllowOniDie = true; - break; - } - if( bAllowOniDie && ft == PlayerOptions::FAIL_IMMEDIATE ) - { - if( !STATSMAN->m_CurStageStats.AllFailed() ) // if not the last one to fail { - // kill them! - SOUND->PlayOnceFromDir( THEME->GetPathS(m_sName,"oni die") ); - pi->ShowOniGameOver(); - pi->m_NoteData.Init(); // remove all notes and scoring - pi->m_pPlayer->FadeToFail(); // tell the NoteField to fade to white + Message msg("PlayerFailed"); + msg.SetParam( "PlayerNumber", pi->m_pn ); + MESSAGEMAN->Broadcast( msg ); + } + + // Check for and do Oni die. + bool bAllowOniDie = false; + switch( lt ) + { + case SongOptions::LIFE_BATTERY: + bAllowOniDie = true; + default: + break; + } + if( bAllowOniDie && ft == PlayerOptions::FAIL_IMMEDIATE ) + { + if( !STATSMAN->m_CurStageStats.AllFailed() ) // if not the last one to fail + { + // kill them! + SOUND->PlayOnceFromDir( THEME->GetPathS(m_sName,"oni die") ); + pi->ShowOniGameOver(); + pi->m_NoteData.Init(); // remove all notes and scoring + pi->m_pPlayer->FadeToFail(); // tell the NoteField to fade to white + } } } - } - bool bAllFailed = true; - FOREACH_EnabledPlayerInfo( m_vPlayerInfo, pi ) - { - PlayerOptions::FailType ft = GAMESTATE->GetPlayerFailType( pi->GetPlayerState() ); - switch( ft ) + bool bAllFailed = true; + FOREACH_EnabledPlayerInfo( m_vPlayerInfo, pi ) { - case PlayerOptions::FAIL_IMMEDIATE: - if( pi->m_pLifeMeter == NULL || (pi->m_pLifeMeter && !pi->m_pLifeMeter->IsFailing()) ) - bAllFailed = false; - break; - case PlayerOptions::FAIL_IMMEDIATE_CONTINUE: - case PlayerOptions::FAIL_AT_END: - bAllFailed = false; // wait until the end of the song to fail. - break; - case PlayerOptions::FAIL_OFF: - bAllFailed = false; // never fail. - break; - default: - ASSERT(0); - } - } - - if( bAllFailed ) - { - m_pSoundMusic->StopPlaying(); - SCREENMAN->PostMessageToTopScreen( SM_NotesEnded, 0 ); - // todo: stop lyrics (m_LyricDisplay) from animating -aj - } - - // Update living players' alive time - // HACK: Don't scale alive time when using tab/tilde. Instead of accumulating time from a timer, - // this time should instead be tied to the music position. - float fUnscaledDeltaTime = m_timerGameplaySeconds.GetDeltaTime(); - - FOREACH_EnabledPlayerInfo( m_vPlayerInfo, pi ) - if( !pi->GetPlayerStageStats()->m_bFailed ) - pi->GetPlayerStageStats()->m_fAliveSeconds += fUnscaledDeltaTime * GAMESTATE->m_SongOptions.GetCurrent().m_fMusicRate; - - // update fGameplaySeconds - STATSMAN->m_CurStageStats.m_fGameplaySeconds += fUnscaledDeltaTime; - float curBeat = GAMESTATE->m_Position.m_fSongBeat; - Song &s = *GAMESTATE->m_pCurSong; - - if( curBeat >= s.GetFirstBeat() && curBeat < s.GetLastBeat() ) - { - STATSMAN->m_CurStageStats.m_fStepsSeconds += fUnscaledDeltaTime; - - if( GAMESTATE->m_SongOptions.GetCurrent().m_fHaste != 0.0f ) - { - float fHasteRate = GetHasteRate(); - GAMESTATE->m_fAccumulatedHasteSeconds += (fUnscaledDeltaTime * fHasteRate) - fUnscaledDeltaTime; - } - } - - // Check for end of song - { - float fSecondsToStartFadingOutMusic, fSecondsToStartTransitioningOut; - GetMusicEndTiming( fSecondsToStartFadingOutMusic, fSecondsToStartTransitioningOut ); - - bool bAllReallyFailed = STATSMAN->m_CurStageStats.AllFailed(); - if( bAllReallyFailed ) - fSecondsToStartTransitioningOut += BEGIN_FAILED_DELAY; - - if( GAMESTATE->m_Position.m_fMusicSeconds >= fSecondsToStartTransitioningOut && !m_NextSong.IsTransitioning() ) - this->PostScreenMessage( SM_NotesEnded, 0 ); - } - - // update 2d dancing characters - FOREACH_EnabledPlayerNumberInfo( m_vPlayerInfo, pi ) - { - DancingCharacters *pCharacter = NULL; - if( m_pSongBackground ) - pCharacter = m_pSongBackground->GetDancingCharacters(); - if( pCharacter != NULL ) - { - TapNoteScore tns = pi->m_pPlayer->GetLastTapNoteScore(); - - ANIM_STATES_2D state = AS2D_MISS; - - switch( tns ) + PlayerOptions::FailType ft = GAMESTATE->GetPlayerFailType( pi->GetPlayerState() ); + switch( ft ) { - case TNS_W4: - case TNS_W3: - state = AS2D_GOOD; + case PlayerOptions::FAIL_IMMEDIATE: + if( pi->m_pLifeMeter == NULL || (pi->m_pLifeMeter && !pi->m_pLifeMeter->IsFailing()) ) + bAllFailed = false; break; - case TNS_W2: - case TNS_W1: - state = AS2D_GREAT; + case PlayerOptions::FAIL_IMMEDIATE_CONTINUE: + case PlayerOptions::FAIL_AT_END: + bAllFailed = false; // wait until the end of the song to fail. + break; + case PlayerOptions::FAIL_OFF: + bAllFailed = false; // never fail. break; default: - state = AS2D_MISS; - break; - } - - if( state == AS2D_GREAT && pi->GetPlayerState()->m_HealthState == HealthState_Hot ) - state = AS2D_FEVER; - - pCharacter->Change2DAnimState( pi->m_pn, state ); - } - } - - // Check for enemy death in enemy battle - static float fLastSeenEnemyHealth = 1; - if( fLastSeenEnemyHealth != GAMESTATE->m_fOpponentHealthPercent ) - { - fLastSeenEnemyHealth = GAMESTATE->m_fOpponentHealthPercent; - - if( GAMESTATE->m_fOpponentHealthPercent == 0 ) - { - // HACK: Load incorrect directory on purpose for now. - PlayAnnouncer( "gameplay battle damage level3", 0 ); - - GAMESTATE->RemoveAllActiveAttacks(); - - FOREACH_EnabledPlayerNumberInfo( m_vPlayerInfo, pi ) - { - if( !GAMESTATE->IsCpuPlayer(pi->m_pn) ) - continue; - - SOUND->PlayOnceFromDir( THEME->GetPathS(m_sName,"oni die") ); - pi->ShowOniGameOver(); - pi->m_NoteData.Init(); // remove all notes and scoring - pi->m_pPlayer->FadeToFail(); // tell the NoteField to fade to white + FAIL_M("Invalid fail type! Aborting..."); } } - } - // update give up - bool bGiveUpTimerFired = !m_GiveUpTimer.IsZero() && m_GiveUpTimer.Ago() > 2.5f; - - - bool bAllHumanHaveBigMissCombo = true; - FOREACH_EnabledPlayerNumberInfo( m_vPlayerInfo, pi ) - { - if (pi->GetPlayerState()->m_PlayerOptions.GetCurrent().m_FailType == PlayerOptions::FAIL_OFF || - pi->GetPlayerState()->m_HealthState < HealthState_Dead ) - { - bAllHumanHaveBigMissCombo = false; - break; - } - } - if (bAllHumanHaveBigMissCombo) // possible to get in here. - { - bAllHumanHaveBigMissCombo = FAIL_ON_MISS_COMBO.GetValue() != -1 && STATSMAN->m_CurStageStats.GetMinimumMissCombo() >= FAIL_ON_MISS_COMBO; - } - if( bGiveUpTimerFired || bAllHumanHaveBigMissCombo ) - { - STATSMAN->m_CurStageStats.m_bGaveUp = true; - FOREACH_EnabledPlayerNumberInfo( m_vPlayerInfo, pi ) - { - pi->GetPlayerStageStats()->m_bFailed |= bAllHumanHaveBigMissCombo; - pi->GetPlayerStageStats()->m_bDisqualified |= bGiveUpTimerFired; // Don't disqualify if failing for miss combo. The player should still be eligable for a high score on courses. - } - - AbortGiveUp( false ); - - if( GIVING_UP_GOES_TO_PREV_SCREEN ) - { - BeginBackingOutFromGameplay(); - } - else + if( bAllFailed ) { m_pSoundMusic->StopPlaying(); - this->PostScreenMessage( SM_NotesEnded, 0 ); + SCREENMAN->PostMessageToTopScreen( SM_NotesEnded, 0 ); + // todo: stop lyrics (m_LyricDisplay) from animating -aj } - return; - } - // Check to see if it's time to play a ScreenGameplay comment - m_fTimeSinceLastDancingComment += fDeltaTime; + // Update living players' alive time + // HACK: Don't scale alive time when using tab/tilde. Instead of accumulating time from a timer, + // this time should instead be tied to the music position. + float fUnscaledDeltaTime = m_timerGameplaySeconds.GetDeltaTime(); - switch( GAMESTATE->m_PlayMode ) - { - case PLAY_MODE_REGULAR: - case PLAY_MODE_BATTLE: - case PLAY_MODE_RAVE: - if( GAMESTATE->OneIsHot() ) - PlayAnnouncer( "gameplay comment hot", SECONDS_BETWEEN_COMMENTS ); - else if( GAMESTATE->AllAreInDangerOrWorse() ) - PlayAnnouncer( "gameplay comment danger", SECONDS_BETWEEN_COMMENTS ); - else - PlayAnnouncer( "gameplay comment good", SECONDS_BETWEEN_COMMENTS ); - break; - case PLAY_MODE_NONSTOP: - case PLAY_MODE_ONI: - case PLAY_MODE_ENDLESS: - PlayAnnouncer( "gameplay comment oni", SECONDS_BETWEEN_COMMENTS ); - break; - default: - ASSERT(0); - } + FOREACH_EnabledPlayerInfo( m_vPlayerInfo, pi ) + if( !pi->GetPlayerStageStats()->m_bFailed ) + pi->GetPlayerStageStats()->m_fAliveSeconds += fUnscaledDeltaTime * GAMESTATE->m_SongOptions.GetCurrent().m_fMusicRate; + + // update fGameplaySeconds + STATSMAN->m_CurStageStats.m_fGameplaySeconds += fUnscaledDeltaTime; + float curBeat = GAMESTATE->m_Position.m_fSongBeat; + Song &s = *GAMESTATE->m_pCurSong; + + if( curBeat >= s.GetFirstBeat() && curBeat < s.GetLastBeat() ) + { + STATSMAN->m_CurStageStats.m_fStepsSeconds += fUnscaledDeltaTime; + + if( GAMESTATE->m_SongOptions.GetCurrent().m_fHaste != 0.0f ) + { + float fHasteRate = GetHasteRate(); + GAMESTATE->m_fAccumulatedHasteSeconds += (fUnscaledDeltaTime * fHasteRate) - fUnscaledDeltaTime; + } + } + + // Check for end of song + { + float fSecondsToStartFadingOutMusic, fSecondsToStartTransitioningOut; + GetMusicEndTiming( fSecondsToStartFadingOutMusic, fSecondsToStartTransitioningOut ); + + bool bAllReallyFailed = STATSMAN->m_CurStageStats.AllFailed(); + if( bAllReallyFailed ) + fSecondsToStartTransitioningOut += BEGIN_FAILED_DELAY; + + if( GAMESTATE->m_Position.m_fMusicSeconds >= fSecondsToStartTransitioningOut && !m_NextSong.IsTransitioning() ) + this->PostScreenMessage( SM_NotesEnded, 0 ); + } + + // update 2d dancing characters + FOREACH_EnabledPlayerNumberInfo( m_vPlayerInfo, pi ) + { + DancingCharacters *pCharacter = NULL; + if( m_pSongBackground ) + pCharacter = m_pSongBackground->GetDancingCharacters(); + if( pCharacter != NULL ) + { + TapNoteScore tns = pi->m_pPlayer->GetLastTapNoteScore(); + + ANIM_STATES_2D state = AS2D_MISS; + + switch( tns ) + { + case TNS_W4: + case TNS_W3: + state = AS2D_GOOD; + break; + case TNS_W2: + case TNS_W1: + state = AS2D_GREAT; + break; + default: + state = AS2D_MISS; + break; + } + + if( state == AS2D_GREAT && pi->GetPlayerState()->m_HealthState == HealthState_Hot ) + state = AS2D_FEVER; + + pCharacter->Change2DAnimState( pi->m_pn, state ); + } + } + + // Check for enemy death in enemy battle + static float fLastSeenEnemyHealth = 1; + if( fLastSeenEnemyHealth != GAMESTATE->m_fOpponentHealthPercent ) + { + fLastSeenEnemyHealth = GAMESTATE->m_fOpponentHealthPercent; + + if( GAMESTATE->m_fOpponentHealthPercent == 0 ) + { + // HACK: Load incorrect directory on purpose for now. + PlayAnnouncer( "gameplay battle damage level3", 0 ); + + GAMESTATE->RemoveAllActiveAttacks(); + + FOREACH_EnabledPlayerNumberInfo( m_vPlayerInfo, pi ) + { + if( !GAMESTATE->IsCpuPlayer(pi->m_pn) ) + continue; + + SOUND->PlayOnceFromDir( THEME->GetPathS(m_sName,"oni die") ); + pi->ShowOniGameOver(); + pi->m_NoteData.Init(); // remove all notes and scoring + pi->m_pPlayer->FadeToFail(); // tell the NoteField to fade to white + } + } + } + + // update give up + bool bGiveUpTimerFired = !m_GiveUpTimer.IsZero() && m_GiveUpTimer.Ago() > 2.5f; + + + bool bAllHumanHaveBigMissCombo = true; + FOREACH_EnabledPlayerNumberInfo( m_vPlayerInfo, pi ) + { + if (pi->GetPlayerState()->m_PlayerOptions.GetCurrent().m_FailType == PlayerOptions::FAIL_OFF || + pi->GetPlayerState()->m_HealthState < HealthState_Dead ) + { + bAllHumanHaveBigMissCombo = false; + break; + } + } + if (bAllHumanHaveBigMissCombo) // possible to get in here. + { + bAllHumanHaveBigMissCombo = FAIL_ON_MISS_COMBO.GetValue() != -1 && STATSMAN->m_CurStageStats.GetMinimumMissCombo() >= FAIL_ON_MISS_COMBO; + } + if( bGiveUpTimerFired || bAllHumanHaveBigMissCombo ) + { + STATSMAN->m_CurStageStats.m_bGaveUp = true; + FOREACH_EnabledPlayerNumberInfo( m_vPlayerInfo, pi ) + { + pi->GetPlayerStageStats()->m_bFailed |= bAllHumanHaveBigMissCombo; + pi->GetPlayerStageStats()->m_bDisqualified |= bGiveUpTimerFired; // Don't disqualify if failing for miss combo. The player should still be eligable for a high score on courses. + } + + AbortGiveUp( false ); + + if( GIVING_UP_GOES_TO_PREV_SCREEN ) + { + BeginBackingOutFromGameplay(); + } + else + { + m_pSoundMusic->StopPlaying(); + this->PostScreenMessage( SM_NotesEnded, 0 ); + } + return; + } + + // Check to see if it's time to play a ScreenGameplay comment + m_fTimeSinceLastDancingComment += fDeltaTime; + + switch( GAMESTATE->m_PlayMode ) + { + case PLAY_MODE_REGULAR: + case PLAY_MODE_BATTLE: + case PLAY_MODE_RAVE: + if( GAMESTATE->OneIsHot() ) + PlayAnnouncer( "gameplay comment hot", SECONDS_BETWEEN_COMMENTS ); + else if( GAMESTATE->AllAreInDangerOrWorse() ) + PlayAnnouncer( "gameplay comment danger", SECONDS_BETWEEN_COMMENTS ); + else + PlayAnnouncer( "gameplay comment good", SECONDS_BETWEEN_COMMENTS ); + break; + case PLAY_MODE_NONSTOP: + case PLAY_MODE_ONI: + case PLAY_MODE_ENDLESS: + PlayAnnouncer( "gameplay comment oni", SECONDS_BETWEEN_COMMENTS ); + break; + default: + ASSERT(0); + } + } + default: break; } PlayTicks(); diff --git a/src/ScreenJukebox.cpp b/src/ScreenJukebox.cpp index 5059d2ecf1..233107b35b 100644 --- a/src/ScreenJukebox.cpp +++ b/src/ScreenJukebox.cpp @@ -248,10 +248,12 @@ void ScreenJukebox::Input( const InputEventPlus &input ) switch( input.MenuI ) { - case GAME_BUTTON_LEFT: - case GAME_BUTTON_RIGHT: - SCREENMAN->PostMessageToTopScreen( SM_NotesEnded, 0 ); - return; + case GAME_BUTTON_LEFT: + case GAME_BUTTON_RIGHT: + SCREENMAN->PostMessageToTopScreen( SM_NotesEnded, 0 ); + return; + default: + break; } ScreenAttract::AttractInput( input, this ); diff --git a/src/ScreenOptions.cpp b/src/ScreenOptions.cpp index 1afe97c5ee..d9bfc480da 100644 --- a/src/ScreenOptions.cpp +++ b/src/ScreenOptions.cpp @@ -465,12 +465,13 @@ void ScreenOptions::TweenCursor( PlayerNumber pn ) bool bCanGoRight = false; switch( row.GetRowDef().m_layoutType ) { - case LAYOUT_SHOW_ONE_IN_ROW: - bCanGoLeft = iChoiceWithFocus > 0; - bCanGoRight = iChoiceWithFocus >= 0 && iChoiceWithFocus < (int) row.GetRowDef().m_vsChoices.size()-1; - break; - case LAYOUT_SHOW_ALL_IN_ROW: - break; + case LAYOUT_SHOW_ONE_IN_ROW: + bCanGoLeft = iChoiceWithFocus > 0; + bCanGoRight = iChoiceWithFocus >= 0 && iChoiceWithFocus < (int) row.GetRowDef().m_vsChoices.size()-1; + break; + case LAYOUT_SHOW_ALL_IN_ROW: + break; + default: break; } cursor.SetCanGo( bCanGoLeft, bCanGoRight ); @@ -505,13 +506,15 @@ void ScreenOptions::Input( const InputEventPlus &input ) { switch( input.MenuI ) { - case GAME_BUTTON_START: - case GAME_BUTTON_SELECT: - case GAME_BUTTON_MENURIGHT: - case GAME_BUTTON_MENULEFT: - INPUTMAPPER->ResetKeyRepeat( GAME_BUTTON_START, input.pn ); - INPUTMAPPER->ResetKeyRepeat( GAME_BUTTON_RIGHT, input.pn ); - INPUTMAPPER->ResetKeyRepeat( GAME_BUTTON_LEFT, input.pn ); + case GAME_BUTTON_START: + case GAME_BUTTON_SELECT: + case GAME_BUTTON_MENURIGHT: + case GAME_BUTTON_MENULEFT: + INPUTMAPPER->ResetKeyRepeat( GAME_BUTTON_START, input.pn ); + INPUTMAPPER->ResetKeyRepeat( GAME_BUTTON_RIGHT, input.pn ); + INPUTMAPPER->ResetKeyRepeat( GAME_BUTTON_LEFT, input.pn ); + default: + break; } } @@ -736,12 +739,13 @@ void ScreenOptions::AfterChangeValueOrRow( PlayerNumber pn ) BitmapText *pText = NULL; switch( m_InputMode ) { - case INPUTMODE_INDIVIDUAL: - pText = &m_textExplanation[pn]; - break; - case INPUTMODE_SHARE_CURSOR: - pText = &m_textExplanationTogether; - break; + case INPUTMODE_INDIVIDUAL: + pText = &m_textExplanation[pn]; + break; + case INPUTMODE_SHARE_CURSOR: + pText = &m_textExplanationTogether; + break; + default: break; } if( pText->GetText() != text ) { @@ -787,8 +791,8 @@ void ScreenOptions::MenuStart( const InputEventPlus &input ) * GAME_BUTTON_RIGHT are being held. */ switch( m_OptionsNavigation ) { - case NAV_THREE_KEY: - case NAV_TOGGLE_THREE_KEY: + case NAV_THREE_KEY: + case NAV_TOGGLE_THREE_KEY: { bool bHoldingLeftAndRight = INPUTMAPPER->IsBeingPressed( GAME_BUTTON_RIGHT, pn ) && @@ -800,6 +804,7 @@ void ScreenOptions::MenuStart( const InputEventPlus &input ) return; } } + default: break; } this->ProcessMenuStart( input ); @@ -1170,23 +1175,26 @@ void ScreenOptions::AfterChangeRow( PlayerNumber pn ) OptionRow &row = *m_pRows[iRow]; switch( m_OptionsNavigation ) { - case NAV_TOGGLE_FIVE_KEY: - if( row.GetRowDef().m_layoutType != LAYOUT_SHOW_ONE_IN_ROW ) + case NAV_TOGGLE_FIVE_KEY: { - int iSelectionDist = -1; - for( unsigned i = 0; i < row.GetTextItemsSize(); ++i ) + if( row.GetRowDef().m_layoutType != LAYOUT_SHOW_ONE_IN_ROW ) { - int iWidth, iX, iY; - GetWidthXY( pn, m_iCurrentRow[pn], i, iWidth, iX, iY ); - const int iDist = abs( iX-m_iFocusX[pn] ); - if( iSelectionDist == -1 || iDist < iSelectionDist ) + int iSelectionDist = -1; + for( unsigned i = 0; i < row.GetTextItemsSize(); ++i ) { - iSelectionDist = iDist; - row.SetChoiceInRowWithFocus( pn, i ); + int iWidth, iX, iY; + GetWidthXY( pn, m_iCurrentRow[pn], i, iWidth, iX, iY ); + const int iDist = abs( iX-m_iFocusX[pn] ); + if( iSelectionDist == -1 || iDist < iSelectionDist ) + { + iSelectionDist = iDist; + row.SetChoiceInRowWithFocus( pn, i ); + } } } + break; } - break; + default: break; } if( row.GetFirstItemGoesDown() ) diff --git a/src/ScreenPrompt.cpp b/src/ScreenPrompt.cpp index bc617679c1..5ae2ed4505 100644 --- a/src/ScreenPrompt.cpp +++ b/src/ScreenPrompt.cpp @@ -118,12 +118,13 @@ void ScreenPrompt::Input( const InputEventPlus &input ) { switch( input.DeviceI.button ) { - case KEY_LEFT: - this->MenuLeft( input ); - return; - case KEY_RIGHT: - this->MenuRight( input ); - return; + case KEY_LEFT: + this->MenuLeft( input ); + return; + case KEY_RIGHT: + this->MenuRight( input ); + return; + default: break; } } @@ -198,12 +199,13 @@ void ScreenPrompt::End( bool bCancelled ) { switch( m_Answer ) { - case ANSWER_YES: - m_smSendOnPop = SM_Success; - break; - case ANSWER_NO: - m_smSendOnPop = SM_Failure; - break; + case ANSWER_YES: + m_smSendOnPop = SM_Success; + break; + case ANSWER_NO: + m_smSendOnPop = SM_Failure; + break; + default: break; } if( bCancelled ) @@ -218,14 +220,15 @@ void ScreenPrompt::End( bool bCancelled ) switch( m_Answer ) { - case ANSWER_YES: - if( g_pOnYes ) - g_pOnYes(g_pCallbackData); - break; - case ANSWER_NO: - if( g_pOnNo ) - g_pOnNo(g_pCallbackData); - break; + case ANSWER_YES: + if( g_pOnYes ) + g_pOnYes(g_pCallbackData); + break; + case ANSWER_NO: + if( g_pOnNo ) + g_pOnNo(g_pCallbackData); + break; + default: break; } s_LastAnswer = bCancelled ? ANSWER_CANCEL : m_Answer; diff --git a/src/ScreenRanking.cpp b/src/ScreenRanking.cpp index b3df65d662..af57adc86e 100644 --- a/src/ScreenRanking.cpp +++ b/src/ScreenRanking.cpp @@ -212,14 +212,15 @@ float ScreenRanking::SetPage( const PageToShow &pts ) bool bShowTime = false; switch( RANKING_TYPE ) { - case RankingType_Category: - bShowScores = true; - break; - case RankingType_SpecificTrail: - bShowScores = !pts.pCourse->IsOni(); - bShowPoints = pts.pCourse->IsOni(); - bShowTime = pts.pCourse->IsOni(); - break; + case RankingType_Category: + bShowScores = true; + break; + case RankingType_SpecificTrail: + bShowScores = !pts.pCourse->IsOni(); + bShowPoints = pts.pCourse->IsOni(); + bShowTime = pts.pCourse->IsOni(); + break; + default: break; } for( int l=0; l apCharacters; - CHARMAN->GetCharacters( apCharacters ); - m_iSelectedCharacter[pnAffected] += deltaValue; - wrap( m_iSelectedCharacter[pnAffected], apCharacters.size() ); - AfterValueChange(pn); - m_soundChange.Play(); - break; + case CHOOSING_CPU_CHARACTER: + case CHOOSING_HUMAN_CHARACTER: + { + vector apCharacters; + CHARMAN->GetCharacters( apCharacters ); + m_iSelectedCharacter[pnAffected] += deltaValue; + wrap( m_iSelectedCharacter[pnAffected], apCharacters.size() ); + AfterValueChange(pn); + m_soundChange.Play(); + break; + } + default: break; } } @@ -332,12 +337,13 @@ void ScreenSelectCharacter::MakeSelection( PlayerNumber pn ) BeforeRowChange(pn); switch( m_SelectionRow[pn] ) { - case CHOOSING_HUMAN_CHARACTER: - m_SelectionRow[pn] = GAMESTATE->AnyPlayersAreCpu() ? CHOOSING_CPU_CHARACTER : FINISHED_CHOOSING; - break; - case CHOOSING_CPU_CHARACTER: - m_SelectionRow[pn] = FINISHED_CHOOSING; - break; + case CHOOSING_HUMAN_CHARACTER: + m_SelectionRow[pn] = GAMESTATE->AnyPlayersAreCpu() ? CHOOSING_CPU_CHARACTER : FINISHED_CHOOSING; + break; + case CHOOSING_CPU_CHARACTER: + m_SelectionRow[pn] = FINISHED_CHOOSING; + break; + default: break; } AfterRowChange(pn); AfterValueChange(pn); diff --git a/src/ScreenSelectMusic.cpp b/src/ScreenSelectMusic.cpp index 4251ae73ab..dbf4882317 100644 --- a/src/ScreenSelectMusic.cpp +++ b/src/ScreenSelectMusic.cpp @@ -528,21 +528,22 @@ void ScreenSelectMusic::Input( const InputEventPlus &input ) { switch( input.MenuI ) { - case GAME_BUTTON_LEFT: - ChangeSteps( input.pn, -1 ); - m_bAcceptSelectRelease[input.pn] = false; - break; - case GAME_BUTTON_RIGHT: - ChangeSteps( input.pn, +1 ); - m_bAcceptSelectRelease[input.pn] = false; - break; - case GAME_BUTTON_START: - m_bAcceptSelectRelease[input.pn] = false; - if( MODE_MENU_AVAILABLE ) - m_MusicWheel.NextSort(); - else - m_soundLocked.Play(); - break; + case GAME_BUTTON_LEFT: + ChangeSteps( input.pn, -1 ); + m_bAcceptSelectRelease[input.pn] = false; + break; + case GAME_BUTTON_RIGHT: + ChangeSteps( input.pn, +1 ); + m_bAcceptSelectRelease[input.pn] = false; + break; + case GAME_BUTTON_START: + m_bAcceptSelectRelease[input.pn] = false; + if( MODE_MENU_AVAILABLE ) + m_MusicWheel.NextSort(); + else + m_soundLocked.Play(); + break; + default: break; } } else if( input.type == IET_FIRST_PRESS && input.MenuI != GAME_BUTTON_SELECT ) diff --git a/src/ScreenSyncOverlay.cpp b/src/ScreenSyncOverlay.cpp index a0d9f6c6a8..af5b52cf44 100644 --- a/src/ScreenSyncOverlay.cpp +++ b/src/ScreenSyncOverlay.cpp @@ -212,12 +212,16 @@ bool ScreenSyncOverlay::OverlayInput( const InputEventPlus &input ) } switch( input.type ) { - case IET_RELEASE: fDelta *= 0; break; - case IET_REPEAT: - if( INPUTFILTER->GetSecsHeld(input.DeviceI) < 1.0f ) - fDelta *= 0; - else - fDelta *= 10; + case IET_RELEASE: fDelta *= 0; break; + case IET_REPEAT: + { + if( INPUTFILTER->GetSecsHeld(input.DeviceI) < 1.0f ) + fDelta *= 0; + else + fDelta *= 10; + break; + } + default: break; } if( GAMESTATE->m_pCurSong != NULL ) { @@ -237,31 +241,39 @@ bool ScreenSyncOverlay::OverlayInput( const InputEventPlus &input ) } switch( input.type ) { - case IET_RELEASE: fDelta *= 0; break; - case IET_REPEAT: - if( INPUTFILTER->GetSecsHeld(input.DeviceI) < 1.0f ) - fDelta *= 0; - else - fDelta *= 10; + case IET_RELEASE: fDelta *= 0; break; + case IET_REPEAT: + { + if( INPUTFILTER->GetSecsHeld(input.DeviceI) < 1.0f ) + fDelta *= 0; + else + fDelta *= 10; + } + default: break; } switch( a ) { - case ChangeGlobalOffset: + case ChangeGlobalOffset: + { PREFSMAN->m_fGlobalOffsetSeconds.Set( PREFSMAN->m_fGlobalOffsetSeconds + fDelta ); break; - - case ChangeSongOffset: - if( GAMESTATE->m_pCurSong != NULL ) - { - GAMESTATE->m_pCurSong->m_SongTiming.m_fBeat0OffsetInSeconds += fDelta; - const vector& vpSteps = GAMESTATE->m_pCurSong->GetAllSteps(); - FOREACH( Steps*, const_cast&>(vpSteps), s ) - { - (*s)->m_Timing.m_fBeat0OffsetInSeconds += fDelta; - } } - break; + + case ChangeSongOffset: + { + if( GAMESTATE->m_pCurSong != NULL ) + { + GAMESTATE->m_pCurSong->m_SongTiming.m_fBeat0OffsetInSeconds += fDelta; + const vector& vpSteps = GAMESTATE->m_pCurSong->GetAllSteps(); + FOREACH( Steps*, const_cast&>(vpSteps), s ) + { + (*s)->m_Timing.m_fBeat0OffsetInSeconds += fDelta; + } + } + break; + } + default: break; } } break; diff --git a/src/ScreenTestInput.cpp b/src/ScreenTestInput.cpp index cabf9849ff..d0390babb1 100644 --- a/src/ScreenTestInput.cpp +++ b/src/ScreenTestInput.cpp @@ -95,14 +95,19 @@ void ScreenTestInput::Input( const InputEventPlus &input ) RString sMessage = input.DeviceI.ToString(); switch( input.type ) { - case IET_FIRST_PRESS: - case IET_RELEASE: - switch( input.type ) + case IET_FIRST_PRESS: + case IET_RELEASE: { - case IET_FIRST_PRESS: sMessage += "Pressed"; break; - case IET_RELEASE: sMessage += "Released"; break; + switch( input.type ) + { + case IET_FIRST_PRESS: sMessage += "Pressed"; break; + case IET_RELEASE: sMessage += "Released"; break; + default: break; + } + MESSAGEMAN->Broadcast( sMessage ); + break; } - MESSAGEMAN->Broadcast( sMessage ); + default: break; } Screen::Input( input ); // default handler diff --git a/src/ScreenTestLights.cpp b/src/ScreenTestLights.cpp index 87b0b0eb35..e83a11f6a5 100644 --- a/src/ScreenTestLights.cpp +++ b/src/ScreenTestLights.cpp @@ -59,12 +59,13 @@ void ScreenTestLights::Update( float fDeltaTime ) switch( LIGHTSMAN->GetLightsMode() ) { - case LIGHTSMODE_TEST_AUTO_CYCLE: - s += AUTO_CYCLE.GetValue()+"\n"; - break; - case LIGHTSMODE_TEST_MANUAL_CYCLE: - s += MANUAL_CYCLE.GetValue()+"\n"; - break; + case LIGHTSMODE_TEST_AUTO_CYCLE: + s += AUTO_CYCLE.GetValue()+"\n"; + break; + case LIGHTSMODE_TEST_MANUAL_CYCLE: + s += MANUAL_CYCLE.GetValue()+"\n"; + break; + default: break; } if( cl == CabinetLight_Invalid ) diff --git a/src/ScreenTestSound.cpp b/src/ScreenTestSound.cpp index 813f5cf6fa..9883f9fbec 100644 --- a/src/ScreenTestSound.cpp +++ b/src/ScreenTestSound.cpp @@ -137,68 +137,69 @@ void ScreenTestSound::Input( const InputEventPlus &input ) case DEVICE_KEYBOARD: switch( input.DeviceI.button ) { - case '1': - case '2': - case '3': - case '4': - case '5': selected = input.DeviceI.button - '0'-1; break; - case 'p': - { - /* We want to be able to read the position of copied sounds; if we let - * RageSound copy itself, then the copy will be owned by RageSoundManager - * and we won't be allowed to touch it. Copy it ourself. */ - RageSound *pCopy = new RageSound( s[selected].s ); - m_sSoundCopies[selected].push_back( pCopy ); - pCopy->Play(); - break; - } - case 's': - for( int i = 0; i < nsounds; ++i ) + case '1': + case '2': + case '3': + case '4': + case '5': selected = input.DeviceI.button - '0'-1; break; + case 'p': { - /* Stop copied sounds. */ - vector &snds = m_sSoundCopies[i]; - for( unsigned j = 0; j < snds.size(); ++j ) - snds[j]->Stop(); + /* We want to be able to read the position of copied sounds; if we let + * RageSound copy itself, then the copy will be owned by RageSoundManager + * and we won't be allowed to touch it. Copy it ourself. */ + RageSound *pCopy = new RageSound( s[selected].s ); + m_sSoundCopies[selected].push_back( pCopy ); + pCopy->Play(); + break; } - break; - case 'l': + case 's': + { + for( int i = 0; i < nsounds; ++i ) + { + /* Stop copied sounds. */ + vector &snds = m_sSoundCopies[i]; + for( unsigned j = 0; j < snds.size(); ++j ) + snds[j]->Stop(); + } + break; + } + case 'l': { RageSoundParams p = s[selected].s.GetParams(); p.StopMode = RageSoundParams::M_LOOP; s[selected].s.SetParams( p ); + break; } - - break; - case 'a': + case 'a': { RageSoundParams p = s[selected].s.GetParams(); p.StopMode = RageSoundParams::M_STOP; s[selected].s.SetParams( p ); + break; } - break; - case 'c': + case 'c': { RageSoundParams p = s[selected].s.GetParams(); p.StopMode = RageSoundParams::M_CONTINUE; s[selected].s.SetParams( p ); + break; } - break; - -/* case KEY_LEFT: - obj.SetX(obj.GetX() - 10); - break; - case KEY_RIGHT: - obj.SetX(obj.GetX() + 10); - break; - case KEY_UP: - obj.SetY(obj.GetY() - 10); - break; - case KEY_DOWN: - obj.SetY(obj.GetY() + 10); - break; +/* case KEY_LEFT: + obj.SetX(obj.GetX() - 10); + break; + case KEY_RIGHT: + obj.SetX(obj.GetX() + 10); + break; + case KEY_UP: + obj.SetY(obj.GetY() - 10); + break; + case KEY_DOWN: + obj.SetY(obj.GetY() + 10); + break; */ + default: break; } - + default: break; } } diff --git a/src/ScreenTextEntry.cpp b/src/ScreenTextEntry.cpp index ee5fa14164..620a0f7bcc 100644 --- a/src/ScreenTextEntry.cpp +++ b/src/ScreenTextEntry.cpp @@ -200,10 +200,11 @@ void ScreenTextEntry::Input( const InputEventPlus &input ) { switch( input.type ) { - case IET_FIRST_PRESS: - case IET_REPEAT: - BackspaceInAnswer(); - break; + case IET_FIRST_PRESS: + case IET_REPEAT: + BackspaceInAnswer(); + default: + break; } } else if( input.type == IET_FIRST_PRESS ) diff --git a/src/SongManager.cpp b/src/SongManager.cpp index 9550ae3c75..8fda712dff 100644 --- a/src/SongManager.cpp +++ b/src/SongManager.cpp @@ -497,7 +497,7 @@ RageColor SongManager::GetSongColor( const Song* pSong ) const int i = m_vPreferredSongSort.size(); return SONG_GROUP_COLOR.GetValue( i%NUM_SONG_GROUP_COLORS ); } - else + else // TODO: Have a better fallback plan with colors? { /* XXX: Previously, this matched all notes, which set a song to "extra" * if it had any 10-foot steps at all, even edits or doubles. @@ -516,9 +516,10 @@ RageColor SongManager::GetSongColor( const Song* pSong ) const const Steps* pSteps = vpSteps[i]; switch( pSteps->GetDifficulty() ) { - case Difficulty_Challenge: - case Difficulty_Edit: - continue; + case Difficulty_Challenge: + case Difficulty_Edit: + continue; + default: break; } //if(pSteps->m_StepsType != st) @@ -527,7 +528,7 @@ RageColor SongManager::GetSongColor( const Song* pSong ) const if( pSteps->GetMeter() >= EXTRA_COLOR_METER ) return (RageColor)EXTRA_COLOR; } - if( pSong->m_sMainTitle == "DVNO") + if( pSong->m_sMainTitle == "DVNO") // XXX: What IS this? An easter egg? -Wolfman2000 { return RageColor(1.0f,0.8f,0.0f,1.0f); } diff --git a/src/StageStats.cpp b/src/StageStats.cpp index d30e7bfe9f..28ac23f8b7 100644 --- a/src/StageStats.cpp +++ b/src/StageStats.cpp @@ -166,9 +166,10 @@ void StageStats::FinalizeScores( bool bSummary ) { switch( GAMESTATE->m_PlayMode ) { - case PLAY_MODE_BATTLE: - case PLAY_MODE_RAVE: - return; // don't save scores in battle + case PLAY_MODE_BATTLE: + case PLAY_MODE_RAVE: + return; // don't save scores in battle + default: break; } if( PREFSMAN->m_sTestInitialScreen.Get() != "" ) diff --git a/src/StepMania.cpp b/src/StepMania.cpp index 6d1c75ea19..b5622e36b4 100644 --- a/src/StepMania.cpp +++ b/src/StepMania.cpp @@ -1273,28 +1273,29 @@ bool HandleGlobalInputs( const InputEventPlus &input ) switch( input.MenuI ) { - case GAME_BUTTON_OPERATOR: - /* Global operator key, to get quick access to the options menu. Don't - * do this if we're on a "system menu", which includes the editor - * (to prevent quitting without storing changes). */ - if( SCREENMAN->AllowOperatorMenuButton() ) - { - SCREENMAN->SystemMessage( SERVICE_SWITCH_PRESSED ); - SCREENMAN->PopAllScreens(); - GAMESTATE->Reset(); - SCREENMAN->SetNewScreen( CommonMetrics::OPERATOR_MENU_SCREEN ); - } - return true; + case GAME_BUTTON_OPERATOR: + /* Global operator key, to get quick access to the options menu. Don't + * do this if we're on a "system menu", which includes the editor + * (to prevent quitting without storing changes). */ + if( SCREENMAN->AllowOperatorMenuButton() ) + { + SCREENMAN->SystemMessage( SERVICE_SWITCH_PRESSED ); + SCREENMAN->PopAllScreens(); + GAMESTATE->Reset(); + SCREENMAN->SetNewScreen( CommonMetrics::OPERATOR_MENU_SCREEN ); + } + return true; - case GAME_BUTTON_COIN: - // Handle a coin insertion. - if( GAMESTATE->IsEditing() ) // no coins while editing - { - LOG->Trace( "Ignored coin insertion (editing)" ); - break; - } - StepMania::InsertCoin(); - return false; // Attract needs to know because it goes to TitleMenu on > 1 credit + case GAME_BUTTON_COIN: + // Handle a coin insertion. + if( GAMESTATE->IsEditing() ) // no coins while editing + { + LOG->Trace( "Ignored coin insertion (editing)" ); + break; + } + StepMania::InsertCoin(); + return false; // Attract needs to know because it goes to TitleMenu on > 1 credit + default: break; } /* Re-added for StepMania 3.9 theming veterans, plus it's just faster than diff --git a/src/UnlockManager.cpp b/src/UnlockManager.cpp index b3d045d649..e8075bbb2c 100644 --- a/src/UnlockManager.cpp +++ b/src/UnlockManager.cpp @@ -268,18 +268,20 @@ static float GetArcadePoints( const Profile *pProfile ) { switch(pm) { - case PLAY_MODE_NONSTOP: - case PLAY_MODE_ONI: - case PLAY_MODE_ENDLESS: - fAP += pProfile->m_iNumSongsPlayedByPlayMode[pm]; - break; + case PLAY_MODE_NONSTOP: + case PLAY_MODE_ONI: + case PLAY_MODE_ENDLESS: + { + fAP += pProfile->m_iNumSongsPlayedByPlayMode[pm]; + } + default: break; } - } return fAP; } +// TODO: Make this more flexible for games with many grade tiers. Lua-ize it? -Wolfman2000 static float GetSongPoints( const Profile *pProfile ) { float fSP = 0; @@ -297,6 +299,7 @@ static float GetSongPoints( const Profile *pProfile ) case Grade_Tier07:/*D*/ fSP += 1* pProfile->m_iNumStagesPassedByGrade[g]; break; case Grade_Failed: case Grade_NoData: + default: ; // no points break; } @@ -306,11 +309,13 @@ static float GetSongPoints( const Profile *pProfile ) { switch(pm) { - case PLAY_MODE_NONSTOP: - case PLAY_MODE_ONI: - case PLAY_MODE_ENDLESS: + case PLAY_MODE_NONSTOP: + case PLAY_MODE_ONI: + case PLAY_MODE_ENDLESS: + { fSP += pProfile->m_iNumSongsPlayedByPlayMode[pm]; - break; + } + default: break; } }