diff --git a/stepmania/Themes/default/metrics.ini b/stepmania/Themes/default/metrics.ini index bd4aed554b..f375c64efb 100644 --- a/stepmania/Themes/default/metrics.ini +++ b/stepmania/Themes/default/metrics.ini @@ -2864,7 +2864,7 @@ SongRealExtraColor=0.9,0.9,0,1 // yellow SortMenuColor=1,1,0,1 ShowRoulette=1 ShowRandom=1 -ShowLeap=0 +ShowPortal=0 Use3D=0 Wheel3DRadius=200 # Possibly safe defaults? CirclePercent=0.5 @@ -4514,7 +4514,6 @@ Fallback=ScreenWithMenuElements [Banner] ScrollRandom=1 ScrollRoulette=1 -ScrollLeap=1 [ScreenGameplay DifficultyMeterP1] Fallback=DifficultyMeter diff --git a/stepmania/src/Banner.cpp b/stepmania/src/Banner.cpp index 93e1155996..d773da8354 100644 --- a/stepmania/src/Banner.cpp +++ b/stepmania/src/Banner.cpp @@ -12,13 +12,11 @@ CachedThemeMetricB SCROLL_RANDOM ("Banner","ScrollRandom"); CachedThemeMetricB SCROLL_ROULETTE ("Banner","ScrollRoulette"); -CachedThemeMetricB SCROLL_LEAP ("Banner","ScrollLeap"); Banner::Banner() { SCROLL_RANDOM.Refresh(); SCROLL_ROULETTE.Refresh(); - SCROLL_LEAP.Refresh(); m_bScrolling = false; m_fPercentScrolling = 0; @@ -169,11 +167,6 @@ void Banner::LoadRandom() m_bScrolling = (bool)SCROLL_ROULETTE; } -void Banner::LoadLeap() -{ - Load( THEME->GetPathToG("Banner leap") ); - m_bScrolling = (bool)SCROLL_LEAP; -} /* * (c) 2001-2004 Chris Danford diff --git a/stepmania/src/Banner.h b/stepmania/src/Banner.h index 66cc69db77..cb3f3efd96 100644 --- a/stepmania/src/Banner.h +++ b/stepmania/src/Banner.h @@ -30,7 +30,6 @@ public: void LoadTABreakFromCharacter( Character* pCharacter ); void LoadRoulette(); void LoadRandom(); - void LoadLeap(); void LoadFallback(); void SetScrolling( bool bScroll, float Percent = 0); diff --git a/stepmania/src/FadingBanner.cpp b/stepmania/src/FadingBanner.cpp index be0dbbadaa..8f0914beec 100644 --- a/stepmania/src/FadingBanner.cpp +++ b/stepmania/src/FadingBanner.cpp @@ -200,12 +200,6 @@ void FadingBanner::LoadRandom() m_Banner[GetBackIndex()].LoadRandom(); } -void FadingBanner::LoadLeap() -{ - BeforeChange(); - m_Banner[GetBackIndex()].LoadLeap(); -} - void FadingBanner::LoadFallback() { BeforeChange(); diff --git a/stepmania/src/FadingBanner.h b/stepmania/src/FadingBanner.h index a589284266..bbf3d96044 100644 --- a/stepmania/src/FadingBanner.h +++ b/stepmania/src/FadingBanner.h @@ -31,7 +31,6 @@ public: void LoadFromCourse( Course* pCourse ); void LoadRoulette(); void LoadRandom(); - void LoadLeap(); void LoadFallback(); void SetMovingFast( bool fast ) { m_bMovingFast=fast; } diff --git a/stepmania/src/MusicWheel.cpp b/stepmania/src/MusicWheel.cpp index 121a51b62b..a1ac236cad 100644 --- a/stepmania/src/MusicWheel.cpp +++ b/stepmania/src/MusicWheel.cpp @@ -54,7 +54,7 @@ CachedThemeMetricF CIRCLE_PERCENT ("MusicWheel","CirclePercent"); #define SORT_MENU_COLOR THEME->GetMetricC("MusicWheel","SortMenuColor") #define SHOW_ROULETTE THEME->GetMetricB("MusicWheel","ShowRoulette") #define SHOW_RANDOM THEME->GetMetricB("MusicWheel","ShowRandom") -#define SHOW_LEAP THEME->GetMetricB("MusicWheel","ShowLeap") +#define SHOW_PORTAL THEME->GetMetricB("MusicWheel","ShowPortal") CachedThemeMetricB USE_3D ("MusicWheel","Use3D"); CachedThemeMetricI NUM_WHEEL_ITEMS_METRIC ("MusicWheel","NumWheelItems"); #define NUM_WHEEL_ITEMS min( MAX_WHEEL_ITEMS, (int) NUM_WHEEL_ITEMS_METRIC ) @@ -587,8 +587,8 @@ void MusicWheel::BuildWheelItemDatas( vector &arrayWheelItemDatas arrayWheelItemDatas.push_back( WheelItemData(TYPE_ROULETTE, NULL, "", NULL, RageColor(1,0,0,1), SORT_INVALID) ); if( SHOW_RANDOM ) arrayWheelItemDatas.push_back( WheelItemData(TYPE_RANDOM, NULL, "", NULL, RageColor(1,0,0,1), SORT_INVALID) ); - if( SHOW_LEAP ) - arrayWheelItemDatas.push_back( WheelItemData(TYPE_LEAP, NULL, "", NULL, RageColor(1,0,0,1), SORT_INVALID) ); + if( SHOW_PORTAL ) + arrayWheelItemDatas.push_back( WheelItemData(TYPE_PORTAL, NULL, "", NULL, RageColor(1,0,0,1), SORT_INVALID) ); } // HACK: Add extra stage item if it isn't already present on the music wheel @@ -1137,10 +1137,7 @@ void MusicWheel::Update( float fDeltaTime ) void MusicWheel::ChangeMusic(int dist) { m_iSelection += dist; - if( m_iSelection < 0 ) - m_iSelection = m_CurWheelItemData.size()-1; - else if( m_iSelection > int(m_CurWheelItemData.size()-1) ) - m_iSelection = 0; + wrap( m_iSelection, m_CurWheelItemData.size() ); RebuildMusicWheelItems(); @@ -1264,10 +1261,8 @@ bool MusicWheel::Select() // return true if this selection ends the screen case TYPE_RANDOM: StartRandom(); return false; - case TYPE_LEAP: - StartLeap(); - return false; case TYPE_SONG: + case TYPE_PORTAL: if( !GAMESTATE->IsExtraStage() && !GAMESTATE->IsExtraStage2() ) UNLOCKMAN->UnlockSong( m_CurWheelItemData[m_iSelection]->m_pSong ); return true; @@ -1311,32 +1306,6 @@ void MusicWheel::StartRandom() RebuildMusicWheelItems(); } -void MusicWheel::StartLeap() -{ - /* If we're in SORT_SORT_MENU or SORT_MODE_MENU, then the timer probably ran - * out. Make sure we're in a sort with actual selections. */ - switch( GAMESTATE->m_SortOrder ) - { - case SORT_SORT_MENU: - case SORT_MODE_MENU: - SetOpenGroup("", SortOrder(m_LastSortOrder)); - } - - // probe to find a song - for( int i=0; i<20; i++ ) - { - m_iSelection = rand() % m_CurWheelItemData.size(); - if( m_CurWheelItemData[m_iSelection]->m_Type == TYPE_SONG ) - break; // done searching - } - - m_fPositionOffsetFromSelection = 0; - m_WheelState = STATE_SELECTING_MUSIC; - SCREENMAN->PlayStartSound(); - SCREENMAN->PostMessageToTopScreen( SM_SongChanged, 0 ); - RebuildMusicWheelItems(); -} - void MusicWheel::SetOpenGroup(CString group, SortOrder so) { if( so == SORT_INVALID) @@ -1532,3 +1501,21 @@ void MusicWheel::Move(int n) if(m_Moving) ChangeMusic(m_Moving); } + +Song* MusicWheel::GetSelectedSong() +{ + switch( m_CurWheelItemData[m_iSelection]->m_Type ) + { + case TYPE_PORTAL: + // probe to find a song + for( int i=0; i<1000; i++ ) + { + int iSelection = rand() % m_CurWheelItemData.size(); + if( m_CurWheelItemData[iSelection]->m_Type == TYPE_SONG ) + return m_CurWheelItemData[iSelection]->m_pSong; + } + return NULL; + } + + return m_CurWheelItemData[m_iSelection]->m_pSong; +} diff --git a/stepmania/src/MusicWheel.h b/stepmania/src/MusicWheel.h index a3d3b348d0..b55900a8be 100644 --- a/stepmania/src/MusicWheel.h +++ b/stepmania/src/MusicWheel.h @@ -58,7 +58,6 @@ public: bool NextSort(); // return true if change successful void StartRoulette(); void StartRandom(); - void StartLeap(); bool IsRouletting() const; /* Return true if we're moving fast automatically. */ int IsMoving() const; @@ -69,10 +68,10 @@ public: void SetItemPosition( Actor &item, float fPosOffsetsFromMiddle ); bool Select(); // return true if this selection ends the screen - WheelItemType GetSelectedType() { return m_CurWheelItemData[m_iSelection]->m_Type; }; - Song* GetSelectedSong() { return m_CurWheelItemData[m_iSelection]->m_pSong; }; - Course* GetSelectedCourse() { return m_CurWheelItemData[m_iSelection]->m_pCourse; }; - CString GetSelectedSection(){ return m_CurWheelItemData[m_iSelection]->m_sSectionName; }; + WheelItemType GetSelectedType() { return m_CurWheelItemData[m_iSelection]->m_Type; } + Song* GetSelectedSong(); + Course* GetSelectedCourse() { return m_CurWheelItemData[m_iSelection]->m_pCourse; } + CString GetSelectedSection(){ return m_CurWheelItemData[m_iSelection]->m_sSectionName; } bool WheelIsLocked() { return (m_WheelState == STATE_LOCKED ? true : false); } void RebuildMusicWheelItems(); diff --git a/stepmania/src/MusicWheelItem.cpp b/stepmania/src/MusicWheelItem.cpp index c19f2e1435..829a895a28 100644 --- a/stepmania/src/MusicWheelItem.cpp +++ b/stepmania/src/MusicWheelItem.cpp @@ -182,8 +182,8 @@ void MusicWheelItem::LoadFromWheelItemData( WheelItemData* pWID ) m_textRoulette.SetText( THEME->GetMetric("MusicWheel","Random") ); break; - case TYPE_LEAP: - m_textRoulette.SetText( THEME->GetMetric("MusicWheel","Leap") ); + case TYPE_PORTAL: + m_textRoulette.SetText( THEME->GetMetric("MusicWheel","Portal") ); break; default: @@ -232,7 +232,7 @@ void MusicWheelItem::Update( float fDeltaTime ) break; case TYPE_ROULETTE: case TYPE_RANDOM: - case TYPE_LEAP: + case TYPE_PORTAL: m_sprSectionBar.Update( fDeltaTime ); m_textRoulette.Update( fDeltaTime ); break; @@ -266,7 +266,7 @@ void MusicWheelItem::DrawPrimitives() case TYPE_SECTION: case TYPE_ROULETTE: case TYPE_RANDOM: - case TYPE_LEAP: + case TYPE_PORTAL: case TYPE_SORT: bar = &m_sprSectionBar; break; @@ -286,7 +286,7 @@ void MusicWheelItem::DrawPrimitives() break; case TYPE_ROULETTE: case TYPE_RANDOM: - case TYPE_LEAP: + case TYPE_PORTAL: m_textRoulette.Draw(); break; case TYPE_SONG: @@ -331,48 +331,3 @@ void MusicWheelItem::SetZWrite( bool b ) // set all sub-Actors m_All.SetZWrite( b ); } - -bool WheelItemData::HasBanner() const -{ - switch( m_Type ) - { - case TYPE_SONG: - return m_pSong->HasBanner(); - case TYPE_COURSE: - return m_pCourse->HasBanner(); - case TYPE_SECTION: - return SONGMAN->GetGroupBannerPath( m_sSectionName ).size() != 0; - /* XXX: These are special cases. */ - case TYPE_ROULETTE: - case TYPE_RANDOM: - case TYPE_LEAP: - case TYPE_SORT: - return false; - - default: ASSERT(0); return false; // ""; - } -} - -CString WheelItemData::GetBanner() const -{ - switch( m_Type ) - { - case TYPE_SONG: - return m_pSong->GetBannerPath(); - case TYPE_COURSE: - return m_pCourse->m_sBannerPath; - case TYPE_SECTION: - return SONGMAN->GetGroupBannerPath( m_sSectionName ); - - case TYPE_ROULETTE: - return THEME->GetPathToG("Banner random"); - - case TYPE_RANDOM: - return THEME->GetPathToG("Banner roulette"); - - case TYPE_LEAP: - return THEME->GetPathToG("Banner leap"); - - default: ASSERT(0); return ""; - } -} diff --git a/stepmania/src/MusicWheelItem.h b/stepmania/src/MusicWheelItem.h index 5dd3f05441..d514cce341 100644 --- a/stepmania/src/MusicWheelItem.h +++ b/stepmania/src/MusicWheelItem.h @@ -60,16 +60,22 @@ public: ActorFrame m_All; }; -enum WheelItemType { TYPE_SECTION, TYPE_SONG, TYPE_ROULETTE, TYPE_RANDOM, TYPE_LEAP, TYPE_COURSE, TYPE_SORT }; +enum WheelItemType +{ + TYPE_SECTION, + TYPE_SONG, + TYPE_ROULETTE, + TYPE_RANDOM, + TYPE_PORTAL, + TYPE_COURSE, + TYPE_SORT +}; struct WheelItemData { WheelItemData() {} WheelItemData( WheelItemType wit, Song* pSong, CString sSectionName, Course* pCourse, RageColor color, SortOrder so ); - bool HasBanner() const; - CString GetBanner() const; - WheelItemType m_Type; CString m_sSectionName; Course* m_pCourse; diff --git a/stepmania/src/ScreenSelectMusic.cpp b/stepmania/src/ScreenSelectMusic.cpp index 664a04f27c..41ba349643 100644 --- a/stepmania/src/ScreenSelectMusic.cpp +++ b/stepmania/src/ScreenSelectMusic.cpp @@ -910,6 +910,7 @@ void ScreenSelectMusic::ChangeDifficulty( PlayerNumber pn, int dir ) switch( m_MusicWheel.GetSelectedType() ) { case TYPE_SONG: + case TYPE_PORTAL: if( dir > 0 && m_iSelection[pn] == int(m_arrayNotes.size()-1) ) return; if( dir < 0 && m_iSelection[pn] == 0 ) @@ -948,7 +949,6 @@ void ScreenSelectMusic::ChangeDifficulty( PlayerNumber pn, int dir ) case TYPE_RANDOM: case TYPE_ROULETTE: - case TYPE_LEAP: /* XXX: We could be on a music or course sort, or even one with both; we don't * really know which difficulty to change. Maybe the two difficulties should be * linked ... */ @@ -1364,6 +1364,7 @@ void ScreenSelectMusic::AfterMusicChange() } break; case TYPE_SONG: + case TYPE_PORTAL: { SampleMusicToPlay = pSong->GetMusicPath(); SampleMusicTimingData = pSong->GetCacheFilePath(); @@ -1439,12 +1440,10 @@ void ScreenSelectMusic::AfterMusicChange() break; case TYPE_ROULETTE: case TYPE_RANDOM: - case TYPE_LEAP: switch(m_MusicWheel.GetSelectedType()) { case TYPE_ROULETTE: m_Banner.LoadRoulette(); break; case TYPE_RANDOM: m_Banner.LoadRandom(); break; - case TYPE_LEAP: m_Banner.LoadLeap(); break; default: ASSERT(0); } @@ -1467,9 +1466,6 @@ void ScreenSelectMusic::AfterMusicChange() case TYPE_RANDOM: SampleMusicToPlay = THEME->GetPathS(m_sName,"random music"); break; - case TYPE_LEAP: - SampleMusicToPlay = THEME->GetPathS(m_sName,"leap music"); - break; default: ASSERT(0); }