From 1d09179d87b1e999c14f0eda769c60e78ec8c4fc Mon Sep 17 00:00:00 2001 From: Chris Danford Date: Mon, 31 May 2004 08:58:43 +0000 Subject: [PATCH] move extra stage metrics and elements into ScreenGameplayExtra --- .../ScreenGameplayExtra life frame.png | Bin 0 -> 8967 bytes stepmania/Themes/default/metrics.ini | 196 ++++++++++-------- stepmania/src/ScreenGameplay.cpp | 154 +++++++------- 3 files changed, 177 insertions(+), 173 deletions(-) create mode 100644 stepmania/Themes/default/Graphics/ScreenGameplayExtra life frame.png diff --git a/stepmania/Themes/default/Graphics/ScreenGameplayExtra life frame.png b/stepmania/Themes/default/Graphics/ScreenGameplayExtra life frame.png new file mode 100644 index 0000000000000000000000000000000000000000..ba3a7df7c14dc164e527d39ddf4802fa06a96628 GIT binary patch literal 8967 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 literal 0 HcmV?d00001 diff --git a/stepmania/Themes/default/metrics.ini b/stepmania/Themes/default/metrics.ini index f685b376d7..aef94ba4cc 100644 --- a/stepmania/Themes/default/metrics.ini +++ b/stepmania/Themes/default/metrics.ini @@ -883,7 +883,7 @@ StyleIcon=0 MemoryCardIcons=0 [ScreenStage] -NextScreen=ScreenGameplay +NextScreen=ScreenBranchGameplay // This is the minimum delay after the "in" transition before the // "out" transition will begin. (NextScreen is loaded during this // time.) @@ -913,6 +913,14 @@ BackgroundOffCommand= OverlayOnCommand= OverlayOffCommand= +[ScreenBranchGameplay] +Class=ScreenBranch +Choices=1,2 +Condition1=IsExtraStage() or IsExtraStage2() +Condition2=true +NextScreen1=screen,ScreenGameplayExtra +NextScreen2=screen,ScreenGameplay + [ScreenGameplay] ShowEvaluationOnFail=0 StaticBGY=240 @@ -941,34 +949,18 @@ LifeFrameX=320 LifeFrameY=36 LifeFrameOnCommand=addy,-100;sleep,0.5;linear,1;addy,100 LifeFrameOffCommand=linear,1;addy,-100 -LifeFrameExtraX=320 -LifeFrameExtraY=442 -LifeFrameExtraOnCommand=addy,100;sleep,0.5;linear,1;addy,-100 -LifeFrameExtraOffCommand=linear,1;addy,100 ScoreFrameX=320 ScoreFrameY=448 ScoreFrameOnCommand=addy,100;sleep,0.5;linear,1;addy,-100 ScoreFrameOffCommand=linear,1;addy,100 -ScoreFrameExtraX=320 -ScoreFrameExtraY=32 -ScoreFrameExtraOnCommand=addy,-100;sleep,0.5;linear,1;addy,100 -ScoreFrameExtraOffCommand=linear,1;addy,-100 LifeP1X=140 LifeP1Y=28 LifeP1OnCommand=addy,-100;sleep,0.5;linear,1;addy,100 LifeP1OffCommand=linear,1;addy,-100 -LifeP1ExtraX=140 -LifeP1ExtraY=450 -LifeP1ExtraOnCommand=addy,100;sleep,0.5;linear,1;addy,-100 -LifeP1ExtraOffCommand=linear,1;addy,100 LifeP2X=500 LifeP2Y=28 LifeP2OnCommand=addy,-100;sleep,0.5;linear,1;addy,100 LifeP2OffCommand=linear,1;addy,-100 -LifeP2ExtraX=500 -LifeP2ExtraY=450 -LifeP2ExtraOnCommand=addy,100;sleep,0.5;linear,1;addy,-100 -LifeP2ExtraOffCommand=linear,1;addy,100 CombinedLifeX=320 CombinedLifeY=28 CombinedLifeOnCommand=addy,-100;sleep,0.5;linear,1;addy,100 @@ -977,10 +969,6 @@ StageX=320 StageY=54 StageOnCommand=addy,-100;sleep,0.5;linear,1;addy,100 StageOffCommand=linear,1;addy,-100 -StageExtraX=320 -StageExtraY=422 -StageExtraOnCommand=addy,100;sleep,0.5;linear,1;addy,-100 -StageExtraOffCommand=linear,1;addy,100 StageFrameX=0 StageFrameY=0 StageFrameOnCommand=hidden,1 @@ -989,18 +977,10 @@ SongNumberP1X=290 SongNumberP1Y=54 SongNumberP1OnCommand=addy,-100;sleep,0.5;linear,1;addy,100 SongNumberP1OffCommand=linear,1;addy,-100 -SongNumberP1ExtraX=290 -SongNumberP1ExtraY=440 -SongNumberP1ExtraOnCommand=addy,100;sleep,0.5;linear,1;addy,-100 -SongNumberP1ExtraOffCommand=linear,1;addy,100 SongNumberP2X=350 SongNumberP2Y=54 SongNumberP2OnCommand=addy,-100;sleep,0.5;linear,1;addy,100 SongNumberP2OffCommand=linear,1;addy,-100 -SongNumberP2ExtraX=350 -SongNumberP2ExtraY=440 -SongNumberP2ExtraOnCommand=addy,100;sleep,0.5;linear,1;addy,-100 -SongNumberP2ExtraOffCommand=linear,1;addy,100 CourseSongNumberX=0 CourseSongNumberY=0 CourseSongNumberOnCommand=hidden,1 @@ -1012,50 +992,26 @@ ScoreP1X=106 ScoreP1Y=444 ScoreP1OnCommand=addy,100;sleep,0.5;linear,1;addy,-100 ScoreP1OffCommand=linear,1;addy,100 -ScoreP1ExtraX=106 -ScoreP1ExtraY=38 -ScoreP1ExtraOnCommand=addy,-100;sleep,0.5;linear,1;addy,100 -ScoreP1ExtraOffCommand=linear,1;addy,-100 ScoreP2X=534 ScoreP2Y=444 ScoreP2OnCommand=addy,100;sleep,0.5;linear,1;addy,-100 ScoreP2OffCommand=linear,1;addy,100 -ScoreP2ExtraX=534 -ScoreP2ExtraY=38 -ScoreP2ExtraOnCommand=addy,-100;sleep,0.5;linear,1;addy,100 -ScoreP2ExtraOffCommand=linear,1;addy,-100 SecondaryScoreP1X=300 SecondaryScoreP1Y=240 SecondaryScoreP1OnCommand= SecondaryScoreP1OffCommand= -SecondaryScoreP1ExtraX=300 -SecondaryScoreP1ExtraY=240 -SecondaryScoreP1ExtraOnCommand= -SecondaryScoreP1ExtraOffCommand= SecondaryScoreP2X=340 SecondaryScoreP2Y=240 SecondaryScoreP2OnCommand= SecondaryScoreP2OffCommand= -SecondaryScoreP2ExtraX=340 -SecondaryScoreP2ExtraY=240 -SecondaryScoreP2ExtraOnCommand= -SecondaryScoreP2ExtraOffCommand= PlayerOptionsP1X=320 PlayerOptionsP1Y=434 PlayerOptionsP1OnCommand=zoom,0.5;addy,100;sleep,0.5;linear,1;addy,-100 PlayerOptionsP1OffCommand=linear,1;addy,100 -PlayerOptionsP1ExtraX=320 -PlayerOptionsP1ExtraY=46 -PlayerOptionsP1ExtraOnCommand=zoom,0.5;addy,-100;sleep,0.5;linear,1;addy,100 -PlayerOptionsP1ExtraOffCommand=linear,1;addy,-100 PlayerOptionsP2X=320 PlayerOptionsP2Y=450 PlayerOptionsP2OnCommand=zoom,0.5;addy,100;sleep,0.5;linear,1;addy,-100 PlayerOptionsP2OffCommand=linear,1;addy,100 -PlayerOptionsP2ExtraX=320 -PlayerOptionsP2ExtraY=30 -PlayerOptionsP2ExtraOnCommand=zoom,0.5;addy,-100;sleep,0.5;linear,1;addy,100 -PlayerOptionsP2ExtraOffCommand=linear,1;addy,-100 PlayerNameP1X=0 PlayerNameP1Y=0 PlayerNameP1OnCommand=hidden,1 @@ -1076,10 +1032,6 @@ SongOptionsX=320 SongOptionsY=470 SongOptionsOnCommand=zoom,0.5;addy,100;sleep,0.5;linear,1;addy,-100 SongOptionsOffCommand=linear,1;addy,100 -SongOptionsExtraX=320 -SongOptionsExtraY=10 -SongOptionsExtraOnCommand=zoom,0.5;addy,-100;sleep,0.5;linear,1;addy,100 -SongOptionsExtraOffCommand=linear,1;addy,-100 DifficultyP1X=60 DifficultyP1Y=410 DifficultyP1OnCommand=addx,-200;sleep,0.5;linear,1;addx,200 @@ -1088,14 +1040,6 @@ DifficultyP1ReverseX=60 DifficultyP1ReverseY=58 DifficultyP1ReverseOnCommand=addx,-200;sleep,0.5;linear,1;addx,200 DifficultyP1ReverseOffCommand=linear,1;addx,-200 -DifficultyP1ExtraX=60 -DifficultyP1ExtraY=420 -DifficultyP1ExtraOnCommand=addx,-200;sleep,0.5;linear,1;addx,200 -DifficultyP1ExtraOffCommand=linear,1;addx,-200 -DifficultyP1ExtraReverseX=60 -DifficultyP1ExtraReverseY=70 -DifficultyP1ExtraReverseOnCommand=addx,-200;sleep,0.5;linear,1;addx,200 -DifficultyP1ExtraReverseOffCommand=linear,1;addx,-200 DifficultyP2X=580 DifficultyP2Y=410 DifficultyP2OnCommand=addx,200;sleep,0.5;linear,1;addx,-200 @@ -1104,22 +1048,6 @@ DifficultyP2ReverseX=580 DifficultyP2ReverseY=58 DifficultyP2ReverseOnCommand=addx,200;sleep,0.5;linear,1;addx,-200 DifficultyP2ReverseOffCommand=linear,1;addx,200 -DifficultyP2ExtraX=580 -DifficultyP2ExtraY=420 -DifficultyP2ExtraOnCommand=addx,200;sleep,0.5;linear,1;addx,-200 -DifficultyP2ExtraOffCommand=linear,1;addx,200 -DifficultyP2ExtraReverseX=580 -DifficultyP2ExtraReverseY=70 -DifficultyP2ExtraReverseOnCommand=addx,200;sleep,0.5;linear,1;addx,-200 -DifficultyP2ExtraReverseOffCommand=linear,1;addx,200 -DifficultyMeterP1ExtraOffCommand= -DifficultyMeterP1ExtraOnCommand=hidden,1 -DifficultyMeterP1ExtraReverseOffCommand= -DifficultyMeterP1ExtraReverseOnCommand=hidden,1 -DifficultyMeterP1ExtraReverseX= -DifficultyMeterP1ExtraReverseY= -DifficultyMeterP1ExtraX= -DifficultyMeterP1ExtraY= DifficultyMeterP1OffCommand= DifficultyMeterP1OnCommand=hidden,1 DifficultyMeterP1ReverseOffCommand= @@ -1128,14 +1056,6 @@ DifficultyMeterP1ReverseX= DifficultyMeterP1ReverseY= DifficultyMeterP1X= DifficultyMeterP1Y= -DifficultyMeterP2ExtraOffCommand= -DifficultyMeterP2ExtraOnCommand=hidden,1 -DifficultyMeterP2ExtraReverseOffCommand= -DifficultyMeterP2ExtraReverseOnCommand=hidden,1 -DifficultyMeterP2ExtraReverseX= -DifficultyMeterP2ExtraReverseY= -DifficultyMeterP2ExtraX= -DifficultyMeterP2ExtraY= DifficultyMeterP2OffCommand= DifficultyMeterP2OnCommand=hidden,1 DifficultyMeterP2ReverseOffCommand= @@ -1177,6 +1097,98 @@ SongPositionMeterY= SongPositionMeterOnCommand=hidden,1 SongPositionMeterOffCommand= +[ScreenGameplayExtra] +Class=ScreenGameplay +Fallback=ScreenGameplay +LifeFrameX=320 +LifeFrameY=442 +LifeFrameOnCommand=addy,100;sleep,0.5;linear,1;addy,-100 +LifeFrameOffCommand=linear,1;addy,100 +ScoreFrameX=320 +ScoreFrameY=32 +ScoreFrameOnCommand=addy,-100;sleep,0.5;linear,1;addy,100 +ScoreFrameOffCommand=linear,1;addy,-100 +LifeP1X=140 +LifeP1Y=450 +LifeP1OnCommand=addy,100;sleep,0.5;linear,1;addy,-100 +LifeP1OffCommand=linear,1;addy,100 +LifeP2X=500 +LifeP2Y=450 +LifeP2OnCommand=addy,100;sleep,0.5;linear,1;addy,-100 +LifeP2OffCommand=linear,1;addy,100 +StageX=320 +StageY=422 +StageOnCommand=addy,100;sleep,0.5;linear,1;addy,-100 +StageOffCommand=linear,1;addy,100 +SongNumberP1X=290 +SongNumberP1Y=440 +SongNumberP1OnCommand=addy,100;sleep,0.5;linear,1;addy,-100 +SongNumberP1OffCommand=linear,1;addy,100 +SongNumberP2X=350 +SongNumberP2Y=440 +SongNumberP2OnCommand=addy,100;sleep,0.5;linear,1;addy,-100 +SongNumberP2OffCommand=linear,1;addy,100 +ScoreP1X=106 +ScoreP1Y=38 +ScoreP1OnCommand=addy,-100;sleep,0.5;linear,1;addy,100 +ScoreP1OffCommand=linear,1;addy,-100 +ScoreP2X=534 +ScoreP2Y=38 +ScoreP2OnCommand=addy,-100;sleep,0.5;linear,1;addy,100 +ScoreP2OffCommand=linear,1;addy,-100 +SecondaryScoreP1X=300 +SecondaryScoreP1Y=240 +SecondaryScoreP1OnCommand= +SecondaryScoreP1OffCommand= +SecondaryScoreP2X=340 +SecondaryScoreP2Y=240 +SecondaryScoreP2OnCommand= +SecondaryScoreP2OffCommand= +PlayerOptionsP1X=320 +PlayerOptionsP1Y=46 +PlayerOptionsP1OnCommand=zoom,0.5;addy,-100;sleep,0.5;linear,1;addy,100 +PlayerOptionsP1OffCommand=linear,1;addy,-100 +PlayerOptionsP2X=320 +PlayerOptionsP2Y=30 +PlayerOptionsP2OnCommand=zoom,0.5;addy,-100;sleep,0.5;linear,1;addy,100 +PlayerOptionsP2OffCommand=linear,1;addy,-100 +SongOptionsX=320 +SongOptionsY=10 +SongOptionsOnCommand=zoom,0.5;addy,-100;sleep,0.5;linear,1;addy,100 +SongOptionsOffCommand=linear,1;addy,-100 +DifficultyP1X=60 +DifficultyP1Y=420 +DifficultyP1OnCommand=addx,-200;sleep,0.5;linear,1;addx,200 +DifficultyP1OffCommand=linear,1;addx,-200 +DifficultyP1ReverseX=60 +DifficultyP1ReverseY=70 +DifficultyP1ReverseOnCommand=addx,-200;sleep,0.5;linear,1;addx,200 +DifficultyP1ReverseOffCommand=linear,1;addx,-200 +DifficultyP2X=580 +DifficultyP2Y=420 +DifficultyP2OnCommand=addx,200;sleep,0.5;linear,1;addx,-200 +DifficultyP2OffCommand=linear,1;addx,200 +DifficultyP2ReverseX=580 +DifficultyP2ReverseY=70 +DifficultyP2ReverseOnCommand=addx,200;sleep,0.5;linear,1;addx,-200 +DifficultyP2ReverseOffCommand=linear,1;addx,200 +DifficultyMeterP1OffCommand= +DifficultyMeterP1OnCommand=hidden,1 +DifficultyMeterP1ReverseOffCommand= +DifficultyMeterP1ReverseOnCommand=hidden,1 +DifficultyMeterP1ReverseX= +DifficultyMeterP1ReverseY= +DifficultyMeterP1X= +DifficultyMeterP1Y= +DifficultyMeterP2OffCommand= +DifficultyMeterP2OnCommand=hidden,1 +DifficultyMeterP2ReverseOffCommand= +DifficultyMeterP2ReverseOnCommand=hidden,1 +DifficultyMeterP2ReverseX= +DifficultyMeterP2ReverseY= +DifficultyMeterP2X= +DifficultyMeterP2Y= + [ScreenBranchEvaluation] Class=ScreenBranch Choices=1,2,3,4,5,6 @@ -4511,6 +4523,12 @@ Fallback=DifficultyMeter [ScreenGameplay DifficultyMeterP2] Fallback=DifficultyMeter +[ScreenGameplayExtra DifficultyMeterP1] +Fallback=DifficultyMeter + +[ScreenGameplayExtra DifficultyMeterP2] +Fallback=DifficultyMeter + [ScreenEvaluation DifficultyMeterP1] Fallback=DifficultyMeter diff --git a/stepmania/src/ScreenGameplay.cpp b/stepmania/src/ScreenGameplay.cpp index 3fe7e0243c..74a75706a3 100644 --- a/stepmania/src/ScreenGameplay.cpp +++ b/stepmania/src/ScreenGameplay.cpp @@ -54,15 +54,15 @@ // // Defines // -#define PREV_SCREEN THEME->GetMetric ("ScreenGameplay","PrevScreen") -#define NEXT_SCREEN THEME->GetMetric ("ScreenGameplay","NextScreen") -#define SHOW_LIFE_METER_FOR_DISABLED_PLAYERS THEME->GetMetricB("ScreenGameplay","ShowLifeMeterForDisabledPlayers") -#define EVAL_ON_FAIL THEME->GetMetricB("ScreenGameplay","ShowEvaluationOnFail") -#define SHOW_SCORE_IN_RAVE THEME->GetMetricB("ScreenGameplay","ShowScoreInRave") -#define SONG_POSITION_METER_WIDTH THEME->GetMetricF("ScreenGameplay","SongPositionMeterWidth") +#define PREV_SCREEN THEME->GetMetric (m_sName,"PrevScreen") +#define NEXT_SCREEN THEME->GetMetric (m_sName,"NextScreen") +#define SHOW_LIFE_METER_FOR_DISABLED_PLAYERS THEME->GetMetricB(m_sName,"ShowLifeMeterForDisabledPlayers") +#define EVAL_ON_FAIL THEME->GetMetricB(m_sName,"ShowEvaluationOnFail") +#define SHOW_SCORE_IN_RAVE THEME->GetMetricB(m_sName,"ShowScoreInRave") +#define SONG_POSITION_METER_WIDTH THEME->GetMetricF(m_sName,"SongPositionMeterWidth") /* XXX: This is ugly; most people don't need to override this per-mode. This will * go away eventually, once metrics can redirect to Lua calls. */ -#define INITIAL_BACKGROUND_BRIGHTNESS( play_mode ) THEME->GetMetricF("ScreenGameplay","InitialBackgroundBrightness"+Capitalize(PlayModeToString(play_mode))) +#define INITIAL_BACKGROUND_BRIGHTNESS( play_mode ) THEME->GetMetricF(m_sName,"InitialBackgroundBrightness"+Capitalize(PlayModeToString(play_mode))) static CachedThemeMetricF SECONDS_BETWEEN_COMMENTS ("ScreenGameplay","SecondsBetweenComments"); static CachedThemeMetricF TICK_EARLY_SECONDS ("ScreenGameplay","TickEarlySeconds"); @@ -288,7 +288,6 @@ void ScreenGameplay::Init() m_bZeroDeltaOnNextUpdate = false; - const bool bExtra = GAMESTATE->IsExtraStage() || GAMESTATE->IsExtraStage2(); // init old offset in case offset changes in song if( GAMESTATE->IsCourseMode() ) g_fOldOffset = -1000; @@ -305,14 +304,14 @@ void ScreenGameplay::Init() m_sprStaticBackground.SetName( "StaticBG" ); - m_sprStaticBackground.Load( THEME->GetPathToG("ScreenGameplay Static Background")); + m_sprStaticBackground.Load( THEME->GetPathG(m_sName,"Static Background") ); SET_XY( m_sprStaticBackground ); m_sprStaticBackground.SetDrawOrder( DRAW_ORDER_BEFORE_EVERYTHING ); // behind everything else this->AddChild(&m_sprStaticBackground); if( !m_bDemonstration ) // only load if we're going to use it { - m_Toasty.Load( THEME->GetPathToB("ScreenGameplay toasty") ); + m_Toasty.Load( THEME->GetPathB(m_sName,"toasty") ); this->AddChild( &m_Toasty ); } @@ -333,7 +332,7 @@ void ScreenGameplay::Init() m_Player[p].SetX( fPlayerX ); this->AddChild( &m_Player[p] ); - m_sprOniGameOver[p].Load( THEME->GetPathToG("ScreenGameplay oni gameover") ); + m_sprOniGameOver[p].Load( THEME->GetPathG(m_sName,"oni gameover") ); m_sprOniGameOver[p].SetX( fPlayerX ); m_sprOniGameOver[p].SetY( SCREEN_TOP - m_sprOniGameOver[p].GetZoomedHeight()/2 ); m_sprOniGameOver[p].SetDiffuse( RageColor(1,1,1,0) ); // 0 alpha so we don't waste time drawing while not visible @@ -353,14 +352,12 @@ void ScreenGameplay::Init() // Add LifeFrame // CString sLifeFrameName; - if( bExtra ) - sLifeFrameName = "ScreenGameplay extra life frame"; - else if( GAMESTATE->m_SongOptions.m_LifeType == SongOptions::LIFE_BATTERY ) - sLifeFrameName = "ScreenGameplay oni life frame"; + if( GAMESTATE->m_SongOptions.m_LifeType == SongOptions::LIFE_BATTERY ) + sLifeFrameName = m_sName+" oni life frame"; else - sLifeFrameName = "ScreenGameplay life frame"; + sLifeFrameName = m_sName+" life frame"; m_sprLifeFrame.Load( THEME->GetPathToG(sLifeFrameName) ); - m_sprLifeFrame.SetName( bExtra?"LifeFrameExtra":"LifeFrame" ); + m_sprLifeFrame.SetName( "LifeFrame" ); SET_XY( m_sprLifeFrame ); this->AddChild( &m_sprLifeFrame ); @@ -368,14 +365,12 @@ void ScreenGameplay::Init() // Add score frame // CString sScoreFrameName; - if( bExtra ) - sScoreFrameName = "ScreenGameplay extra score frame"; - else if( GAMESTATE->m_SongOptions.m_LifeType == SongOptions::LIFE_BATTERY ) - sScoreFrameName = "ScreenGameplay oni score frame"; + if( GAMESTATE->m_SongOptions.m_LifeType == SongOptions::LIFE_BATTERY ) + sScoreFrameName = m_sName+" oni score frame"; else - sScoreFrameName = "ScreenGameplay score frame"; + sScoreFrameName = m_sName+" score frame"; m_sprScoreFrame.Load( THEME->GetPathToG(sScoreFrameName) ); - m_sprScoreFrame.SetName( ssprintf("ScoreFrame%s",bExtra?"Extra":"") ); + m_sprScoreFrame.SetName( "ScoreFrame" ); SET_XY( m_sprScoreFrame ); this->AddChild( &m_sprScoreFrame ); @@ -388,7 +383,7 @@ void ScreenGameplay::Init() case PLAY_MODE_BATTLE: case PLAY_MODE_RAVE: m_pCombinedLifeMeter = new CombinedLifeMeterTug; - m_pCombinedLifeMeter->SetName( ssprintf("CombinedLife%s",bExtra?"Extra":"") ); + m_pCombinedLifeMeter->SetName( "CombinedLife" ); SET_XY( *m_pCombinedLifeMeter ); this->AddChild( m_pCombinedLifeMeter ); break; @@ -431,7 +426,7 @@ void ScreenGameplay::Init() } m_pLifeMeter[p]->Load( (PlayerNumber)p ); - m_pLifeMeter[p]->SetName( ssprintf("LifeP%d%s",p+1,bExtra?"Extra":"") ); + m_pLifeMeter[p]->SetName( ssprintf("LifeP%d",p+1) ); SET_XY( *m_pLifeMeter[p] ); this->AddChild( m_pLifeMeter[p] ); } @@ -444,20 +439,20 @@ void ScreenGameplay::Init() - m_textSongTitle.LoadFromFont( THEME->GetPathToF("ScreenGameplay song title") ); + m_textSongTitle.LoadFromFont( THEME->GetPathF(m_sName,"song title") ); m_textSongTitle.SetShadowLength( 0 ); m_textSongTitle.SetName( "SongTitle" ); SET_XY( m_textSongTitle ); this->AddChild( &m_textSongTitle ); - m_meterSongPosition.Load( THEME->GetPathToG("ScreenGameplay song position meter"), SONG_POSITION_METER_WIDTH, THEME->GetPathToG("ScreenGameplay song position tip") ); + m_meterSongPosition.Load( THEME->GetPathG(m_sName,"song position meter"), SONG_POSITION_METER_WIDTH, THEME->GetPathG(m_sName,"song position tip") ); m_meterSongPosition.SetName( "SongPositionMeter" ); SET_XY( m_meterSongPosition ); this->AddChild( &m_meterSongPosition ); - m_MaxCombo.LoadFromFont( THEME->GetPathToN("ScreenGameplay max combo") ); + m_MaxCombo.LoadFromFont( THEME->GetPathN(m_sName,"max combo") ); m_MaxCombo.SetName( "MaxCombo" ); SET_XY( m_MaxCombo ); m_MaxCombo.SetText( ssprintf("%d", g_CurStageStats.iMaxCombo[GAMESTATE->m_MasterPlayerNumber]) ); // TODO: Make this work for both players @@ -488,7 +483,7 @@ void ScreenGameplay::Init() } m_pPrimaryScoreDisplay[p]->Init( (PlayerNumber)p ); - m_pPrimaryScoreDisplay[p]->SetName( ssprintf("ScoreP%d%s",p+1,bExtra?"Extra":"") ); + m_pPrimaryScoreDisplay[p]->SetName( ssprintf("ScoreP%d",p+1) ); SET_XY( *m_pPrimaryScoreDisplay[p] ); if( GAMESTATE->m_PlayMode != PLAY_MODE_RAVE || SHOW_SCORE_IN_RAVE ) /* XXX: ugly */ this->AddChild( m_pPrimaryScoreDisplay[p] ); @@ -507,7 +502,7 @@ void ScreenGameplay::Init() if( m_pSecondaryScoreDisplay[p] ) { m_pSecondaryScoreDisplay[p]->Init( (PlayerNumber)p ); - m_pSecondaryScoreDisplay[p]->SetName( ssprintf("SecondaryScoreP%d%s",p+1,bExtra?"Extra":"") ); + m_pSecondaryScoreDisplay[p]->SetName( ssprintf("SecondaryScoreP%d",p+1) ); SET_XY( *m_pSecondaryScoreDisplay[p] ); this->AddChild( m_pSecondaryScoreDisplay[p] ); } @@ -516,7 +511,7 @@ void ScreenGameplay::Init() // // Add stage / SongNumber // - m_sprStage.SetName( ssprintf("Stage%s",bExtra?"Extra":"") ); + m_sprStage.SetName( "Stage" ); SET_XY( m_sprStage ); m_sprCourseSongNumber.SetName( "CourseSongNumber" ); @@ -524,18 +519,18 @@ void ScreenGameplay::Init() FOREACH_EnabledPlayer(p) { - m_textCourseSongNumber[p].LoadFromFont( THEME->GetPathToN("ScreenGameplay song num") ); + m_textCourseSongNumber[p].LoadFromFont( THEME->GetPathN(m_sName,"song num") ); m_textCourseSongNumber[p].SetShadowLength( 0 ); - m_textCourseSongNumber[p].SetName( ssprintf("SongNumberP%d%s",p+1,bExtra?"Extra":"") ); + m_textCourseSongNumber[p].SetName( ssprintf("SongNumberP%d",p+1) ); SET_XY( m_textCourseSongNumber[p] ); m_textCourseSongNumber[p].SetText( "" ); m_textCourseSongNumber[p].SetDiffuse( RageColor(0,0.5f,1,1) ); // light blue if( GAMESTATE->m_PlayMode == PLAY_MODE_RAVE ) { - m_textPlayerName[p].LoadFromFont( THEME->GetPathToF("ScreenGameplay player") ); + m_textPlayerName[p].LoadFromFont( THEME->GetPathF(m_sName,"player") ); m_textPlayerName[p].SetName( ssprintf("PlayerNameP%i",p+1) ); - m_textPlayerName[p].SetText( GAMESTATE->GetPlayerDisplayName((PlayerNumber)p) ); + m_textPlayerName[p].SetText( GAMESTATE->GetPlayerDisplayName(p) ); SET_XY( m_textPlayerName[p] ); this->AddChild( &m_textPlayerName[p] ); } @@ -543,7 +538,7 @@ void ScreenGameplay::Init() FOREACH_EnabledPlayer(p) { - m_textStepsDescription[p].LoadFromFont( THEME->GetPathToF("ScreenGameplay StepsDescription") ); + m_textStepsDescription[p].LoadFromFont( THEME->GetPathF(m_sName,"StepsDescription") ); m_textStepsDescription[p].SetName( ssprintf("StepsDescriptionP%i",p+1) ); SET_XY( m_textStepsDescription[p] ); this->AddChild( &m_textStepsDescription[p] ); @@ -554,7 +549,7 @@ void ScreenGameplay::Init() case PLAY_MODE_ARCADE: case PLAY_MODE_BATTLE: case PLAY_MODE_RAVE: - m_sprStage.Load( THEME->GetPathToG("ScreenGameplay stage "+GAMESTATE->GetStageText()) ); + m_sprStage.Load( THEME->GetPathG(m_sName,"stage "+GAMESTATE->GetStageText()) ); this->AddChild( &m_sprStage ); break; case PLAY_MODE_NONSTOP: @@ -562,18 +557,15 @@ void ScreenGameplay::Init() case PLAY_MODE_ENDLESS: this->AddChild( &m_sprCourseSongNumber ); - FOREACH_PlayerNumber( p ) - if( GAMESTATE->IsPlayerEnabled(p) ) - { - this->AddChild( &m_textCourseSongNumber[p] ); - } + FOREACH_EnabledPlayer( p ) + this->AddChild( &m_textCourseSongNumber[p] ); break; default: ASSERT(0); // invalid GameMode } - m_sprStageFrame.Load( THEME->GetPathToG("ScreenGameplay stage frame") ); + m_sprStageFrame.Load( THEME->GetPathG(m_sName,"stage frame") ); m_sprStageFrame->SetName( "StageFrame" ); SET_XY( m_sprStageFrame ); this->AddChild( m_sprStageFrame ); @@ -581,21 +573,18 @@ void ScreenGameplay::Init() // // Player/Song options // - FOREACH_PlayerNumber(p) + FOREACH_EnabledPlayer(p) { - if( !GAMESTATE->IsPlayerEnabled(p) ) - continue; - - m_textPlayerOptions[p].LoadFromFont( THEME->GetPathToF("ScreenGameplay player options") ); + m_textPlayerOptions[p].LoadFromFont( THEME->GetPathF(m_sName,"player options") ); m_textPlayerOptions[p].SetShadowLength( 0 ); - m_textPlayerOptions[p].SetName( ssprintf("PlayerOptionsP%d%s",p+1,bExtra?"Extra":"") ); + m_textPlayerOptions[p].SetName( ssprintf("PlayerOptionsP%d",p+1) ); SET_XY( m_textPlayerOptions[p] ); this->AddChild( &m_textPlayerOptions[p] ); } - m_textSongOptions.LoadFromFont( THEME->GetPathToF("ScreenGameplay song options") ); + m_textSongOptions.LoadFromFont( THEME->GetPathF(m_sName,"song options") ); m_textSongOptions.SetShadowLength( 0 ); - m_textSongOptions.SetName( ssprintf("SongOptions%s",bExtra?"Extra":"") ); + m_textSongOptions.SetName( "SongOptions" ); SET_XY( m_textSongOptions ); m_textSongOptions.SetText( GAMESTATE->m_SongOptions.GetString() ); this->AddChild( &m_textSongOptions ); @@ -615,11 +604,11 @@ void ScreenGameplay::Init() FOREACH_EnabledPlayer(p) { - m_DifficultyIcon[p].Load( THEME->GetPathToG(ssprintf("ScreenGameplay difficulty icons 2x%d",NUM_DIFFICULTIES)) ); + m_DifficultyIcon[p].Load( THEME->GetPathG(m_sName,ssprintf("difficulty icons %dx%d",NUM_PLAYERS,NUM_DIFFICULTIES)) ); /* Position it in LoadNextSong. */ this->AddChild( &m_DifficultyIcon[p] ); - m_DifficultyMeter[p].SetName( ssprintf("ScreenGameplay DifficultyMeterP%d",p+1) ); + m_DifficultyMeter[p].SetName( m_sName + ssprintf(" DifficultyMeterP%d",p+1) ); m_DifficultyMeter[p].Load(); /* Position it in LoadNextSong. */ this->AddChild( &m_DifficultyMeter[p] ); @@ -630,7 +619,7 @@ void ScreenGameplay::Init() this->AddChild(&m_LyricDisplay); - m_textAutoPlay.LoadFromFont( THEME->GetPathToF("ScreenGameplay autoplay") ); + m_textAutoPlay.LoadFromFont( THEME->GetPathF(m_sName,"autoplay") ); m_textAutoPlay.SetName( "AutoPlay" ); SET_XY( m_textAutoPlay ); if( !m_bDemonstration ) // only load if we're not in demonstration of jukebox @@ -659,24 +648,24 @@ void ScreenGameplay::Init() if( !m_bDemonstration ) // only load if we're going to use it { - m_Ready.Load( THEME->GetPathToB("ScreenGameplay ready") ); + m_Ready.Load( THEME->GetPathB(m_sName,"ready") ); this->AddChild( &m_Ready ); - m_Go.Load( THEME->GetPathToB("ScreenGameplay go") ); + m_Go.Load( THEME->GetPathB(m_sName,"go") ); this->AddChild( &m_Go ); - m_Cleared.Load( THEME->GetPathToB("ScreenGameplay cleared") ); + m_Cleared.Load( THEME->GetPathB(m_sName,"cleared") ); m_Cleared.SetDrawOrder( DRAW_ORDER_TRANSITIONS-1 ); // on top of everything else this->AddChild( &m_Cleared ); - m_Failed.Load( THEME->GetPathToB("ScreenGameplay failed") ); + m_Failed.Load( THEME->GetPathB(m_sName,"failed") ); m_Failed.SetDrawOrder( DRAW_ORDER_TRANSITIONS-1 ); // on top of everything else this->AddChild( &m_Failed ); if( PREFSMAN->m_bAllowExtraStage && GAMESTATE->IsFinalStage() ) // only load if we're going to use it - m_Extra.Load( THEME->GetPathToB("ScreenGameplay extra1") ); + m_Extra.Load( THEME->GetPathB(m_sName,"extra1") ); if( PREFSMAN->m_bAllowExtraStage && GAMESTATE->IsExtraStage() ) // only load if we're going to use it - m_Extra.Load( THEME->GetPathToB("ScreenGameplay extra2") ); + m_Extra.Load( THEME->GetPathB(m_sName,"extra2") ); this->AddChild( &m_Extra ); // only load if we're going to use it @@ -686,35 +675,35 @@ void ScreenGameplay::Init() case PLAY_MODE_RAVE: FOREACH_PlayerNumber(p) { - m_Win[p].Load( THEME->GetPathToB(ssprintf("ScreenGameplay win p%d",p+1)) ); + m_Win[p].Load( THEME->GetPathB(m_sName,ssprintf("win p%d",p+1)) ); this->AddChild( &m_Win[p] ); } - m_Draw.Load( THEME->GetPathToB("ScreenGameplay draw") ); + m_Draw.Load( THEME->GetPathB(m_sName,"draw") ); this->AddChild( &m_Draw ); break; } - m_textDebug.LoadFromFont( THEME->GetPathToF("Common normal") ); + m_textDebug.LoadFromFont( THEME->GetPathF("Common","normal") ); m_textDebug.SetName( "Debug" ); SET_XY( m_textDebug ); this->AddChild( &m_textDebug ); - m_Overlay.LoadFromAniDir( THEME->GetPathToB("ScreenGameplay Overlay") ); + m_Overlay.LoadFromAniDir( THEME->GetPathB(m_sName,"Overlay") ); m_Overlay.SetDrawOrder( DRAW_ORDER_TRANSITIONS-1 ); this->AddChild( &m_Overlay ); - m_In.Load( THEME->GetPathToB("ScreenGameplay in") ); + m_In.Load( THEME->GetPathB(m_sName,"in") ); m_In.SetDrawOrder( DRAW_ORDER_TRANSITIONS ); this->AddChild( &m_In ); - m_Back.Load( THEME->GetPathToB("Common back") ); + m_Back.Load( THEME->GetPathB("Common","back") ); m_Back.SetDrawOrder( DRAW_ORDER_TRANSITIONS ); // on top of everything else this->AddChild( &m_Back ); if( GAMESTATE->IsExtraStage() || GAMESTATE->IsExtraStage2() ) // only load if we're going to use it { - m_textSurviveTime.LoadFromFont( THEME->GetPathToF("ScreenGameplay survive time") ); + m_textSurviveTime.LoadFromFont( THEME->GetPathF(m_sName,"survive time") ); m_textSurviveTime.SetShadowLength( 0 ); m_textSurviveTime.SetName( "SurviveTime" ); SET_XY( m_textSurviveTime ); @@ -735,14 +724,14 @@ void ScreenGameplay::Init() if( !m_bDemonstration ) // only load if we're going to use it { - m_soundAssistTick.Load( THEME->GetPathToS("ScreenGameplay assist tick"), true ); + m_soundAssistTick.Load( THEME->GetPathS(m_sName,"assist tick"), true ); switch( GAMESTATE->m_PlayMode ) { case PLAY_MODE_BATTLE: - m_soundBattleTrickLevel1.Load( THEME->GetPathToS("ScreenGameplay battle trick level1"), true ); - m_soundBattleTrickLevel2.Load( THEME->GetPathToS("ScreenGameplay battle trick level2"), true ); - m_soundBattleTrickLevel3.Load( THEME->GetPathToS("ScreenGameplay battle trick level3"), true ); + 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; } } @@ -839,7 +828,7 @@ void ScreenGameplay::LoadCourseSongNumber( int SongNumber ) if( !GAMESTATE->IsCourseMode() ) return; - const CString path = THEME->GetPathToG( ssprintf("ScreenGameplay course song %i", SongNumber), true ); + const CString path = THEME->GetPathG( m_sName, ssprintf(" course song %i",SongNumber), true ); if( path != "" ) m_sprCourseSongNumber.Load( path ); else @@ -957,7 +946,6 @@ void ScreenGameplay::LoadNextSong() */ m_BPMDisplay.SetBPM( GAMESTATE->m_pCurSong ); - const bool bExtra = GAMESTATE->IsExtraStage() || GAMESTATE->IsExtraStage2(); const bool bReverse[NUM_PLAYERS] = { GAMESTATE->m_PlayerOptions[0].m_fScrolls[PlayerOptions::SCROLL_REVERSE] == 1, GAMESTATE->m_PlayerOptions[1].m_fScrolls[PlayerOptions::SCROLL_REVERSE] == 1 @@ -966,10 +954,10 @@ void ScreenGameplay::LoadNextSong() { FOREACH_EnabledPlayer( p ) { - m_DifficultyIcon[p].SetName( ssprintf("DifficultyP%d%s%s",p+1,bExtra?"Extra":"",bReverse[p]?"Reverse":"") ); + m_DifficultyIcon[p].SetName( ssprintf("DifficultyP%d%s",p+1,bReverse[p]?"Reverse":"") ); SET_XY( m_DifficultyIcon[p] ); - m_DifficultyMeter[p].SetName( ssprintf("DifficultyMeterP%d%s%s",p+1,bExtra?"Extra":"",bReverse[p]?"Reverse":"") ); + m_DifficultyMeter[p].SetName( ssprintf("DifficultyMeterP%d%s",p+1,bReverse[p]?"Reverse":"") ); SET_XY( m_DifficultyMeter[p] ); } } @@ -983,11 +971,11 @@ void ScreenGameplay::LoadNextSong() SET_XY( m_LyricDisplay ); /* Load the Oni transitions */ - m_NextSongIn.Load( THEME->GetPathToB("ScreenGameplay next song in") ); + m_NextSongIn.Load( THEME->GetPathB(m_sName,"next song in") ); // Instead, load this right before it's used -// m_NextSongOut.Load( THEME->GetPathToB("ScreenGameplay next song out") ); +// m_NextSongOut.Load( THEME->GetPathB(m_sName,"next song out") ); - m_SongFinished.Load( THEME->GetPathToB("ScreenGameplay song finished") ); + m_SongFinished.Load( THEME->GetPathB(m_sName,"song finished") ); // Load lyrics // XXX: don't load this here @@ -1335,7 +1323,7 @@ void ScreenGameplay::Update( float fDeltaTime ) FOREACH_CpuPlayer(p) { - SOUND->PlayOnceFromDir( THEME->GetPathToS("ScreenGameplay oni die") ); + SOUND->PlayOnceFromDir( THEME->GetPathS(m_sName,"oni die") ); ShowOniGameOver((PlayerNumber)p); m_Player[p].Init(); // remove all notes and scoring m_Player[p].FadeToFail(); // tell the NoteField to fade to white @@ -1516,10 +1504,8 @@ void ScreenGameplay::UpdateCheckFail() return; // check for individual fail - for ( int pn=0; pnIsPlayerEnabled(pn) ) - continue; if( (m_pLifeMeter[pn] && !m_pLifeMeter[pn]->IsFailing()) || (m_pCombinedLifeMeter && !m_pCombinedLifeMeter->IsFailing((PlayerNumber)pn)) ) continue; /* isn't failing */ @@ -1541,7 +1527,7 @@ void ScreenGameplay::UpdateCheckFail() if( !g_CurStageStats.AllFailedEarlier() ) // if not the last one to fail { // kill them! - SOUND->PlayOnceFromDir( THEME->GetPathToS("ScreenGameplay oni die") ); + SOUND->PlayOnceFromDir( THEME->GetPathS(m_sName,"oni die") ); ShowOniGameOver((PlayerNumber)pn); m_Player[pn].Init(); // remove all notes and scoring m_Player[pn].FadeToFail(); // tell the NoteField to fade to white @@ -2017,7 +2003,7 @@ void ScreenGameplay::HandleScreenMessage( const ScreenMessage SM ) iPlaySongIndex %= m_apSongsQueue.size(); GAMESTATE->m_pCurSong = m_apSongsQueue[iPlaySongIndex]; - m_NextSongOut.Load( THEME->GetPathToB("ScreenGameplay next song out") ); + m_NextSongOut.Load( THEME->GetPathB(m_sName,"next song out") ); GAMESTATE->m_pCurSong = pCurSong; m_NextSongOut.StartTransitioning( SM_LoadNextSong );