remove Leap, add Portal

This commit is contained in:
Chris Danford
2004-06-02 05:12:45 +00:00
parent cab74820c4
commit 2d269ebe06
10 changed files with 45 additions and 118 deletions
+1 -2
View File
@@ -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
-7
View File
@@ -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
-1
View File
@@ -30,7 +30,6 @@ public:
void LoadTABreakFromCharacter( Character* pCharacter );
void LoadRoulette();
void LoadRandom();
void LoadLeap();
void LoadFallback();
void SetScrolling( bool bScroll, float Percent = 0);
-6
View File
@@ -200,12 +200,6 @@ void FadingBanner::LoadRandom()
m_Banner[GetBackIndex()].LoadRandom();
}
void FadingBanner::LoadLeap()
{
BeforeChange();
m_Banner[GetBackIndex()].LoadLeap();
}
void FadingBanner::LoadFallback()
{
BeforeChange();
-1
View File
@@ -31,7 +31,6 @@ public:
void LoadFromCourse( Course* pCourse );
void LoadRoulette();
void LoadRandom();
void LoadLeap();
void LoadFallback();
void SetMovingFast( bool fast ) { m_bMovingFast=fast; }
+23 -36
View File
@@ -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<WheelItemData> &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;
}
+4 -5
View File
@@ -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();
+5 -50
View File
@@ -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 "";
}
}
+10 -4
View File
@@ -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;
+2 -6
View File
@@ -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);
}